diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f1aedd4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,123 @@
+# Created by https://www.toptal.com/developers/gitignore/api/node,vscode
+# Edit at https://www.toptal.com/developers/gitignore?templates=node,vscode
+
+### Node ###
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+lerna-debug.log*
+
+# Diagnostic reports (https://nodejs.org/api/report.html)
+report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
+
+# Runtime data
+pids
+*.pid
+*.seed
+*.pid.lock
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+*.lcov
+
+# nyc test coverage
+.nyc_output
+
+# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# Bower dependency directory (https://bower.io/)
+bower_components
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (https://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+node_modules/
+jspm_packages/
+
+# TypeScript v1 declaration files
+typings/
+
+# TypeScript cache
+*.tsbuildinfo
+
+# Optional npm cache directory
+.npm
+
+# Optional eslint cache
+.eslintcache
+
+# Microbundle cache
+.rpt2_cache/
+.rts2_cache_cjs/
+.rts2_cache_es/
+.rts2_cache_umd/
+
+# Optional REPL history
+.node_repl_history
+
+# Output of 'npm pack'
+*.tgz
+
+# Yarn Integrity file
+.yarn-integrity
+
+# dotenv environment variables file
+.env
+.env.test
+.env*.local
+
+# parcel-bundler cache (https://parceljs.org/)
+.cache
+.parcel-cache
+
+# Next.js build output
+.next
+
+# Nuxt.js build / generate output
+.nuxt
+dist
+
+# Gatsby files
+.cache/
+# Comment in the public line in if your project uses Gatsby and not Next.js
+# https://nextjs.org/blog/next-9-1#public-directory-support
+# public
+
+# vuepress build output
+.vuepress/dist
+
+# Serverless directories
+.serverless/
+
+# FuseBox cache
+.fusebox/
+
+# DynamoDB Local files
+.dynamodb/
+
+# TernJS port file
+.tern-port
+
+# Stores VSCode versions used for testing VSCode extensions
+.vscode-test
+
+### vscode ###
+.vscode/*
+!.vscode/settings.json
+!.vscode/tasks.json
+!.vscode/launch.json
+!.vscode/extensions.json
+*.code-workspace
+
+# End of https://www.toptal.com/developers/gitignore/api/node,vscode
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..83d505d
--- /dev/null
+++ b/index.html
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Document
+
+
+
+
+
+
+
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..29f5890
--- /dev/null
+++ b/index.js
@@ -0,0 +1,43 @@
+const start_stt = this.document.getElementById('start_stt');
+start_stt.addEventListener('click', function () {
+ const speechConfig = SpeechSDK.SpeechConfig.fromSubscription(
+ 'fa50041df8f34ef3a14a9ef22b910602',
+ 'koreacentral',
+ );
+
+ const audioConfig = SpeechSDK.AudioConfig.fromDefaultMicrophoneInput();
+ const recognizer = new SpeechSDK.SpeechRecognizer(speechConfig, audioConfig);
+
+ // const recognizer = new SpeechSDK.SpeechRecognizer(speechConfig);
+
+ // recognizer.recognizing = (s, e) => {
+ // console.log(`RECOGNIZING: Text=${e.result.text}`);
+ // };
+
+ recognizer.recognized = (s, e) => {
+ if (e.result.reason == SpeechSDK.ResultReason.RecognizedSpeech) {
+ console.log(`RECOGNIZED: Text=${e.result.text}`);
+ } else if (e.result.reason == SppeechSDK.ResultReason.NoMatch) {
+ console.log('NOMATCH: Speech could not be recognized.');
+ }
+ };
+
+ recognizer.canceled = (s, e) => {
+ console.log(`CANCELED: Reason=${e.reason}`);
+
+ if (e.reason == SpeechSDK.CancellationReason.Error) {
+ console.log(`"CANCELED: ErrorCode=${e.errorCode}`);
+ console.log(`"CANCELED: ErrorDetails=${e.errorDetails}`);
+ console.log('CANCELED: Did you update the subscription info?');
+ }
+
+ recognizer.stopContinuousRecognitionAsync();
+ };
+
+ recognizer.sessionStopped = (s, e) => {
+ console.log('\n Session stopped event.');
+ recognizer.stopContinuousRecognitionAsync();
+ };
+
+ recognizer.startContinuousRecognitionAsync();
+});
diff --git a/microsoft.cognitiveservices.speech.sdk.bundle.js b/microsoft.cognitiveservices.speech.sdk.bundle.js
new file mode 100644
index 0000000..f1a011f
--- /dev/null
+++ b/microsoft.cognitiveservices.speech.sdk.bundle.js
@@ -0,0 +1,26933 @@
+/******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId]) {
+/******/ return installedModules[moduleId].exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ i: moduleId,
+/******/ l: false,
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+/******/
+/******/ // Flag the module as loaded
+/******/ module.l = true;
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/******/
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+/******/
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+/******/
+/******/ // define getter function for harmony exports
+/******/ __webpack_require__.d = function(exports, name, getter) {
+/******/ if(!__webpack_require__.o(exports, name)) {
+/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
+/******/ }
+/******/ };
+/******/
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = function(exports) {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/
+/******/ // create a fake namespace object
+/******/ // mode & 1: value is a module id, require it
+/******/ // mode & 2: merge all properties of value into the ns
+/******/ // mode & 4: return value when already ns object
+/******/ // mode & 8|1: behave like require
+/******/ __webpack_require__.t = function(value, mode) {
+/******/ if(mode & 1) value = __webpack_require__(value);
+/******/ if(mode & 8) return value;
+/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
+/******/ var ns = Object.create(null);
+/******/ __webpack_require__.r(ns);
+/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
+/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
+/******/ return ns;
+/******/ };
+/******/
+/******/ // getDefaultExport function for compatibility with non-harmony modules
+/******/ __webpack_require__.n = function(module) {
+/******/ var getter = module && module.__esModule ?
+/******/ function getDefault() { return module['default']; } :
+/******/ function getModuleExports() { return module; };
+/******/ __webpack_require__.d(getter, 'a', getter);
+/******/ return getter;
+/******/ };
+/******/
+/******/ // Object.prototype.hasOwnProperty.call
+/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
+/******/
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+/******/
+/******/
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(__webpack_require__.s = 0);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ (function(module, exports, __webpack_require__) {
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+
+window.SpeechSDK = __webpack_require__(1);
+
+
+
+/***/ }),
+/* 1 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
+Object.defineProperty(exports, "__esModule", { value: true });
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var Exports_1 = __webpack_require__(2);
+var Exports_2 = __webpack_require__(4);
+// Common.Storage.SetLocalStorage(new Common.Browser.LocalStorage());
+// Common.Storage.SetSessionStorage(new Common.Browser.SessionStorage());
+Exports_2.Events.instance.attachListener(new Exports_1.ConsoleLoggingListener());
+// Speech SDK API
+__export(__webpack_require__(31));
+
+
+
+/***/ }),
+/* 2 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
+Object.defineProperty(exports, "__esModule", { value: true });
+__export(__webpack_require__(3));
+__export(__webpack_require__(25));
+__export(__webpack_require__(181));
+__export(__webpack_require__(182));
+__export(__webpack_require__(183));
+__export(__webpack_require__(184));
+__export(__webpack_require__(200));
+__export(__webpack_require__(201));
+__export(__webpack_require__(202));
+__export(__webpack_require__(159));
+
+
+
+/***/ }),
+/* 3 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var ConsoleLoggingListener = /** @class */ (function () {
+ function ConsoleLoggingListener(logLevelFilter) {
+ var _this = this;
+ if (logLevelFilter === void 0) { logLevelFilter = Exports_1.EventType.Warning; }
+ this.onEvent = function (event) {
+ if (event.eventType >= _this.privLogLevelFilter) {
+ var log = _this.toString(event);
+ switch (event.eventType) {
+ case Exports_1.EventType.Debug:
+ // tslint:disable-next-line:no-console
+ console.debug(log);
+ break;
+ case Exports_1.EventType.Info:
+ // tslint:disable-next-line:no-console
+ console.info(log);
+ break;
+ case Exports_1.EventType.Warning:
+ // tslint:disable-next-line:no-console
+ console.warn(log);
+ break;
+ case Exports_1.EventType.Error:
+ // tslint:disable-next-line:no-console
+ console.error(log);
+ break;
+ default:
+ // tslint:disable-next-line:no-console
+ console.log(log);
+ break;
+ }
+ }
+ };
+ this.toString = function (event) {
+ var logFragments = [
+ "" + event.EventTime,
+ "" + event.Name,
+ ];
+ for (var prop in event) {
+ if (prop && event.hasOwnProperty(prop) &&
+ prop !== "eventTime" && prop !== "eventType" &&
+ prop !== "eventId" && prop !== "name" &&
+ prop !== "constructor") {
+ var value = event[prop];
+ var valueToLog = "";
+ if (value !== undefined && value !== null) {
+ if (typeof (value) === "number" || typeof (value) === "string") {
+ valueToLog = value.toString();
+ }
+ else {
+ valueToLog = JSON.stringify(value);
+ }
+ }
+ logFragments.push(prop + ": " + valueToLog);
+ }
+ }
+ return logFragments.join(" | ");
+ };
+ this.privLogLevelFilter = logLevelFilter;
+ }
+ return ConsoleLoggingListener;
+}());
+exports.ConsoleLoggingListener = ConsoleLoggingListener;
+
+
+
+/***/ }),
+/* 4 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
+Object.defineProperty(exports, "__esModule", { value: true });
+__export(__webpack_require__(5));
+__export(__webpack_require__(8));
+__export(__webpack_require__(9));
+__export(__webpack_require__(11));
+__export(__webpack_require__(10));
+__export(__webpack_require__(12));
+__export(__webpack_require__(13));
+__export(__webpack_require__(7));
+__export(__webpack_require__(14));
+__export(__webpack_require__(15));
+__export(__webpack_require__(6));
+__export(__webpack_require__(16));
+__export(__webpack_require__(17));
+__export(__webpack_require__(18));
+__export(__webpack_require__(19));
+__export(__webpack_require__(20));
+var TranslationStatus_1 = __webpack_require__(21);
+exports.TranslationStatus = TranslationStatus_1.TranslationStatus;
+__export(__webpack_require__(22));
+__export(__webpack_require__(23));
+__export(__webpack_require__(24));
+
+
+
+/***/ }),
+/* 5 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var PlatformEvent_1 = __webpack_require__(6);
+var AudioSourceEvent = /** @class */ (function (_super) {
+ __extends(AudioSourceEvent, _super);
+ function AudioSourceEvent(eventName, audioSourceId, eventType) {
+ if (eventType === void 0) { eventType = PlatformEvent_1.EventType.Info; }
+ var _this = _super.call(this, eventName, eventType) || this;
+ _this.privAudioSourceId = audioSourceId;
+ return _this;
+ }
+ Object.defineProperty(AudioSourceEvent.prototype, "audioSourceId", {
+ get: function () {
+ return this.privAudioSourceId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return AudioSourceEvent;
+}(PlatformEvent_1.PlatformEvent));
+exports.AudioSourceEvent = AudioSourceEvent;
+// tslint:disable-next-line:max-classes-per-file
+var AudioSourceInitializingEvent = /** @class */ (function (_super) {
+ __extends(AudioSourceInitializingEvent, _super);
+ function AudioSourceInitializingEvent(audioSourceId) {
+ return _super.call(this, "AudioSourceInitializingEvent", audioSourceId) || this;
+ }
+ return AudioSourceInitializingEvent;
+}(AudioSourceEvent));
+exports.AudioSourceInitializingEvent = AudioSourceInitializingEvent;
+// tslint:disable-next-line:max-classes-per-file
+var AudioSourceReadyEvent = /** @class */ (function (_super) {
+ __extends(AudioSourceReadyEvent, _super);
+ function AudioSourceReadyEvent(audioSourceId) {
+ return _super.call(this, "AudioSourceReadyEvent", audioSourceId) || this;
+ }
+ return AudioSourceReadyEvent;
+}(AudioSourceEvent));
+exports.AudioSourceReadyEvent = AudioSourceReadyEvent;
+// tslint:disable-next-line:max-classes-per-file
+var AudioSourceOffEvent = /** @class */ (function (_super) {
+ __extends(AudioSourceOffEvent, _super);
+ function AudioSourceOffEvent(audioSourceId) {
+ return _super.call(this, "AudioSourceOffEvent", audioSourceId) || this;
+ }
+ return AudioSourceOffEvent;
+}(AudioSourceEvent));
+exports.AudioSourceOffEvent = AudioSourceOffEvent;
+// tslint:disable-next-line:max-classes-per-file
+var AudioSourceErrorEvent = /** @class */ (function (_super) {
+ __extends(AudioSourceErrorEvent, _super);
+ function AudioSourceErrorEvent(audioSourceId, error) {
+ var _this = _super.call(this, "AudioSourceErrorEvent", audioSourceId, PlatformEvent_1.EventType.Error) || this;
+ _this.privError = error;
+ return _this;
+ }
+ Object.defineProperty(AudioSourceErrorEvent.prototype, "error", {
+ get: function () {
+ return this.privError;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return AudioSourceErrorEvent;
+}(AudioSourceEvent));
+exports.AudioSourceErrorEvent = AudioSourceErrorEvent;
+// tslint:disable-next-line:max-classes-per-file
+var AudioStreamNodeEvent = /** @class */ (function (_super) {
+ __extends(AudioStreamNodeEvent, _super);
+ function AudioStreamNodeEvent(eventName, audioSourceId, audioNodeId) {
+ var _this = _super.call(this, eventName, audioSourceId) || this;
+ _this.privAudioNodeId = audioNodeId;
+ return _this;
+ }
+ Object.defineProperty(AudioStreamNodeEvent.prototype, "audioNodeId", {
+ get: function () {
+ return this.privAudioNodeId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return AudioStreamNodeEvent;
+}(AudioSourceEvent));
+exports.AudioStreamNodeEvent = AudioStreamNodeEvent;
+// tslint:disable-next-line:max-classes-per-file
+var AudioStreamNodeAttachingEvent = /** @class */ (function (_super) {
+ __extends(AudioStreamNodeAttachingEvent, _super);
+ function AudioStreamNodeAttachingEvent(audioSourceId, audioNodeId) {
+ return _super.call(this, "AudioStreamNodeAttachingEvent", audioSourceId, audioNodeId) || this;
+ }
+ return AudioStreamNodeAttachingEvent;
+}(AudioStreamNodeEvent));
+exports.AudioStreamNodeAttachingEvent = AudioStreamNodeAttachingEvent;
+// tslint:disable-next-line:max-classes-per-file
+var AudioStreamNodeAttachedEvent = /** @class */ (function (_super) {
+ __extends(AudioStreamNodeAttachedEvent, _super);
+ function AudioStreamNodeAttachedEvent(audioSourceId, audioNodeId) {
+ return _super.call(this, "AudioStreamNodeAttachedEvent", audioSourceId, audioNodeId) || this;
+ }
+ return AudioStreamNodeAttachedEvent;
+}(AudioStreamNodeEvent));
+exports.AudioStreamNodeAttachedEvent = AudioStreamNodeAttachedEvent;
+// tslint:disable-next-line:max-classes-per-file
+var AudioStreamNodeDetachedEvent = /** @class */ (function (_super) {
+ __extends(AudioStreamNodeDetachedEvent, _super);
+ function AudioStreamNodeDetachedEvent(audioSourceId, audioNodeId) {
+ return _super.call(this, "AudioStreamNodeDetachedEvent", audioSourceId, audioNodeId) || this;
+ }
+ return AudioStreamNodeDetachedEvent;
+}(AudioStreamNodeEvent));
+exports.AudioStreamNodeDetachedEvent = AudioStreamNodeDetachedEvent;
+// tslint:disable-next-line:max-classes-per-file
+var AudioStreamNodeErrorEvent = /** @class */ (function (_super) {
+ __extends(AudioStreamNodeErrorEvent, _super);
+ function AudioStreamNodeErrorEvent(audioSourceId, audioNodeId, error) {
+ var _this = _super.call(this, "AudioStreamNodeErrorEvent", audioSourceId, audioNodeId) || this;
+ _this.privError = error;
+ return _this;
+ }
+ Object.defineProperty(AudioStreamNodeErrorEvent.prototype, "error", {
+ get: function () {
+ return this.privError;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return AudioStreamNodeErrorEvent;
+}(AudioStreamNodeEvent));
+exports.AudioStreamNodeErrorEvent = AudioStreamNodeErrorEvent;
+
+
+
+/***/ }),
+/* 6 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Guid_1 = __webpack_require__(7);
+var EventType;
+(function (EventType) {
+ EventType[EventType["Debug"] = 0] = "Debug";
+ EventType[EventType["Info"] = 1] = "Info";
+ EventType[EventType["Warning"] = 2] = "Warning";
+ EventType[EventType["Error"] = 3] = "Error";
+})(EventType = exports.EventType || (exports.EventType = {}));
+var PlatformEvent = /** @class */ (function () {
+ function PlatformEvent(eventName, eventType) {
+ this.privName = eventName;
+ this.privEventId = Guid_1.createNoDashGuid();
+ this.privEventTime = new Date().toISOString();
+ this.privEventType = eventType;
+ this.privMetadata = {};
+ }
+ Object.defineProperty(PlatformEvent.prototype, "name", {
+ get: function () {
+ return this.privName;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(PlatformEvent.prototype, "eventId", {
+ get: function () {
+ return this.privEventId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(PlatformEvent.prototype, "eventTime", {
+ get: function () {
+ return this.privEventTime;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(PlatformEvent.prototype, "eventType", {
+ get: function () {
+ return this.privEventType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(PlatformEvent.prototype, "metadata", {
+ get: function () {
+ return this.privMetadata;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return PlatformEvent;
+}());
+exports.PlatformEvent = PlatformEvent;
+
+
+
+/***/ }),
+/* 7 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var createGuid = function () {
+ var d = new Date().getTime();
+ var guid = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function (c) {
+ var r = (d + Math.random() * 16) % 16 | 0;
+ d = Math.floor(d / 16);
+ return (c === "x" ? r : (r & 0x3 | 0x8)).toString(16);
+ });
+ return guid;
+};
+exports.createGuid = createGuid;
+var createNoDashGuid = function () {
+ return createGuid().replace(new RegExp("-", "g"), "").toUpperCase();
+};
+exports.createNoDashGuid = createNoDashGuid;
+
+
+
+/***/ }),
+/* 8 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var PlatformEvent_1 = __webpack_require__(6);
+var ServiceEvent = /** @class */ (function (_super) {
+ __extends(ServiceEvent, _super);
+ function ServiceEvent(eventName, jsonstring, eventType) {
+ if (eventType === void 0) { eventType = PlatformEvent_1.EventType.Info; }
+ var _this = _super.call(this, eventName, eventType) || this;
+ _this.privJsonResult = jsonstring;
+ return _this;
+ }
+ Object.defineProperty(ServiceEvent.prototype, "jsonString", {
+ get: function () {
+ return this.privJsonResult;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ServiceEvent;
+}(PlatformEvent_1.PlatformEvent));
+exports.ServiceEvent = ServiceEvent;
+// tslint:disable-next-line:max-classes-per-file
+var ConnectionEvent = /** @class */ (function (_super) {
+ __extends(ConnectionEvent, _super);
+ function ConnectionEvent(eventName, connectionId, eventType) {
+ if (eventType === void 0) { eventType = PlatformEvent_1.EventType.Info; }
+ var _this = _super.call(this, eventName, eventType) || this;
+ _this.privConnectionId = connectionId;
+ return _this;
+ }
+ Object.defineProperty(ConnectionEvent.prototype, "connectionId", {
+ get: function () {
+ return this.privConnectionId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConnectionEvent;
+}(PlatformEvent_1.PlatformEvent));
+exports.ConnectionEvent = ConnectionEvent;
+// tslint:disable-next-line:max-classes-per-file
+var ConnectionStartEvent = /** @class */ (function (_super) {
+ __extends(ConnectionStartEvent, _super);
+ function ConnectionStartEvent(connectionId, uri, headers) {
+ var _this = _super.call(this, "ConnectionStartEvent", connectionId) || this;
+ _this.privUri = uri;
+ _this.privHeaders = headers;
+ return _this;
+ }
+ Object.defineProperty(ConnectionStartEvent.prototype, "uri", {
+ get: function () {
+ return this.privUri;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionStartEvent.prototype, "headers", {
+ get: function () {
+ return this.privHeaders;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConnectionStartEvent;
+}(ConnectionEvent));
+exports.ConnectionStartEvent = ConnectionStartEvent;
+// tslint:disable-next-line:max-classes-per-file
+var ConnectionEstablishedEvent = /** @class */ (function (_super) {
+ __extends(ConnectionEstablishedEvent, _super);
+ function ConnectionEstablishedEvent(connectionId, metadata) {
+ return _super.call(this, "ConnectionEstablishedEvent", connectionId) || this;
+ }
+ return ConnectionEstablishedEvent;
+}(ConnectionEvent));
+exports.ConnectionEstablishedEvent = ConnectionEstablishedEvent;
+// tslint:disable-next-line:max-classes-per-file
+var ConnectionClosedEvent = /** @class */ (function (_super) {
+ __extends(ConnectionClosedEvent, _super);
+ function ConnectionClosedEvent(connectionId, statusCode, reason) {
+ var _this = _super.call(this, "ConnectionClosedEvent", connectionId, PlatformEvent_1.EventType.Debug) || this;
+ _this.privRreason = reason;
+ _this.privStatusCode = statusCode;
+ return _this;
+ }
+ Object.defineProperty(ConnectionClosedEvent.prototype, "reason", {
+ get: function () {
+ return this.privRreason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionClosedEvent.prototype, "statusCode", {
+ get: function () {
+ return this.privStatusCode;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConnectionClosedEvent;
+}(ConnectionEvent));
+exports.ConnectionClosedEvent = ConnectionClosedEvent;
+// tslint:disable-next-line:max-classes-per-file
+var ConnectionErrorEvent = /** @class */ (function (_super) {
+ __extends(ConnectionErrorEvent, _super);
+ function ConnectionErrorEvent(connectionId, message, type) {
+ var _this = _super.call(this, "ConnectionErrorEvent", connectionId, PlatformEvent_1.EventType.Debug) || this;
+ _this.privMessage = message;
+ _this.privType = type;
+ return _this;
+ }
+ Object.defineProperty(ConnectionErrorEvent.prototype, "message", {
+ get: function () {
+ return this.privMessage;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionErrorEvent.prototype, "type", {
+ get: function () {
+ return this.privType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConnectionErrorEvent;
+}(ConnectionEvent));
+exports.ConnectionErrorEvent = ConnectionErrorEvent;
+// tslint:disable-next-line:max-classes-per-file
+var ConnectionEstablishErrorEvent = /** @class */ (function (_super) {
+ __extends(ConnectionEstablishErrorEvent, _super);
+ function ConnectionEstablishErrorEvent(connectionId, statuscode, reason) {
+ var _this = _super.call(this, "ConnectionEstablishErrorEvent", connectionId, PlatformEvent_1.EventType.Error) || this;
+ _this.privStatusCode = statuscode;
+ _this.privReason = reason;
+ return _this;
+ }
+ Object.defineProperty(ConnectionEstablishErrorEvent.prototype, "reason", {
+ get: function () {
+ return this.privReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionEstablishErrorEvent.prototype, "statusCode", {
+ get: function () {
+ return this.privStatusCode;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConnectionEstablishErrorEvent;
+}(ConnectionEvent));
+exports.ConnectionEstablishErrorEvent = ConnectionEstablishErrorEvent;
+// tslint:disable-next-line:max-classes-per-file
+var ConnectionMessageReceivedEvent = /** @class */ (function (_super) {
+ __extends(ConnectionMessageReceivedEvent, _super);
+ function ConnectionMessageReceivedEvent(connectionId, networkReceivedTimeISO, message) {
+ var _this = _super.call(this, "ConnectionMessageReceivedEvent", connectionId) || this;
+ _this.privNetworkReceivedTime = networkReceivedTimeISO;
+ _this.privMessage = message;
+ return _this;
+ }
+ Object.defineProperty(ConnectionMessageReceivedEvent.prototype, "networkReceivedTime", {
+ get: function () {
+ return this.privNetworkReceivedTime;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionMessageReceivedEvent.prototype, "message", {
+ get: function () {
+ return this.privMessage;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConnectionMessageReceivedEvent;
+}(ConnectionEvent));
+exports.ConnectionMessageReceivedEvent = ConnectionMessageReceivedEvent;
+// tslint:disable-next-line:max-classes-per-file
+var ConnectionMessageSentEvent = /** @class */ (function (_super) {
+ __extends(ConnectionMessageSentEvent, _super);
+ function ConnectionMessageSentEvent(connectionId, networkSentTimeISO, message) {
+ var _this = _super.call(this, "ConnectionMessageSentEvent", connectionId) || this;
+ _this.privNetworkSentTime = networkSentTimeISO;
+ _this.privMessage = message;
+ return _this;
+ }
+ Object.defineProperty(ConnectionMessageSentEvent.prototype, "networkSentTime", {
+ get: function () {
+ return this.privNetworkSentTime;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionMessageSentEvent.prototype, "message", {
+ get: function () {
+ return this.privMessage;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConnectionMessageSentEvent;
+}(ConnectionEvent));
+exports.ConnectionMessageSentEvent = ConnectionMessageSentEvent;
+
+
+
+/***/ }),
+/* 9 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Error_1 = __webpack_require__(10);
+var Guid_1 = __webpack_require__(7);
+var MessageType;
+(function (MessageType) {
+ MessageType[MessageType["Text"] = 0] = "Text";
+ MessageType[MessageType["Binary"] = 1] = "Binary";
+})(MessageType = exports.MessageType || (exports.MessageType = {}));
+var ConnectionMessage = /** @class */ (function () {
+ function ConnectionMessage(messageType, body, headers, id) {
+ this.privBody = null;
+ if (messageType === MessageType.Text && body && !(typeof (body) === "string")) {
+ throw new Error_1.InvalidOperationError("Payload must be a string");
+ }
+ if (messageType === MessageType.Binary && body && !(body instanceof ArrayBuffer)) {
+ throw new Error_1.InvalidOperationError("Payload must be ArrayBuffer");
+ }
+ this.privMessageType = messageType;
+ this.privBody = body;
+ this.privHeaders = headers ? headers : {};
+ this.privId = id ? id : Guid_1.createNoDashGuid();
+ switch (this.messageType) {
+ case MessageType.Binary:
+ this.privSize = this.binaryBody !== null ? this.binaryBody.byteLength : 0;
+ break;
+ case MessageType.Text:
+ this.privSize = this.textBody.length;
+ }
+ }
+ Object.defineProperty(ConnectionMessage.prototype, "messageType", {
+ get: function () {
+ return this.privMessageType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionMessage.prototype, "headers", {
+ get: function () {
+ return this.privHeaders;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionMessage.prototype, "body", {
+ get: function () {
+ return this.privBody;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionMessage.prototype, "textBody", {
+ get: function () {
+ if (this.privMessageType === MessageType.Binary) {
+ throw new Error_1.InvalidOperationError("Not supported for binary message");
+ }
+ return this.privBody;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionMessage.prototype, "binaryBody", {
+ get: function () {
+ if (this.privMessageType === MessageType.Text) {
+ throw new Error_1.InvalidOperationError("Not supported for text message");
+ }
+ return this.privBody;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionMessage.prototype, "id", {
+ get: function () {
+ return this.privId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConnectionMessage;
+}());
+exports.ConnectionMessage = ConnectionMessage;
+
+
+
+/***/ }),
+/* 10 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * The error that is thrown when an argument passed in is null.
+ *
+ * @export
+ * @class ArgumentNullError
+ * @extends {Error}
+ */
+var ArgumentNullError = /** @class */ (function (_super) {
+ __extends(ArgumentNullError, _super);
+ /**
+ * Creates an instance of ArgumentNullError.
+ *
+ * @param {string} argumentName - Name of the argument that is null
+ *
+ * @memberOf ArgumentNullError
+ */
+ function ArgumentNullError(argumentName) {
+ var _this = _super.call(this, argumentName) || this;
+ _this.name = "ArgumentNull";
+ _this.message = argumentName;
+ return _this;
+ }
+ return ArgumentNullError;
+}(Error));
+exports.ArgumentNullError = ArgumentNullError;
+/**
+ * The error that is thrown when an invalid operation is performed in the code.
+ *
+ * @export
+ * @class InvalidOperationError
+ * @extends {Error}
+ */
+// tslint:disable-next-line:max-classes-per-file
+var InvalidOperationError = /** @class */ (function (_super) {
+ __extends(InvalidOperationError, _super);
+ /**
+ * Creates an instance of InvalidOperationError.
+ *
+ * @param {string} error - The error
+ *
+ * @memberOf InvalidOperationError
+ */
+ function InvalidOperationError(error) {
+ var _this = _super.call(this, error) || this;
+ _this.name = "InvalidOperation";
+ _this.message = error;
+ return _this;
+ }
+ return InvalidOperationError;
+}(Error));
+exports.InvalidOperationError = InvalidOperationError;
+/**
+ * The error that is thrown when an object is disposed.
+ *
+ * @export
+ * @class ObjectDisposedError
+ * @extends {Error}
+ */
+// tslint:disable-next-line:max-classes-per-file
+var ObjectDisposedError = /** @class */ (function (_super) {
+ __extends(ObjectDisposedError, _super);
+ /**
+ * Creates an instance of ObjectDisposedError.
+ *
+ * @param {string} objectName - The object that is disposed
+ * @param {string} error - The error
+ *
+ * @memberOf ObjectDisposedError
+ */
+ function ObjectDisposedError(objectName, error) {
+ var _this = _super.call(this, error) || this;
+ _this.name = objectName + "ObjectDisposed";
+ _this.message = error;
+ return _this;
+ }
+ return ObjectDisposedError;
+}(Error));
+exports.ObjectDisposedError = ObjectDisposedError;
+
+
+
+/***/ }),
+/* 11 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var ConnectionOpenResponse = /** @class */ (function () {
+ function ConnectionOpenResponse(statusCode, reason) {
+ this.privStatusCode = statusCode;
+ this.privReason = reason;
+ }
+ Object.defineProperty(ConnectionOpenResponse.prototype, "statusCode", {
+ get: function () {
+ return this.privStatusCode;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionOpenResponse.prototype, "reason", {
+ get: function () {
+ return this.privReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConnectionOpenResponse;
+}());
+exports.ConnectionOpenResponse = ConnectionOpenResponse;
+
+
+
+/***/ }),
+/* 12 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Error_1 = __webpack_require__(10);
+var EventSource_1 = __webpack_require__(13);
+var Events = /** @class */ (function () {
+ function Events() {
+ }
+ Object.defineProperty(Events, "instance", {
+ get: function () {
+ return Events.privInstance;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Events.privInstance = new EventSource_1.EventSource();
+ Events.setEventSource = function (eventSource) {
+ if (!eventSource) {
+ throw new Error_1.ArgumentNullError("eventSource");
+ }
+ Events.privInstance = eventSource;
+ };
+ return Events;
+}());
+exports.Events = Events;
+
+
+
+/***/ }),
+/* 13 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Error_1 = __webpack_require__(10);
+var Guid_1 = __webpack_require__(7);
+var EventSource = /** @class */ (function () {
+ function EventSource(metadata) {
+ var _this = this;
+ this.privEventListeners = {};
+ this.privIsDisposed = false;
+ this.onEvent = function (event) {
+ if (_this.isDisposed()) {
+ throw (new Error_1.ObjectDisposedError("EventSource"));
+ }
+ if (_this.metadata) {
+ for (var paramName in _this.metadata) {
+ if (paramName) {
+ if (event.metadata) {
+ if (!event.metadata[paramName]) {
+ event.metadata[paramName] = _this.metadata[paramName];
+ }
+ }
+ }
+ }
+ }
+ for (var eventId in _this.privEventListeners) {
+ if (eventId && _this.privEventListeners[eventId]) {
+ _this.privEventListeners[eventId](event);
+ }
+ }
+ };
+ this.attach = function (onEventCallback) {
+ var id = Guid_1.createNoDashGuid();
+ _this.privEventListeners[id] = onEventCallback;
+ return {
+ detach: function () {
+ delete _this.privEventListeners[id];
+ },
+ };
+ };
+ this.attachListener = function (listener) {
+ return _this.attach(listener.onEvent);
+ };
+ this.isDisposed = function () {
+ return _this.privIsDisposed;
+ };
+ this.dispose = function () {
+ _this.privEventListeners = null;
+ _this.privIsDisposed = true;
+ };
+ this.privMetadata = metadata;
+ }
+ Object.defineProperty(EventSource.prototype, "metadata", {
+ get: function () {
+ return this.privMetadata;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return EventSource;
+}());
+exports.EventSource = EventSource;
+
+
+
+/***/ }),
+/* 14 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var ConnectionState;
+(function (ConnectionState) {
+ ConnectionState[ConnectionState["None"] = 0] = "None";
+ ConnectionState[ConnectionState["Connected"] = 1] = "Connected";
+ ConnectionState[ConnectionState["Connecting"] = 2] = "Connecting";
+ ConnectionState[ConnectionState["Disconnected"] = 3] = "Disconnected";
+})(ConnectionState = exports.ConnectionState || (exports.ConnectionState = {}));
+
+
+
+/***/ }),
+/* 15 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Error_1 = __webpack_require__(10);
+var List = /** @class */ (function () {
+ function List(list) {
+ var _this = this;
+ this.privSubscriptionIdCounter = 0;
+ this.privAddSubscriptions = {};
+ this.privRemoveSubscriptions = {};
+ this.privDisposedSubscriptions = {};
+ this.privDisposeReason = null;
+ this.get = function (itemIndex) {
+ _this.throwIfDisposed();
+ return _this.privList[itemIndex];
+ };
+ this.first = function () {
+ return _this.get(0);
+ };
+ this.last = function () {
+ return _this.get(_this.length() - 1);
+ };
+ this.add = function (item) {
+ _this.throwIfDisposed();
+ _this.insertAt(_this.privList.length, item);
+ };
+ this.insertAt = function (index, item) {
+ _this.throwIfDisposed();
+ if (index === 0) {
+ _this.privList.unshift(item);
+ }
+ else if (index === _this.privList.length) {
+ _this.privList.push(item);
+ }
+ else {
+ _this.privList.splice(index, 0, item);
+ }
+ _this.triggerSubscriptions(_this.privAddSubscriptions);
+ };
+ this.removeFirst = function () {
+ _this.throwIfDisposed();
+ return _this.removeAt(0);
+ };
+ this.removeLast = function () {
+ _this.throwIfDisposed();
+ return _this.removeAt(_this.length() - 1);
+ };
+ this.removeAt = function (index) {
+ _this.throwIfDisposed();
+ return _this.remove(index, 1)[0];
+ };
+ this.remove = function (index, count) {
+ _this.throwIfDisposed();
+ var removedElements = _this.privList.splice(index, count);
+ _this.triggerSubscriptions(_this.privRemoveSubscriptions);
+ return removedElements;
+ };
+ this.clear = function () {
+ _this.throwIfDisposed();
+ _this.remove(0, _this.length());
+ };
+ this.length = function () {
+ _this.throwIfDisposed();
+ return _this.privList.length;
+ };
+ this.onAdded = function (addedCallback) {
+ _this.throwIfDisposed();
+ var subscriptionId = _this.privSubscriptionIdCounter++;
+ _this.privAddSubscriptions[subscriptionId] = addedCallback;
+ return {
+ detach: function () {
+ delete _this.privAddSubscriptions[subscriptionId];
+ },
+ };
+ };
+ this.onRemoved = function (removedCallback) {
+ _this.throwIfDisposed();
+ var subscriptionId = _this.privSubscriptionIdCounter++;
+ _this.privRemoveSubscriptions[subscriptionId] = removedCallback;
+ return {
+ detach: function () {
+ delete _this.privRemoveSubscriptions[subscriptionId];
+ },
+ };
+ };
+ this.onDisposed = function (disposedCallback) {
+ _this.throwIfDisposed();
+ var subscriptionId = _this.privSubscriptionIdCounter++;
+ _this.privDisposedSubscriptions[subscriptionId] = disposedCallback;
+ return {
+ detach: function () {
+ delete _this.privDisposedSubscriptions[subscriptionId];
+ },
+ };
+ };
+ this.join = function (seperator) {
+ _this.throwIfDisposed();
+ return _this.privList.join(seperator);
+ };
+ this.toArray = function () {
+ var cloneCopy = Array();
+ _this.privList.forEach(function (val) {
+ cloneCopy.push(val);
+ });
+ return cloneCopy;
+ };
+ this.any = function (callback) {
+ _this.throwIfDisposed();
+ if (callback) {
+ return _this.where(callback).length() > 0;
+ }
+ else {
+ return _this.length() > 0;
+ }
+ };
+ this.all = function (callback) {
+ _this.throwIfDisposed();
+ return _this.where(callback).length() === _this.length();
+ };
+ this.forEach = function (callback) {
+ _this.throwIfDisposed();
+ for (var i = 0; i < _this.length(); i++) {
+ callback(_this.privList[i], i);
+ }
+ };
+ this.select = function (callback) {
+ _this.throwIfDisposed();
+ var selectList = [];
+ for (var i = 0; i < _this.privList.length; i++) {
+ selectList.push(callback(_this.privList[i], i));
+ }
+ return new List(selectList);
+ };
+ this.where = function (callback) {
+ _this.throwIfDisposed();
+ var filteredList = new List();
+ for (var i = 0; i < _this.privList.length; i++) {
+ if (callback(_this.privList[i], i)) {
+ filteredList.add(_this.privList[i]);
+ }
+ }
+ return filteredList;
+ };
+ this.orderBy = function (compareFn) {
+ _this.throwIfDisposed();
+ var clonedArray = _this.toArray();
+ var orderedArray = clonedArray.sort(compareFn);
+ return new List(orderedArray);
+ };
+ this.orderByDesc = function (compareFn) {
+ _this.throwIfDisposed();
+ return _this.orderBy(function (a, b) { return compareFn(b, a); });
+ };
+ this.clone = function () {
+ _this.throwIfDisposed();
+ return new List(_this.toArray());
+ };
+ this.concat = function (list) {
+ _this.throwIfDisposed();
+ return new List(_this.privList.concat(list.toArray()));
+ };
+ this.concatArray = function (array) {
+ _this.throwIfDisposed();
+ return new List(_this.privList.concat(array));
+ };
+ this.isDisposed = function () {
+ return _this.privList == null;
+ };
+ this.dispose = function (reason) {
+ if (!_this.isDisposed()) {
+ _this.privDisposeReason = reason;
+ _this.privList = null;
+ _this.privAddSubscriptions = null;
+ _this.privRemoveSubscriptions = null;
+ _this.triggerSubscriptions(_this.privDisposedSubscriptions);
+ }
+ };
+ this.throwIfDisposed = function () {
+ if (_this.isDisposed()) {
+ throw new Error_1.ObjectDisposedError("List", _this.privDisposeReason);
+ }
+ };
+ this.triggerSubscriptions = function (subscriptions) {
+ if (subscriptions) {
+ for (var subscriptionId in subscriptions) {
+ if (subscriptionId) {
+ subscriptions[subscriptionId]();
+ }
+ }
+ }
+ };
+ this.privList = [];
+ // copy the list rather than taking as is.
+ if (list) {
+ for (var _i = 0, list_1 = list; _i < list_1.length; _i++) {
+ var item = list_1[_i];
+ this.privList.push(item);
+ }
+ }
+ }
+ return List;
+}());
+exports.List = List;
+
+
+
+/***/ }),
+/* 16 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Error_1 = __webpack_require__(10);
+var PromiseState;
+(function (PromiseState) {
+ PromiseState[PromiseState["None"] = 0] = "None";
+ PromiseState[PromiseState["Resolved"] = 1] = "Resolved";
+ PromiseState[PromiseState["Rejected"] = 2] = "Rejected";
+})(PromiseState = exports.PromiseState || (exports.PromiseState = {}));
+var PromiseResult = /** @class */ (function () {
+ function PromiseResult(promiseResultEventSource) {
+ var _this = this;
+ this.throwIfError = function () {
+ if (_this.isError) {
+ throw _this.error;
+ }
+ };
+ promiseResultEventSource.on(function (result) {
+ if (!_this.privIsCompleted) {
+ _this.privIsCompleted = true;
+ _this.privIsError = false;
+ _this.privResult = result;
+ }
+ }, function (error) {
+ if (!_this.privIsCompleted) {
+ _this.privIsCompleted = true;
+ _this.privIsError = true;
+ _this.privError = error;
+ }
+ });
+ }
+ Object.defineProperty(PromiseResult.prototype, "isCompleted", {
+ get: function () {
+ return this.privIsCompleted;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(PromiseResult.prototype, "isError", {
+ get: function () {
+ return this.privIsError;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(PromiseResult.prototype, "error", {
+ get: function () {
+ return this.privError;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(PromiseResult.prototype, "result", {
+ get: function () {
+ return this.privResult;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return PromiseResult;
+}());
+exports.PromiseResult = PromiseResult;
+// tslint:disable-next-line:max-classes-per-file
+var PromiseResultEventSource = /** @class */ (function () {
+ function PromiseResultEventSource() {
+ var _this = this;
+ this.setResult = function (result) {
+ _this.privOnSetResult(result);
+ };
+ this.setError = function (error) {
+ _this.privOnSetError(error);
+ };
+ this.on = function (onSetResult, onSetError) {
+ _this.privOnSetResult = onSetResult;
+ _this.privOnSetError = onSetError;
+ };
+ }
+ return PromiseResultEventSource;
+}());
+exports.PromiseResultEventSource = PromiseResultEventSource;
+// tslint:disable-next-line:max-classes-per-file
+var PromiseHelper = /** @class */ (function () {
+ function PromiseHelper() {
+ }
+ PromiseHelper.whenAll = function (promises) {
+ if (!promises || promises.length === 0) {
+ throw new Error_1.ArgumentNullError("promises");
+ }
+ var deferred = new Deferred();
+ var errors = [];
+ var completedPromises = 0;
+ var checkForCompletion = function () {
+ completedPromises++;
+ if (completedPromises === promises.length) {
+ if (errors.length === 0) {
+ deferred.resolve(true);
+ }
+ else {
+ deferred.reject(errors.join(", "));
+ }
+ }
+ };
+ for (var _i = 0, promises_1 = promises; _i < promises_1.length; _i++) {
+ var promise = promises_1[_i];
+ promise.on(function (r) {
+ checkForCompletion();
+ }, function (e) {
+ errors.push(e);
+ checkForCompletion();
+ });
+ }
+ return deferred.promise();
+ };
+ PromiseHelper.fromResult = function (result) {
+ var deferred = new Deferred();
+ deferred.resolve(result);
+ return deferred.promise();
+ };
+ PromiseHelper.fromError = function (error) {
+ var deferred = new Deferred();
+ deferred.reject(error);
+ return deferred.promise();
+ };
+ return PromiseHelper;
+}());
+exports.PromiseHelper = PromiseHelper;
+// TODO: replace with ES6 promises
+// tslint:disable-next-line:max-classes-per-file
+var Promise = /** @class */ (function () {
+ function Promise(sink) {
+ var _this = this;
+ this.result = function () {
+ return _this.privSink.result;
+ };
+ this.continueWith = function (continuationCallback) {
+ if (!continuationCallback) {
+ throw new Error_1.ArgumentNullError("continuationCallback");
+ }
+ var continuationDeferral = new Deferred();
+ _this.privSink.on(function (r) {
+ try {
+ var continuationResult = continuationCallback(_this.privSink.result);
+ continuationDeferral.resolve(continuationResult);
+ }
+ catch (e) {
+ continuationDeferral.reject(e);
+ }
+ }, function (error) {
+ try {
+ var continuationResult = continuationCallback(_this.privSink.result);
+ continuationDeferral.resolve(continuationResult);
+ }
+ catch (e) {
+ continuationDeferral.reject("'Error handler for error " + error + " threw error " + e + "'");
+ }
+ });
+ return continuationDeferral.promise();
+ };
+ this.onSuccessContinueWith = function (continuationCallback) {
+ if (!continuationCallback) {
+ throw new Error_1.ArgumentNullError("continuationCallback");
+ }
+ var continuationDeferral = new Deferred();
+ _this.privSink.on(function (r) {
+ try {
+ var continuationResult = continuationCallback(r);
+ continuationDeferral.resolve(continuationResult);
+ }
+ catch (e) {
+ continuationDeferral.reject(e);
+ }
+ }, function (error) {
+ continuationDeferral.reject(error);
+ });
+ return continuationDeferral.promise();
+ };
+ this.continueWithPromise = function (continuationCallback) {
+ if (!continuationCallback) {
+ throw new Error_1.ArgumentNullError("continuationCallback");
+ }
+ var continuationDeferral = new Deferred();
+ _this.privSink.on(function (r) {
+ try {
+ var continuationPromise = continuationCallback(_this.privSink.result);
+ if (!continuationPromise) {
+ throw new Error("'Continuation callback did not return promise'");
+ }
+ continuationPromise.on(function (continuationResult) {
+ continuationDeferral.resolve(continuationResult);
+ }, function (e) {
+ continuationDeferral.reject(e);
+ });
+ }
+ catch (e) {
+ continuationDeferral.reject(e);
+ }
+ }, function (error) {
+ try {
+ var continuationPromise = continuationCallback(_this.privSink.result);
+ if (!continuationPromise) {
+ throw new Error("Continuation callback did not return promise");
+ }
+ continuationPromise.on(function (continuationResult) {
+ continuationDeferral.resolve(continuationResult);
+ }, function (e) {
+ continuationDeferral.reject(e);
+ });
+ }
+ catch (e) {
+ continuationDeferral.reject("'Error handler for error " + error + " threw error " + e + "'");
+ }
+ });
+ return continuationDeferral.promise();
+ };
+ this.onSuccessContinueWithPromise = function (continuationCallback) {
+ if (!continuationCallback) {
+ throw new Error_1.ArgumentNullError("continuationCallback");
+ }
+ var continuationDeferral = new Deferred();
+ _this.privSink.on(function (r) {
+ try {
+ var continuationPromise = continuationCallback(r);
+ if (!continuationPromise) {
+ throw new Error("Continuation callback did not return promise");
+ }
+ continuationPromise.on(function (continuationResult) {
+ continuationDeferral.resolve(continuationResult);
+ }, function (e) {
+ continuationDeferral.reject(e);
+ });
+ }
+ catch (e) {
+ continuationDeferral.reject(e);
+ }
+ }, function (error) {
+ continuationDeferral.reject(error);
+ });
+ return continuationDeferral.promise();
+ };
+ this.on = function (successCallback, errorCallback) {
+ if (!successCallback) {
+ throw new Error_1.ArgumentNullError("successCallback");
+ }
+ if (!errorCallback) {
+ throw new Error_1.ArgumentNullError("errorCallback");
+ }
+ _this.privSink.on(successCallback, errorCallback);
+ return _this;
+ };
+ this.finally = function (callback) {
+ if (!callback) {
+ throw new Error_1.ArgumentNullError("callback");
+ }
+ var callbackWrapper = function (_) {
+ callback();
+ };
+ return _this.on(callbackWrapper, callbackWrapper);
+ };
+ this.privSink = sink;
+ }
+ return Promise;
+}());
+exports.Promise = Promise;
+// tslint:disable-next-line:max-classes-per-file
+var Deferred = /** @class */ (function () {
+ function Deferred() {
+ var _this = this;
+ this.state = function () {
+ return _this.privSink.state;
+ };
+ this.promise = function () {
+ return _this.privPromise;
+ };
+ this.resolve = function (result) {
+ _this.privSink.resolve(result);
+ return _this;
+ };
+ this.reject = function (error) {
+ _this.privSink.reject(error);
+ return _this;
+ };
+ this.privSink = new Sink();
+ this.privPromise = new Promise(this.privSink);
+ }
+ return Deferred;
+}());
+exports.Deferred = Deferred;
+// tslint:disable-next-line:max-classes-per-file
+var Sink = /** @class */ (function () {
+ function Sink() {
+ var _this = this;
+ this.privState = PromiseState.None;
+ this.privPromiseResult = null;
+ this.privPromiseResultEvents = null;
+ this.privSuccessHandlers = [];
+ this.privErrorHandlers = [];
+ this.resolve = function (result) {
+ if (_this.privState !== PromiseState.None) {
+ throw new Error("'Cannot resolve a completed promise'");
+ }
+ _this.privState = PromiseState.Resolved;
+ _this.privPromiseResultEvents.setResult(result);
+ for (var i = 0; i < _this.privSuccessHandlers.length; i++) {
+ _this.executeSuccessCallback(result, _this.privSuccessHandlers[i], _this.privErrorHandlers[i]);
+ }
+ _this.detachHandlers();
+ };
+ this.reject = function (error) {
+ if (_this.privState !== PromiseState.None) {
+ throw new Error("'Cannot reject a completed promise'");
+ }
+ _this.privState = PromiseState.Rejected;
+ _this.privPromiseResultEvents.setError(error);
+ for (var _i = 0, _a = _this.privErrorHandlers; _i < _a.length; _i++) {
+ var errorHandler = _a[_i];
+ _this.executeErrorCallback(error, errorHandler);
+ }
+ _this.detachHandlers();
+ };
+ this.on = function (successCallback, errorCallback) {
+ if (successCallback == null) {
+ successCallback = function (r) { return; };
+ }
+ if (_this.privState === PromiseState.None) {
+ _this.privSuccessHandlers.push(successCallback);
+ _this.privErrorHandlers.push(errorCallback);
+ }
+ else {
+ if (_this.privState === PromiseState.Resolved) {
+ _this.executeSuccessCallback(_this.privPromiseResult.result, successCallback, errorCallback);
+ }
+ else if (_this.privState === PromiseState.Rejected) {
+ _this.executeErrorCallback(_this.privPromiseResult.error, errorCallback);
+ }
+ _this.detachHandlers();
+ }
+ };
+ this.executeSuccessCallback = function (result, successCallback, errorCallback) {
+ try {
+ successCallback(result);
+ }
+ catch (e) {
+ _this.executeErrorCallback("'Unhandled callback error: " + e + "'", errorCallback);
+ }
+ };
+ this.executeErrorCallback = function (error, errorCallback) {
+ if (errorCallback) {
+ try {
+ errorCallback(error);
+ }
+ catch (e) {
+ throw new Error("'Unhandled callback error: " + e + ". InnerError: " + error + "'");
+ }
+ }
+ else {
+ throw new Error("'Unhandled error: " + error + "'");
+ }
+ };
+ this.detachHandlers = function () {
+ _this.privErrorHandlers = [];
+ _this.privSuccessHandlers = [];
+ };
+ this.privPromiseResultEvents = new PromiseResultEventSource();
+ this.privPromiseResult = new PromiseResult(this.privPromiseResultEvents);
+ }
+ Object.defineProperty(Sink.prototype, "state", {
+ get: function () {
+ return this.privState;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Sink.prototype, "result", {
+ get: function () {
+ return this.privPromiseResult;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return Sink;
+}());
+exports.Sink = Sink;
+
+
+
+/***/ }),
+/* 17 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Error_1 = __webpack_require__(10);
+var List_1 = __webpack_require__(15);
+var Promise_1 = __webpack_require__(16);
+var SubscriberType;
+(function (SubscriberType) {
+ SubscriberType[SubscriberType["Dequeue"] = 0] = "Dequeue";
+ SubscriberType[SubscriberType["Peek"] = 1] = "Peek";
+})(SubscriberType || (SubscriberType = {}));
+var Queue = /** @class */ (function () {
+ function Queue(list) {
+ var _this = this;
+ this.privPromiseStore = new List_1.List();
+ this.privIsDrainInProgress = false;
+ this.privIsDisposing = false;
+ this.privDisposeReason = null;
+ this.enqueue = function (item) {
+ _this.throwIfDispose();
+ _this.enqueueFromPromise(Promise_1.PromiseHelper.fromResult(item));
+ };
+ this.enqueueFromPromise = function (promise) {
+ _this.throwIfDispose();
+ _this.privPromiseStore.add(promise);
+ promise.finally(function () {
+ while (_this.privPromiseStore.length() > 0) {
+ if (!_this.privPromiseStore.first().result().isCompleted) {
+ break;
+ }
+ else {
+ var p = _this.privPromiseStore.removeFirst();
+ if (!p.result().isError) {
+ _this.privList.add(p.result().result);
+ }
+ else {
+ // TODO: Log as warning.
+ }
+ }
+ }
+ });
+ };
+ this.dequeue = function () {
+ _this.throwIfDispose();
+ var deferredSubscriber = new Promise_1.Deferred();
+ if (_this.privSubscribers) {
+ _this.privSubscribers.add({ deferral: deferredSubscriber, type: SubscriberType.Dequeue });
+ _this.drain();
+ }
+ return deferredSubscriber.promise();
+ };
+ this.peek = function () {
+ _this.throwIfDispose();
+ var deferredSubscriber = new Promise_1.Deferred();
+ var subs = _this.privSubscribers;
+ if (subs) {
+ _this.privSubscribers.add({ deferral: deferredSubscriber, type: SubscriberType.Peek });
+ _this.drain();
+ }
+ return deferredSubscriber.promise();
+ };
+ this.length = function () {
+ _this.throwIfDispose();
+ return _this.privList.length();
+ };
+ this.isDisposed = function () {
+ return _this.privSubscribers == null;
+ };
+ this.drainAndDispose = function (pendingItemProcessor, reason) {
+ if (!_this.isDisposed() && !_this.privIsDisposing) {
+ _this.privDisposeReason = reason;
+ _this.privIsDisposing = true;
+ var subs = _this.privSubscribers;
+ if (subs) {
+ while (subs.length() > 0) {
+ var subscriber = subs.removeFirst();
+ // TODO: this needs work (Resolve(null) instead?).
+ subscriber.deferral.resolve(undefined);
+ // subscriber.deferral.reject("Disposed");
+ }
+ // note: this block assumes cooperative multitasking, i.e.,
+ // between the if-statement and the assignment there are no
+ // thread switches.
+ // Reason is that between the initial const = this.; and this
+ // point there is the derral.resolve() operation that might have
+ // caused recursive calls to the Queue, especially, calling
+ // Dispose() on the queue alredy (which would reset the var
+ // here to null!).
+ // That should generally hold true for javascript...
+ if (_this.privSubscribers === subs) {
+ _this.privSubscribers = subs;
+ }
+ }
+ for (var _i = 0, _a = _this.privDetachables; _i < _a.length; _i++) {
+ var detachable = _a[_i];
+ detachable.detach();
+ }
+ if (_this.privPromiseStore.length() > 0 && pendingItemProcessor) {
+ return Promise_1.PromiseHelper
+ .whenAll(_this.privPromiseStore.toArray())
+ .continueWith(function () {
+ _this.privSubscribers = null;
+ _this.privList.forEach(function (item, index) {
+ pendingItemProcessor(item);
+ });
+ _this.privList = null;
+ return true;
+ });
+ }
+ else {
+ _this.privSubscribers = null;
+ _this.privList = null;
+ }
+ }
+ return Promise_1.PromiseHelper.fromResult(true);
+ };
+ this.dispose = function (reason) {
+ _this.drainAndDispose(null, reason);
+ };
+ this.drain = function () {
+ if (!_this.privIsDrainInProgress && !_this.privIsDisposing) {
+ _this.privIsDrainInProgress = true;
+ var subs = _this.privSubscribers;
+ var lists = _this.privList;
+ if (subs && lists) {
+ while (lists.length() > 0 && subs.length() > 0 && !_this.privIsDisposing) {
+ var subscriber = subs.removeFirst();
+ if (subscriber.type === SubscriberType.Peek) {
+ subscriber.deferral.resolve(lists.first());
+ }
+ else {
+ var dequeuedItem = lists.removeFirst();
+ subscriber.deferral.resolve(dequeuedItem);
+ }
+ }
+ // note: this block assumes cooperative multitasking, i.e.,
+ // between the if-statement and the assignment there are no
+ // thread switches.
+ // Reason is that between the initial const = this.; and this
+ // point there is the derral.resolve() operation that might have
+ // caused recursive calls to the Queue, especially, calling
+ // Dispose() on the queue alredy (which would reset the var
+ // here to null!).
+ // That should generally hold true for javascript...
+ if (_this.privSubscribers === subs) {
+ _this.privSubscribers = subs;
+ }
+ // note: this block assumes cooperative multitasking, i.e.,
+ // between the if-statement and the assignment there are no
+ // thread switches.
+ // Reason is that between the initial const = this.; and this
+ // point there is the derral.resolve() operation that might have
+ // caused recursive calls to the Queue, especially, calling
+ // Dispose() on the queue alredy (which would reset the var
+ // here to null!).
+ // That should generally hold true for javascript...
+ if (_this.privList === lists) {
+ _this.privList = lists;
+ }
+ }
+ _this.privIsDrainInProgress = false;
+ }
+ };
+ this.throwIfDispose = function () {
+ if (_this.isDisposed()) {
+ if (_this.privDisposeReason) {
+ throw new Error_1.InvalidOperationError(_this.privDisposeReason);
+ }
+ throw new Error_1.ObjectDisposedError("Queue");
+ }
+ else if (_this.privIsDisposing) {
+ throw new Error_1.InvalidOperationError("Queue disposing");
+ }
+ };
+ this.privList = list ? list : new List_1.List();
+ this.privDetachables = [];
+ this.privSubscribers = new List_1.List();
+ this.privDetachables.push(this.privList.onAdded(this.drain));
+ }
+ return Queue;
+}());
+exports.Queue = Queue;
+
+
+
+/***/ }),
+/* 18 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var ConnectionMessage_1 = __webpack_require__(9);
+var Error_1 = __webpack_require__(10);
+var Guid_1 = __webpack_require__(7);
+var RawWebsocketMessage = /** @class */ (function () {
+ function RawWebsocketMessage(messageType, payload, id) {
+ this.privPayload = null;
+ if (!payload) {
+ throw new Error_1.ArgumentNullError("payload");
+ }
+ if (messageType === ConnectionMessage_1.MessageType.Binary && !(payload instanceof ArrayBuffer)) {
+ throw new Error_1.InvalidOperationError("Payload must be ArrayBuffer");
+ }
+ if (messageType === ConnectionMessage_1.MessageType.Text && !(typeof (payload) === "string")) {
+ throw new Error_1.InvalidOperationError("Payload must be a string");
+ }
+ this.privMessageType = messageType;
+ this.privPayload = payload;
+ this.privId = id ? id : Guid_1.createNoDashGuid();
+ }
+ Object.defineProperty(RawWebsocketMessage.prototype, "messageType", {
+ get: function () {
+ return this.privMessageType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RawWebsocketMessage.prototype, "payload", {
+ get: function () {
+ return this.privPayload;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RawWebsocketMessage.prototype, "textContent", {
+ get: function () {
+ if (this.privMessageType === ConnectionMessage_1.MessageType.Binary) {
+ throw new Error_1.InvalidOperationError("Not supported for binary message");
+ }
+ return this.privPayload;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RawWebsocketMessage.prototype, "binaryContent", {
+ get: function () {
+ if (this.privMessageType === ConnectionMessage_1.MessageType.Text) {
+ throw new Error_1.InvalidOperationError("Not supported for text message");
+ }
+ return this.privPayload;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RawWebsocketMessage.prototype, "id", {
+ get: function () {
+ return this.privId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return RawWebsocketMessage;
+}());
+exports.RawWebsocketMessage = RawWebsocketMessage;
+
+
+
+/***/ }),
+/* 19 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var RiffPcmEncoder = /** @class */ (function () {
+ function RiffPcmEncoder(actualSampleRate, desiredSampleRate) {
+ var _this = this;
+ this.encode = function (actualAudioFrame) {
+ var audioFrame = _this.downSampleAudioFrame(actualAudioFrame, _this.privActualSampleRate, _this.privDesiredSampleRate);
+ if (!audioFrame) {
+ return null;
+ }
+ var audioLength = audioFrame.length * 2;
+ var buffer = new ArrayBuffer(audioLength);
+ var view = new DataView(buffer);
+ _this.floatTo16BitPCM(view, 0, audioFrame);
+ return buffer;
+ };
+ this.setString = function (view, offset, str) {
+ for (var i = 0; i < str.length; i++) {
+ view.setUint8(offset + i, str.charCodeAt(i));
+ }
+ };
+ this.floatTo16BitPCM = function (view, offset, input) {
+ for (var i = 0; i < input.length; i++, offset += 2) {
+ var s = Math.max(-1, Math.min(1, input[i]));
+ view.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7FFF, true);
+ }
+ };
+ this.downSampleAudioFrame = function (srcFrame, srcRate, dstRate) {
+ if (dstRate === srcRate || dstRate > srcRate) {
+ return srcFrame;
+ }
+ var ratio = srcRate / dstRate;
+ var dstLength = Math.round(srcFrame.length / ratio);
+ var dstFrame = new Float32Array(dstLength);
+ var srcOffset = 0;
+ var dstOffset = 0;
+ while (dstOffset < dstLength) {
+ var nextSrcOffset = Math.round((dstOffset + 1) * ratio);
+ var accum = 0;
+ var count = 0;
+ while (srcOffset < nextSrcOffset && srcOffset < srcFrame.length) {
+ accum += srcFrame[srcOffset++];
+ count++;
+ }
+ dstFrame[dstOffset++] = accum / count;
+ }
+ return dstFrame;
+ };
+ this.privActualSampleRate = actualSampleRate;
+ this.privDesiredSampleRate = desiredSampleRate;
+ }
+ return RiffPcmEncoder;
+}());
+exports.RiffPcmEncoder = RiffPcmEncoder;
+
+
+
+/***/ }),
+/* 20 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Error_1 = __webpack_require__(10);
+var Guid_1 = __webpack_require__(7);
+var Queue_1 = __webpack_require__(17);
+var Stream = /** @class */ (function () {
+ function Stream(streamId) {
+ var _this = this;
+ this.privIsWriteEnded = false;
+ this.privIsReadEnded = false;
+ this.read = function () {
+ if (_this.privIsReadEnded) {
+ throw new Error_1.InvalidOperationError("Stream read has already finished");
+ }
+ return _this.privReaderQueue
+ .dequeue()
+ .onSuccessContinueWith(function (streamChunk) {
+ if (streamChunk === undefined || streamChunk.isEnd) {
+ _this.privReaderQueue.dispose("End of stream reached");
+ }
+ return streamChunk;
+ });
+ };
+ this.readEnded = function () {
+ if (!_this.privIsReadEnded) {
+ _this.privIsReadEnded = true;
+ _this.privReaderQueue = new Queue_1.Queue();
+ }
+ };
+ this.throwIfClosed = function () {
+ if (_this.privIsWriteEnded) {
+ throw new Error_1.InvalidOperationError("Stream closed");
+ }
+ };
+ this.privId = streamId ? streamId : Guid_1.createNoDashGuid();
+ this.privReaderQueue = new Queue_1.Queue();
+ }
+ Object.defineProperty(Stream.prototype, "isClosed", {
+ get: function () {
+ return this.privIsWriteEnded;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Stream.prototype, "isReadEnded", {
+ get: function () {
+ return this.privIsReadEnded;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Stream.prototype, "id", {
+ get: function () {
+ return this.privId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Stream.prototype.close = function () {
+ if (!this.privIsWriteEnded) {
+ this.writeStreamChunk({
+ buffer: null,
+ isEnd: true,
+ timeReceived: Date.now(),
+ });
+ this.privIsWriteEnded = true;
+ }
+ };
+ Stream.prototype.writeStreamChunk = function (streamChunk) {
+ this.throwIfClosed();
+ if (!this.privReaderQueue.isDisposed()) {
+ try {
+ this.privReaderQueue.enqueue(streamChunk);
+ }
+ catch (e) {
+ // Do nothing
+ }
+ }
+ };
+ return Stream;
+}());
+exports.Stream = Stream;
+
+
+
+/***/ }),
+/* 21 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Defines translation status.
+ * @class TranslationStatus
+ */
+var TranslationStatus;
+(function (TranslationStatus) {
+ /**
+ * @member TranslationStatus.Success
+ */
+ TranslationStatus[TranslationStatus["Success"] = 0] = "Success";
+ /**
+ * @member TranslationStatus.Error
+ */
+ TranslationStatus[TranslationStatus["Error"] = 1] = "Error";
+})(TranslationStatus = exports.TranslationStatus || (exports.TranslationStatus = {}));
+
+
+
+/***/ }),
+/* 22 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var ChunkedArrayBufferStream = /** @class */ (function (_super) {
+ __extends(ChunkedArrayBufferStream, _super);
+ function ChunkedArrayBufferStream(targetChunkSize, streamId) {
+ var _this = _super.call(this, streamId) || this;
+ _this.privTargetChunkSize = targetChunkSize;
+ _this.privNextBufferReadyBytes = 0;
+ return _this;
+ }
+ ChunkedArrayBufferStream.prototype.writeStreamChunk = function (chunk) {
+ // No pending write, and the buffer is the right size so write it.
+ if (chunk.isEnd ||
+ (0 === this.privNextBufferReadyBytes && chunk.buffer.byteLength === this.privTargetChunkSize)) {
+ _super.prototype.writeStreamChunk.call(this, chunk);
+ return;
+ }
+ var bytesCopiedFromBuffer = 0;
+ while (bytesCopiedFromBuffer < chunk.buffer.byteLength) {
+ // Fill the next buffer.
+ if (undefined === this.privNextBufferToWrite) {
+ this.privNextBufferToWrite = new ArrayBuffer(this.privTargetChunkSize);
+ this.privNextBufferStartTime = chunk.timeReceived;
+ }
+ // Find out how many bytes we can copy into the read buffer.
+ var bytesToCopy = Math.min(chunk.buffer.byteLength - bytesCopiedFromBuffer, this.privTargetChunkSize - this.privNextBufferReadyBytes);
+ var targetView = new Uint8Array(this.privNextBufferToWrite);
+ var sourceView = new Uint8Array(chunk.buffer.slice(bytesCopiedFromBuffer, bytesToCopy + bytesCopiedFromBuffer));
+ targetView.set(sourceView, this.privNextBufferReadyBytes);
+ this.privNextBufferReadyBytes += bytesToCopy;
+ bytesCopiedFromBuffer += bytesToCopy;
+ // Are we ready to write?
+ if (this.privNextBufferReadyBytes === this.privTargetChunkSize) {
+ _super.prototype.writeStreamChunk.call(this, {
+ buffer: this.privNextBufferToWrite,
+ isEnd: false,
+ timeReceived: this.privNextBufferStartTime,
+ });
+ this.privNextBufferReadyBytes = 0;
+ this.privNextBufferToWrite = undefined;
+ }
+ }
+ };
+ ChunkedArrayBufferStream.prototype.close = function () {
+ // Send whatever is pending, then close the base class.
+ if (0 !== this.privNextBufferReadyBytes && !this.isClosed) {
+ _super.prototype.writeStreamChunk.call(this, {
+ buffer: this.privNextBufferToWrite.slice(0, this.privNextBufferReadyBytes),
+ isEnd: false,
+ timeReceived: this.privNextBufferStartTime,
+ });
+ }
+ _super.prototype.close.call(this);
+ };
+ return ChunkedArrayBufferStream;
+}(Exports_1.Stream));
+exports.ChunkedArrayBufferStream = ChunkedArrayBufferStream;
+
+
+
+/***/ }),
+/* 23 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Timeout = /** @class */ (function () {
+ function Timeout() {
+ }
+ Timeout.workerTimers = null;
+ Timeout.clearTimeout = function (timerId) { return Timeout.timers().clearTimeout(timerId); };
+ Timeout.setTimeout = function (func, delay) { return Timeout.timers().setTimeout(func, delay); };
+ Timeout.load = function (url) {
+ // Prefilling the Maps with a function indexed by zero is necessary to be compliant with the specification.
+ var scheduledTimeoutFunctions = new Map([[0, function () { }]]); // tslint:disable-line no-empty
+ var unhandledRequests = new Map();
+ var worker = new Worker(url);
+ worker.addEventListener("message", function (_a) {
+ var data = _a.data;
+ if (Timeout.isCallNotification(data)) {
+ var timerId = data.params.timerId;
+ var idOrFunc = scheduledTimeoutFunctions.get(timerId);
+ if (typeof idOrFunc === "number") {
+ var unhandledTimerId = unhandledRequests.get(idOrFunc);
+ if (unhandledTimerId === undefined ||
+ unhandledTimerId !== timerId) {
+ throw new Error("The timer is in an undefined state.");
+ }
+ }
+ else if (typeof idOrFunc !== "undefined") {
+ idOrFunc();
+ // A timeout can be safely deleted because it is only called once.
+ scheduledTimeoutFunctions.delete(timerId);
+ }
+ else {
+ throw new Error("The timer is in an undefined state.");
+ }
+ }
+ else if (Timeout.isClearResponse(data)) {
+ var id = data.id;
+ var unhandledTimerId = unhandledRequests.get(id);
+ if (unhandledTimerId === undefined) {
+ throw new Error("The timer is in an undefined state.");
+ }
+ unhandledRequests.delete(id);
+ scheduledTimeoutFunctions.delete(unhandledTimerId);
+ }
+ else {
+ var message = data.error.message;
+ throw new Error(message);
+ }
+ });
+ var clearTimeout = function (timerId) {
+ var id = Math.random();
+ unhandledRequests.set(id, timerId);
+ scheduledTimeoutFunctions.set(timerId, id);
+ worker.postMessage({
+ id: id,
+ method: "clear",
+ params: { timerId: timerId }
+ });
+ };
+ var setTimeout = function (func, delay) {
+ var timerId = Math.random();
+ scheduledTimeoutFunctions.set(timerId, func);
+ worker.postMessage({
+ id: null,
+ method: "set",
+ params: {
+ delay: delay,
+ now: performance.now(),
+ timerId: timerId
+ }
+ });
+ return timerId;
+ };
+ return {
+ clearTimeout: clearTimeout,
+ setTimeout: setTimeout
+ };
+ };
+ Timeout.loadWorkerTimers = function () {
+ var worker = "!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=14)}([function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return i})),n.d(t,\"b\",(function(){return u})),n.d(t,\"c\",(function(){return a})),n.d(t,\"d\",(function(){return d}));const r=new Map,o=new Map,i=e=>{const t=r.get(e);if(void 0===t)throw new Error('There is no interval scheduled with the given id \"'.concat(e,'\".'));clearTimeout(t),r.delete(e)},u=e=>{const t=o.get(e);if(void 0===t)throw new Error('There is no timeout scheduled with the given id \"'.concat(e,'\".'));clearTimeout(t),o.delete(e)},f=(e,t)=>{let n,r;if(\"performance\"in self){const o=performance.now();n=o,r=e-Math.max(0,o-t)}else n=Date.now(),r=e;return{expected:n+r,remainingDelay:r}},c=(e,t,n,r)=>{const o=\"performance\"in self?performance.now():Date.now();o>n?postMessage({id:null,method:\"call\",params:{timerId:t}}):e.set(t,setTimeout(c,n-o,e,t,n))},a=(e,t,n)=>{const{expected:o,remainingDelay:i}=f(e,n);r.set(t,setTimeout(c,i,r,t,o))},d=(e,t,n)=>{const{expected:r,remainingDelay:i}=f(e,n);o.set(t,setTimeout(c,i,o,t,r))}},function(e,t,n){\"use strict\";n.r(t);var r=n(2);for(var o in r)\"default\"!==o&&function(e){n.d(t,e,(function(){return r[e]}))}(o);var i=n(3);for(var o in i)\"default\"!==o&&function(e){n.d(t,e,(function(){return i[e]}))}(o);var u=n(4);for(var o in u)\"default\"!==o&&function(e){n.d(t,e,(function(){return u[e]}))}(o);var f=n(5);for(var o in f)\"default\"!==o&&function(e){n.d(t,e,(function(){return f[e]}))}(o);var c=n(6);for(var o in c)\"default\"!==o&&function(e){n.d(t,e,(function(){return c[e]}))}(o);var a=n(7);for(var o in a)\"default\"!==o&&function(e){n.d(t,e,(function(){return a[e]}))}(o);var d=n(8);for(var o in d)\"default\"!==o&&function(e){n.d(t,e,(function(){return d[e]}))}(o);var s=n(9);for(var o in s)\"default\"!==o&&function(e){n.d(t,e,(function(){return s[e]}))}(o)},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t,n){\"use strict\";n.r(t);var r=n(11);for(var o in r)\"default\"!==o&&function(e){n.d(t,e,(function(){return r[e]}))}(o);var i=n(12);for(var o in i)\"default\"!==o&&function(e){n.d(t,e,(function(){return i[e]}))}(o);var u=n(13);for(var o in u)\"default\"!==o&&function(e){n.d(t,e,(function(){return u[e]}))}(o)},function(e,t){},function(e,t){},function(e,t){},function(e,t,n){\"use strict\";n.r(t);var r=n(0),o=n(1);for(var i in o)\"default\"!==i&&function(e){n.d(t,e,(function(){return o[e]}))}(i);var u=n(10);for(var i in u)\"default\"!==i&&function(e){n.d(t,e,(function(){return u[e]}))}(i);addEventListener(\"message\",({data:e})=>{try{if(\"clear\"===e.method){const{id:t,params:{timerId:n}}=e;Object(r.b)(n),postMessage({error:null,id:t})}else{if(\"set\"!==e.method)throw new Error('The given method \"'.concat(e.method,'\" is not supported'));{const{params:{delay:t,now:n,timerId:o}}=e;Object(r.d)(t,o,n)}}}catch(t){postMessage({error:{message:t.message},id:e.id,result:null})}})}]);"; // tslint:disable-line:max-line-length
+ return function () {
+ if (Timeout.workerTimers !== null) {
+ return Timeout.workerTimers;
+ }
+ var blob = new Blob([worker], { type: "application/javascript; charset=utf-8" });
+ var url = URL.createObjectURL(blob);
+ Timeout.workerTimers = Timeout.load(url);
+ // Edge doesn't like the URL to be revoked directly.
+ Timeout.workerTimers.setTimeout(function () { return URL.revokeObjectURL(url); }, 0);
+ return Timeout.workerTimers;
+ };
+ };
+ Timeout.timers = Timeout.loadWorkerTimers();
+ Timeout.isCallNotification = function (message) {
+ return message.method !== undefined && message.method === "call";
+ };
+ Timeout.isClearResponse = function (message) {
+ return message.error === null && typeof message.id === "number";
+ };
+ return Timeout;
+}());
+exports.Timeout = Timeout;
+
+
+
+/***/ }),
+/* 24 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var PlatformEvent_1 = __webpack_require__(6);
+var OCSPEvent = /** @class */ (function (_super) {
+ __extends(OCSPEvent, _super);
+ function OCSPEvent(eventName, eventType, signature) {
+ var _this = _super.call(this, eventName, eventType) || this;
+ _this.privSignature = signature;
+ return _this;
+ }
+ return OCSPEvent;
+}(PlatformEvent_1.PlatformEvent));
+exports.OCSPEvent = OCSPEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPMemoryCacheHitEvent = /** @class */ (function (_super) {
+ __extends(OCSPMemoryCacheHitEvent, _super);
+ function OCSPMemoryCacheHitEvent(signature) {
+ return _super.call(this, "OCSPMemoryCacheHitEvent", PlatformEvent_1.EventType.Debug, signature) || this;
+ }
+ return OCSPMemoryCacheHitEvent;
+}(OCSPEvent));
+exports.OCSPMemoryCacheHitEvent = OCSPMemoryCacheHitEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPCacheMissEvent = /** @class */ (function (_super) {
+ __extends(OCSPCacheMissEvent, _super);
+ function OCSPCacheMissEvent(signature) {
+ return _super.call(this, "OCSPCacheMissEvent", PlatformEvent_1.EventType.Debug, signature) || this;
+ }
+ return OCSPCacheMissEvent;
+}(OCSPEvent));
+exports.OCSPCacheMissEvent = OCSPCacheMissEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPDiskCacheHitEvent = /** @class */ (function (_super) {
+ __extends(OCSPDiskCacheHitEvent, _super);
+ function OCSPDiskCacheHitEvent(signature) {
+ return _super.call(this, "OCSPDiskCacheHitEvent", PlatformEvent_1.EventType.Debug, signature) || this;
+ }
+ return OCSPDiskCacheHitEvent;
+}(OCSPEvent));
+exports.OCSPDiskCacheHitEvent = OCSPDiskCacheHitEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPCacheUpdateNeededEvent = /** @class */ (function (_super) {
+ __extends(OCSPCacheUpdateNeededEvent, _super);
+ function OCSPCacheUpdateNeededEvent(signature) {
+ return _super.call(this, "OCSPCacheUpdateNeededEvent", PlatformEvent_1.EventType.Debug, signature) || this;
+ }
+ return OCSPCacheUpdateNeededEvent;
+}(OCSPEvent));
+exports.OCSPCacheUpdateNeededEvent = OCSPCacheUpdateNeededEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPMemoryCacheStoreEvent = /** @class */ (function (_super) {
+ __extends(OCSPMemoryCacheStoreEvent, _super);
+ function OCSPMemoryCacheStoreEvent(signature) {
+ return _super.call(this, "OCSPMemoryCacheStoreEvent", PlatformEvent_1.EventType.Debug, signature) || this;
+ }
+ return OCSPMemoryCacheStoreEvent;
+}(OCSPEvent));
+exports.OCSPMemoryCacheStoreEvent = OCSPMemoryCacheStoreEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPDiskCacheStoreEvent = /** @class */ (function (_super) {
+ __extends(OCSPDiskCacheStoreEvent, _super);
+ function OCSPDiskCacheStoreEvent(signature) {
+ return _super.call(this, "OCSPDiskCacheStoreEvent", PlatformEvent_1.EventType.Debug, signature) || this;
+ }
+ return OCSPDiskCacheStoreEvent;
+}(OCSPEvent));
+exports.OCSPDiskCacheStoreEvent = OCSPDiskCacheStoreEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPCacheUpdatehCompleteEvent = /** @class */ (function (_super) {
+ __extends(OCSPCacheUpdatehCompleteEvent, _super);
+ function OCSPCacheUpdatehCompleteEvent(signature) {
+ return _super.call(this, "OCSPCacheUpdatehCompleteEvent", PlatformEvent_1.EventType.Debug, signature) || this;
+ }
+ return OCSPCacheUpdatehCompleteEvent;
+}(OCSPEvent));
+exports.OCSPCacheUpdatehCompleteEvent = OCSPCacheUpdatehCompleteEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPStapleReceivedEvent = /** @class */ (function (_super) {
+ __extends(OCSPStapleReceivedEvent, _super);
+ function OCSPStapleReceivedEvent() {
+ return _super.call(this, "OCSPStapleReceivedEvent", PlatformEvent_1.EventType.Debug, "") || this;
+ }
+ return OCSPStapleReceivedEvent;
+}(OCSPEvent));
+exports.OCSPStapleReceivedEvent = OCSPStapleReceivedEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPWSUpgradeStartedEvent = /** @class */ (function (_super) {
+ __extends(OCSPWSUpgradeStartedEvent, _super);
+ function OCSPWSUpgradeStartedEvent(serialNumber) {
+ return _super.call(this, "OCSPWSUpgradeStartedEvent", PlatformEvent_1.EventType.Debug, serialNumber) || this;
+ }
+ return OCSPWSUpgradeStartedEvent;
+}(OCSPEvent));
+exports.OCSPWSUpgradeStartedEvent = OCSPWSUpgradeStartedEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPCacheEntryExpiredEvent = /** @class */ (function (_super) {
+ __extends(OCSPCacheEntryExpiredEvent, _super);
+ function OCSPCacheEntryExpiredEvent(serialNumber, expireTime) {
+ var _this = _super.call(this, "OCSPCacheEntryExpiredEvent", PlatformEvent_1.EventType.Debug, serialNumber) || this;
+ _this.privExpireTime = expireTime;
+ return _this;
+ }
+ return OCSPCacheEntryExpiredEvent;
+}(OCSPEvent));
+exports.OCSPCacheEntryExpiredEvent = OCSPCacheEntryExpiredEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPCacheEntryNeedsRefreshEvent = /** @class */ (function (_super) {
+ __extends(OCSPCacheEntryNeedsRefreshEvent, _super);
+ function OCSPCacheEntryNeedsRefreshEvent(serialNumber, startTime, expireTime) {
+ var _this = _super.call(this, "OCSPCacheEntryNeedsRefreshEvent", PlatformEvent_1.EventType.Debug, serialNumber) || this;
+ _this.privExpireTime = expireTime;
+ _this.privStartTime = startTime;
+ return _this;
+ }
+ return OCSPCacheEntryNeedsRefreshEvent;
+}(OCSPEvent));
+exports.OCSPCacheEntryNeedsRefreshEvent = OCSPCacheEntryNeedsRefreshEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPCacheHitEvent = /** @class */ (function (_super) {
+ __extends(OCSPCacheHitEvent, _super);
+ function OCSPCacheHitEvent(serialNumber, startTime, expireTime) {
+ var _this = _super.call(this, "OCSPCacheHitEvent", PlatformEvent_1.EventType.Debug, serialNumber) || this;
+ _this.privExpireTime = expireTime;
+ _this.privExpireTimeString = new Date(expireTime).toLocaleDateString();
+ _this.privStartTime = startTime;
+ _this.privStartTimeString = new Date(startTime).toLocaleTimeString();
+ return _this;
+ }
+ return OCSPCacheHitEvent;
+}(OCSPEvent));
+exports.OCSPCacheHitEvent = OCSPCacheHitEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPVerificationFailedEvent = /** @class */ (function (_super) {
+ __extends(OCSPVerificationFailedEvent, _super);
+ function OCSPVerificationFailedEvent(serialNumber, error) {
+ var _this = _super.call(this, "OCSPVerificationFailedEvent", PlatformEvent_1.EventType.Debug, serialNumber) || this;
+ _this.privError = error;
+ return _this;
+ }
+ return OCSPVerificationFailedEvent;
+}(OCSPEvent));
+exports.OCSPVerificationFailedEvent = OCSPVerificationFailedEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPCacheFetchErrorEvent = /** @class */ (function (_super) {
+ __extends(OCSPCacheFetchErrorEvent, _super);
+ function OCSPCacheFetchErrorEvent(serialNumber, error) {
+ var _this = _super.call(this, "OCSPCacheFetchErrorEvent", PlatformEvent_1.EventType.Debug, serialNumber) || this;
+ _this.privError = error;
+ return _this;
+ }
+ return OCSPCacheFetchErrorEvent;
+}(OCSPEvent));
+exports.OCSPCacheFetchErrorEvent = OCSPCacheFetchErrorEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPResponseRetrievedEvent = /** @class */ (function (_super) {
+ __extends(OCSPResponseRetrievedEvent, _super);
+ function OCSPResponseRetrievedEvent(serialNumber) {
+ return _super.call(this, "OCSPResponseRetrievedEvent", PlatformEvent_1.EventType.Debug, serialNumber) || this;
+ }
+ return OCSPResponseRetrievedEvent;
+}(OCSPEvent));
+exports.OCSPResponseRetrievedEvent = OCSPResponseRetrievedEvent;
+// tslint:disable-next-line:max-classes-per-file
+var OCSPCacheUpdateErrorEvent = /** @class */ (function (_super) {
+ __extends(OCSPCacheUpdateErrorEvent, _super);
+ function OCSPCacheUpdateErrorEvent(serialNumber, error) {
+ var _this = _super.call(this, "OCSPCacheUpdateErrorEvent", PlatformEvent_1.EventType.Debug, serialNumber) || this;
+ _this.privError = error;
+ return _this;
+ }
+ return OCSPCacheUpdateErrorEvent;
+}(OCSPEvent));
+exports.OCSPCacheUpdateErrorEvent = OCSPCacheUpdateErrorEvent;
+
+
+
+/***/ }),
+/* 25 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Exports_2 = __webpack_require__(4);
+var AudioStreamFormat_1 = __webpack_require__(42);
+exports.AudioWorkletSourceURLPropertyName = "MICROPHONE-WorkletSourceUrl";
+var MicAudioSource = /** @class */ (function () {
+ function MicAudioSource(privRecorder, deviceId, audioSourceId) {
+ var _this = this;
+ this.privRecorder = privRecorder;
+ this.deviceId = deviceId;
+ this.privStreams = {};
+ this.turnOn = function () {
+ if (_this.privInitializeDeferral) {
+ return _this.privInitializeDeferral.promise();
+ }
+ _this.privInitializeDeferral = new Exports_2.Deferred();
+ try {
+ _this.createAudioContext();
+ }
+ catch (error) {
+ if (error instanceof Error) {
+ var typedError = error;
+ _this.privInitializeDeferral.reject(typedError.name + ": " + typedError.message);
+ }
+ else {
+ _this.privInitializeDeferral.reject(error);
+ }
+ return _this.privInitializeDeferral.promise();
+ }
+ var nav = window.navigator;
+ var getUserMedia = (nav.getUserMedia ||
+ nav.webkitGetUserMedia ||
+ nav.mozGetUserMedia ||
+ nav.msGetUserMedia);
+ if (!!nav.mediaDevices) {
+ getUserMedia = function (constraints, successCallback, errorCallback) {
+ nav.mediaDevices
+ .getUserMedia(constraints)
+ .then(successCallback)
+ .catch(errorCallback);
+ };
+ }
+ if (!getUserMedia) {
+ var errorMsg = "Browser does not support getUserMedia.";
+ _this.privInitializeDeferral.reject(errorMsg);
+ _this.onEvent(new Exports_2.AudioSourceErrorEvent(errorMsg, "")); // mic initialized error - no streamid at this point
+ }
+ else {
+ var next = function () {
+ _this.onEvent(new Exports_2.AudioSourceInitializingEvent(_this.privId)); // no stream id
+ getUserMedia({ audio: _this.deviceId ? { deviceId: _this.deviceId } : true, video: false }, function (mediaStream) {
+ _this.privMediaStream = mediaStream;
+ _this.onEvent(new Exports_2.AudioSourceReadyEvent(_this.privId));
+ _this.privInitializeDeferral.resolve(true);
+ }, function (error) {
+ var errorMsg = "Error occurred during microphone initialization: " + error;
+ var tmp = _this.privInitializeDeferral;
+ // HACK: this should be handled through onError callbacks of all promises up the stack.
+ // Unfortunately, the current implementation does not provide an easy way to reject promises
+ // without a lot of code replication.
+ // TODO: fix promise implementation, allow for a graceful reject chaining.
+ _this.privInitializeDeferral = null;
+ tmp.reject(errorMsg); // this will bubble up through the whole chain of promises,
+ // with each new level adding extra "Unhandled callback error" prefix to the error message.
+ // The following line is not guaranteed to be executed.
+ _this.onEvent(new Exports_2.AudioSourceErrorEvent(_this.privId, errorMsg));
+ });
+ };
+ if (_this.privContext.state === "suspended") {
+ // NOTE: On iOS, the Web Audio API requires sounds to be triggered from an explicit user action.
+ // https://github.com/WebAudio/web-audio-api/issues/790
+ _this.privContext.resume().then(next, function (reason) {
+ _this.privInitializeDeferral.reject("Failed to initialize audio context: " + reason);
+ });
+ }
+ else {
+ next();
+ }
+ }
+ return _this.privInitializeDeferral.promise();
+ };
+ this.id = function () {
+ return _this.privId;
+ };
+ this.attach = function (audioNodeId) {
+ _this.onEvent(new Exports_2.AudioStreamNodeAttachingEvent(_this.privId, audioNodeId));
+ return _this.listen(audioNodeId).onSuccessContinueWith(function (stream) {
+ _this.onEvent(new Exports_2.AudioStreamNodeAttachedEvent(_this.privId, audioNodeId));
+ return {
+ detach: function () {
+ stream.readEnded();
+ _this.turnOff();
+ delete _this.privStreams[audioNodeId];
+ _this.onEvent(new Exports_2.AudioStreamNodeDetachedEvent(_this.privId, audioNodeId));
+ },
+ id: function () {
+ return audioNodeId;
+ },
+ read: function () {
+ return stream.read();
+ },
+ };
+ });
+ };
+ this.detach = function (audioNodeId) {
+ if (audioNodeId && _this.privStreams[audioNodeId]) {
+ _this.privStreams[audioNodeId].close();
+ delete _this.privStreams[audioNodeId];
+ _this.onEvent(new Exports_2.AudioStreamNodeDetachedEvent(_this.privId, audioNodeId));
+ }
+ };
+ this.turnOff = function () {
+ for (var streamId in _this.privStreams) {
+ if (streamId) {
+ var stream = _this.privStreams[streamId];
+ if (stream) {
+ stream.close();
+ }
+ }
+ }
+ _this.onEvent(new Exports_2.AudioSourceOffEvent(_this.privId)); // no stream now
+ _this.privInitializeDeferral = null;
+ _this.destroyAudioContext();
+ return Exports_2.PromiseHelper.fromResult(true);
+ };
+ this.listen = function (audioNodeId) {
+ return _this.turnOn()
+ .onSuccessContinueWith(function (_) {
+ var stream = new Exports_2.ChunkedArrayBufferStream(_this.privOutputChunkSize, audioNodeId);
+ _this.privStreams[audioNodeId] = stream;
+ try {
+ _this.privRecorder.record(_this.privContext, _this.privMediaStream, stream);
+ }
+ catch (error) {
+ _this.onEvent(new Exports_2.AudioStreamNodeErrorEvent(_this.privId, audioNodeId, error));
+ throw error;
+ }
+ return stream;
+ });
+ };
+ this.onEvent = function (event) {
+ _this.privEvents.onEvent(event);
+ Exports_2.Events.instance.onEvent(event);
+ };
+ this.createAudioContext = function () {
+ if (!!_this.privContext) {
+ return;
+ }
+ // https://developer.mozilla.org/en-US/docs/Web/API/AudioContext
+ if (typeof (AudioContext) === "undefined") {
+ throw new Error("Browser does not support Web Audio API (AudioContext is not available).");
+ }
+ // Browsers without sampleRate constraint support can't connect nodes with different sample rates
+ if (navigator.mediaDevices.getSupportedConstraints().sampleRate) {
+ _this.privContext = new AudioContext({ sampleRate: MicAudioSource.AUDIOFORMAT.samplesPerSec });
+ }
+ else {
+ _this.privContext = new AudioContext();
+ }
+ };
+ this.destroyAudioContext = function () {
+ if (!_this.privContext) {
+ return;
+ }
+ _this.privRecorder.releaseMediaResources(_this.privContext);
+ // This pattern brought to you by a bug in the TypeScript compiler where it
+ // confuses the ("close" in this.privContext) with this.privContext always being null as the alternate.
+ // https://github.com/Microsoft/TypeScript/issues/11498
+ var hasClose = false;
+ if ("close" in _this.privContext) {
+ hasClose = true;
+ }
+ if (hasClose) {
+ _this.privContext.close();
+ _this.privContext = null;
+ }
+ else if (null !== _this.privContext && _this.privContext.state === "running") {
+ // Suspend actually takes a callback, but analogous to the
+ // resume method, it'll be only fired if suspend is called
+ // in a direct response to a user action. The later is not always
+ // the case, as TurnOff is also called, when we receive an
+ // end-of-speech message from the service. So, doing a best effort
+ // fire-and-forget here.
+ _this.privContext.suspend();
+ }
+ };
+ this.privOutputChunkSize = MicAudioSource.AUDIOFORMAT.avgBytesPerSec / 10;
+ this.privId = audioSourceId ? audioSourceId : Exports_2.createNoDashGuid();
+ this.privEvents = new Exports_2.EventSource();
+ }
+ Object.defineProperty(MicAudioSource.prototype, "format", {
+ get: function () {
+ return Exports_2.PromiseHelper.fromResult(MicAudioSource.AUDIOFORMAT);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(MicAudioSource.prototype, "blob", {
+ get: function () {
+ return Exports_2.PromiseHelper.fromError("Not implemented for Mic input");
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(MicAudioSource.prototype, "events", {
+ get: function () {
+ return this.privEvents;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(MicAudioSource.prototype, "deviceInfo", {
+ get: function () {
+ return this.getMicrophoneLabel().onSuccessContinueWith(function (label) {
+ return {
+ bitspersample: MicAudioSource.AUDIOFORMAT.bitsPerSample,
+ channelcount: MicAudioSource.AUDIOFORMAT.channels,
+ connectivity: Exports_1.connectivity.Unknown,
+ manufacturer: "Speech SDK",
+ model: label,
+ samplerate: MicAudioSource.AUDIOFORMAT.samplesPerSec,
+ type: Exports_1.type.Microphones,
+ };
+ });
+ },
+ enumerable: true,
+ configurable: true
+ });
+ MicAudioSource.prototype.setProperty = function (name, value) {
+ if (name === exports.AudioWorkletSourceURLPropertyName) {
+ this.privRecorder.setWorkletUrl(value);
+ }
+ else {
+ throw new Error("Property '" + name + "' is not supported on Microphone.");
+ }
+ };
+ MicAudioSource.prototype.getMicrophoneLabel = function () {
+ var _this = this;
+ var defaultMicrophoneName = "microphone";
+ // If we did this already, return the value.
+ if (this.privMicrophoneLabel !== undefined) {
+ return Exports_2.PromiseHelper.fromResult(this.privMicrophoneLabel);
+ }
+ // If the stream isn't currently running, we can't query devices because security.
+ if (this.privMediaStream === undefined || !this.privMediaStream.active) {
+ return Exports_2.PromiseHelper.fromResult(defaultMicrophoneName);
+ }
+ // Setup a default
+ this.privMicrophoneLabel = defaultMicrophoneName;
+ // Get the id of the device running the audio track.
+ var microphoneDeviceId = this.privMediaStream.getTracks()[0].getSettings().deviceId;
+ // If the browser doesn't support getting the device ID, set a default and return.
+ if (undefined === microphoneDeviceId) {
+ return Exports_2.PromiseHelper.fromResult(this.privMicrophoneLabel);
+ }
+ var deferred = new Exports_2.Deferred();
+ // Enumerate the media devices.
+ navigator.mediaDevices.enumerateDevices().then(function (devices) {
+ for (var _i = 0, devices_1 = devices; _i < devices_1.length; _i++) {
+ var device = devices_1[_i];
+ if (device.deviceId === microphoneDeviceId) {
+ // Found the device
+ _this.privMicrophoneLabel = device.label;
+ break;
+ }
+ }
+ deferred.resolve(_this.privMicrophoneLabel);
+ }, function () { return deferred.resolve(_this.privMicrophoneLabel); });
+ return deferred.promise();
+ };
+ MicAudioSource.AUDIOFORMAT = AudioStreamFormat_1.AudioStreamFormat.getDefaultInputFormat();
+ return MicAudioSource;
+}());
+exports.MicAudioSource = MicAudioSource;
+
+
+
+/***/ }),
+/* 26 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
+Object.defineProperty(exports, "__esModule", { value: true });
+// Make sure not to export internal modules.
+//
+__export(__webpack_require__(27));
+__export(__webpack_require__(29));
+__export(__webpack_require__(28));
+__export(__webpack_require__(30));
+__export(__webpack_require__(126));
+__export(__webpack_require__(127));
+__export(__webpack_require__(129));
+__export(__webpack_require__(130));
+__export(__webpack_require__(71));
+__export(__webpack_require__(131));
+__export(__webpack_require__(132));
+__export(__webpack_require__(133));
+__export(__webpack_require__(134));
+__export(__webpack_require__(135));
+__export(__webpack_require__(136));
+__export(__webpack_require__(137));
+__export(__webpack_require__(138));
+__export(__webpack_require__(139));
+__export(__webpack_require__(140));
+__export(__webpack_require__(141));
+__export(__webpack_require__(142));
+__export(__webpack_require__(143));
+__export(__webpack_require__(144));
+__export(__webpack_require__(145));
+__export(__webpack_require__(146));
+__export(__webpack_require__(147));
+__export(__webpack_require__(149));
+__export(__webpack_require__(150));
+__export(__webpack_require__(151));
+__export(__webpack_require__(155));
+__export(__webpack_require__(156));
+__export(__webpack_require__(173));
+__export(__webpack_require__(174));
+__export(__webpack_require__(175));
+__export(__webpack_require__(177));
+__export(__webpack_require__(178));
+__export(__webpack_require__(179));
+__export(__webpack_require__(180));
+exports.OutputFormatPropertyName = "OutputFormat";
+exports.CancellationErrorCodePropertyName = "CancellationErrorCode";
+exports.ServicePropertiesPropertyName = "ServiceProperties";
+exports.ForceDictationPropertyName = "ForceDication";
+exports.AutoDetectSourceLanguagesOpenRangeOptionName = "OpenRange";
+
+
+
+/***/ }),
+/* 27 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var IAuthentication_1 = __webpack_require__(28);
+var AuthHeader = "Ocp-Apim-Subscription-Key";
+/**
+ * @class
+ */
+var CognitiveSubscriptionKeyAuthentication = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance of the CognitiveSubscriptionKeyAuthentication class.
+ * @constructor
+ * @param {string} subscriptionKey - The subscription key
+ */
+ function CognitiveSubscriptionKeyAuthentication(subscriptionKey) {
+ var _this = this;
+ /**
+ * Fetches the subscription key.
+ * @member
+ * @function
+ * @public
+ * @param {string} authFetchEventId - The id to fetch.
+ */
+ this.fetch = function (authFetchEventId) {
+ return Exports_1.PromiseHelper.fromResult(_this.privAuthInfo);
+ };
+ /**
+ * Fetches the subscription key.
+ * @member
+ * @function
+ * @public
+ * @param {string} authFetchEventId - The id to fetch.
+ */
+ this.fetchOnExpiry = function (authFetchEventId) {
+ return Exports_1.PromiseHelper.fromResult(_this.privAuthInfo);
+ };
+ if (!subscriptionKey) {
+ throw new Exports_1.ArgumentNullError("subscriptionKey");
+ }
+ this.privAuthInfo = new IAuthentication_1.AuthInfo(AuthHeader, subscriptionKey);
+ }
+ return CognitiveSubscriptionKeyAuthentication;
+}());
+exports.CognitiveSubscriptionKeyAuthentication = CognitiveSubscriptionKeyAuthentication;
+
+
+
+/***/ }),
+/* 28 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var AuthInfo = /** @class */ (function () {
+ function AuthInfo(headerName, token) {
+ this.privHeaderName = headerName;
+ this.privToken = token;
+ }
+ Object.defineProperty(AuthInfo.prototype, "headerName", {
+ get: function () {
+ return this.privHeaderName;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AuthInfo.prototype, "token", {
+ get: function () {
+ return this.privToken;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return AuthInfo;
+}());
+exports.AuthInfo = AuthInfo;
+
+
+
+/***/ }),
+/* 29 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var IAuthentication_1 = __webpack_require__(28);
+var AuthHeader = "Authorization";
+var CognitiveTokenAuthentication = /** @class */ (function () {
+ function CognitiveTokenAuthentication(fetchCallback, fetchOnExpiryCallback) {
+ var _this = this;
+ this.fetch = function (authFetchEventId) {
+ return _this.privFetchCallback(authFetchEventId).onSuccessContinueWith(function (token) { return new IAuthentication_1.AuthInfo(AuthHeader, token); });
+ };
+ this.fetchOnExpiry = function (authFetchEventId) {
+ return _this.privFetchOnExpiryCallback(authFetchEventId).onSuccessContinueWith(function (token) { return new IAuthentication_1.AuthInfo(AuthHeader, token); });
+ };
+ if (!fetchCallback) {
+ throw new Exports_1.ArgumentNullError("fetchCallback");
+ }
+ if (!fetchOnExpiryCallback) {
+ throw new Exports_1.ArgumentNullError("fetchOnExpiryCallback");
+ }
+ this.privFetchCallback = fetchCallback;
+ this.privFetchOnExpiryCallback = fetchOnExpiryCallback;
+ }
+ return CognitiveTokenAuthentication;
+}());
+exports.CognitiveTokenAuthentication = CognitiveTokenAuthentication;
+
+
+
+/***/ }),
+/* 30 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(2);
+var Exports_2 = __webpack_require__(31);
+var ConnectionFactoryBase_1 = __webpack_require__(72);
+var Exports_3 = __webpack_require__(26);
+var TestHooksParamName = "testhooks";
+var ConnectionIdHeader = "X-ConnectionId";
+var IntentConnectionFactory = /** @class */ (function (_super) {
+ __extends(IntentConnectionFactory, _super);
+ function IntentConnectionFactory() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.create = function (config, authInfo, connectionId) {
+ var endpoint = config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Endpoint);
+ if (!endpoint) {
+ var region = config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_IntentRegion);
+ var hostSuffix = (region && region.toLowerCase().startsWith("china")) ? ".azure.cn" : ".microsoft.com";
+ var host = config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Host, "wss://" + region + ".sr.speech" + hostSuffix);
+ endpoint = host + "/speech/recognition/interactive/cognitiveservices/v1";
+ }
+ var queryParams = {
+ format: "simple",
+ language: config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage),
+ };
+ _this.setCommonUrlParams(config, queryParams, endpoint);
+ var headers = {};
+ if (authInfo.token !== undefined && authInfo.token !== "") {
+ headers[authInfo.headerName] = authInfo.token;
+ }
+ headers[ConnectionIdHeader] = connectionId;
+ config.parameters.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Url, endpoint);
+ return new Exports_1.WebsocketConnection(endpoint, queryParams, headers, new Exports_3.WebsocketMessageFormatter(), Exports_1.ProxyInfo.fromRecognizerConfig(config), connectionId);
+ };
+ return _this;
+ }
+ IntentConnectionFactory.prototype.getSpeechRegionFromIntentRegion = function (intentRegion) {
+ switch (intentRegion) {
+ case "West US":
+ case "US West":
+ case "westus":
+ return "uswest";
+ case "West US 2":
+ case "US West 2":
+ case "westus2":
+ return "uswest2";
+ case "South Central US":
+ case "US South Central":
+ case "southcentralus":
+ return "ussouthcentral";
+ case "West Central US":
+ case "US West Central":
+ case "westcentralus":
+ return "uswestcentral";
+ case "East US":
+ case "US East":
+ case "eastus":
+ return "useast";
+ case "East US 2":
+ case "US East 2":
+ case "eastus2":
+ return "useast2";
+ case "West Europe":
+ case "Europe West":
+ case "westeurope":
+ return "europewest";
+ case "North Europe":
+ case "Europe North":
+ case "northeurope":
+ return "europenorth";
+ case "Brazil South":
+ case "South Brazil":
+ case "southbrazil":
+ return "brazilsouth";
+ case "Australia East":
+ case "East Australia":
+ case "eastaustralia":
+ return "australiaeast";
+ case "Southeast Asia":
+ case "Asia Southeast":
+ case "southeastasia":
+ return "asiasoutheast";
+ case "East Asia":
+ case "Asia East":
+ case "eastasia":
+ return "asiaeast";
+ default:
+ return intentRegion;
+ }
+ };
+ return IntentConnectionFactory;
+}(ConnectionFactoryBase_1.ConnectionFactoryBase));
+exports.IntentConnectionFactory = IntentConnectionFactory;
+
+
+
+/***/ }),
+/* 31 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var AudioConfig_1 = __webpack_require__(32);
+exports.AudioConfig = AudioConfig_1.AudioConfig;
+var AudioStreamFormat_1 = __webpack_require__(42);
+exports.AudioStreamFormat = AudioStreamFormat_1.AudioStreamFormat;
+var AudioInputStream_1 = __webpack_require__(36);
+exports.AudioInputStream = AudioInputStream_1.AudioInputStream;
+exports.PullAudioInputStream = AudioInputStream_1.PullAudioInputStream;
+exports.PushAudioInputStream = AudioInputStream_1.PushAudioInputStream;
+var AudioOutputStream_1 = __webpack_require__(43);
+exports.AudioOutputStream = AudioOutputStream_1.AudioOutputStream;
+exports.PullAudioOutputStream = AudioOutputStream_1.PullAudioOutputStream;
+exports.PushAudioOutputStream = AudioOutputStream_1.PushAudioOutputStream;
+var CancellationReason_1 = __webpack_require__(46);
+exports.CancellationReason = CancellationReason_1.CancellationReason;
+var PullAudioInputStreamCallback_1 = __webpack_require__(47);
+exports.PullAudioInputStreamCallback = PullAudioInputStreamCallback_1.PullAudioInputStreamCallback;
+var PushAudioOutputStreamCallback_1 = __webpack_require__(48);
+exports.PushAudioOutputStreamCallback = PushAudioOutputStreamCallback_1.PushAudioOutputStreamCallback;
+var KeywordRecognitionModel_1 = __webpack_require__(49);
+exports.KeywordRecognitionModel = KeywordRecognitionModel_1.KeywordRecognitionModel;
+var SessionEventArgs_1 = __webpack_require__(50);
+exports.SessionEventArgs = SessionEventArgs_1.SessionEventArgs;
+var RecognitionEventArgs_1 = __webpack_require__(51);
+exports.RecognitionEventArgs = RecognitionEventArgs_1.RecognitionEventArgs;
+var OutputFormat_1 = __webpack_require__(52);
+exports.OutputFormat = OutputFormat_1.OutputFormat;
+var IntentRecognitionEventArgs_1 = __webpack_require__(53);
+exports.IntentRecognitionEventArgs = IntentRecognitionEventArgs_1.IntentRecognitionEventArgs;
+var RecognitionResult_1 = __webpack_require__(54);
+exports.RecognitionResult = RecognitionResult_1.RecognitionResult;
+var SpeechRecognitionResult_1 = __webpack_require__(55);
+exports.SpeechRecognitionResult = SpeechRecognitionResult_1.SpeechRecognitionResult;
+var IntentRecognitionResult_1 = __webpack_require__(56);
+exports.IntentRecognitionResult = IntentRecognitionResult_1.IntentRecognitionResult;
+var LanguageUnderstandingModel_1 = __webpack_require__(57);
+exports.LanguageUnderstandingModel = LanguageUnderstandingModel_1.LanguageUnderstandingModel;
+var SpeechRecognitionEventArgs_1 = __webpack_require__(58);
+exports.SpeechRecognitionEventArgs = SpeechRecognitionEventArgs_1.SpeechRecognitionEventArgs;
+var SpeechRecognitionCanceledEventArgs_1 = __webpack_require__(59);
+exports.SpeechRecognitionCanceledEventArgs = SpeechRecognitionCanceledEventArgs_1.SpeechRecognitionCanceledEventArgs;
+var TranslationRecognitionEventArgs_1 = __webpack_require__(60);
+exports.TranslationRecognitionEventArgs = TranslationRecognitionEventArgs_1.TranslationRecognitionEventArgs;
+var TranslationSynthesisEventArgs_1 = __webpack_require__(61);
+exports.TranslationSynthesisEventArgs = TranslationSynthesisEventArgs_1.TranslationSynthesisEventArgs;
+var TranslationRecognitionResult_1 = __webpack_require__(62);
+exports.TranslationRecognitionResult = TranslationRecognitionResult_1.TranslationRecognitionResult;
+var TranslationSynthesisResult_1 = __webpack_require__(63);
+exports.TranslationSynthesisResult = TranslationSynthesisResult_1.TranslationSynthesisResult;
+var ResultReason_1 = __webpack_require__(64);
+exports.ResultReason = ResultReason_1.ResultReason;
+var SpeechConfig_1 = __webpack_require__(65);
+exports.SpeechConfig = SpeechConfig_1.SpeechConfig;
+exports.SpeechConfigImpl = SpeechConfig_1.SpeechConfigImpl;
+var SpeechTranslationConfig_1 = __webpack_require__(66);
+exports.SpeechTranslationConfig = SpeechTranslationConfig_1.SpeechTranslationConfig;
+var PropertyCollection_1 = __webpack_require__(67);
+exports.PropertyCollection = PropertyCollection_1.PropertyCollection;
+var PropertyId_1 = __webpack_require__(68);
+exports.PropertyId = PropertyId_1.PropertyId;
+var Recognizer_1 = __webpack_require__(69);
+exports.Recognizer = Recognizer_1.Recognizer;
+var SpeechRecognizer_1 = __webpack_require__(70);
+exports.SpeechRecognizer = SpeechRecognizer_1.SpeechRecognizer;
+var IntentRecognizer_1 = __webpack_require__(74);
+exports.IntentRecognizer = IntentRecognizer_1.IntentRecognizer;
+var VoiceProfileType_1 = __webpack_require__(75);
+exports.VoiceProfileType = VoiceProfileType_1.VoiceProfileType;
+var TranslationRecognizer_1 = __webpack_require__(76);
+exports.TranslationRecognizer = TranslationRecognizer_1.TranslationRecognizer;
+var Translations_1 = __webpack_require__(77);
+exports.Translations = Translations_1.Translations;
+var NoMatchReason_1 = __webpack_require__(78);
+exports.NoMatchReason = NoMatchReason_1.NoMatchReason;
+var NoMatchDetails_1 = __webpack_require__(79);
+exports.NoMatchDetails = NoMatchDetails_1.NoMatchDetails;
+var TranslationRecognitionCanceledEventArgs_1 = __webpack_require__(80);
+exports.TranslationRecognitionCanceledEventArgs = TranslationRecognitionCanceledEventArgs_1.TranslationRecognitionCanceledEventArgs;
+var IntentRecognitionCanceledEventArgs_1 = __webpack_require__(81);
+exports.IntentRecognitionCanceledEventArgs = IntentRecognitionCanceledEventArgs_1.IntentRecognitionCanceledEventArgs;
+var CancellationDetailsBase_1 = __webpack_require__(82);
+exports.CancellationDetailsBase = CancellationDetailsBase_1.CancellationDetailsBase;
+var CancellationDetails_1 = __webpack_require__(83);
+exports.CancellationDetails = CancellationDetails_1.CancellationDetails;
+var CancellationErrorCodes_1 = __webpack_require__(84);
+exports.CancellationErrorCode = CancellationErrorCodes_1.CancellationErrorCode;
+var ConnectionEventArgs_1 = __webpack_require__(85);
+exports.ConnectionEventArgs = ConnectionEventArgs_1.ConnectionEventArgs;
+var ServiceEventArgs_1 = __webpack_require__(86);
+exports.ServiceEventArgs = ServiceEventArgs_1.ServiceEventArgs;
+var Connection_1 = __webpack_require__(87);
+exports.Connection = Connection_1.Connection;
+var PhraseListGrammar_1 = __webpack_require__(89);
+exports.PhraseListGrammar = PhraseListGrammar_1.PhraseListGrammar;
+var DialogServiceConfig_1 = __webpack_require__(90);
+exports.DialogServiceConfig = DialogServiceConfig_1.DialogServiceConfig;
+var BotFrameworkConfig_1 = __webpack_require__(91);
+exports.BotFrameworkConfig = BotFrameworkConfig_1.BotFrameworkConfig;
+var CustomCommandsConfig_1 = __webpack_require__(92);
+exports.CustomCommandsConfig = CustomCommandsConfig_1.CustomCommandsConfig;
+var DialogServiceConnector_1 = __webpack_require__(93);
+exports.DialogServiceConnector = DialogServiceConnector_1.DialogServiceConnector;
+var ActivityReceivedEventArgs_1 = __webpack_require__(95);
+exports.ActivityReceivedEventArgs = ActivityReceivedEventArgs_1.ActivityReceivedEventArgs;
+var ServicePropertyChannel_1 = __webpack_require__(96);
+exports.ServicePropertyChannel = ServicePropertyChannel_1.ServicePropertyChannel;
+var ProfanityOption_1 = __webpack_require__(97);
+exports.ProfanityOption = ProfanityOption_1.ProfanityOption;
+var BaseAudioPlayer_1 = __webpack_require__(98);
+exports.BaseAudioPlayer = BaseAudioPlayer_1.BaseAudioPlayer;
+var ConnectionMessageEventArgs_1 = __webpack_require__(99);
+exports.ConnectionMessageEventArgs = ConnectionMessageEventArgs_1.ConnectionMessageEventArgs;
+var ConnectionMessage_1 = __webpack_require__(88);
+exports.ConnectionMessage = ConnectionMessage_1.ConnectionMessage;
+var VoiceProfile_1 = __webpack_require__(100);
+exports.VoiceProfile = VoiceProfile_1.VoiceProfile;
+var VoiceProfileEnrollmentResult_1 = __webpack_require__(101);
+exports.VoiceProfileEnrollmentResult = VoiceProfileEnrollmentResult_1.VoiceProfileEnrollmentResult;
+exports.VoiceProfileEnrollmentCancellationDetails = VoiceProfileEnrollmentResult_1.VoiceProfileEnrollmentCancellationDetails;
+var VoiceProfileResult_1 = __webpack_require__(102);
+exports.VoiceProfileResult = VoiceProfileResult_1.VoiceProfileResult;
+exports.VoiceProfileCancellationDetails = VoiceProfileResult_1.VoiceProfileCancellationDetails;
+var VoiceProfileClient_1 = __webpack_require__(103);
+exports.VoiceProfileClient = VoiceProfileClient_1.VoiceProfileClient;
+var SpeakerRecognizer_1 = __webpack_require__(104);
+exports.SpeakerRecognizer = SpeakerRecognizer_1.SpeakerRecognizer;
+var SpeakerIdentificationModel_1 = __webpack_require__(105);
+exports.SpeakerIdentificationModel = SpeakerIdentificationModel_1.SpeakerIdentificationModel;
+var SpeakerVerificationModel_1 = __webpack_require__(106);
+exports.SpeakerVerificationModel = SpeakerVerificationModel_1.SpeakerVerificationModel;
+var AutoDetectSourceLanguageConfig_1 = __webpack_require__(107);
+exports.AutoDetectSourceLanguageConfig = AutoDetectSourceLanguageConfig_1.AutoDetectSourceLanguageConfig;
+var AutoDetectSourceLanguageResult_1 = __webpack_require__(108);
+exports.AutoDetectSourceLanguageResult = AutoDetectSourceLanguageResult_1.AutoDetectSourceLanguageResult;
+var SourceLanguageConfig_1 = __webpack_require__(109);
+exports.SourceLanguageConfig = SourceLanguageConfig_1.SourceLanguageConfig;
+var SpeakerRecognitionResult_1 = __webpack_require__(110);
+exports.SpeakerRecognitionResult = SpeakerRecognitionResult_1.SpeakerRecognitionResult;
+exports.SpeakerRecognitionResultType = SpeakerRecognitionResult_1.SpeakerRecognitionResultType;
+exports.SpeakerRecognitionCancellationDetails = SpeakerRecognitionResult_1.SpeakerRecognitionCancellationDetails;
+var Exports_1 = __webpack_require__(111);
+exports.Conversation = Exports_1.Conversation;
+exports.ConversationExpirationEventArgs = Exports_1.ConversationExpirationEventArgs;
+exports.ConversationParticipantsChangedEventArgs = Exports_1.ConversationParticipantsChangedEventArgs;
+exports.ConversationTranslationCanceledEventArgs = Exports_1.ConversationTranslationCanceledEventArgs;
+exports.ConversationTranslationEventArgs = Exports_1.ConversationTranslationEventArgs;
+exports.ConversationTranslationResult = Exports_1.ConversationTranslationResult;
+exports.ConversationTranslator = Exports_1.ConversationTranslator;
+exports.Participant = Exports_1.Participant;
+exports.ParticipantChangedReason = Exports_1.ParticipantChangedReason;
+exports.User = Exports_1.User;
+var SpeechSynthesisOutputFormat_1 = __webpack_require__(45);
+exports.SpeechSynthesisOutputFormat = SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat;
+var SpeechSynthesizer_1 = __webpack_require__(121);
+exports.SpeechSynthesizer = SpeechSynthesizer_1.SpeechSynthesizer;
+var SpeechSynthesisResult_1 = __webpack_require__(122);
+exports.SpeechSynthesisResult = SpeechSynthesisResult_1.SpeechSynthesisResult;
+var SpeechSynthesisEventArgs_1 = __webpack_require__(123);
+exports.SpeechSynthesisEventArgs = SpeechSynthesisEventArgs_1.SpeechSynthesisEventArgs;
+var SpeechSynthesisWordBoundaryEventArgs_1 = __webpack_require__(124);
+exports.SpeechSynthesisWordBoundaryEventArgs = SpeechSynthesisWordBoundaryEventArgs_1.SpeechSynthesisWordBoundaryEventArgs;
+var SpeakerAudioDestination_1 = __webpack_require__(125);
+exports.SpeakerAudioDestination = SpeakerAudioDestination_1.SpeakerAudioDestination;
+
+
+
+/***/ }),
+/* 32 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(2);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+var AudioFileWriter_1 = __webpack_require__(34);
+var AudioInputStream_1 = __webpack_require__(36);
+var AudioOutputStream_1 = __webpack_require__(43);
+/**
+ * Represents audio input configuration used for specifying what type of input to use (microphone, file, stream).
+ * @class AudioConfig
+ * Updated in version 1.11.0
+ */
+var AudioConfig = /** @class */ (function () {
+ function AudioConfig() {
+ }
+ /**
+ * Creates an AudioConfig object representing the default microphone on the system.
+ * @member AudioConfig.fromDefaultMicrophoneInput
+ * @function
+ * @public
+ * @returns {AudioConfig} The audio input configuration being created.
+ */
+ AudioConfig.fromDefaultMicrophoneInput = function () {
+ var pcmRecorder = new Exports_1.PcmRecorder();
+ return new AudioConfigImpl(new Exports_1.MicAudioSource(pcmRecorder));
+ };
+ /**
+ * Creates an AudioConfig object representing a microphone with the specified device ID.
+ * @member AudioConfig.fromMicrophoneInput
+ * @function
+ * @public
+ * @param {string | undefined} deviceId - Specifies the device ID of the microphone to be used.
+ * Default microphone is used the value is omitted.
+ * @returns {AudioConfig} The audio input configuration being created.
+ */
+ AudioConfig.fromMicrophoneInput = function (deviceId) {
+ var pcmRecorder = new Exports_1.PcmRecorder();
+ return new AudioConfigImpl(new Exports_1.MicAudioSource(pcmRecorder, deviceId));
+ };
+ /**
+ * Creates an AudioConfig object representing the specified file.
+ * @member AudioConfig.fromWavFileInput
+ * @function
+ * @public
+ * @param {File} fileName - Specifies the audio input file. Currently, only WAV / PCM is supported.
+ * @returns {AudioConfig} The audio input configuration being created.
+ */
+ AudioConfig.fromWavFileInput = function (file) {
+ return new AudioConfigImpl(new Exports_1.FileAudioSource(file));
+ };
+ /**
+ * Creates an AudioConfig object representing the specified stream.
+ * @member AudioConfig.fromStreamInput
+ * @function
+ * @public
+ * @param {AudioInputStream | PullAudioInputStreamCallback} audioStream - Specifies the custom audio input
+ * stream. Currently, only WAV / PCM is supported.
+ * @returns {AudioConfig} The audio input configuration being created.
+ */
+ AudioConfig.fromStreamInput = function (audioStream) {
+ if (audioStream instanceof Exports_2.PullAudioInputStreamCallback) {
+ return new AudioConfigImpl(new AudioInputStream_1.PullAudioInputStreamImpl(audioStream));
+ }
+ if (audioStream instanceof Exports_2.AudioInputStream) {
+ return new AudioConfigImpl(audioStream);
+ }
+ throw new Error("Not Supported Type");
+ };
+ /**
+ * Creates an AudioConfig object representing the default speaker.
+ * @member AudioConfig.fromDefaultSpeakerOutput
+ * @function
+ * @public
+ * @returns {AudioConfig} The audio output configuration being created.
+ * Added in version 1.11.0
+ */
+ AudioConfig.fromDefaultSpeakerOutput = function () {
+ return new AudioOutputConfigImpl(new Exports_2.SpeakerAudioDestination());
+ };
+ /**
+ * Creates an AudioConfig object representing the custom IPlayer object.
+ * You can use the IPlayer object to control pause, resume, etc.
+ * @member AudioConfig.fromSpeakerOutput
+ * @function
+ * @public
+ * @param {IPlayer} player - the IPlayer object for playback.
+ * @returns {AudioConfig} The audio output configuration being created.
+ * Added in version 1.12.0
+ */
+ AudioConfig.fromSpeakerOutput = function (player) {
+ if (player === undefined) {
+ return AudioConfig.fromDefaultSpeakerOutput();
+ }
+ if (player instanceof Exports_2.SpeakerAudioDestination) {
+ return new AudioOutputConfigImpl(player);
+ }
+ throw new Error("Not Supported Type");
+ };
+ /**
+ * Creates an AudioConfig object representing a specified output audio file
+ * @member AudioConfig.fromAudioFileOutput
+ * @function
+ * @public
+ * @param {PathLike} filename - the filename of the output audio file
+ * @returns {AudioConfig} The audio output configuration being created.
+ * Added in version 1.11.0
+ */
+ AudioConfig.fromAudioFileOutput = function (filename) {
+ return new AudioOutputConfigImpl(new AudioFileWriter_1.AudioFileWriter(filename));
+ };
+ /**
+ * Creates an AudioConfig object representing a specified audio output stream
+ * @member AudioConfig.fromStreamOutput
+ * @function
+ * @public
+ * @param {AudioOutputStream | PushAudioOutputStreamCallback} audioStream - Specifies the custom audio output
+ * stream.
+ * @returns {AudioConfig} The audio output configuration being created.
+ * Added in version 1.11.0
+ */
+ AudioConfig.fromStreamOutput = function (audioStream) {
+ if (audioStream instanceof Exports_2.PushAudioOutputStreamCallback) {
+ return new AudioOutputConfigImpl(new AudioOutputStream_1.PushAudioOutputStreamImpl(audioStream));
+ }
+ if (audioStream instanceof Exports_2.PushAudioOutputStream) {
+ return new AudioOutputConfigImpl(audioStream);
+ }
+ if (audioStream instanceof Exports_2.PullAudioOutputStream) {
+ return new AudioOutputConfigImpl(audioStream);
+ }
+ throw new Error("Not Supported Type");
+ };
+ return AudioConfig;
+}());
+exports.AudioConfig = AudioConfig;
+/**
+ * Represents audio input stream used for custom audio input configurations.
+ * @private
+ * @class AudioConfigImpl
+ */
+// tslint:disable-next-line:max-classes-per-file
+var AudioConfigImpl = /** @class */ (function (_super) {
+ __extends(AudioConfigImpl, _super);
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {IAudioSource} source - An audio source.
+ */
+ function AudioConfigImpl(source) {
+ var _this = _super.call(this) || this;
+ _this.privSource = source;
+ return _this;
+ }
+ Object.defineProperty(AudioConfigImpl.prototype, "format", {
+ /**
+ * Format information for the audio
+ */
+ get: function () {
+ return this.privSource.format;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * @member AudioConfigImpl.prototype.close
+ * @function
+ * @public
+ */
+ AudioConfigImpl.prototype.close = function () {
+ this.privSource.turnOff();
+ };
+ /**
+ * @member AudioConfigImpl.prototype.id
+ * @function
+ * @public
+ */
+ AudioConfigImpl.prototype.id = function () {
+ return this.privSource.id();
+ };
+ Object.defineProperty(AudioConfigImpl.prototype, "blob", {
+ /**
+ * @member AudioConfigImpl.prototype.blob
+ * @function
+ * @public
+ */
+ get: function () {
+ return this.privSource.blob;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * @member AudioConfigImpl.prototype.turnOn
+ * @function
+ * @public
+ * @returns {Promise} A promise.
+ */
+ AudioConfigImpl.prototype.turnOn = function () {
+ return this.privSource.turnOn();
+ };
+ /**
+ * @member AudioConfigImpl.prototype.attach
+ * @function
+ * @public
+ * @param {string} audioNodeId - The audio node id.
+ * @returns {Promise} A promise.
+ */
+ AudioConfigImpl.prototype.attach = function (audioNodeId) {
+ return this.privSource.attach(audioNodeId);
+ };
+ /**
+ * @member AudioConfigImpl.prototype.detach
+ * @function
+ * @public
+ * @param {string} audioNodeId - The audio node id.
+ */
+ AudioConfigImpl.prototype.detach = function (audioNodeId) {
+ return this.privSource.detach(audioNodeId);
+ };
+ /**
+ * @member AudioConfigImpl.prototype.turnOff
+ * @function
+ * @public
+ * @returns {Promise} A promise.
+ */
+ AudioConfigImpl.prototype.turnOff = function () {
+ return this.privSource.turnOff();
+ };
+ Object.defineProperty(AudioConfigImpl.prototype, "events", {
+ /**
+ * @member AudioConfigImpl.prototype.events
+ * @function
+ * @public
+ * @returns {EventSource} An event source for audio events.
+ */
+ get: function () {
+ return this.privSource.events;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ AudioConfigImpl.prototype.setProperty = function (name, value) {
+ Contracts_1.Contracts.throwIfNull(value, "value");
+ if (undefined !== this.privSource.setProperty) {
+ this.privSource.setProperty(name, value);
+ }
+ else {
+ throw new Error("This AudioConfig instance does not support setting properties.");
+ }
+ };
+ AudioConfigImpl.prototype.getProperty = function (name, def) {
+ if (undefined !== this.privSource.getProperty) {
+ return this.privSource.getProperty(name, def);
+ }
+ else {
+ throw new Error("This AudioConfig instance does not support getting properties.");
+ }
+ return def;
+ };
+ Object.defineProperty(AudioConfigImpl.prototype, "deviceInfo", {
+ get: function () {
+ return this.privSource.deviceInfo;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return AudioConfigImpl;
+}(AudioConfig));
+exports.AudioConfigImpl = AudioConfigImpl;
+// tslint:disable-next-line:max-classes-per-file
+var AudioOutputConfigImpl = /** @class */ (function (_super) {
+ __extends(AudioOutputConfigImpl, _super);
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {IAudioDestination} destination - An audio destination.
+ */
+ function AudioOutputConfigImpl(destination) {
+ var _this = _super.call(this) || this;
+ _this.privDestination = destination;
+ return _this;
+ }
+ Object.defineProperty(AudioOutputConfigImpl.prototype, "format", {
+ set: function (format) {
+ this.privDestination.format = format;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ AudioOutputConfigImpl.prototype.write = function (buffer) {
+ this.privDestination.write(buffer);
+ };
+ AudioOutputConfigImpl.prototype.close = function () {
+ this.privDestination.close();
+ };
+ AudioOutputConfigImpl.prototype.id = function () {
+ return this.privDestination.id();
+ };
+ AudioOutputConfigImpl.prototype.setProperty = function (name, value) {
+ throw new Error("This AudioConfig instance does not support setting properties.");
+ };
+ AudioOutputConfigImpl.prototype.getProperty = function (name, def) {
+ throw new Error("This AudioConfig instance does not support getting properties.");
+ };
+ return AudioOutputConfigImpl;
+}(AudioConfig));
+exports.AudioOutputConfigImpl = AudioOutputConfigImpl;
+
+
+
+/***/ }),
+/* 33 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * @class Contracts
+ * @private
+ */
+var Contracts = /** @class */ (function () {
+ function Contracts() {
+ }
+ Contracts.throwIfNullOrUndefined = function (param, name) {
+ if (param === undefined || param === null) {
+ throw new Error("throwIfNullOrUndefined:" + name);
+ }
+ };
+ Contracts.throwIfNull = function (param, name) {
+ if (param === null) {
+ throw new Error("throwIfNull:" + name);
+ }
+ };
+ Contracts.throwIfNullOrWhitespace = function (param, name) {
+ Contracts.throwIfNullOrUndefined(param, name);
+ if (("" + param).trim().length < 1) {
+ throw new Error("throwIfNullOrWhitespace:" + name);
+ }
+ };
+ Contracts.throwIfDisposed = function (isDisposed) {
+ if (isDisposed) {
+ throw new Error("the object is already disposed");
+ }
+ };
+ Contracts.throwIfArrayEmptyOrWhitespace = function (array, name) {
+ Contracts.throwIfNullOrUndefined(array, name);
+ if (array.length === 0) {
+ throw new Error("throwIfArrayEmptyOrWhitespace:" + name);
+ }
+ for (var _i = 0, array_1 = array; _i < array_1.length; _i++) {
+ var item = array_1[_i];
+ Contracts.throwIfNullOrWhitespace(item, name);
+ }
+ };
+ Contracts.throwIfFileDoesNotExist = function (param, name) {
+ Contracts.throwIfNullOrWhitespace(param, name);
+ // TODO check for file existence.
+ };
+ Contracts.throwIfNotUndefined = function (param, name) {
+ if (param !== undefined) {
+ throw new Error("throwIfNotUndefined:" + name);
+ }
+ };
+ return Contracts;
+}());
+exports.Contracts = Contracts;
+
+
+
+/***/ }),
+/* 34 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
+ result["default"] = mod;
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var fs = __importStar(__webpack_require__(35));
+var Contracts_1 = __webpack_require__(33);
+var AudioFileWriter = /** @class */ (function () {
+ function AudioFileWriter(filename) {
+ var _this = this;
+ this.id = function () {
+ return _this.privId;
+ };
+ this.privFd = fs.openSync(filename, "w");
+ }
+ Object.defineProperty(AudioFileWriter.prototype, "format", {
+ set: function (format) {
+ Contracts_1.Contracts.throwIfNotUndefined(this.privAudioFormat, "format is already set");
+ this.privAudioFormat = format;
+ var headerOffset = 0;
+ if (this.privAudioFormat.hasHeader) {
+ headerOffset = this.privAudioFormat.header.byteLength;
+ }
+ if (this.privFd !== undefined) {
+ this.privWriteStream = fs.createWriteStream("", { fd: this.privFd, start: headerOffset, autoClose: false });
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ AudioFileWriter.prototype.write = function (buffer) {
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privAudioFormat, "must set format before writing.");
+ if (this.privWriteStream !== undefined) {
+ this.privWriteStream.write(new Uint8Array(buffer.slice(0)));
+ }
+ };
+ AudioFileWriter.prototype.close = function () {
+ var _this = this;
+ if (this.privFd !== undefined) {
+ this.privWriteStream.on("finish", function () {
+ if (_this.privAudioFormat.hasHeader) {
+ _this.privAudioFormat.updateHeader(_this.privWriteStream.bytesWritten);
+ fs.writeSync(_this.privFd, new Int8Array(_this.privAudioFormat.header), 0, _this.privAudioFormat.header.byteLength, 0);
+ }
+ fs.closeSync(_this.privFd);
+ _this.privFd = undefined;
+ });
+ this.privWriteStream.end();
+ }
+ };
+ return AudioFileWriter;
+}());
+exports.AudioFileWriter = AudioFileWriter;
+
+
+
+/***/ }),
+/* 35 */
+/***/ (function(module, exports) {
+
+/* (ignored) */
+
+/***/ }),
+/* 36 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(Buffer) {
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Exports_2 = __webpack_require__(4);
+var Guid_1 = __webpack_require__(7);
+var Exports_3 = __webpack_require__(31);
+var AudioStreamFormat_1 = __webpack_require__(42);
+/**
+ * Represents audio input stream used for custom audio input configurations.
+ * @class AudioInputStream
+ */
+var AudioInputStream = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance.
+ * @constructor
+ */
+ function AudioInputStream() {
+ }
+ /**
+ * Creates a memory backed PushAudioInputStream with the specified audio format.
+ * @member AudioInputStream.createPushStream
+ * @function
+ * @public
+ * @param {AudioStreamFormat} format - The audio data format in which audio will be
+ * written to the push audio stream's write() method (Required if format is not 16 kHz 16bit mono PCM).
+ * @returns {PushAudioInputStream} The audio input stream being created.
+ */
+ AudioInputStream.createPushStream = function (format) {
+ return PushAudioInputStream.create(format);
+ };
+ /**
+ * Creates a PullAudioInputStream that delegates to the specified callback interface for read()
+ * and close() methods.
+ * @member AudioInputStream.createPullStream
+ * @function
+ * @public
+ * @param {PullAudioInputStreamCallback} callback - The custom audio input object, derived from
+ * PullAudioInputStreamCallback
+ * @param {AudioStreamFormat} format - The audio data format in which audio will be returned from
+ * the callback's read() method (Required if format is not 16 kHz 16bit mono PCM).
+ * @returns {PullAudioInputStream} The audio input stream being created.
+ */
+ AudioInputStream.createPullStream = function (callback, format) {
+ return PullAudioInputStream.create(callback, format);
+ // throw new Error("Oops");
+ };
+ return AudioInputStream;
+}());
+exports.AudioInputStream = AudioInputStream;
+/**
+ * Represents memory backed push audio input stream used for custom audio input configurations.
+ * @class PushAudioInputStream
+ */
+// tslint:disable-next-line:max-classes-per-file
+var PushAudioInputStream = /** @class */ (function (_super) {
+ __extends(PushAudioInputStream, _super);
+ function PushAudioInputStream() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ /**
+ * Creates a memory backed PushAudioInputStream with the specified audio format.
+ * @member PushAudioInputStream.create
+ * @function
+ * @public
+ * @param {AudioStreamFormat} format - The audio data format in which audio will be written to the
+ * push audio stream's write() method (Required if format is not 16 kHz 16bit mono PCM).
+ * @returns {PushAudioInputStream} The push audio input stream being created.
+ */
+ PushAudioInputStream.create = function (format) {
+ return new PushAudioInputStreamImpl(format);
+ };
+ return PushAudioInputStream;
+}(AudioInputStream));
+exports.PushAudioInputStream = PushAudioInputStream;
+/**
+ * Represents memory backed push audio input stream used for custom audio input configurations.
+ * @private
+ * @class PushAudioInputStreamImpl
+ */
+// tslint:disable-next-line:max-classes-per-file
+var PushAudioInputStreamImpl = /** @class */ (function (_super) {
+ __extends(PushAudioInputStreamImpl, _super);
+ /**
+ * Creates and initalizes an instance with the given values.
+ * @constructor
+ * @param {AudioStreamFormat} format - The audio stream format.
+ */
+ function PushAudioInputStreamImpl(format) {
+ var _this = _super.call(this) || this;
+ _this.onEvent = function (event) {
+ _this.privEvents.onEvent(event);
+ Exports_2.Events.instance.onEvent(event);
+ };
+ if (format === undefined) {
+ _this.privFormat = AudioStreamFormat_1.AudioStreamFormatImpl.getDefaultInputFormat();
+ }
+ else {
+ _this.privFormat = format;
+ }
+ _this.privEvents = new Exports_2.EventSource();
+ _this.privId = Guid_1.createNoDashGuid();
+ _this.privStream = new Exports_2.ChunkedArrayBufferStream(_this.privFormat.avgBytesPerSec / 10);
+ return _this;
+ }
+ Object.defineProperty(PushAudioInputStreamImpl.prototype, "format", {
+ /**
+ * Format information for the audio
+ */
+ get: function () {
+ return Exports_2.PromiseHelper.fromResult(this.privFormat);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Writes the audio data specified by making an internal copy of the data.
+ * @member PushAudioInputStreamImpl.prototype.write
+ * @function
+ * @public
+ * @param {ArrayBuffer} dataBuffer - The audio buffer of which this function will make a copy.
+ */
+ PushAudioInputStreamImpl.prototype.write = function (dataBuffer) {
+ this.privStream.writeStreamChunk({
+ buffer: dataBuffer,
+ isEnd: false,
+ timeReceived: Date.now()
+ });
+ };
+ /**
+ * Closes the stream.
+ * @member PushAudioInputStreamImpl.prototype.close
+ * @function
+ * @public
+ */
+ PushAudioInputStreamImpl.prototype.close = function () {
+ this.privStream.close();
+ };
+ PushAudioInputStreamImpl.prototype.id = function () {
+ return this.privId;
+ };
+ Object.defineProperty(PushAudioInputStreamImpl.prototype, "blob", {
+ get: function () {
+ var _this = this;
+ return this.attach("id").onSuccessContinueWithPromise(function (audioNode) {
+ var data = [];
+ var bufferData = Buffer.from("");
+ var readCycle = function () {
+ return audioNode.read().onSuccessContinueWithPromise(function (audioStreamChunk) {
+ if (!audioStreamChunk || audioStreamChunk.isEnd) {
+ if (typeof (XMLHttpRequest) !== "undefined") {
+ return Exports_2.PromiseHelper.fromResult(new Blob(data));
+ }
+ else {
+ return Exports_2.PromiseHelper.fromResult(Buffer.from(bufferData));
+ }
+ }
+ else {
+ if (typeof (Blob) !== "undefined") {
+ data.push(audioStreamChunk.buffer);
+ }
+ else {
+ bufferData = Buffer.concat([bufferData, _this.toBuffer(audioStreamChunk.buffer)]);
+ }
+ return readCycle();
+ }
+ });
+ };
+ return readCycle();
+ });
+ },
+ enumerable: true,
+ configurable: true
+ });
+ PushAudioInputStreamImpl.prototype.turnOn = function () {
+ this.onEvent(new Exports_2.AudioSourceInitializingEvent(this.privId)); // no stream id
+ this.onEvent(new Exports_2.AudioSourceReadyEvent(this.privId));
+ return Exports_2.PromiseHelper.fromResult(true);
+ };
+ PushAudioInputStreamImpl.prototype.attach = function (audioNodeId) {
+ var _this = this;
+ this.onEvent(new Exports_2.AudioStreamNodeAttachingEvent(this.privId, audioNodeId));
+ return this.turnOn()
+ .onSuccessContinueWith(function (_) {
+ // For now we support a single parallel reader of the pushed stream.
+ // So we can simiply hand the stream to the recognizer and let it recognize.
+ return _this.privStream;
+ })
+ .onSuccessContinueWith(function (stream) {
+ _this.onEvent(new Exports_2.AudioStreamNodeAttachedEvent(_this.privId, audioNodeId));
+ return {
+ detach: function () {
+ stream.readEnded();
+ _this.onEvent(new Exports_2.AudioStreamNodeDetachedEvent(_this.privId, audioNodeId));
+ _this.turnOff();
+ },
+ id: function () {
+ return audioNodeId;
+ },
+ read: function () {
+ return stream.read();
+ },
+ };
+ });
+ };
+ PushAudioInputStreamImpl.prototype.detach = function (audioNodeId) {
+ this.onEvent(new Exports_2.AudioStreamNodeDetachedEvent(this.privId, audioNodeId));
+ };
+ PushAudioInputStreamImpl.prototype.turnOff = function () {
+ return Exports_2.PromiseHelper.fromResult(false);
+ };
+ Object.defineProperty(PushAudioInputStreamImpl.prototype, "events", {
+ get: function () {
+ return this.privEvents;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(PushAudioInputStreamImpl.prototype, "deviceInfo", {
+ get: function () {
+ return Exports_2.PromiseHelper.fromResult({
+ bitspersample: this.privFormat.bitsPerSample,
+ channelcount: this.privFormat.channels,
+ connectivity: Exports_1.connectivity.Unknown,
+ manufacturer: "Speech SDK",
+ model: "PushStream",
+ samplerate: this.privFormat.samplesPerSec,
+ type: Exports_1.type.Stream,
+ });
+ },
+ enumerable: true,
+ configurable: true
+ });
+ PushAudioInputStreamImpl.prototype.toBuffer = function (arrayBuffer) {
+ var buf = Buffer.alloc(arrayBuffer.byteLength);
+ var view = new Uint8Array(arrayBuffer);
+ for (var i = 0; i < buf.length; ++i) {
+ buf[i] = view[i];
+ }
+ return buf;
+ };
+ return PushAudioInputStreamImpl;
+}(PushAudioInputStream));
+exports.PushAudioInputStreamImpl = PushAudioInputStreamImpl;
+/*
+ * Represents audio input stream used for custom audio input configurations.
+ * @class PullAudioInputStream
+ */
+// tslint:disable-next-line:max-classes-per-file
+var PullAudioInputStream = /** @class */ (function (_super) {
+ __extends(PullAudioInputStream, _super);
+ /**
+ * Creates and initializes and instance.
+ * @constructor
+ */
+ function PullAudioInputStream() {
+ return _super.call(this) || this;
+ }
+ /**
+ * Creates a PullAudioInputStream that delegates to the specified callback interface for
+ * read() and close() methods, using the default format (16 kHz 16bit mono PCM).
+ * @member PullAudioInputStream.create
+ * @function
+ * @public
+ * @param {PullAudioInputStreamCallback} callback - The custom audio input object,
+ * derived from PullAudioInputStreamCustomCallback
+ * @param {AudioStreamFormat} format - The audio data format in which audio will be
+ * returned from the callback's read() method (Required if format is not 16 kHz 16bit mono PCM).
+ * @returns {PullAudioInputStream} The push audio input stream being created.
+ */
+ PullAudioInputStream.create = function (callback, format) {
+ return new PullAudioInputStreamImpl(callback, format);
+ };
+ return PullAudioInputStream;
+}(AudioInputStream));
+exports.PullAudioInputStream = PullAudioInputStream;
+/**
+ * Represents audio input stream used for custom audio input configurations.
+ * @private
+ * @class PullAudioInputStreamImpl
+ */
+// tslint:disable-next-line:max-classes-per-file
+var PullAudioInputStreamImpl = /** @class */ (function (_super) {
+ __extends(PullAudioInputStreamImpl, _super);
+ /**
+ * Creates a PullAudioInputStream that delegates to the specified callback interface for
+ * read() and close() methods, using the default format (16 kHz 16bit mono PCM).
+ * @constructor
+ * @param {PullAudioInputStreamCallback} callback - The custom audio input object,
+ * derived from PullAudioInputStreamCustomCallback
+ * @param {AudioStreamFormat} format - The audio data format in which audio will be
+ * returned from the callback's read() method (Required if format is not 16 kHz 16bit mono PCM).
+ */
+ function PullAudioInputStreamImpl(callback, format) {
+ var _this = _super.call(this) || this;
+ _this.onEvent = function (event) {
+ _this.privEvents.onEvent(event);
+ Exports_2.Events.instance.onEvent(event);
+ };
+ if (undefined === format) {
+ _this.privFormat = Exports_3.AudioStreamFormat.getDefaultInputFormat();
+ }
+ else {
+ _this.privFormat = format;
+ }
+ _this.privEvents = new Exports_2.EventSource();
+ _this.privId = Guid_1.createNoDashGuid();
+ _this.privCallback = callback;
+ _this.privIsClosed = false;
+ _this.privBufferSize = _this.privFormat.avgBytesPerSec / 10;
+ return _this;
+ }
+ Object.defineProperty(PullAudioInputStreamImpl.prototype, "format", {
+ /**
+ * Format information for the audio
+ */
+ get: function () {
+ return Exports_2.PromiseHelper.fromResult(this.privFormat);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Closes the stream.
+ * @member PullAudioInputStreamImpl.prototype.close
+ * @function
+ * @public
+ */
+ PullAudioInputStreamImpl.prototype.close = function () {
+ this.privIsClosed = true;
+ this.privCallback.close();
+ };
+ PullAudioInputStreamImpl.prototype.id = function () {
+ return this.privId;
+ };
+ Object.defineProperty(PullAudioInputStreamImpl.prototype, "blob", {
+ get: function () {
+ return Exports_2.PromiseHelper.fromError("Not implemented");
+ },
+ enumerable: true,
+ configurable: true
+ });
+ PullAudioInputStreamImpl.prototype.turnOn = function () {
+ this.onEvent(new Exports_2.AudioSourceInitializingEvent(this.privId)); // no stream id
+ this.onEvent(new Exports_2.AudioSourceReadyEvent(this.privId));
+ return Exports_2.PromiseHelper.fromResult(true);
+ };
+ PullAudioInputStreamImpl.prototype.attach = function (audioNodeId) {
+ var _this = this;
+ this.onEvent(new Exports_2.AudioStreamNodeAttachingEvent(this.privId, audioNodeId));
+ return this.turnOn()
+ .onSuccessContinueWith(function (result) {
+ _this.onEvent(new Exports_2.AudioStreamNodeAttachedEvent(_this.privId, audioNodeId));
+ return {
+ detach: function () {
+ _this.privCallback.close();
+ _this.onEvent(new Exports_2.AudioStreamNodeDetachedEvent(_this.privId, audioNodeId));
+ _this.turnOff();
+ },
+ id: function () {
+ return audioNodeId;
+ },
+ read: function () {
+ var totalBytes = 0;
+ var transmitBuff;
+ // Until we have the minimum number of bytes to send in a transmission, keep asking for more.
+ while (totalBytes < _this.privBufferSize) {
+ // Sizing the read buffer to the delta between the perfect size and what's left means we won't ever get too much
+ // data back.
+ var readBuff = new ArrayBuffer(_this.privBufferSize - totalBytes);
+ var pulledBytes = _this.privCallback.read(readBuff);
+ // If there is no return buffer yet defined, set the return buffer to the that was just populated.
+ // This was, if we have enough data there's no copy penalty, but if we don't we have a buffer that's the
+ // preferred size allocated.
+ if (undefined === transmitBuff) {
+ transmitBuff = readBuff;
+ }
+ else {
+ // Not the first bite at the apple, so fill the return buffer with the data we got back.
+ var intView = new Int8Array(transmitBuff);
+ intView.set(new Int8Array(readBuff), totalBytes);
+ }
+ // If there are no bytes to read, just break out and be done.
+ if (0 === pulledBytes) {
+ break;
+ }
+ totalBytes += pulledBytes;
+ }
+ return Exports_2.PromiseHelper.fromResult({
+ buffer: transmitBuff.slice(0, totalBytes),
+ isEnd: _this.privIsClosed || totalBytes === 0,
+ timeReceived: Date.now(),
+ });
+ },
+ };
+ });
+ };
+ PullAudioInputStreamImpl.prototype.detach = function (audioNodeId) {
+ this.onEvent(new Exports_2.AudioStreamNodeDetachedEvent(this.privId, audioNodeId));
+ };
+ PullAudioInputStreamImpl.prototype.turnOff = function () {
+ return Exports_2.PromiseHelper.fromResult(false);
+ };
+ Object.defineProperty(PullAudioInputStreamImpl.prototype, "events", {
+ get: function () {
+ return this.privEvents;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(PullAudioInputStreamImpl.prototype, "deviceInfo", {
+ get: function () {
+ return Exports_2.PromiseHelper.fromResult({
+ bitspersample: this.privFormat.bitsPerSample,
+ channelcount: this.privFormat.channels,
+ connectivity: Exports_1.connectivity.Unknown,
+ manufacturer: "Speech SDK",
+ model: "PullStream",
+ samplerate: this.privFormat.samplesPerSec,
+ type: Exports_1.type.Stream,
+ });
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return PullAudioInputStreamImpl;
+}(PullAudioInputStream));
+exports.PullAudioInputStreamImpl = PullAudioInputStreamImpl;
+
+
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(37).Buffer))
+
+/***/ }),
+/* 37 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(global) {/*!
+ * The buffer module from node.js, for the browser.
+ *
+ * @author Feross Aboukhadijeh
+ * @license MIT
+ */
+/* eslint-disable no-proto */
+
+
+
+var base64 = __webpack_require__(39)
+var ieee754 = __webpack_require__(40)
+var isArray = __webpack_require__(41)
+
+exports.Buffer = Buffer
+exports.SlowBuffer = SlowBuffer
+exports.INSPECT_MAX_BYTES = 50
+
+/**
+ * If `Buffer.TYPED_ARRAY_SUPPORT`:
+ * === true Use Uint8Array implementation (fastest)
+ * === false Use Object implementation (most compatible, even IE6)
+ *
+ * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,
+ * Opera 11.6+, iOS 4.2+.
+ *
+ * Due to various browser bugs, sometimes the Object implementation will be used even
+ * when the browser supports typed arrays.
+ *
+ * Note:
+ *
+ * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,
+ * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.
+ *
+ * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.
+ *
+ * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of
+ * incorrect length in some situations.
+
+ * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they
+ * get the Object implementation, which is slower but behaves correctly.
+ */
+Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined
+ ? global.TYPED_ARRAY_SUPPORT
+ : typedArraySupport()
+
+/*
+ * Export kMaxLength after typed array support is determined.
+ */
+exports.kMaxLength = kMaxLength()
+
+function typedArraySupport () {
+ try {
+ var arr = new Uint8Array(1)
+ arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}
+ return arr.foo() === 42 && // typed array instances can be augmented
+ typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`
+ arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`
+ } catch (e) {
+ return false
+ }
+}
+
+function kMaxLength () {
+ return Buffer.TYPED_ARRAY_SUPPORT
+ ? 0x7fffffff
+ : 0x3fffffff
+}
+
+function createBuffer (that, length) {
+ if (kMaxLength() < length) {
+ throw new RangeError('Invalid typed array length')
+ }
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ // Return an augmented `Uint8Array` instance, for best performance
+ that = new Uint8Array(length)
+ that.__proto__ = Buffer.prototype
+ } else {
+ // Fallback: Return an object instance of the Buffer class
+ if (that === null) {
+ that = new Buffer(length)
+ }
+ that.length = length
+ }
+
+ return that
+}
+
+/**
+ * The Buffer constructor returns instances of `Uint8Array` that have their
+ * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of
+ * `Uint8Array`, so the returned instances will have all the node `Buffer` methods
+ * and the `Uint8Array` methods. Square bracket notation works as expected -- it
+ * returns a single octet.
+ *
+ * The `Uint8Array` prototype remains unmodified.
+ */
+
+function Buffer (arg, encodingOrOffset, length) {
+ if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {
+ return new Buffer(arg, encodingOrOffset, length)
+ }
+
+ // Common case.
+ if (typeof arg === 'number') {
+ if (typeof encodingOrOffset === 'string') {
+ throw new Error(
+ 'If encoding is specified then the first argument must be a string'
+ )
+ }
+ return allocUnsafe(this, arg)
+ }
+ return from(this, arg, encodingOrOffset, length)
+}
+
+Buffer.poolSize = 8192 // not used by this implementation
+
+// TODO: Legacy, not needed anymore. Remove in next major version.
+Buffer._augment = function (arr) {
+ arr.__proto__ = Buffer.prototype
+ return arr
+}
+
+function from (that, value, encodingOrOffset, length) {
+ if (typeof value === 'number') {
+ throw new TypeError('"value" argument must not be a number')
+ }
+
+ if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
+ return fromArrayBuffer(that, value, encodingOrOffset, length)
+ }
+
+ if (typeof value === 'string') {
+ return fromString(that, value, encodingOrOffset)
+ }
+
+ return fromObject(that, value)
+}
+
+/**
+ * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError
+ * if value is a number.
+ * Buffer.from(str[, encoding])
+ * Buffer.from(array)
+ * Buffer.from(buffer)
+ * Buffer.from(arrayBuffer[, byteOffset[, length]])
+ **/
+Buffer.from = function (value, encodingOrOffset, length) {
+ return from(null, value, encodingOrOffset, length)
+}
+
+if (Buffer.TYPED_ARRAY_SUPPORT) {
+ Buffer.prototype.__proto__ = Uint8Array.prototype
+ Buffer.__proto__ = Uint8Array
+ if (typeof Symbol !== 'undefined' && Symbol.species &&
+ Buffer[Symbol.species] === Buffer) {
+ // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97
+ Object.defineProperty(Buffer, Symbol.species, {
+ value: null,
+ configurable: true
+ })
+ }
+}
+
+function assertSize (size) {
+ if (typeof size !== 'number') {
+ throw new TypeError('"size" argument must be a number')
+ } else if (size < 0) {
+ throw new RangeError('"size" argument must not be negative')
+ }
+}
+
+function alloc (that, size, fill, encoding) {
+ assertSize(size)
+ if (size <= 0) {
+ return createBuffer(that, size)
+ }
+ if (fill !== undefined) {
+ // Only pay attention to encoding if it's a string. This
+ // prevents accidentally sending in a number that would
+ // be interpretted as a start offset.
+ return typeof encoding === 'string'
+ ? createBuffer(that, size).fill(fill, encoding)
+ : createBuffer(that, size).fill(fill)
+ }
+ return createBuffer(that, size)
+}
+
+/**
+ * Creates a new filled Buffer instance.
+ * alloc(size[, fill[, encoding]])
+ **/
+Buffer.alloc = function (size, fill, encoding) {
+ return alloc(null, size, fill, encoding)
+}
+
+function allocUnsafe (that, size) {
+ assertSize(size)
+ that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)
+ if (!Buffer.TYPED_ARRAY_SUPPORT) {
+ for (var i = 0; i < size; ++i) {
+ that[i] = 0
+ }
+ }
+ return that
+}
+
+/**
+ * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.
+ * */
+Buffer.allocUnsafe = function (size) {
+ return allocUnsafe(null, size)
+}
+/**
+ * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.
+ */
+Buffer.allocUnsafeSlow = function (size) {
+ return allocUnsafe(null, size)
+}
+
+function fromString (that, string, encoding) {
+ if (typeof encoding !== 'string' || encoding === '') {
+ encoding = 'utf8'
+ }
+
+ if (!Buffer.isEncoding(encoding)) {
+ throw new TypeError('"encoding" must be a valid string encoding')
+ }
+
+ var length = byteLength(string, encoding) | 0
+ that = createBuffer(that, length)
+
+ var actual = that.write(string, encoding)
+
+ if (actual !== length) {
+ // Writing a hex string, for example, that contains invalid characters will
+ // cause everything after the first invalid character to be ignored. (e.g.
+ // 'abxxcd' will be treated as 'ab')
+ that = that.slice(0, actual)
+ }
+
+ return that
+}
+
+function fromArrayLike (that, array) {
+ var length = array.length < 0 ? 0 : checked(array.length) | 0
+ that = createBuffer(that, length)
+ for (var i = 0; i < length; i += 1) {
+ that[i] = array[i] & 255
+ }
+ return that
+}
+
+function fromArrayBuffer (that, array, byteOffset, length) {
+ array.byteLength // this throws if `array` is not a valid ArrayBuffer
+
+ if (byteOffset < 0 || array.byteLength < byteOffset) {
+ throw new RangeError('\'offset\' is out of bounds')
+ }
+
+ if (array.byteLength < byteOffset + (length || 0)) {
+ throw new RangeError('\'length\' is out of bounds')
+ }
+
+ if (byteOffset === undefined && length === undefined) {
+ array = new Uint8Array(array)
+ } else if (length === undefined) {
+ array = new Uint8Array(array, byteOffset)
+ } else {
+ array = new Uint8Array(array, byteOffset, length)
+ }
+
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ // Return an augmented `Uint8Array` instance, for best performance
+ that = array
+ that.__proto__ = Buffer.prototype
+ } else {
+ // Fallback: Return an object instance of the Buffer class
+ that = fromArrayLike(that, array)
+ }
+ return that
+}
+
+function fromObject (that, obj) {
+ if (Buffer.isBuffer(obj)) {
+ var len = checked(obj.length) | 0
+ that = createBuffer(that, len)
+
+ if (that.length === 0) {
+ return that
+ }
+
+ obj.copy(that, 0, 0, len)
+ return that
+ }
+
+ if (obj) {
+ if ((typeof ArrayBuffer !== 'undefined' &&
+ obj.buffer instanceof ArrayBuffer) || 'length' in obj) {
+ if (typeof obj.length !== 'number' || isnan(obj.length)) {
+ return createBuffer(that, 0)
+ }
+ return fromArrayLike(that, obj)
+ }
+
+ if (obj.type === 'Buffer' && isArray(obj.data)) {
+ return fromArrayLike(that, obj.data)
+ }
+ }
+
+ throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')
+}
+
+function checked (length) {
+ // Note: cannot use `length < kMaxLength()` here because that fails when
+ // length is NaN (which is otherwise coerced to zero.)
+ if (length >= kMaxLength()) {
+ throw new RangeError('Attempt to allocate Buffer larger than maximum ' +
+ 'size: 0x' + kMaxLength().toString(16) + ' bytes')
+ }
+ return length | 0
+}
+
+function SlowBuffer (length) {
+ if (+length != length) { // eslint-disable-line eqeqeq
+ length = 0
+ }
+ return Buffer.alloc(+length)
+}
+
+Buffer.isBuffer = function isBuffer (b) {
+ return !!(b != null && b._isBuffer)
+}
+
+Buffer.compare = function compare (a, b) {
+ if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {
+ throw new TypeError('Arguments must be Buffers')
+ }
+
+ if (a === b) return 0
+
+ var x = a.length
+ var y = b.length
+
+ for (var i = 0, len = Math.min(x, y); i < len; ++i) {
+ if (a[i] !== b[i]) {
+ x = a[i]
+ y = b[i]
+ break
+ }
+ }
+
+ if (x < y) return -1
+ if (y < x) return 1
+ return 0
+}
+
+Buffer.isEncoding = function isEncoding (encoding) {
+ switch (String(encoding).toLowerCase()) {
+ case 'hex':
+ case 'utf8':
+ case 'utf-8':
+ case 'ascii':
+ case 'latin1':
+ case 'binary':
+ case 'base64':
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return true
+ default:
+ return false
+ }
+}
+
+Buffer.concat = function concat (list, length) {
+ if (!isArray(list)) {
+ throw new TypeError('"list" argument must be an Array of Buffers')
+ }
+
+ if (list.length === 0) {
+ return Buffer.alloc(0)
+ }
+
+ var i
+ if (length === undefined) {
+ length = 0
+ for (i = 0; i < list.length; ++i) {
+ length += list[i].length
+ }
+ }
+
+ var buffer = Buffer.allocUnsafe(length)
+ var pos = 0
+ for (i = 0; i < list.length; ++i) {
+ var buf = list[i]
+ if (!Buffer.isBuffer(buf)) {
+ throw new TypeError('"list" argument must be an Array of Buffers')
+ }
+ buf.copy(buffer, pos)
+ pos += buf.length
+ }
+ return buffer
+}
+
+function byteLength (string, encoding) {
+ if (Buffer.isBuffer(string)) {
+ return string.length
+ }
+ if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&
+ (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {
+ return string.byteLength
+ }
+ if (typeof string !== 'string') {
+ string = '' + string
+ }
+
+ var len = string.length
+ if (len === 0) return 0
+
+ // Use a for loop to avoid recursion
+ var loweredCase = false
+ for (;;) {
+ switch (encoding) {
+ case 'ascii':
+ case 'latin1':
+ case 'binary':
+ return len
+ case 'utf8':
+ case 'utf-8':
+ case undefined:
+ return utf8ToBytes(string).length
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return len * 2
+ case 'hex':
+ return len >>> 1
+ case 'base64':
+ return base64ToBytes(string).length
+ default:
+ if (loweredCase) return utf8ToBytes(string).length // assume utf8
+ encoding = ('' + encoding).toLowerCase()
+ loweredCase = true
+ }
+ }
+}
+Buffer.byteLength = byteLength
+
+function slowToString (encoding, start, end) {
+ var loweredCase = false
+
+ // No need to verify that "this.length <= MAX_UINT32" since it's a read-only
+ // property of a typed array.
+
+ // This behaves neither like String nor Uint8Array in that we set start/end
+ // to their upper/lower bounds if the value passed is out of range.
+ // undefined is handled specially as per ECMA-262 6th Edition,
+ // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.
+ if (start === undefined || start < 0) {
+ start = 0
+ }
+ // Return early if start > this.length. Done here to prevent potential uint32
+ // coercion fail below.
+ if (start > this.length) {
+ return ''
+ }
+
+ if (end === undefined || end > this.length) {
+ end = this.length
+ }
+
+ if (end <= 0) {
+ return ''
+ }
+
+ // Force coersion to uint32. This will also coerce falsey/NaN values to 0.
+ end >>>= 0
+ start >>>= 0
+
+ if (end <= start) {
+ return ''
+ }
+
+ if (!encoding) encoding = 'utf8'
+
+ while (true) {
+ switch (encoding) {
+ case 'hex':
+ return hexSlice(this, start, end)
+
+ case 'utf8':
+ case 'utf-8':
+ return utf8Slice(this, start, end)
+
+ case 'ascii':
+ return asciiSlice(this, start, end)
+
+ case 'latin1':
+ case 'binary':
+ return latin1Slice(this, start, end)
+
+ case 'base64':
+ return base64Slice(this, start, end)
+
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return utf16leSlice(this, start, end)
+
+ default:
+ if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
+ encoding = (encoding + '').toLowerCase()
+ loweredCase = true
+ }
+ }
+}
+
+// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect
+// Buffer instances.
+Buffer.prototype._isBuffer = true
+
+function swap (b, n, m) {
+ var i = b[n]
+ b[n] = b[m]
+ b[m] = i
+}
+
+Buffer.prototype.swap16 = function swap16 () {
+ var len = this.length
+ if (len % 2 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 16-bits')
+ }
+ for (var i = 0; i < len; i += 2) {
+ swap(this, i, i + 1)
+ }
+ return this
+}
+
+Buffer.prototype.swap32 = function swap32 () {
+ var len = this.length
+ if (len % 4 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 32-bits')
+ }
+ for (var i = 0; i < len; i += 4) {
+ swap(this, i, i + 3)
+ swap(this, i + 1, i + 2)
+ }
+ return this
+}
+
+Buffer.prototype.swap64 = function swap64 () {
+ var len = this.length
+ if (len % 8 !== 0) {
+ throw new RangeError('Buffer size must be a multiple of 64-bits')
+ }
+ for (var i = 0; i < len; i += 8) {
+ swap(this, i, i + 7)
+ swap(this, i + 1, i + 6)
+ swap(this, i + 2, i + 5)
+ swap(this, i + 3, i + 4)
+ }
+ return this
+}
+
+Buffer.prototype.toString = function toString () {
+ var length = this.length | 0
+ if (length === 0) return ''
+ if (arguments.length === 0) return utf8Slice(this, 0, length)
+ return slowToString.apply(this, arguments)
+}
+
+Buffer.prototype.equals = function equals (b) {
+ if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')
+ if (this === b) return true
+ return Buffer.compare(this, b) === 0
+}
+
+Buffer.prototype.inspect = function inspect () {
+ var str = ''
+ var max = exports.INSPECT_MAX_BYTES
+ if (this.length > 0) {
+ str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')
+ if (this.length > max) str += ' ... '
+ }
+ return ''
+}
+
+Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {
+ if (!Buffer.isBuffer(target)) {
+ throw new TypeError('Argument must be a Buffer')
+ }
+
+ if (start === undefined) {
+ start = 0
+ }
+ if (end === undefined) {
+ end = target ? target.length : 0
+ }
+ if (thisStart === undefined) {
+ thisStart = 0
+ }
+ if (thisEnd === undefined) {
+ thisEnd = this.length
+ }
+
+ if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {
+ throw new RangeError('out of range index')
+ }
+
+ if (thisStart >= thisEnd && start >= end) {
+ return 0
+ }
+ if (thisStart >= thisEnd) {
+ return -1
+ }
+ if (start >= end) {
+ return 1
+ }
+
+ start >>>= 0
+ end >>>= 0
+ thisStart >>>= 0
+ thisEnd >>>= 0
+
+ if (this === target) return 0
+
+ var x = thisEnd - thisStart
+ var y = end - start
+ var len = Math.min(x, y)
+
+ var thisCopy = this.slice(thisStart, thisEnd)
+ var targetCopy = target.slice(start, end)
+
+ for (var i = 0; i < len; ++i) {
+ if (thisCopy[i] !== targetCopy[i]) {
+ x = thisCopy[i]
+ y = targetCopy[i]
+ break
+ }
+ }
+
+ if (x < y) return -1
+ if (y < x) return 1
+ return 0
+}
+
+// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,
+// OR the last index of `val` in `buffer` at offset <= `byteOffset`.
+//
+// Arguments:
+// - buffer - a Buffer to search
+// - val - a string, Buffer, or number
+// - byteOffset - an index into `buffer`; will be clamped to an int32
+// - encoding - an optional encoding, relevant is val is a string
+// - dir - true for indexOf, false for lastIndexOf
+function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {
+ // Empty buffer means no match
+ if (buffer.length === 0) return -1
+
+ // Normalize byteOffset
+ if (typeof byteOffset === 'string') {
+ encoding = byteOffset
+ byteOffset = 0
+ } else if (byteOffset > 0x7fffffff) {
+ byteOffset = 0x7fffffff
+ } else if (byteOffset < -0x80000000) {
+ byteOffset = -0x80000000
+ }
+ byteOffset = +byteOffset // Coerce to Number.
+ if (isNaN(byteOffset)) {
+ // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer
+ byteOffset = dir ? 0 : (buffer.length - 1)
+ }
+
+ // Normalize byteOffset: negative offsets start from the end of the buffer
+ if (byteOffset < 0) byteOffset = buffer.length + byteOffset
+ if (byteOffset >= buffer.length) {
+ if (dir) return -1
+ else byteOffset = buffer.length - 1
+ } else if (byteOffset < 0) {
+ if (dir) byteOffset = 0
+ else return -1
+ }
+
+ // Normalize val
+ if (typeof val === 'string') {
+ val = Buffer.from(val, encoding)
+ }
+
+ // Finally, search either indexOf (if dir is true) or lastIndexOf
+ if (Buffer.isBuffer(val)) {
+ // Special case: looking for empty string/buffer always fails
+ if (val.length === 0) {
+ return -1
+ }
+ return arrayIndexOf(buffer, val, byteOffset, encoding, dir)
+ } else if (typeof val === 'number') {
+ val = val & 0xFF // Search for a byte value [0-255]
+ if (Buffer.TYPED_ARRAY_SUPPORT &&
+ typeof Uint8Array.prototype.indexOf === 'function') {
+ if (dir) {
+ return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)
+ } else {
+ return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)
+ }
+ }
+ return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)
+ }
+
+ throw new TypeError('val must be string, number or Buffer')
+}
+
+function arrayIndexOf (arr, val, byteOffset, encoding, dir) {
+ var indexSize = 1
+ var arrLength = arr.length
+ var valLength = val.length
+
+ if (encoding !== undefined) {
+ encoding = String(encoding).toLowerCase()
+ if (encoding === 'ucs2' || encoding === 'ucs-2' ||
+ encoding === 'utf16le' || encoding === 'utf-16le') {
+ if (arr.length < 2 || val.length < 2) {
+ return -1
+ }
+ indexSize = 2
+ arrLength /= 2
+ valLength /= 2
+ byteOffset /= 2
+ }
+ }
+
+ function read (buf, i) {
+ if (indexSize === 1) {
+ return buf[i]
+ } else {
+ return buf.readUInt16BE(i * indexSize)
+ }
+ }
+
+ var i
+ if (dir) {
+ var foundIndex = -1
+ for (i = byteOffset; i < arrLength; i++) {
+ if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {
+ if (foundIndex === -1) foundIndex = i
+ if (i - foundIndex + 1 === valLength) return foundIndex * indexSize
+ } else {
+ if (foundIndex !== -1) i -= i - foundIndex
+ foundIndex = -1
+ }
+ }
+ } else {
+ if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength
+ for (i = byteOffset; i >= 0; i--) {
+ var found = true
+ for (var j = 0; j < valLength; j++) {
+ if (read(arr, i + j) !== read(val, j)) {
+ found = false
+ break
+ }
+ }
+ if (found) return i
+ }
+ }
+
+ return -1
+}
+
+Buffer.prototype.includes = function includes (val, byteOffset, encoding) {
+ return this.indexOf(val, byteOffset, encoding) !== -1
+}
+
+Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {
+ return bidirectionalIndexOf(this, val, byteOffset, encoding, true)
+}
+
+Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {
+ return bidirectionalIndexOf(this, val, byteOffset, encoding, false)
+}
+
+function hexWrite (buf, string, offset, length) {
+ offset = Number(offset) || 0
+ var remaining = buf.length - offset
+ if (!length) {
+ length = remaining
+ } else {
+ length = Number(length)
+ if (length > remaining) {
+ length = remaining
+ }
+ }
+
+ // must be an even number of digits
+ var strLen = string.length
+ if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')
+
+ if (length > strLen / 2) {
+ length = strLen / 2
+ }
+ for (var i = 0; i < length; ++i) {
+ var parsed = parseInt(string.substr(i * 2, 2), 16)
+ if (isNaN(parsed)) return i
+ buf[offset + i] = parsed
+ }
+ return i
+}
+
+function utf8Write (buf, string, offset, length) {
+ return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)
+}
+
+function asciiWrite (buf, string, offset, length) {
+ return blitBuffer(asciiToBytes(string), buf, offset, length)
+}
+
+function latin1Write (buf, string, offset, length) {
+ return asciiWrite(buf, string, offset, length)
+}
+
+function base64Write (buf, string, offset, length) {
+ return blitBuffer(base64ToBytes(string), buf, offset, length)
+}
+
+function ucs2Write (buf, string, offset, length) {
+ return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)
+}
+
+Buffer.prototype.write = function write (string, offset, length, encoding) {
+ // Buffer#write(string)
+ if (offset === undefined) {
+ encoding = 'utf8'
+ length = this.length
+ offset = 0
+ // Buffer#write(string, encoding)
+ } else if (length === undefined && typeof offset === 'string') {
+ encoding = offset
+ length = this.length
+ offset = 0
+ // Buffer#write(string, offset[, length][, encoding])
+ } else if (isFinite(offset)) {
+ offset = offset | 0
+ if (isFinite(length)) {
+ length = length | 0
+ if (encoding === undefined) encoding = 'utf8'
+ } else {
+ encoding = length
+ length = undefined
+ }
+ // legacy write(string, encoding, offset, length) - remove in v0.13
+ } else {
+ throw new Error(
+ 'Buffer.write(string, encoding, offset[, length]) is no longer supported'
+ )
+ }
+
+ var remaining = this.length - offset
+ if (length === undefined || length > remaining) length = remaining
+
+ if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {
+ throw new RangeError('Attempt to write outside buffer bounds')
+ }
+
+ if (!encoding) encoding = 'utf8'
+
+ var loweredCase = false
+ for (;;) {
+ switch (encoding) {
+ case 'hex':
+ return hexWrite(this, string, offset, length)
+
+ case 'utf8':
+ case 'utf-8':
+ return utf8Write(this, string, offset, length)
+
+ case 'ascii':
+ return asciiWrite(this, string, offset, length)
+
+ case 'latin1':
+ case 'binary':
+ return latin1Write(this, string, offset, length)
+
+ case 'base64':
+ // Warning: maxLength not taken into account in base64Write
+ return base64Write(this, string, offset, length)
+
+ case 'ucs2':
+ case 'ucs-2':
+ case 'utf16le':
+ case 'utf-16le':
+ return ucs2Write(this, string, offset, length)
+
+ default:
+ if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)
+ encoding = ('' + encoding).toLowerCase()
+ loweredCase = true
+ }
+ }
+}
+
+Buffer.prototype.toJSON = function toJSON () {
+ return {
+ type: 'Buffer',
+ data: Array.prototype.slice.call(this._arr || this, 0)
+ }
+}
+
+function base64Slice (buf, start, end) {
+ if (start === 0 && end === buf.length) {
+ return base64.fromByteArray(buf)
+ } else {
+ return base64.fromByteArray(buf.slice(start, end))
+ }
+}
+
+function utf8Slice (buf, start, end) {
+ end = Math.min(buf.length, end)
+ var res = []
+
+ var i = start
+ while (i < end) {
+ var firstByte = buf[i]
+ var codePoint = null
+ var bytesPerSequence = (firstByte > 0xEF) ? 4
+ : (firstByte > 0xDF) ? 3
+ : (firstByte > 0xBF) ? 2
+ : 1
+
+ if (i + bytesPerSequence <= end) {
+ var secondByte, thirdByte, fourthByte, tempCodePoint
+
+ switch (bytesPerSequence) {
+ case 1:
+ if (firstByte < 0x80) {
+ codePoint = firstByte
+ }
+ break
+ case 2:
+ secondByte = buf[i + 1]
+ if ((secondByte & 0xC0) === 0x80) {
+ tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)
+ if (tempCodePoint > 0x7F) {
+ codePoint = tempCodePoint
+ }
+ }
+ break
+ case 3:
+ secondByte = buf[i + 1]
+ thirdByte = buf[i + 2]
+ if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {
+ tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)
+ if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {
+ codePoint = tempCodePoint
+ }
+ }
+ break
+ case 4:
+ secondByte = buf[i + 1]
+ thirdByte = buf[i + 2]
+ fourthByte = buf[i + 3]
+ if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {
+ tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)
+ if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {
+ codePoint = tempCodePoint
+ }
+ }
+ }
+ }
+
+ if (codePoint === null) {
+ // we did not generate a valid codePoint so insert a
+ // replacement char (U+FFFD) and advance only 1 byte
+ codePoint = 0xFFFD
+ bytesPerSequence = 1
+ } else if (codePoint > 0xFFFF) {
+ // encode to utf16 (surrogate pair dance)
+ codePoint -= 0x10000
+ res.push(codePoint >>> 10 & 0x3FF | 0xD800)
+ codePoint = 0xDC00 | codePoint & 0x3FF
+ }
+
+ res.push(codePoint)
+ i += bytesPerSequence
+ }
+
+ return decodeCodePointsArray(res)
+}
+
+// Based on http://stackoverflow.com/a/22747272/680742, the browser with
+// the lowest limit is Chrome, with 0x10000 args.
+// We go 1 magnitude less, for safety
+var MAX_ARGUMENTS_LENGTH = 0x1000
+
+function decodeCodePointsArray (codePoints) {
+ var len = codePoints.length
+ if (len <= MAX_ARGUMENTS_LENGTH) {
+ return String.fromCharCode.apply(String, codePoints) // avoid extra slice()
+ }
+
+ // Decode in chunks to avoid "call stack size exceeded".
+ var res = ''
+ var i = 0
+ while (i < len) {
+ res += String.fromCharCode.apply(
+ String,
+ codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)
+ )
+ }
+ return res
+}
+
+function asciiSlice (buf, start, end) {
+ var ret = ''
+ end = Math.min(buf.length, end)
+
+ for (var i = start; i < end; ++i) {
+ ret += String.fromCharCode(buf[i] & 0x7F)
+ }
+ return ret
+}
+
+function latin1Slice (buf, start, end) {
+ var ret = ''
+ end = Math.min(buf.length, end)
+
+ for (var i = start; i < end; ++i) {
+ ret += String.fromCharCode(buf[i])
+ }
+ return ret
+}
+
+function hexSlice (buf, start, end) {
+ var len = buf.length
+
+ if (!start || start < 0) start = 0
+ if (!end || end < 0 || end > len) end = len
+
+ var out = ''
+ for (var i = start; i < end; ++i) {
+ out += toHex(buf[i])
+ }
+ return out
+}
+
+function utf16leSlice (buf, start, end) {
+ var bytes = buf.slice(start, end)
+ var res = ''
+ for (var i = 0; i < bytes.length; i += 2) {
+ res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)
+ }
+ return res
+}
+
+Buffer.prototype.slice = function slice (start, end) {
+ var len = this.length
+ start = ~~start
+ end = end === undefined ? len : ~~end
+
+ if (start < 0) {
+ start += len
+ if (start < 0) start = 0
+ } else if (start > len) {
+ start = len
+ }
+
+ if (end < 0) {
+ end += len
+ if (end < 0) end = 0
+ } else if (end > len) {
+ end = len
+ }
+
+ if (end < start) end = start
+
+ var newBuf
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ newBuf = this.subarray(start, end)
+ newBuf.__proto__ = Buffer.prototype
+ } else {
+ var sliceLen = end - start
+ newBuf = new Buffer(sliceLen, undefined)
+ for (var i = 0; i < sliceLen; ++i) {
+ newBuf[i] = this[i + start]
+ }
+ }
+
+ return newBuf
+}
+
+/*
+ * Need to make sure that buffer isn't trying to write out of bounds.
+ */
+function checkOffset (offset, ext, length) {
+ if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')
+ if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')
+}
+
+Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {
+ offset = offset | 0
+ byteLength = byteLength | 0
+ if (!noAssert) checkOffset(offset, byteLength, this.length)
+
+ var val = this[offset]
+ var mul = 1
+ var i = 0
+ while (++i < byteLength && (mul *= 0x100)) {
+ val += this[offset + i] * mul
+ }
+
+ return val
+}
+
+Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {
+ offset = offset | 0
+ byteLength = byteLength | 0
+ if (!noAssert) {
+ checkOffset(offset, byteLength, this.length)
+ }
+
+ var val = this[offset + --byteLength]
+ var mul = 1
+ while (byteLength > 0 && (mul *= 0x100)) {
+ val += this[offset + --byteLength] * mul
+ }
+
+ return val
+}
+
+Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 1, this.length)
+ return this[offset]
+}
+
+Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 2, this.length)
+ return this[offset] | (this[offset + 1] << 8)
+}
+
+Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 2, this.length)
+ return (this[offset] << 8) | this[offset + 1]
+}
+
+Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 4, this.length)
+
+ return ((this[offset]) |
+ (this[offset + 1] << 8) |
+ (this[offset + 2] << 16)) +
+ (this[offset + 3] * 0x1000000)
+}
+
+Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 4, this.length)
+
+ return (this[offset] * 0x1000000) +
+ ((this[offset + 1] << 16) |
+ (this[offset + 2] << 8) |
+ this[offset + 3])
+}
+
+Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {
+ offset = offset | 0
+ byteLength = byteLength | 0
+ if (!noAssert) checkOffset(offset, byteLength, this.length)
+
+ var val = this[offset]
+ var mul = 1
+ var i = 0
+ while (++i < byteLength && (mul *= 0x100)) {
+ val += this[offset + i] * mul
+ }
+ mul *= 0x80
+
+ if (val >= mul) val -= Math.pow(2, 8 * byteLength)
+
+ return val
+}
+
+Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {
+ offset = offset | 0
+ byteLength = byteLength | 0
+ if (!noAssert) checkOffset(offset, byteLength, this.length)
+
+ var i = byteLength
+ var mul = 1
+ var val = this[offset + --i]
+ while (i > 0 && (mul *= 0x100)) {
+ val += this[offset + --i] * mul
+ }
+ mul *= 0x80
+
+ if (val >= mul) val -= Math.pow(2, 8 * byteLength)
+
+ return val
+}
+
+Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 1, this.length)
+ if (!(this[offset] & 0x80)) return (this[offset])
+ return ((0xff - this[offset] + 1) * -1)
+}
+
+Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 2, this.length)
+ var val = this[offset] | (this[offset + 1] << 8)
+ return (val & 0x8000) ? val | 0xFFFF0000 : val
+}
+
+Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 2, this.length)
+ var val = this[offset + 1] | (this[offset] << 8)
+ return (val & 0x8000) ? val | 0xFFFF0000 : val
+}
+
+Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 4, this.length)
+
+ return (this[offset]) |
+ (this[offset + 1] << 8) |
+ (this[offset + 2] << 16) |
+ (this[offset + 3] << 24)
+}
+
+Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 4, this.length)
+
+ return (this[offset] << 24) |
+ (this[offset + 1] << 16) |
+ (this[offset + 2] << 8) |
+ (this[offset + 3])
+}
+
+Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 4, this.length)
+ return ieee754.read(this, offset, true, 23, 4)
+}
+
+Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 4, this.length)
+ return ieee754.read(this, offset, false, 23, 4)
+}
+
+Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 8, this.length)
+ return ieee754.read(this, offset, true, 52, 8)
+}
+
+Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {
+ if (!noAssert) checkOffset(offset, 8, this.length)
+ return ieee754.read(this, offset, false, 52, 8)
+}
+
+function checkInt (buf, value, offset, ext, max, min) {
+ if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance')
+ if (value > max || value < min) throw new RangeError('"value" argument is out of bounds')
+ if (offset + ext > buf.length) throw new RangeError('Index out of range')
+}
+
+Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {
+ value = +value
+ offset = offset | 0
+ byteLength = byteLength | 0
+ if (!noAssert) {
+ var maxBytes = Math.pow(2, 8 * byteLength) - 1
+ checkInt(this, value, offset, byteLength, maxBytes, 0)
+ }
+
+ var mul = 1
+ var i = 0
+ this[offset] = value & 0xFF
+ while (++i < byteLength && (mul *= 0x100)) {
+ this[offset + i] = (value / mul) & 0xFF
+ }
+
+ return offset + byteLength
+}
+
+Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {
+ value = +value
+ offset = offset | 0
+ byteLength = byteLength | 0
+ if (!noAssert) {
+ var maxBytes = Math.pow(2, 8 * byteLength) - 1
+ checkInt(this, value, offset, byteLength, maxBytes, 0)
+ }
+
+ var i = byteLength - 1
+ var mul = 1
+ this[offset + i] = value & 0xFF
+ while (--i >= 0 && (mul *= 0x100)) {
+ this[offset + i] = (value / mul) & 0xFF
+ }
+
+ return offset + byteLength
+}
+
+Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {
+ value = +value
+ offset = offset | 0
+ if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)
+ if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
+ this[offset] = (value & 0xff)
+ return offset + 1
+}
+
+function objectWriteUInt16 (buf, value, offset, littleEndian) {
+ if (value < 0) value = 0xffff + value + 1
+ for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {
+ buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>
+ (littleEndian ? i : 1 - i) * 8
+ }
+}
+
+Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {
+ value = +value
+ offset = offset | 0
+ if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value & 0xff)
+ this[offset + 1] = (value >>> 8)
+ } else {
+ objectWriteUInt16(this, value, offset, true)
+ }
+ return offset + 2
+}
+
+Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {
+ value = +value
+ offset = offset | 0
+ if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value >>> 8)
+ this[offset + 1] = (value & 0xff)
+ } else {
+ objectWriteUInt16(this, value, offset, false)
+ }
+ return offset + 2
+}
+
+function objectWriteUInt32 (buf, value, offset, littleEndian) {
+ if (value < 0) value = 0xffffffff + value + 1
+ for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {
+ buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff
+ }
+}
+
+Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {
+ value = +value
+ offset = offset | 0
+ if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset + 3] = (value >>> 24)
+ this[offset + 2] = (value >>> 16)
+ this[offset + 1] = (value >>> 8)
+ this[offset] = (value & 0xff)
+ } else {
+ objectWriteUInt32(this, value, offset, true)
+ }
+ return offset + 4
+}
+
+Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {
+ value = +value
+ offset = offset | 0
+ if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value >>> 24)
+ this[offset + 1] = (value >>> 16)
+ this[offset + 2] = (value >>> 8)
+ this[offset + 3] = (value & 0xff)
+ } else {
+ objectWriteUInt32(this, value, offset, false)
+ }
+ return offset + 4
+}
+
+Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {
+ value = +value
+ offset = offset | 0
+ if (!noAssert) {
+ var limit = Math.pow(2, 8 * byteLength - 1)
+
+ checkInt(this, value, offset, byteLength, limit - 1, -limit)
+ }
+
+ var i = 0
+ var mul = 1
+ var sub = 0
+ this[offset] = value & 0xFF
+ while (++i < byteLength && (mul *= 0x100)) {
+ if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {
+ sub = 1
+ }
+ this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
+ }
+
+ return offset + byteLength
+}
+
+Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {
+ value = +value
+ offset = offset | 0
+ if (!noAssert) {
+ var limit = Math.pow(2, 8 * byteLength - 1)
+
+ checkInt(this, value, offset, byteLength, limit - 1, -limit)
+ }
+
+ var i = byteLength - 1
+ var mul = 1
+ var sub = 0
+ this[offset + i] = value & 0xFF
+ while (--i >= 0 && (mul *= 0x100)) {
+ if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {
+ sub = 1
+ }
+ this[offset + i] = ((value / mul) >> 0) - sub & 0xFF
+ }
+
+ return offset + byteLength
+}
+
+Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {
+ value = +value
+ offset = offset | 0
+ if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)
+ if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)
+ if (value < 0) value = 0xff + value + 1
+ this[offset] = (value & 0xff)
+ return offset + 1
+}
+
+Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {
+ value = +value
+ offset = offset | 0
+ if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value & 0xff)
+ this[offset + 1] = (value >>> 8)
+ } else {
+ objectWriteUInt16(this, value, offset, true)
+ }
+ return offset + 2
+}
+
+Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {
+ value = +value
+ offset = offset | 0
+ if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value >>> 8)
+ this[offset + 1] = (value & 0xff)
+ } else {
+ objectWriteUInt16(this, value, offset, false)
+ }
+ return offset + 2
+}
+
+Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {
+ value = +value
+ offset = offset | 0
+ if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value & 0xff)
+ this[offset + 1] = (value >>> 8)
+ this[offset + 2] = (value >>> 16)
+ this[offset + 3] = (value >>> 24)
+ } else {
+ objectWriteUInt32(this, value, offset, true)
+ }
+ return offset + 4
+}
+
+Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {
+ value = +value
+ offset = offset | 0
+ if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)
+ if (value < 0) value = 0xffffffff + value + 1
+ if (Buffer.TYPED_ARRAY_SUPPORT) {
+ this[offset] = (value >>> 24)
+ this[offset + 1] = (value >>> 16)
+ this[offset + 2] = (value >>> 8)
+ this[offset + 3] = (value & 0xff)
+ } else {
+ objectWriteUInt32(this, value, offset, false)
+ }
+ return offset + 4
+}
+
+function checkIEEE754 (buf, value, offset, ext, max, min) {
+ if (offset + ext > buf.length) throw new RangeError('Index out of range')
+ if (offset < 0) throw new RangeError('Index out of range')
+}
+
+function writeFloat (buf, value, offset, littleEndian, noAssert) {
+ if (!noAssert) {
+ checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)
+ }
+ ieee754.write(buf, value, offset, littleEndian, 23, 4)
+ return offset + 4
+}
+
+Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {
+ return writeFloat(this, value, offset, true, noAssert)
+}
+
+Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {
+ return writeFloat(this, value, offset, false, noAssert)
+}
+
+function writeDouble (buf, value, offset, littleEndian, noAssert) {
+ if (!noAssert) {
+ checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)
+ }
+ ieee754.write(buf, value, offset, littleEndian, 52, 8)
+ return offset + 8
+}
+
+Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {
+ return writeDouble(this, value, offset, true, noAssert)
+}
+
+Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {
+ return writeDouble(this, value, offset, false, noAssert)
+}
+
+// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)
+Buffer.prototype.copy = function copy (target, targetStart, start, end) {
+ if (!start) start = 0
+ if (!end && end !== 0) end = this.length
+ if (targetStart >= target.length) targetStart = target.length
+ if (!targetStart) targetStart = 0
+ if (end > 0 && end < start) end = start
+
+ // Copy 0 bytes; we're done
+ if (end === start) return 0
+ if (target.length === 0 || this.length === 0) return 0
+
+ // Fatal error conditions
+ if (targetStart < 0) {
+ throw new RangeError('targetStart out of bounds')
+ }
+ if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')
+ if (end < 0) throw new RangeError('sourceEnd out of bounds')
+
+ // Are we oob?
+ if (end > this.length) end = this.length
+ if (target.length - targetStart < end - start) {
+ end = target.length - targetStart + start
+ }
+
+ var len = end - start
+ var i
+
+ if (this === target && start < targetStart && targetStart < end) {
+ // descending copy from end
+ for (i = len - 1; i >= 0; --i) {
+ target[i + targetStart] = this[i + start]
+ }
+ } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {
+ // ascending copy from start
+ for (i = 0; i < len; ++i) {
+ target[i + targetStart] = this[i + start]
+ }
+ } else {
+ Uint8Array.prototype.set.call(
+ target,
+ this.subarray(start, start + len),
+ targetStart
+ )
+ }
+
+ return len
+}
+
+// Usage:
+// buffer.fill(number[, offset[, end]])
+// buffer.fill(buffer[, offset[, end]])
+// buffer.fill(string[, offset[, end]][, encoding])
+Buffer.prototype.fill = function fill (val, start, end, encoding) {
+ // Handle string cases:
+ if (typeof val === 'string') {
+ if (typeof start === 'string') {
+ encoding = start
+ start = 0
+ end = this.length
+ } else if (typeof end === 'string') {
+ encoding = end
+ end = this.length
+ }
+ if (val.length === 1) {
+ var code = val.charCodeAt(0)
+ if (code < 256) {
+ val = code
+ }
+ }
+ if (encoding !== undefined && typeof encoding !== 'string') {
+ throw new TypeError('encoding must be a string')
+ }
+ if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {
+ throw new TypeError('Unknown encoding: ' + encoding)
+ }
+ } else if (typeof val === 'number') {
+ val = val & 255
+ }
+
+ // Invalid ranges are not set to a default, so can range check early.
+ if (start < 0 || this.length < start || this.length < end) {
+ throw new RangeError('Out of range index')
+ }
+
+ if (end <= start) {
+ return this
+ }
+
+ start = start >>> 0
+ end = end === undefined ? this.length : end >>> 0
+
+ if (!val) val = 0
+
+ var i
+ if (typeof val === 'number') {
+ for (i = start; i < end; ++i) {
+ this[i] = val
+ }
+ } else {
+ var bytes = Buffer.isBuffer(val)
+ ? val
+ : utf8ToBytes(new Buffer(val, encoding).toString())
+ var len = bytes.length
+ for (i = 0; i < end - start; ++i) {
+ this[i + start] = bytes[i % len]
+ }
+ }
+
+ return this
+}
+
+// HELPER FUNCTIONS
+// ================
+
+var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g
+
+function base64clean (str) {
+ // Node strips out invalid characters like \n and \t from the string, base64-js does not
+ str = stringtrim(str).replace(INVALID_BASE64_RE, '')
+ // Node converts strings with length < 2 to ''
+ if (str.length < 2) return ''
+ // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not
+ while (str.length % 4 !== 0) {
+ str = str + '='
+ }
+ return str
+}
+
+function stringtrim (str) {
+ if (str.trim) return str.trim()
+ return str.replace(/^\s+|\s+$/g, '')
+}
+
+function toHex (n) {
+ if (n < 16) return '0' + n.toString(16)
+ return n.toString(16)
+}
+
+function utf8ToBytes (string, units) {
+ units = units || Infinity
+ var codePoint
+ var length = string.length
+ var leadSurrogate = null
+ var bytes = []
+
+ for (var i = 0; i < length; ++i) {
+ codePoint = string.charCodeAt(i)
+
+ // is surrogate component
+ if (codePoint > 0xD7FF && codePoint < 0xE000) {
+ // last char was a lead
+ if (!leadSurrogate) {
+ // no lead yet
+ if (codePoint > 0xDBFF) {
+ // unexpected trail
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
+ continue
+ } else if (i + 1 === length) {
+ // unpaired lead
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
+ continue
+ }
+
+ // valid lead
+ leadSurrogate = codePoint
+
+ continue
+ }
+
+ // 2 leads in a row
+ if (codePoint < 0xDC00) {
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
+ leadSurrogate = codePoint
+ continue
+ }
+
+ // valid surrogate pair
+ codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000
+ } else if (leadSurrogate) {
+ // valid bmp char, but last char was a lead
+ if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)
+ }
+
+ leadSurrogate = null
+
+ // encode utf8
+ if (codePoint < 0x80) {
+ if ((units -= 1) < 0) break
+ bytes.push(codePoint)
+ } else if (codePoint < 0x800) {
+ if ((units -= 2) < 0) break
+ bytes.push(
+ codePoint >> 0x6 | 0xC0,
+ codePoint & 0x3F | 0x80
+ )
+ } else if (codePoint < 0x10000) {
+ if ((units -= 3) < 0) break
+ bytes.push(
+ codePoint >> 0xC | 0xE0,
+ codePoint >> 0x6 & 0x3F | 0x80,
+ codePoint & 0x3F | 0x80
+ )
+ } else if (codePoint < 0x110000) {
+ if ((units -= 4) < 0) break
+ bytes.push(
+ codePoint >> 0x12 | 0xF0,
+ codePoint >> 0xC & 0x3F | 0x80,
+ codePoint >> 0x6 & 0x3F | 0x80,
+ codePoint & 0x3F | 0x80
+ )
+ } else {
+ throw new Error('Invalid code point')
+ }
+ }
+
+ return bytes
+}
+
+function asciiToBytes (str) {
+ var byteArray = []
+ for (var i = 0; i < str.length; ++i) {
+ // Node's code seems to be doing this and not & 0x7F..
+ byteArray.push(str.charCodeAt(i) & 0xFF)
+ }
+ return byteArray
+}
+
+function utf16leToBytes (str, units) {
+ var c, hi, lo
+ var byteArray = []
+ for (var i = 0; i < str.length; ++i) {
+ if ((units -= 2) < 0) break
+
+ c = str.charCodeAt(i)
+ hi = c >> 8
+ lo = c % 256
+ byteArray.push(lo)
+ byteArray.push(hi)
+ }
+
+ return byteArray
+}
+
+function base64ToBytes (str) {
+ return base64.toByteArray(base64clean(str))
+}
+
+function blitBuffer (src, dst, offset, length) {
+ for (var i = 0; i < length; ++i) {
+ if ((i + offset >= dst.length) || (i >= src.length)) break
+ dst[i + offset] = src[i]
+ }
+ return i
+}
+
+function isnan (val) {
+ return val !== val // eslint-disable-line no-self-compare
+}
+
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(38)))
+
+/***/ }),
+/* 38 */
+/***/ (function(module, exports) {
+
+var g;
+
+// This works in non-strict mode
+g = (function() {
+ return this;
+})();
+
+try {
+ // This works if eval is allowed (see CSP)
+ g = g || new Function("return this")();
+} catch (e) {
+ // This works if the window reference is available
+ if (typeof window === "object") g = window;
+}
+
+// g can still be undefined, but nothing to do about it...
+// We return undefined, instead of nothing here, so it's
+// easier to handle this case. if(!global) { ...}
+
+module.exports = g;
+
+
+/***/ }),
+/* 39 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+exports.byteLength = byteLength
+exports.toByteArray = toByteArray
+exports.fromByteArray = fromByteArray
+
+var lookup = []
+var revLookup = []
+var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array
+
+var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
+for (var i = 0, len = code.length; i < len; ++i) {
+ lookup[i] = code[i]
+ revLookup[code.charCodeAt(i)] = i
+}
+
+// Support decoding URL-safe base64 strings, as Node.js does.
+// See: https://en.wikipedia.org/wiki/Base64#URL_applications
+revLookup['-'.charCodeAt(0)] = 62
+revLookup['_'.charCodeAt(0)] = 63
+
+function getLens (b64) {
+ var len = b64.length
+
+ if (len % 4 > 0) {
+ throw new Error('Invalid string. Length must be a multiple of 4')
+ }
+
+ // Trim off extra bytes after placeholder bytes are found
+ // See: https://github.com/beatgammit/base64-js/issues/42
+ var validLen = b64.indexOf('=')
+ if (validLen === -1) validLen = len
+
+ var placeHoldersLen = validLen === len
+ ? 0
+ : 4 - (validLen % 4)
+
+ return [validLen, placeHoldersLen]
+}
+
+// base64 is 4/3 + up to two characters of the original data
+function byteLength (b64) {
+ var lens = getLens(b64)
+ var validLen = lens[0]
+ var placeHoldersLen = lens[1]
+ return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
+}
+
+function _byteLength (b64, validLen, placeHoldersLen) {
+ return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen
+}
+
+function toByteArray (b64) {
+ var tmp
+ var lens = getLens(b64)
+ var validLen = lens[0]
+ var placeHoldersLen = lens[1]
+
+ var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))
+
+ var curByte = 0
+
+ // if there are placeholders, only get up to the last complete 4 chars
+ var len = placeHoldersLen > 0
+ ? validLen - 4
+ : validLen
+
+ var i
+ for (i = 0; i < len; i += 4) {
+ tmp =
+ (revLookup[b64.charCodeAt(i)] << 18) |
+ (revLookup[b64.charCodeAt(i + 1)] << 12) |
+ (revLookup[b64.charCodeAt(i + 2)] << 6) |
+ revLookup[b64.charCodeAt(i + 3)]
+ arr[curByte++] = (tmp >> 16) & 0xFF
+ arr[curByte++] = (tmp >> 8) & 0xFF
+ arr[curByte++] = tmp & 0xFF
+ }
+
+ if (placeHoldersLen === 2) {
+ tmp =
+ (revLookup[b64.charCodeAt(i)] << 2) |
+ (revLookup[b64.charCodeAt(i + 1)] >> 4)
+ arr[curByte++] = tmp & 0xFF
+ }
+
+ if (placeHoldersLen === 1) {
+ tmp =
+ (revLookup[b64.charCodeAt(i)] << 10) |
+ (revLookup[b64.charCodeAt(i + 1)] << 4) |
+ (revLookup[b64.charCodeAt(i + 2)] >> 2)
+ arr[curByte++] = (tmp >> 8) & 0xFF
+ arr[curByte++] = tmp & 0xFF
+ }
+
+ return arr
+}
+
+function tripletToBase64 (num) {
+ return lookup[num >> 18 & 0x3F] +
+ lookup[num >> 12 & 0x3F] +
+ lookup[num >> 6 & 0x3F] +
+ lookup[num & 0x3F]
+}
+
+function encodeChunk (uint8, start, end) {
+ var tmp
+ var output = []
+ for (var i = start; i < end; i += 3) {
+ tmp =
+ ((uint8[i] << 16) & 0xFF0000) +
+ ((uint8[i + 1] << 8) & 0xFF00) +
+ (uint8[i + 2] & 0xFF)
+ output.push(tripletToBase64(tmp))
+ }
+ return output.join('')
+}
+
+function fromByteArray (uint8) {
+ var tmp
+ var len = uint8.length
+ var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes
+ var parts = []
+ var maxChunkLength = 16383 // must be multiple of 3
+
+ // go through the array every three bytes, we'll deal with trailing stuff later
+ for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {
+ parts.push(encodeChunk(
+ uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)
+ ))
+ }
+
+ // pad the end with zeros, but make sure to not forget the extra bytes
+ if (extraBytes === 1) {
+ tmp = uint8[len - 1]
+ parts.push(
+ lookup[tmp >> 2] +
+ lookup[(tmp << 4) & 0x3F] +
+ '=='
+ )
+ } else if (extraBytes === 2) {
+ tmp = (uint8[len - 2] << 8) + uint8[len - 1]
+ parts.push(
+ lookup[tmp >> 10] +
+ lookup[(tmp >> 4) & 0x3F] +
+ lookup[(tmp << 2) & 0x3F] +
+ '='
+ )
+ }
+
+ return parts.join('')
+}
+
+
+/***/ }),
+/* 40 */
+/***/ (function(module, exports) {
+
+exports.read = function (buffer, offset, isLE, mLen, nBytes) {
+ var e, m
+ var eLen = (nBytes * 8) - mLen - 1
+ var eMax = (1 << eLen) - 1
+ var eBias = eMax >> 1
+ var nBits = -7
+ var i = isLE ? (nBytes - 1) : 0
+ var d = isLE ? -1 : 1
+ var s = buffer[offset + i]
+
+ i += d
+
+ e = s & ((1 << (-nBits)) - 1)
+ s >>= (-nBits)
+ nBits += eLen
+ for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}
+
+ m = e & ((1 << (-nBits)) - 1)
+ e >>= (-nBits)
+ nBits += mLen
+ for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}
+
+ if (e === 0) {
+ e = 1 - eBias
+ } else if (e === eMax) {
+ return m ? NaN : ((s ? -1 : 1) * Infinity)
+ } else {
+ m = m + Math.pow(2, mLen)
+ e = e - eBias
+ }
+ return (s ? -1 : 1) * m * Math.pow(2, e - mLen)
+}
+
+exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {
+ var e, m, c
+ var eLen = (nBytes * 8) - mLen - 1
+ var eMax = (1 << eLen) - 1
+ var eBias = eMax >> 1
+ var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)
+ var i = isLE ? 0 : (nBytes - 1)
+ var d = isLE ? 1 : -1
+ var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0
+
+ value = Math.abs(value)
+
+ if (isNaN(value) || value === Infinity) {
+ m = isNaN(value) ? 1 : 0
+ e = eMax
+ } else {
+ e = Math.floor(Math.log(value) / Math.LN2)
+ if (value * (c = Math.pow(2, -e)) < 1) {
+ e--
+ c *= 2
+ }
+ if (e + eBias >= 1) {
+ value += rt / c
+ } else {
+ value += rt * Math.pow(2, 1 - eBias)
+ }
+ if (value * c >= 2) {
+ e++
+ c /= 2
+ }
+
+ if (e + eBias >= eMax) {
+ m = 0
+ e = eMax
+ } else if (e + eBias >= 1) {
+ m = ((value * c) - 1) * Math.pow(2, mLen)
+ e = e + eBias
+ } else {
+ m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)
+ e = 0
+ }
+ }
+
+ for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}
+
+ e = (e << mLen) | m
+ eLen += mLen
+ for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}
+
+ buffer[offset + i - d] |= s * 128
+}
+
+
+/***/ }),
+/* 41 */
+/***/ (function(module, exports) {
+
+var toString = {}.toString;
+
+module.exports = Array.isArray || function (arr) {
+ return toString.call(arr) == '[object Array]';
+};
+
+
+/***/ }),
+/* 42 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Represents audio stream format used for custom audio input configurations.
+ * @class AudioStreamFormat
+ */
+var AudioStreamFormat = /** @class */ (function () {
+ function AudioStreamFormat() {
+ }
+ /**
+ * Creates an audio stream format object representing the default audio stream
+ * format (16KHz 16bit mono PCM).
+ * @member AudioStreamFormat.getDefaultInputFormat
+ * @function
+ * @public
+ * @returns {AudioStreamFormat} The audio stream format being created.
+ */
+ AudioStreamFormat.getDefaultInputFormat = function () {
+ return AudioStreamFormatImpl.getDefaultInputFormat();
+ };
+ /**
+ * Creates an audio stream format object with the specified pcm waveformat characteristics.
+ * @member AudioStreamFormat.getWaveFormatPCM
+ * @function
+ * @public
+ * @param {number} samplesPerSecond - Sample rate, in samples per second (Hertz).
+ * @param {number} bitsPerSample - Bits per sample, typically 16.
+ * @param {number} channels - Number of channels in the waveform-audio data. Monaural data
+ * uses one channel and stereo data uses two channels.
+ * @returns {AudioStreamFormat} The audio stream format being created.
+ */
+ AudioStreamFormat.getWaveFormatPCM = function (samplesPerSecond, bitsPerSample, channels) {
+ return new AudioStreamFormatImpl(samplesPerSecond, bitsPerSample, channels);
+ };
+ return AudioStreamFormat;
+}());
+exports.AudioStreamFormat = AudioStreamFormat;
+/**
+ * @private
+ * @class AudioStreamFormatImpl
+ */
+// tslint:disable-next-line:max-classes-per-file
+var AudioStreamFormatImpl = /** @class */ (function (_super) {
+ __extends(AudioStreamFormatImpl, _super);
+ /**
+ * Creates an instance with the given values.
+ * @constructor
+ * @param {number} samplesPerSec - Samples per second.
+ * @param {number} bitsPerSample - Bits per sample.
+ * @param {number} channels - Number of channels.
+ */
+ function AudioStreamFormatImpl(samplesPerSec, bitsPerSample, channels) {
+ if (samplesPerSec === void 0) { samplesPerSec = 16000; }
+ if (bitsPerSample === void 0) { bitsPerSample = 16; }
+ if (channels === void 0) { channels = 1; }
+ var _this = _super.call(this) || this;
+ _this.setString = function (view, offset, str) {
+ for (var i = 0; i < str.length; i++) {
+ view.setUint8(offset + i, str.charCodeAt(i));
+ }
+ };
+ _this.formatTag = 1;
+ _this.bitsPerSample = bitsPerSample;
+ _this.samplesPerSec = samplesPerSec;
+ _this.channels = channels;
+ _this.avgBytesPerSec = _this.samplesPerSec * _this.channels * (_this.bitsPerSample / 8);
+ _this.blockAlign = _this.channels * Math.max(_this.bitsPerSample, 8);
+ _this.privHeader = new ArrayBuffer(44);
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView
+ var view = new DataView(_this.privHeader);
+ /* RIFF identifier */
+ _this.setString(view, 0, "RIFF");
+ /* file length */
+ view.setUint32(4, 0, true);
+ /* RIFF type & Format */
+ _this.setString(view, 8, "WAVEfmt ");
+ /* format chunk length */
+ view.setUint32(16, 16, true);
+ /* sample format (raw) */
+ view.setUint16(20, 1, true);
+ /* channel count */
+ view.setUint16(22, _this.channels, true);
+ /* sample rate */
+ view.setUint32(24, _this.samplesPerSec, true);
+ /* byte rate (sample rate * block align) */
+ view.setUint32(28, _this.avgBytesPerSec, true);
+ /* block align (channel count * bytes per sample) */
+ view.setUint16(32, _this.channels * (_this.bitsPerSample / 8), true);
+ /* bits per sample */
+ view.setUint16(34, _this.bitsPerSample, true);
+ /* data chunk identifier */
+ _this.setString(view, 36, "data");
+ /* data chunk length */
+ view.setUint32(40, 0, true);
+ return _this;
+ }
+ /**
+ * Retrieves the default input format.
+ * @member AudioStreamFormatImpl.getDefaultInputFormat
+ * @function
+ * @public
+ * @returns {AudioStreamFormatImpl} The default input format.
+ */
+ AudioStreamFormatImpl.getDefaultInputFormat = function () {
+ return new AudioStreamFormatImpl();
+ };
+ /**
+ * Closes the configuration object.
+ * @member AudioStreamFormatImpl.prototype.close
+ * @function
+ * @public
+ */
+ AudioStreamFormatImpl.prototype.close = function () { return; };
+ Object.defineProperty(AudioStreamFormatImpl.prototype, "header", {
+ get: function () {
+ return this.privHeader;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return AudioStreamFormatImpl;
+}(AudioStreamFormat));
+exports.AudioStreamFormatImpl = AudioStreamFormatImpl;
+
+
+
+/***/ }),
+/* 43 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var Contracts_1 = __webpack_require__(33);
+var AudioOutputFormat_1 = __webpack_require__(44);
+/**
+ * Represents audio output stream used for custom audio output configurations.
+ * @class AudioOutputStream
+ */
+var AudioOutputStream = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance.
+ * @constructor
+ */
+ function AudioOutputStream() {
+ }
+ /**
+ * Creates a memory backed PullAudioOutputStream with the specified audio format.
+ * @member AudioOutputStream.createPullStream
+ * @function
+ * @public
+ * @returns {PullAudioOutputStream} The audio output stream being created.
+ */
+ AudioOutputStream.createPullStream = function () {
+ return PullAudioOutputStream.create();
+ };
+ return AudioOutputStream;
+}());
+exports.AudioOutputStream = AudioOutputStream;
+/**
+ * Represents memory backed push audio output stream used for custom audio output configurations.
+ * @class PullAudioOutputStream
+ */
+// tslint:disable-next-line:max-classes-per-file
+var PullAudioOutputStream = /** @class */ (function (_super) {
+ __extends(PullAudioOutputStream, _super);
+ function PullAudioOutputStream() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ /**
+ * Creates a memory backed PullAudioOutputStream with the specified audio format.
+ * @member PullAudioOutputStream.create
+ * @function
+ * @public
+ * @returns {PullAudioOutputStream} The push audio output stream being created.
+ */
+ PullAudioOutputStream.create = function () {
+ return new PullAudioOutputStreamImpl();
+ };
+ return PullAudioOutputStream;
+}(AudioOutputStream));
+exports.PullAudioOutputStream = PullAudioOutputStream;
+/**
+ * Represents memory backed push audio output stream used for custom audio output configurations.
+ * @private
+ * @class PullAudioOutputStreamImpl
+ */
+// tslint:disable-next-line:max-classes-per-file
+var PullAudioOutputStreamImpl = /** @class */ (function (_super) {
+ __extends(PullAudioOutputStreamImpl, _super);
+ /**
+ * Creates and initializes an instance with the given values.
+ * @constructor
+ */
+ function PullAudioOutputStreamImpl() {
+ var _this = _super.call(this) || this;
+ _this.privId = Exports_1.createNoDashGuid();
+ _this.privStream = new Exports_1.Stream();
+ return _this;
+ }
+ Object.defineProperty(PullAudioOutputStreamImpl.prototype, "format", {
+ /**
+ * Format information for the audio
+ */
+ get: function () {
+ return this.privFormat;
+ },
+ /**
+ * Sets the format information to the stream. For internal use only.
+ * @param {AudioStreamFormat} format - the format to be set.
+ */
+ set: function (format) {
+ if (format === undefined || format === null) {
+ this.privFormat = AudioOutputFormat_1.AudioOutputFormatImpl.getDefaultOutputFormat();
+ }
+ this.privFormat = format;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(PullAudioOutputStreamImpl.prototype, "isClosed", {
+ /**
+ * Checks if the stream is closed
+ * @member PullAudioOutputStreamImpl.prototype.isClosed
+ * @property
+ * @public
+ */
+ get: function () {
+ return this.privStream.isClosed;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Gets the id of the stream
+ * @member PullAudioOutputStreamImpl.prototype.id
+ * @property
+ * @public
+ */
+ PullAudioOutputStreamImpl.prototype.id = function () {
+ return this.privId;
+ };
+ /**
+ * Reads audio data from the internal buffer.
+ * @member PullAudioOutputStreamImpl.prototype.read
+ * @function
+ * @public
+ * @param {ArrayBuffer} dataBuffer - An ArrayBuffer to store the read data.
+ * @returns {Promise} - Audio buffer length has been read.
+ */
+ PullAudioOutputStreamImpl.prototype.read = function (dataBuffer) {
+ var _this = this;
+ var intView = new Int8Array(dataBuffer);
+ var totalBytes = 0;
+ if (this.privLastChunkView !== undefined) {
+ if (this.privLastChunkView.length > dataBuffer.byteLength) {
+ intView.set(this.privLastChunkView.slice(0, dataBuffer.byteLength));
+ this.privLastChunkView = this.privLastChunkView.slice(dataBuffer.byteLength);
+ return Exports_1.PromiseHelper.fromResult(dataBuffer.byteLength);
+ }
+ intView.set(this.privLastChunkView);
+ totalBytes = this.privLastChunkView.length;
+ this.privLastChunkView = undefined;
+ }
+ var deffer = new Exports_1.Deferred();
+ // Until we have the minimum number of bytes to send in a transmission, keep asking for more.
+ var readUntilFilled = function () {
+ if (totalBytes < dataBuffer.byteLength && !_this.privStream.isReadEnded) {
+ _this.privStream.read()
+ .onSuccessContinueWith(function (chunk) {
+ if (chunk !== undefined && !chunk.isEnd) {
+ var tmpBuffer = void 0;
+ if (chunk.buffer.byteLength > dataBuffer.byteLength - totalBytes) {
+ tmpBuffer = chunk.buffer.slice(0, dataBuffer.byteLength - totalBytes);
+ _this.privLastChunkView = new Int8Array(chunk.buffer.slice(dataBuffer.byteLength - totalBytes));
+ }
+ else {
+ tmpBuffer = chunk.buffer;
+ }
+ intView.set(new Int8Array(tmpBuffer), totalBytes);
+ totalBytes += tmpBuffer.byteLength;
+ readUntilFilled();
+ }
+ else {
+ _this.privStream.readEnded();
+ deffer.resolve(totalBytes);
+ }
+ });
+ }
+ else {
+ deffer.resolve(totalBytes);
+ }
+ };
+ readUntilFilled();
+ return deffer.promise();
+ };
+ /**
+ * Writes the audio data specified by making an internal copy of the data.
+ * @member PullAudioOutputStreamImpl.prototype.write
+ * @function
+ * @public
+ * @param {ArrayBuffer} dataBuffer - The audio buffer of which this function will make a copy.
+ */
+ PullAudioOutputStreamImpl.prototype.write = function (dataBuffer) {
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privStream, "must set format before writing");
+ this.privStream.writeStreamChunk({
+ buffer: dataBuffer,
+ isEnd: false,
+ timeReceived: Date.now()
+ });
+ };
+ /**
+ * Closes the stream.
+ * @member PullAudioOutputStreamImpl.prototype.close
+ * @function
+ * @public
+ */
+ PullAudioOutputStreamImpl.prototype.close = function () {
+ this.privStream.close();
+ };
+ return PullAudioOutputStreamImpl;
+}(PullAudioOutputStream));
+exports.PullAudioOutputStreamImpl = PullAudioOutputStreamImpl;
+/*
+ * Represents audio output stream used for custom audio output configurations.
+ * @class PushAudioOutputStream
+ */
+// tslint:disable-next-line:max-classes-per-file
+var PushAudioOutputStream = /** @class */ (function (_super) {
+ __extends(PushAudioOutputStream, _super);
+ /**
+ * Creates and initializes and instance.
+ * @constructor
+ */
+ function PushAudioOutputStream() {
+ return _super.call(this) || this;
+ }
+ /**
+ * Creates a PushAudioOutputStream that delegates to the specified callback interface for
+ * write() and close() methods.
+ * @member PushAudioOutputStream.create
+ * @function
+ * @public
+ * @param {PushAudioOutputStreamCallback} callback - The custom audio output object,
+ * derived from PushAudioOutputStreamCallback
+ * @returns {PushAudioOutputStream} The push audio output stream being created.
+ */
+ PushAudioOutputStream.create = function (callback) {
+ return new PushAudioOutputStreamImpl(callback);
+ };
+ return PushAudioOutputStream;
+}(AudioOutputStream));
+exports.PushAudioOutputStream = PushAudioOutputStream;
+/**
+ * Represents audio output stream used for custom audio output configurations.
+ * @private
+ * @class PushAudioOutputStreamImpl
+ */
+// tslint:disable-next-line:max-classes-per-file
+var PushAudioOutputStreamImpl = /** @class */ (function (_super) {
+ __extends(PushAudioOutputStreamImpl, _super);
+ /**
+ * Creates a PushAudioOutputStream that delegates to the specified callback interface for
+ * read() and close() methods.
+ * @constructor
+ * @param {PushAudioOutputStreamCallback} callback - The custom audio output object,
+ * derived from PushAudioOutputStreamCallback
+ */
+ function PushAudioOutputStreamImpl(callback) {
+ var _this = _super.call(this) || this;
+ _this.privId = Exports_1.createNoDashGuid();
+ _this.privCallback = callback;
+ return _this;
+ }
+ Object.defineProperty(PushAudioOutputStreamImpl.prototype, "format", {
+ // tslint:disable-next-line:no-empty
+ set: function (format) { },
+ enumerable: true,
+ configurable: true
+ });
+ PushAudioOutputStreamImpl.prototype.write = function (buffer) {
+ if (!!this.privCallback.write) {
+ this.privCallback.write(buffer);
+ }
+ };
+ PushAudioOutputStreamImpl.prototype.close = function () {
+ if (!!this.privCallback.close) {
+ this.privCallback.close();
+ }
+ };
+ PushAudioOutputStreamImpl.prototype.id = function () {
+ return this.privId;
+ };
+ return PushAudioOutputStreamImpl;
+}(PushAudioOutputStream));
+exports.PushAudioOutputStreamImpl = PushAudioOutputStreamImpl;
+
+
+
+/***/ }),
+/* 44 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var _a;
+Object.defineProperty(exports, "__esModule", { value: true });
+var SpeechSynthesisOutputFormat_1 = __webpack_require__(45);
+var AudioStreamFormat_1 = __webpack_require__(42);
+var AudioFormatTag;
+(function (AudioFormatTag) {
+ AudioFormatTag[AudioFormatTag["PCM"] = 1] = "PCM";
+ AudioFormatTag[AudioFormatTag["MuLaw"] = 2] = "MuLaw";
+ AudioFormatTag[AudioFormatTag["Siren"] = 3] = "Siren";
+ AudioFormatTag[AudioFormatTag["MP3"] = 4] = "MP3";
+ AudioFormatTag[AudioFormatTag["SILKSkype"] = 5] = "SILKSkype";
+ AudioFormatTag[AudioFormatTag["Opus"] = 6] = "Opus";
+})(AudioFormatTag = exports.AudioFormatTag || (exports.AudioFormatTag = {}));
+/**
+ * @private
+ * @class AudioOutputFormatImpl
+ * Added in version 1.11.0
+ */
+// tslint:disable-next-line:max-classes-per-file
+var AudioOutputFormatImpl = /** @class */ (function (_super) {
+ __extends(AudioOutputFormatImpl, _super);
+ /**
+ * Creates an instance with the given values.
+ * @constructor
+ * @param formatTag
+ * @param {number} samplesPerSec - Samples per second.
+ * @param {number} bitsPerSample - Bits per sample.
+ * @param {number} channels - Number of channels.
+ * @param avgBytesPerSec
+ * @param blockAlign
+ * @param audioFormatString
+ * @param requestAudioFormatString
+ * @param hasHeader
+ */
+ function AudioOutputFormatImpl(formatTag, channels, samplesPerSec, avgBytesPerSec, blockAlign, bitsPerSample, audioFormatString, requestAudioFormatString, hasHeader) {
+ var _this = _super.call(this, samplesPerSec, bitsPerSample, channels) || this;
+ _this.formatTag = formatTag;
+ _this.avgBytesPerSec = avgBytesPerSec;
+ _this.blockAlign = blockAlign;
+ _this.priAudioFormatString = audioFormatString;
+ _this.priRequestAudioFormatString = requestAudioFormatString;
+ _this.priHasHeader = hasHeader;
+ return _this;
+ }
+ AudioOutputFormatImpl.fromSpeechSynthesisOutputFormat = function (speechSynthesisOutputFormat) {
+ if (speechSynthesisOutputFormat === undefined) {
+ return AudioOutputFormatImpl.getDefaultOutputFormat();
+ }
+ return AudioOutputFormatImpl.fromSpeechSynthesisOutputFormatString(AudioOutputFormatImpl.SpeechSynthesisOutputFormatToString[speechSynthesisOutputFormat]);
+ };
+ AudioOutputFormatImpl.fromSpeechSynthesisOutputFormatString = function (speechSynthesisOutputFormatString) {
+ switch (speechSynthesisOutputFormatString) {
+ case "raw-8khz-8bit-mono-mulaw":
+ return new AudioOutputFormatImpl(AudioFormatTag.PCM, 1, 8000, 8000, 1, 8, speechSynthesisOutputFormatString, speechSynthesisOutputFormatString, false);
+ case "riff-16khz-16kbps-mono-siren":
+ return new AudioOutputFormatImpl(AudioFormatTag.Siren, 1, 16000, 2000, 40, 0, speechSynthesisOutputFormatString, "audio-16khz-16kbps-mono-siren", true);
+ case "audio-16khz-16kbps-mono-siren":
+ return new AudioOutputFormatImpl(AudioFormatTag.Siren, 1, 16000, 2000, 40, 0, speechSynthesisOutputFormatString, speechSynthesisOutputFormatString, false);
+ case "audio-16khz-32kbitrate-mono-mp3":
+ return new AudioOutputFormatImpl(AudioFormatTag.MP3, 1, 16000, 32 << 7, 2, 16, speechSynthesisOutputFormatString, speechSynthesisOutputFormatString, false);
+ case "audio-16khz-128kbitrate-mono-mp3":
+ return new AudioOutputFormatImpl(AudioFormatTag.MP3, 1, 16000, 128 << 7, 2, 16, speechSynthesisOutputFormatString, speechSynthesisOutputFormatString, false);
+ case "audio-16khz-64kbitrate-mono-mp3":
+ return new AudioOutputFormatImpl(AudioFormatTag.MP3, 1, 16000, 64 << 7, 2, 16, speechSynthesisOutputFormatString, speechSynthesisOutputFormatString, false);
+ case "audio-24khz-48kbitrate-mono-mp3":
+ return new AudioOutputFormatImpl(AudioFormatTag.MP3, 1, 16000, 48 << 7, 2, 16, speechSynthesisOutputFormatString, speechSynthesisOutputFormatString, false);
+ case "audio-24khz-96kbitrate-mono-mp3":
+ return new AudioOutputFormatImpl(AudioFormatTag.MP3, 1, 16000, 96 << 7, 2, 16, speechSynthesisOutputFormatString, speechSynthesisOutputFormatString, false);
+ case "audio-24khz-160kbitrate-mono-mp3":
+ return new AudioOutputFormatImpl(AudioFormatTag.MP3, 1, 16000, 160 << 7, 2, 16, speechSynthesisOutputFormatString, speechSynthesisOutputFormatString, false);
+ case "raw-16khz-16bit-mono-truesilk":
+ return new AudioOutputFormatImpl(AudioFormatTag.SILKSkype, 1, 16000, 32000, 2, 16, speechSynthesisOutputFormatString, speechSynthesisOutputFormatString, false);
+ case "riff-8khz-16bit-mono-pcm":
+ return new AudioOutputFormatImpl(AudioFormatTag.PCM, 1, 8000, 16000, 2, 16, speechSynthesisOutputFormatString, "raw-8khz-16bit-mono-pcm", true);
+ case "riff-24khz-16bit-mono-pcm":
+ return new AudioOutputFormatImpl(AudioFormatTag.PCM, 1, 24000, 48000, 2, 16, speechSynthesisOutputFormatString, "raw-24khz-16bit-mono-pcm", true);
+ case "riff-8khz-8bit-mono-mulaw":
+ return new AudioOutputFormatImpl(AudioFormatTag.MuLaw, 1, 8000, 8000, 1, 8, speechSynthesisOutputFormatString, "raw-8khz-8bit-mono-mulaw", true);
+ case "raw-16khz-16bit-mono-pcm":
+ return new AudioOutputFormatImpl(AudioFormatTag.PCM, 1, 16000, 32000, 2, 16, speechSynthesisOutputFormatString, "raw-16khz-16bit-mono-pcm", false);
+ case "raw-24khz-16bit-mono-pcm":
+ return new AudioOutputFormatImpl(AudioFormatTag.PCM, 1, 24000, 48000, 2, 16, speechSynthesisOutputFormatString, "raw-24khz-16bit-mono-pcm", false);
+ case "raw-8khz-16bit-mono-pcm":
+ return new AudioOutputFormatImpl(AudioFormatTag.PCM, 1, 8000, 16000, 2, 16, speechSynthesisOutputFormatString, "raw-8khz-16bit-mono-pcm", false);
+ case "ogg-16khz-16bit-mono-opus":
+ return new AudioOutputFormatImpl(AudioFormatTag.Opus, 1, 16000, 8192, 2, 16, speechSynthesisOutputFormatString, "ogg-16khz-16bit-mono-opus", false);
+ case "ogg-24khz-16bit-mono-opus":
+ return new AudioOutputFormatImpl(AudioFormatTag.Opus, 1, 24000, 8192, 2, 16, speechSynthesisOutputFormatString, "ogg-24khz-16bit-mono-opus", false);
+ case "riff-16khz-16bit-mono-pcm":
+ default:
+ return new AudioOutputFormatImpl(AudioFormatTag.PCM, 1, 16000, 32000, 2, 16, "riff-16khz-16bit-mono-pcm", "raw-16khz-16bit-mono-pcm", true);
+ }
+ };
+ AudioOutputFormatImpl.getDefaultOutputFormat = function () {
+ return AudioOutputFormatImpl.fromSpeechSynthesisOutputFormatString((typeof window !== "undefined") ? "audio-24khz-48kbitrate-mono-mp3" : "riff-16khz-16bit-mono-pcm");
+ };
+ Object.defineProperty(AudioOutputFormatImpl.prototype, "hasHeader", {
+ /**
+ * Specifies if this audio output format has a header
+ * @boolean AudioOutputFormatImpl.prototype.hasHeader
+ * @function
+ * @public
+ */
+ get: function () {
+ return this.priHasHeader;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AudioOutputFormatImpl.prototype, "header", {
+ /**
+ * Specifies the header of this format
+ * @ArrayBuffer AudioOutputFormatImpl.prototype.header
+ * @function
+ * @public
+ */
+ get: function () {
+ if (this.hasHeader) {
+ return this.privHeader;
+ }
+ return undefined;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Updates the header based on the audio length
+ * @member AudioOutputFormatImpl.updateHeader
+ * @function
+ * @public
+ * @param {number} audioLength - the audio length
+ */
+ AudioOutputFormatImpl.prototype.updateHeader = function (audioLength) {
+ if (this.priHasHeader) {
+ var view = new DataView(this.privHeader);
+ view.setUint32(40, audioLength, true);
+ }
+ };
+ Object.defineProperty(AudioOutputFormatImpl.prototype, "requestAudioFormatString", {
+ /**
+ * Specifies the audio format string to be sent to the service
+ * @string AudioOutputFormatImpl.prototype.requestAudioFormatString
+ * @function
+ * @public
+ */
+ get: function () {
+ return this.priRequestAudioFormatString;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ AudioOutputFormatImpl.SpeechSynthesisOutputFormatToString = (_a = {},
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Raw8Khz8BitMonoMULaw] = "raw-8khz-8bit-mono-mulaw",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Riff16Khz16KbpsMonoSiren] = "riff-16khz-16kbps-mono-siren",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Audio16Khz16KbpsMonoSiren] = "audio-16khz-16kbps-mono-siren",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Audio16Khz32KBitRateMonoMp3] = "audio-16khz-32kbitrate-mono-mp3",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Audio16Khz128KBitRateMonoMp3] = "audio-16khz-128kbitrate-mono-mp3",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Audio16Khz64KBitRateMonoMp3] = "audio-16khz-64kbitrate-mono-mp3",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Audio24Khz48KBitRateMonoMp3] = "audio-24khz-48kbitrate-mono-mp3",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Audio24Khz96KBitRateMonoMp3] = "audio-24khz-96kbitrate-mono-mp3",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Audio24Khz160KBitRateMonoMp3] = "audio-24khz-160kbitrate-mono-mp3",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Raw16Khz16BitMonoTrueSilk] = "raw-16khz-16bit-mono-truesilk",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Riff16Khz16BitMonoPcm] = "riff-16khz-16bit-mono-pcm",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Riff8Khz16BitMonoPcm] = "riff-8khz-16bit-mono-pcm",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm] = "riff-24khz-16bit-mono-pcm",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Riff8Khz8BitMonoMULaw] = "riff-8khz-8bit-mono-mulaw",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Raw16Khz16BitMonoPcm] = "raw-16khz-16bit-mono-pcm",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Raw24Khz16BitMonoPcm] = "raw-24khz-16bit-mono-pcm",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Raw8Khz16BitMonoPcm] = "raw-8khz-16bit-mono-pcm",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Ogg16Khz16BitMonoOpus] = "ogg-16khz-16bit-mono-opus",
+ _a[SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat.Ogg24Khz16BitMonoOpus] = "ogg-24khz-16bit-mono-opus",
+ _a);
+ return AudioOutputFormatImpl;
+}(AudioStreamFormat_1.AudioStreamFormatImpl));
+exports.AudioOutputFormatImpl = AudioOutputFormatImpl;
+
+
+
+/***/ }),
+/* 45 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Define speech synthesis audio output formats.
+ * @enum SpeechSynthesisOutputFormat
+ * Added in version 1.11.0
+ */
+var SpeechSynthesisOutputFormat;
+(function (SpeechSynthesisOutputFormat) {
+ /**
+ * raw-8khz-8bit-mono-mulaw
+ * @member SpeechSynthesisOutputFormat.Raw8Khz8BitMonoMULaw,
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Raw8Khz8BitMonoMULaw"] = 0] = "Raw8Khz8BitMonoMULaw";
+ /**
+ * riff-16khz-16kbps-mono-siren
+ * @member SpeechSynthesisOutputFormat.Riff16Khz16KbpsMonoSiren
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Riff16Khz16KbpsMonoSiren"] = 1] = "Riff16Khz16KbpsMonoSiren";
+ /**
+ * audio-16khz-16kbps-mono-siren
+ * @member SpeechSynthesisOutputFormat.Audio16Khz16KbpsMonoSiren
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Audio16Khz16KbpsMonoSiren"] = 2] = "Audio16Khz16KbpsMonoSiren";
+ /**
+ * audio-16khz-32kbitrate-mono-mp3
+ * @member SpeechSynthesisOutputFormat.Audio16Khz32KBitRateMonoMp3
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Audio16Khz32KBitRateMonoMp3"] = 3] = "Audio16Khz32KBitRateMonoMp3";
+ /**
+ * audio-16khz-128kbitrate-mono-mp3
+ * @member SpeechSynthesisOutputFormat.Audio16Khz128KBitRateMonoMp3
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Audio16Khz128KBitRateMonoMp3"] = 4] = "Audio16Khz128KBitRateMonoMp3";
+ /**
+ * audio-16khz-64kbitrate-mono-mp3
+ * @member SpeechSynthesisOutputFormat.Audio16Khz64KBitRateMonoMp3
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Audio16Khz64KBitRateMonoMp3"] = 5] = "Audio16Khz64KBitRateMonoMp3";
+ /**
+ * audio-24khz-48kbitrate-mono-mp3
+ * @member SpeechSynthesisOutputFormat.Audio24Khz48KBitRateMonoMp3
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Audio24Khz48KBitRateMonoMp3"] = 6] = "Audio24Khz48KBitRateMonoMp3";
+ /**
+ * audio-24khz-96kbitrate-mono-mp3
+ * @member SpeechSynthesisOutputFormat.Audio24Khz96KBitRateMonoMp3
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Audio24Khz96KBitRateMonoMp3"] = 7] = "Audio24Khz96KBitRateMonoMp3";
+ /**
+ * audio-24khz-160kbitrate-mono-mp3
+ * @member SpeechSynthesisOutputFormat.Audio24Khz160KBitRateMonoMp3
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Audio24Khz160KBitRateMonoMp3"] = 8] = "Audio24Khz160KBitRateMonoMp3";
+ /**
+ * raw-16khz-16bit-mono-truesilk
+ * @member SpeechSynthesisOutputFormat.Raw16Khz16BitMonoTrueSilk
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Raw16Khz16BitMonoTrueSilk"] = 9] = "Raw16Khz16BitMonoTrueSilk";
+ /**
+ * riff-16khz-16bit-mono-pcm
+ * @member SpeechSynthesisOutputFormat.Riff16Khz16BitMonoPcm
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Riff16Khz16BitMonoPcm"] = 10] = "Riff16Khz16BitMonoPcm";
+ /**
+ * riff-8khz-16bit-mono-pcm
+ * @member SpeechSynthesisOutputFormat.Riff8Khz16BitMonoPcm
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Riff8Khz16BitMonoPcm"] = 11] = "Riff8Khz16BitMonoPcm";
+ /**
+ * riff-24khz-16bit-mono-pcm
+ * @member SpeechSynthesisOutputFormat.Riff24Khz16BitMonoPcm
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Riff24Khz16BitMonoPcm"] = 12] = "Riff24Khz16BitMonoPcm";
+ /**
+ * riff-8khz-8bit-mono-mulaw
+ * @member SpeechSynthesisOutputFormat.Riff8Khz8BitMonoMULaw
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Riff8Khz8BitMonoMULaw"] = 13] = "Riff8Khz8BitMonoMULaw";
+ /**
+ * raw-16khz-16bit-mono-pcm
+ * @member SpeechSynthesisOutputFormat.Raw16Khz16BitMonoPcm
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Raw16Khz16BitMonoPcm"] = 14] = "Raw16Khz16BitMonoPcm";
+ /**
+ * raw-24khz-16bit-mono-pcm
+ * @member SpeechSynthesisOutputFormat.Raw24Khz16BitMonoPcm
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Raw24Khz16BitMonoPcm"] = 15] = "Raw24Khz16BitMonoPcm";
+ /**
+ * raw-8khz-16bit-mono-pcm
+ * @member SpeechSynthesisOutputFormat.Raw8Khz16BitMonoPcm
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Raw8Khz16BitMonoPcm"] = 16] = "Raw8Khz16BitMonoPcm";
+ /**
+ * ogg-16khz-16bit-mono-opus
+ * @member SpeechSynthesisOutputFormat.Ogg16Khz16BitMonoOpus
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Ogg16Khz16BitMonoOpus"] = 17] = "Ogg16Khz16BitMonoOpus";
+ /**
+ * ogg-24khz-16bit-mono-opus
+ * @member SpeechSynthesisOutputFormat.Ogg24Khz16BitMonoOpus
+ */
+ SpeechSynthesisOutputFormat[SpeechSynthesisOutputFormat["Ogg24Khz16BitMonoOpus"] = 18] = "Ogg24Khz16BitMonoOpus";
+})(SpeechSynthesisOutputFormat = exports.SpeechSynthesisOutputFormat || (exports.SpeechSynthesisOutputFormat = {}));
+
+
+
+/***/ }),
+/* 46 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Defines the possible reasons a recognition result might be canceled.
+ * @class CancellationReason
+ */
+var CancellationReason;
+(function (CancellationReason) {
+ /**
+ * Indicates that an error occurred during speech recognition.
+ * @member CancellationReason.Error
+ */
+ CancellationReason[CancellationReason["Error"] = 0] = "Error";
+ /**
+ * Indicates that the end of the audio stream was reached.
+ * @member CancellationReason.EndOfStream
+ */
+ CancellationReason[CancellationReason["EndOfStream"] = 1] = "EndOfStream";
+})(CancellationReason = exports.CancellationReason || (exports.CancellationReason = {}));
+
+
+
+/***/ }),
+/* 47 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", { value: true });
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+/**
+ * An abstract base class that defines callback methods (read() and close()) for
+ * custom audio input streams).
+ * @class PullAudioInputStreamCallback
+ */
+var PullAudioInputStreamCallback = /** @class */ (function () {
+ function PullAudioInputStreamCallback() {
+ }
+ return PullAudioInputStreamCallback;
+}());
+exports.PullAudioInputStreamCallback = PullAudioInputStreamCallback;
+
+
+
+/***/ }),
+/* 48 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", { value: true });
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+/**
+ * An abstract base class that defines callback methods (write() and close()) for
+ * custom audio output streams).
+ * @class PushAudioOutputStreamCallback
+ */
+var PushAudioOutputStreamCallback = /** @class */ (function () {
+ function PushAudioOutputStreamCallback() {
+ }
+ return PushAudioOutputStreamCallback;
+}());
+exports.PushAudioOutputStreamCallback = PushAudioOutputStreamCallback;
+
+
+
+/***/ }),
+/* 49 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Contracts_1 = __webpack_require__(33);
+/**
+ * Represents a keyword recognition model for recognizing when
+ * the user says a keyword to initiate further speech recognition.
+ * @class KeywordRecognitionModel
+ */
+var KeywordRecognitionModel = /** @class */ (function () {
+ /**
+ * Create and initializes a new instance.
+ * @constructor
+ */
+ function KeywordRecognitionModel() {
+ this.privDisposed = false;
+ }
+ /**
+ * Creates a keyword recognition model using the specified filename.
+ * @member KeywordRecognitionModel.fromFile
+ * @function
+ * @public
+ * @param {string} fileName - A string that represents file name for the keyword recognition model.
+ * Note, the file can point to a zip file in which case the model
+ * will be extracted from the zip.
+ * @returns {KeywordRecognitionModel} The keyword recognition model being created.
+ */
+ KeywordRecognitionModel.fromFile = function (fileName) {
+ Contracts_1.Contracts.throwIfFileDoesNotExist(fileName, "fileName");
+ throw new Error("Not yet implemented.");
+ };
+ /**
+ * Creates a keyword recognition model using the specified filename.
+ * @member KeywordRecognitionModel.fromStream
+ * @function
+ * @public
+ * @param {string} file - A File that represents file for the keyword recognition model.
+ * Note, the file can point to a zip file in which case the model will be extracted from the zip.
+ * @returns {KeywordRecognitionModel} The keyword recognition model being created.
+ */
+ KeywordRecognitionModel.fromStream = function (file) {
+ Contracts_1.Contracts.throwIfNull(file, "file");
+ throw new Error("Not yet implemented.");
+ };
+ /**
+ * Dispose of associated resources.
+ * @member KeywordRecognitionModel.prototype.close
+ * @function
+ * @public
+ */
+ KeywordRecognitionModel.prototype.close = function () {
+ if (this.privDisposed) {
+ return;
+ }
+ this.privDisposed = true;
+ };
+ return KeywordRecognitionModel;
+}());
+exports.KeywordRecognitionModel = KeywordRecognitionModel;
+
+
+
+/***/ }),
+/* 50 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Defines content for session events like SessionStarted/Stopped, SoundStarted/Stopped.
+ * @class SessionEventArgs
+ */
+var SessionEventArgs = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {string} sessionId - The session id.
+ */
+ function SessionEventArgs(sessionId) {
+ this.privSessionId = sessionId;
+ }
+ Object.defineProperty(SessionEventArgs.prototype, "sessionId", {
+ /**
+ * Represents the session identifier.
+ * @member SessionEventArgs.prototype.sessionId
+ * @function
+ * @public
+ * @returns {string} Represents the session identifier.
+ */
+ get: function () {
+ return this.privSessionId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SessionEventArgs;
+}());
+exports.SessionEventArgs = SessionEventArgs;
+
+
+
+/***/ }),
+/* 51 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+/**
+ * Defines payload for session events like Speech Start/End Detected
+ * @class
+ */
+var RecognitionEventArgs = /** @class */ (function (_super) {
+ __extends(RecognitionEventArgs, _super);
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {number} offset - The offset.
+ * @param {string} sessionId - The session id.
+ */
+ function RecognitionEventArgs(offset, sessionId) {
+ var _this = _super.call(this, sessionId) || this;
+ _this.privOffset = offset;
+ return _this;
+ }
+ Object.defineProperty(RecognitionEventArgs.prototype, "offset", {
+ /**
+ * Represents the message offset
+ * @member RecognitionEventArgs.prototype.offset
+ * @function
+ * @public
+ */
+ get: function () {
+ return this.privOffset;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return RecognitionEventArgs;
+}(Exports_1.SessionEventArgs));
+exports.RecognitionEventArgs = RecognitionEventArgs;
+
+
+
+/***/ }),
+/* 52 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Define Speech Recognizer output formats.
+ * @class OutputFormat
+ */
+var OutputFormat;
+(function (OutputFormat) {
+ /**
+ * @member OutputFormat.Simple
+ */
+ OutputFormat[OutputFormat["Simple"] = 0] = "Simple";
+ /**
+ * @member OutputFormat.Detailed
+ */
+ OutputFormat[OutputFormat["Detailed"] = 1] = "Detailed";
+})(OutputFormat = exports.OutputFormat || (exports.OutputFormat = {}));
+
+
+
+/***/ }),
+/* 53 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+/**
+ * Intent recognition result event arguments.
+ * @class
+ */
+var IntentRecognitionEventArgs = /** @class */ (function (_super) {
+ __extends(IntentRecognitionEventArgs, _super);
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param result - The result of the intent recognition.
+ * @param offset - The offset.
+ * @param sessionId - The session id.
+ */
+ function IntentRecognitionEventArgs(result, offset, sessionId) {
+ var _this = _super.call(this, offset, sessionId) || this;
+ _this.privResult = result;
+ return _this;
+ }
+ Object.defineProperty(IntentRecognitionEventArgs.prototype, "result", {
+ /**
+ * Represents the intent recognition result.
+ * @member IntentRecognitionEventArgs.prototype.result
+ * @function
+ * @public
+ * @returns {IntentRecognitionResult} Represents the intent recognition result.
+ */
+ get: function () {
+ return this.privResult;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return IntentRecognitionEventArgs;
+}(Exports_1.RecognitionEventArgs));
+exports.IntentRecognitionEventArgs = IntentRecognitionEventArgs;
+
+
+
+/***/ }),
+/* 54 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Defines result of speech recognition.
+ * @class RecognitionResult
+ */
+var RecognitionResult = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {string} resultId - The result id.
+ * @param {ResultReason} reason - The reason.
+ * @param {string} text - The recognized text.
+ * @param {number} duration - The duration.
+ * @param {number} offset - The offset into the stream.
+ * @param {string} language - Primary Language detected, if provided.
+ * @param {string} languageDetectionConfidence - Primary Language confidence ("Unknown," "Low," "Medium," "High"...), if provided.
+ * @param {string} errorDetails - Error details, if provided.
+ * @param {string} json - Additional Json, if provided.
+ * @param {PropertyCollection} properties - Additional properties, if provided.
+ */
+ function RecognitionResult(resultId, reason, text, duration, offset, language, languageDetectionConfidence, errorDetails, json, properties) {
+ this.privResultId = resultId;
+ this.privReason = reason;
+ this.privText = text;
+ this.privDuration = duration;
+ this.privOffset = offset;
+ this.privLanguage = language;
+ this.privLanguageDetectionConfidence = languageDetectionConfidence;
+ this.privErrorDetails = errorDetails;
+ this.privJson = json;
+ this.privProperties = properties;
+ }
+ Object.defineProperty(RecognitionResult.prototype, "resultId", {
+ /**
+ * Specifies the result identifier.
+ * @member RecognitionResult.prototype.resultId
+ * @function
+ * @public
+ * @returns {string} Specifies the result identifier.
+ */
+ get: function () {
+ return this.privResultId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionResult.prototype, "reason", {
+ /**
+ * Specifies status of the result.
+ * @member RecognitionResult.prototype.reason
+ * @function
+ * @public
+ * @returns {ResultReason} Specifies status of the result.
+ */
+ get: function () {
+ return this.privReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionResult.prototype, "text", {
+ /**
+ * Presents the recognized text in the result.
+ * @member RecognitionResult.prototype.text
+ * @function
+ * @public
+ * @returns {string} Presents the recognized text in the result.
+ */
+ get: function () {
+ return this.privText;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionResult.prototype, "duration", {
+ /**
+ * Duration of recognized speech in 100 nano second incements.
+ * @member RecognitionResult.prototype.duration
+ * @function
+ * @public
+ * @returns {number} Duration of recognized speech in 100 nano second incements.
+ */
+ get: function () {
+ return this.privDuration;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionResult.prototype, "offset", {
+ /**
+ * Offset of recognized speech in 100 nano second incements.
+ * @member RecognitionResult.prototype.offset
+ * @function
+ * @public
+ * @returns {number} Offset of recognized speech in 100 nano second incements.
+ */
+ get: function () {
+ return this.privOffset;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionResult.prototype, "language", {
+ /**
+ * Primary Language detected.
+ * @member RecognitionResult.prototype.language
+ * @function
+ * @public
+ * @returns {string} language detected.
+ */
+ get: function () {
+ return this.privLanguage;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionResult.prototype, "languageDetectionConfidence", {
+ /**
+ * Primary Language detection confidence (Unknown, Low, Medium, High).
+ * @member RecognitionResult.prototype.languageDetectionConfidence
+ * @function
+ * @public
+ * @returns {string} detection confidence strength.
+ */
+ get: function () {
+ return this.privLanguageDetectionConfidence;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionResult.prototype, "errorDetails", {
+ /**
+ * In case of an unsuccessful recognition, provides details of the occurred error.
+ * @member RecognitionResult.prototype.errorDetails
+ * @function
+ * @public
+ * @returns {string} a brief description of an error.
+ */
+ get: function () {
+ return this.privErrorDetails;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionResult.prototype, "json", {
+ /**
+ * A string containing Json serialized recognition result as it was received from the service.
+ * @member RecognitionResult.prototype.json
+ * @function
+ * @private
+ * @returns {string} Json serialized representation of the result.
+ */
+ get: function () {
+ return this.privJson;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionResult.prototype, "properties", {
+ /**
+ * The set of properties exposed in the result.
+ * @member RecognitionResult.prototype.properties
+ * @function
+ * @public
+ * @returns {PropertyCollection} The set of properties exposed in the result.
+ */
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return RecognitionResult;
+}());
+exports.RecognitionResult = RecognitionResult;
+
+
+
+/***/ }),
+/* 55 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+/**
+ * Defines result of speech recognition.
+ * @class SpeechRecognitionResult
+ */
+var SpeechRecognitionResult = /** @class */ (function (_super) {
+ __extends(SpeechRecognitionResult, _super);
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @public
+ * @param {string} resultId - The result id.
+ * @param {ResultReason} reason - The reason.
+ * @param {string} text - The recognized text.
+ * @param {number} duration - The duration.
+ * @param {number} offset - The offset into the stream.
+ * @param {string} language - Primary Language detected, if provided.
+ * @param {string} languageDetectionConfidence - Primary Language confidence ("Unknown," "Low," "Medium," "High"...), if provided.
+ * @param {string} errorDetails - Error details, if provided.
+ * @param {string} json - Additional Json, if provided.
+ * @param {PropertyCollection} properties - Additional properties, if provided.
+ */
+ function SpeechRecognitionResult(resultId, reason, text, duration, offset, language, languageDetectionConfidence, errorDetails, json, properties) {
+ return _super.call(this, resultId, reason, text, duration, offset, language, languageDetectionConfidence, errorDetails, json, properties) || this;
+ }
+ return SpeechRecognitionResult;
+}(Exports_1.RecognitionResult));
+exports.SpeechRecognitionResult = SpeechRecognitionResult;
+
+
+
+/***/ }),
+/* 56 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+/**
+ * Intent recognition result.
+ * @class
+ */
+var IntentRecognitionResult = /** @class */ (function (_super) {
+ __extends(IntentRecognitionResult, _super);
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param intentId - The intent id.
+ * @param resultId - The result id.
+ * @param reason - The reason.
+ * @param text - The recognized text.
+ * @param duration - The duration.
+ * @param offset - The offset into the stream.
+ * @param language - Primary Language detected, if provided.
+ * @param languageDetectionConfidence - Primary Language confidence ("Unknown," "Low," "Medium," "High"...), if provided.
+ * @param errorDetails - Error details, if provided.
+ * @param json - Additional Json, if provided.
+ * @param properties - Additional properties, if provided.
+ */
+ function IntentRecognitionResult(intentId, resultId, reason, text, duration, offset, language, languageDetectionConfidence, errorDetails, json, properties) {
+ var _this = _super.call(this, resultId, reason, text, duration, offset, language, languageDetectionConfidence, errorDetails, json, properties) || this;
+ _this.privIntentId = intentId;
+ return _this;
+ }
+ Object.defineProperty(IntentRecognitionResult.prototype, "intentId", {
+ /**
+ * A String that represents the intent identifier being recognized.
+ * @member IntentRecognitionResult.prototype.intentId
+ * @function
+ * @public
+ * @returns {string} A String that represents the intent identifier being recognized.
+ */
+ get: function () {
+ return this.privIntentId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return IntentRecognitionResult;
+}(Exports_1.SpeechRecognitionResult));
+exports.IntentRecognitionResult = IntentRecognitionResult;
+
+
+
+/***/ }),
+/* 57 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Contracts_1 = __webpack_require__(33);
+/**
+ * Language understanding model
+ * @class LanguageUnderstandingModel
+ */
+var LanguageUnderstandingModel = /** @class */ (function () {
+ /**
+ * Creates and initializes a new instance
+ * @constructor
+ */
+ function LanguageUnderstandingModel() {
+ }
+ /**
+ * Creates an language understanding model using the specified endpoint.
+ * @member LanguageUnderstandingModel.fromEndpoint
+ * @function
+ * @public
+ * @param {URL} uri - A String that represents the endpoint of the language understanding model.
+ * @returns {LanguageUnderstandingModel} The language understanding model being created.
+ */
+ LanguageUnderstandingModel.fromEndpoint = function (uri) {
+ Contracts_1.Contracts.throwIfNull(uri, "uri");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(uri.hostname, "uri");
+ var langModelImp = new LanguageUnderstandingModelImpl();
+ // Need to extract the app ID from the URL.
+ // URL is in the format: https://.api.cognitive.microsoft.com/luis/v2.0/apps/?subscription-key=&timezoneOffset=-360
+ // Start tearing the string apart.
+ // region can be extracted from the host name.
+ var firstDot = uri.host.indexOf(".");
+ if (-1 === firstDot) {
+ throw new Error("Could not determine region from endpoint");
+ }
+ langModelImp.region = uri.host.substr(0, firstDot);
+ // Now the app ID.
+ var lastSegment = uri.pathname.lastIndexOf("/") + 1;
+ if (-1 === lastSegment) {
+ throw new Error("Could not determine appId from endpoint");
+ }
+ langModelImp.appId = uri.pathname.substr(lastSegment);
+ // And finally the key.
+ langModelImp.subscriptionKey = uri.searchParams.get("subscription-key");
+ if (undefined === langModelImp.subscriptionKey) {
+ throw new Error("Could not determine subscription key from endpoint");
+ }
+ return langModelImp;
+ };
+ /**
+ * Creates an language understanding model using the application id of Language Understanding service.
+ * @member LanguageUnderstandingModel.fromAppId
+ * @function
+ * @public
+ * @param {string} appId - A String that represents the application id of Language Understanding service.
+ * @returns {LanguageUnderstandingModel} The language understanding model being created.
+ */
+ LanguageUnderstandingModel.fromAppId = function (appId) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(appId, "appId");
+ var langModelImp = new LanguageUnderstandingModelImpl();
+ langModelImp.appId = appId;
+ return langModelImp;
+ };
+ /**
+ * Creates a language understanding model using hostname, subscription key and application
+ * id of Language Understanding service.
+ * @member LanguageUnderstandingModel.fromSubscription
+ * @function
+ * @public
+ * @param {string} subscriptionKey - A String that represents the subscription key of
+ * Language Understanding service.
+ * @param {string} appId - A String that represents the application id of Language
+ * Understanding service.
+ * @param {LanguageUnderstandingModel} region - A String that represents the region
+ * of the Language Understanding service (see the region page).
+ * @returns {LanguageUnderstandingModel} The language understanding model being created.
+ */
+ LanguageUnderstandingModel.fromSubscription = function (subscriptionKey, appId, region) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(subscriptionKey, "subscriptionKey");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(appId, "appId");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(region, "region");
+ var langModelImp = new LanguageUnderstandingModelImpl();
+ langModelImp.appId = appId;
+ langModelImp.region = region;
+ langModelImp.subscriptionKey = subscriptionKey;
+ return langModelImp;
+ };
+ return LanguageUnderstandingModel;
+}());
+exports.LanguageUnderstandingModel = LanguageUnderstandingModel;
+/**
+ * @private
+ * @class LanguageUnderstandingModelImpl
+ */
+// tslint:disable-next-line:max-classes-per-file
+var LanguageUnderstandingModelImpl = /** @class */ (function (_super) {
+ __extends(LanguageUnderstandingModelImpl, _super);
+ function LanguageUnderstandingModelImpl() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ return LanguageUnderstandingModelImpl;
+}(LanguageUnderstandingModel));
+exports.LanguageUnderstandingModelImpl = LanguageUnderstandingModelImpl;
+
+
+
+/***/ }),
+/* 58 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+/**
+ * Defines contents of speech recognizing/recognized event.
+ * @class SpeechRecognitionEventArgs
+ */
+var SpeechRecognitionEventArgs = /** @class */ (function (_super) {
+ __extends(SpeechRecognitionEventArgs, _super);
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {SpeechRecognitionResult} result - The speech recognition result.
+ * @param {number} offset - The offset.
+ * @param {string} sessionId - The session id.
+ */
+ function SpeechRecognitionEventArgs(result, offset, sessionId) {
+ var _this = _super.call(this, offset, sessionId) || this;
+ _this.privResult = result;
+ return _this;
+ }
+ Object.defineProperty(SpeechRecognitionEventArgs.prototype, "result", {
+ /**
+ * Specifies the recognition result.
+ * @member SpeechRecognitionEventArgs.prototype.result
+ * @function
+ * @public
+ * @returns {SpeechRecognitionResult} the recognition result.
+ */
+ get: function () {
+ return this.privResult;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeechRecognitionEventArgs;
+}(Exports_1.RecognitionEventArgs));
+exports.SpeechRecognitionEventArgs = SpeechRecognitionEventArgs;
+
+
+
+/***/ }),
+/* 59 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+/**
+ * Defines content of a RecognitionErrorEvent.
+ * @class SpeechRecognitionCanceledEventArgs
+ */
+var SpeechRecognitionCanceledEventArgs = /** @class */ (function (_super) {
+ __extends(SpeechRecognitionCanceledEventArgs, _super);
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {CancellationReason} reason - The cancellation reason.
+ * @param {string} errorDetails - Error details, if provided.
+ * @param {number} offset - The offset.
+ * @param {string} sessionId - The session id.
+ */
+ function SpeechRecognitionCanceledEventArgs(reason, errorDetails, errorCode, offset, sessionId) {
+ var _this = _super.call(this, offset, sessionId) || this;
+ _this.privReason = reason;
+ _this.privErrorDetails = errorDetails;
+ _this.privErrorCode = errorCode;
+ return _this;
+ }
+ Object.defineProperty(SpeechRecognitionCanceledEventArgs.prototype, "reason", {
+ /**
+ * The reason the recognition was canceled.
+ * @member SpeechRecognitionCanceledEventArgs.prototype.reason
+ * @function
+ * @public
+ * @returns {CancellationReason} Specifies the reason canceled.
+ */
+ get: function () {
+ return this.privReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechRecognitionCanceledEventArgs.prototype, "errorCode", {
+ /**
+ * The error code in case of an unsuccessful recognition.
+ * Added in version 1.1.0.
+ * @return An error code that represents the error reason.
+ */
+ get: function () {
+ return this.privErrorCode;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechRecognitionCanceledEventArgs.prototype, "errorDetails", {
+ /**
+ * In case of an unsuccessful recognition, provides details of the occurred error.
+ * @member SpeechRecognitionCanceledEventArgs.prototype.errorDetails
+ * @function
+ * @public
+ * @returns {string} A String that represents the error details.
+ */
+ get: function () {
+ return this.privErrorDetails;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeechRecognitionCanceledEventArgs;
+}(Exports_1.RecognitionEventArgs));
+exports.SpeechRecognitionCanceledEventArgs = SpeechRecognitionCanceledEventArgs;
+
+
+
+/***/ }),
+/* 60 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+/**
+ * Translation text result event arguments.
+ * @class TranslationRecognitionEventArgs
+ */
+var TranslationRecognitionEventArgs = /** @class */ (function (_super) {
+ __extends(TranslationRecognitionEventArgs, _super);
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {TranslationRecognitionResult} result - The translation recognition result.
+ * @param {number} offset - The offset.
+ * @param {string} sessionId - The session id.
+ */
+ function TranslationRecognitionEventArgs(result, offset, sessionId) {
+ var _this = _super.call(this, offset, sessionId) || this;
+ _this.privResult = result;
+ return _this;
+ }
+ Object.defineProperty(TranslationRecognitionEventArgs.prototype, "result", {
+ /**
+ * Specifies the recognition result.
+ * @member TranslationRecognitionEventArgs.prototype.result
+ * @function
+ * @public
+ * @returns {TranslationRecognitionResult} the recognition result.
+ */
+ get: function () {
+ return this.privResult;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return TranslationRecognitionEventArgs;
+}(Exports_1.RecognitionEventArgs));
+exports.TranslationRecognitionEventArgs = TranslationRecognitionEventArgs;
+
+
+
+/***/ }),
+/* 61 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+/**
+ * Translation Synthesis event arguments
+ * @class TranslationSynthesisEventArgs
+ */
+var TranslationSynthesisEventArgs = /** @class */ (function (_super) {
+ __extends(TranslationSynthesisEventArgs, _super);
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {TranslationSynthesisResult} result - The translation synthesis result.
+ * @param {string} sessionId - The session id.
+ */
+ function TranslationSynthesisEventArgs(result, sessionId) {
+ var _this = _super.call(this, sessionId) || this;
+ _this.privResult = result;
+ return _this;
+ }
+ Object.defineProperty(TranslationSynthesisEventArgs.prototype, "result", {
+ /**
+ * Specifies the translation synthesis result.
+ * @member TranslationSynthesisEventArgs.prototype.result
+ * @function
+ * @public
+ * @returns {TranslationSynthesisResult} Specifies the translation synthesis result.
+ */
+ get: function () {
+ return this.privResult;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return TranslationSynthesisEventArgs;
+}(Exports_1.SessionEventArgs));
+exports.TranslationSynthesisEventArgs = TranslationSynthesisEventArgs;
+
+
+
+/***/ }),
+/* 62 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+/**
+ * Translation text result.
+ * @class TranslationRecognitionResult
+ */
+var TranslationRecognitionResult = /** @class */ (function (_super) {
+ __extends(TranslationRecognitionResult, _super);
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {Translations} translations - The translations.
+ * @param {string} resultId - The result id.
+ * @param {ResultReason} reason - The reason.
+ * @param {string} text - The recognized text.
+ * @param {number} duration - The duration.
+ * @param {number} offset - The offset into the stream.
+ * @param {string} errorDetails - Error details, if provided.
+ * @param {string} json - Additional Json, if provided.
+ * @param {PropertyCollection} properties - Additional properties, if provided.
+ */
+ function TranslationRecognitionResult(translations, resultId, reason, text, duration, offset, errorDetails, json, properties) {
+ var _this = _super.call(this, resultId, reason, text, duration, offset, undefined, undefined, errorDetails, json, properties) || this;
+ _this.privTranslations = translations;
+ return _this;
+ }
+ Object.defineProperty(TranslationRecognitionResult.prototype, "translations", {
+ /**
+ * Presents the translation results. Each item in the dictionary represents
+ * a translation result in one of target languages, where the key is the name
+ * of the target language, in BCP-47 format, and the value is the translation
+ * text in the specified language.
+ * @member TranslationRecognitionResult.prototype.translations
+ * @function
+ * @public
+ * @returns {Translations} the current translation map that holds all translations requested.
+ */
+ get: function () {
+ return this.privTranslations;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return TranslationRecognitionResult;
+}(Exports_1.SpeechRecognitionResult));
+exports.TranslationRecognitionResult = TranslationRecognitionResult;
+
+
+
+/***/ }),
+/* 63 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Defines translation synthesis result, i.e. the voice output of the translated
+ * text in the target language.
+ * @class TranslationSynthesisResult
+ */
+var TranslationSynthesisResult = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {ResultReason} reason - The synthesis reason.
+ * @param {ArrayBuffer} audio - The audio data.
+ */
+ function TranslationSynthesisResult(reason, audio) {
+ this.privReason = reason;
+ this.privAudio = audio;
+ }
+ Object.defineProperty(TranslationSynthesisResult.prototype, "audio", {
+ /**
+ * Translated text in the target language.
+ * @member TranslationSynthesisResult.prototype.audio
+ * @function
+ * @public
+ * @returns {ArrayBuffer} Translated audio in the target language.
+ */
+ get: function () {
+ return this.privAudio;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationSynthesisResult.prototype, "reason", {
+ /**
+ * The synthesis status.
+ * @member TranslationSynthesisResult.prototype.reason
+ * @function
+ * @public
+ * @returns {ResultReason} The synthesis status.
+ */
+ get: function () {
+ return this.privReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return TranslationSynthesisResult;
+}());
+exports.TranslationSynthesisResult = TranslationSynthesisResult;
+
+
+
+/***/ }),
+/* 64 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Defines the possible reasons a recognition result might be generated.
+ * @class ResultReason
+ */
+var ResultReason;
+(function (ResultReason) {
+ /**
+ * Indicates speech could not be recognized. More details
+ * can be found in the NoMatchDetails object.
+ * @member ResultReason.NoMatch
+ */
+ ResultReason[ResultReason["NoMatch"] = 0] = "NoMatch";
+ /**
+ * Indicates that the recognition was canceled. More details
+ * can be found using the CancellationDetails object.
+ * @member ResultReason.Canceled
+ */
+ ResultReason[ResultReason["Canceled"] = 1] = "Canceled";
+ /**
+ * Indicates the speech result contains hypothesis text.
+ * @member ResultReason.RecognizedSpeech
+ */
+ ResultReason[ResultReason["RecognizingSpeech"] = 2] = "RecognizingSpeech";
+ /**
+ * Indicates the speech result contains final text that has been recognized.
+ * Speech Recognition is now complete for this phrase.
+ * @member ResultReason.RecognizedSpeech
+ */
+ ResultReason[ResultReason["RecognizedSpeech"] = 3] = "RecognizedSpeech";
+ /**
+ * Indicates the intent result contains hypothesis text and intent.
+ * @member ResultReason.RecognizingIntent
+ */
+ ResultReason[ResultReason["RecognizingIntent"] = 4] = "RecognizingIntent";
+ /**
+ * Indicates the intent result contains final text and intent.
+ * Speech Recognition and Intent determination are now complete for this phrase.
+ * @member ResultReason.RecognizedIntent
+ */
+ ResultReason[ResultReason["RecognizedIntent"] = 5] = "RecognizedIntent";
+ /**
+ * Indicates the translation result contains hypothesis text and its translation(s).
+ * @member ResultReason.TranslatingSpeech
+ */
+ ResultReason[ResultReason["TranslatingSpeech"] = 6] = "TranslatingSpeech";
+ /**
+ * Indicates the translation result contains final text and corresponding translation(s).
+ * Speech Recognition and Translation are now complete for this phrase.
+ * @member ResultReason.TranslatedSpeech
+ */
+ ResultReason[ResultReason["TranslatedSpeech"] = 7] = "TranslatedSpeech";
+ /**
+ * Indicates the synthesized audio result contains a non-zero amount of audio data
+ * @member ResultReason.SynthesizingAudio
+ */
+ ResultReason[ResultReason["SynthesizingAudio"] = 8] = "SynthesizingAudio";
+ /**
+ * Indicates the synthesized audio is now complete for this phrase.
+ * @member ResultReason.SynthesizingAudioCompleted
+ */
+ ResultReason[ResultReason["SynthesizingAudioCompleted"] = 9] = "SynthesizingAudioCompleted";
+ /**
+ * Indicates the speech synthesis is now started
+ * @member ResultReason.SynthesizingAudioStarted
+ */
+ ResultReason[ResultReason["SynthesizingAudioStarted"] = 10] = "SynthesizingAudioStarted";
+ /**
+ * Indicates the voice profile is being enrolled and customers need to send more audio to create a voice profile.
+ * @member ResultReason.EnrollingVoiceProfile
+ */
+ ResultReason[ResultReason["EnrollingVoiceProfile"] = 11] = "EnrollingVoiceProfile";
+ /**
+ * Indicates the voice profile has been enrolled.
+ * @member ResultReason.EnrolledVoiceProfile
+ */
+ ResultReason[ResultReason["EnrolledVoiceProfile"] = 12] = "EnrolledVoiceProfile";
+ /**
+ * Indicates successful identification of some speakers.
+ * @member ResultReason.RecognizedSpeakers
+ */
+ ResultReason[ResultReason["RecognizedSpeakers"] = 13] = "RecognizedSpeakers";
+ /**
+ * Indicates successfully verified one speaker.
+ * @member ResultReason.RecognizedSpeaker
+ */
+ ResultReason[ResultReason["RecognizedSpeaker"] = 14] = "RecognizedSpeaker";
+ /**
+ * Indicates a voice profile has been reset successfully.
+ * @member ResultReason.ResetVoiceProfile
+ */
+ ResultReason[ResultReason["ResetVoiceProfile"] = 15] = "ResetVoiceProfile";
+ /**
+ * Indicates a voice profile has been deleted successfully.
+ * @member ResultReason.DeletedVoiceProfile
+ */
+ ResultReason[ResultReason["DeletedVoiceProfile"] = 16] = "DeletedVoiceProfile";
+})(ResultReason = exports.ResultReason || (exports.ResultReason = {}));
+
+
+
+/***/ }),
+/* 65 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+/**
+ * Speech configuration.
+ * @class SpeechConfig
+ */
+var SpeechConfig = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance.
+ * @constructor
+ */
+ function SpeechConfig() {
+ }
+ /**
+ * Static instance of SpeechConfig returned by passing subscriptionKey and service region.
+ * Note: Please use your LanguageUnderstanding subscription key in case you want to use the Intent recognizer.
+ * @member SpeechConfig.fromSubscription
+ * @function
+ * @public
+ * @param {string} subscriptionKey - The subscription key.
+ * @param {string} region - The region name (see the region page).
+ * @returns {SpeechConfig} The speech factory
+ */
+ SpeechConfig.fromSubscription = function (subscriptionKey, region) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(subscriptionKey, "subscriptionKey");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(region, "region");
+ var speechImpl = new SpeechConfigImpl();
+ speechImpl.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Region, region);
+ speechImpl.setProperty(Exports_2.PropertyId.SpeechServiceConnection_IntentRegion, region);
+ speechImpl.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Key, subscriptionKey);
+ return speechImpl;
+ };
+ /**
+ * Creates an instance of the speech config with specified endpoint and subscription key.
+ * This method is intended only for users who use a non-standard service endpoint or parameters.
+ * Note: Please use your LanguageUnderstanding subscription key in case you want to use the Intent recognizer.
+ * Note: The query parameters specified in the endpoint URL are not changed, even if they are set by any other APIs.
+ * For example, if language is defined in the uri as query parameter "language=de-DE", and also set by
+ * SpeechConfig.speechRecognitionLanguage = "en-US", the language setting in uri takes precedence,
+ * and the effective language is "de-DE". Only the parameters that are not specified in the
+ * endpoint URL can be set by other APIs.
+ * Note: To use authorization token with fromEndpoint, pass an empty string to the subscriptionKey in the
+ * fromEndpoint method, and then set authorizationToken="token" on the created SpeechConfig instance to
+ * use the authorization token.
+ * @member SpeechConfig.fromEndpoint
+ * @function
+ * @public
+ * @param {URL} endpoint - The service endpoint to connect to.
+ * @param {string} subscriptionKey - The subscription key. If a subscription key is not specified, an authorization token must be set.
+ * @returns {SpeechConfig} A speech factory instance.
+ */
+ SpeechConfig.fromEndpoint = function (endpoint, subscriptionKey) {
+ Contracts_1.Contracts.throwIfNull(endpoint, "endpoint");
+ var speechImpl = new SpeechConfigImpl();
+ speechImpl.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Endpoint, endpoint.href);
+ if (undefined !== subscriptionKey) {
+ speechImpl.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Key, subscriptionKey);
+ }
+ return speechImpl;
+ };
+ /**
+ * Creates an instance of the speech config with specified host and subscription key.
+ * This method is intended only for users who use a non-default service host. Standard resource path will be assumed.
+ * For services with a non-standard resource path or no path at all, use fromEndpoint instead.
+ * Note: Query parameters are not allowed in the host URI and must be set by other APIs.
+ * Note: To use an authorization token with fromHost, use fromHost(URL),
+ * and then set the AuthorizationToken property on the created SpeechConfig instance.
+ * Note: Added in version 1.9.0.
+ * @member SpeechConfig.fromHost
+ * @function
+ * @public
+ * @param {URL} host - The service endpoint to connect to. Format is "protocol://host:port" where ":port" is optional.
+ * @param {string} subscriptionKey - The subscription key. If a subscription key is not specified, an authorization token must be set.
+ * @returns {SpeechConfig} A speech factory instance.
+ */
+ SpeechConfig.fromHost = function (hostName, subscriptionKey) {
+ Contracts_1.Contracts.throwIfNull(hostName, "hostName");
+ var speechImpl = new SpeechConfigImpl();
+ speechImpl.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Host, hostName.protocol + "//" + hostName.hostname + (hostName.port === "" ? "" : ":" + hostName.port));
+ if (undefined !== subscriptionKey) {
+ speechImpl.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Key, subscriptionKey);
+ }
+ return speechImpl;
+ };
+ /**
+ * Creates an instance of the speech factory with specified initial authorization token and region.
+ * Note: The caller needs to ensure that the authorization token is valid. Before the authorization token
+ * expires, the caller needs to refresh it by calling this setter with a new valid token.
+ * Note: Please use a token derived from your LanguageUnderstanding subscription key in case you want
+ * to use the Intent recognizer. As configuration values are copied when creating a new recognizer,
+ * the new token value will not apply to recognizers that have already been created. For recognizers
+ * that have been created before, you need to set authorization token of the corresponding recognizer
+ * to refresh the token. Otherwise, the recognizers will encounter errors during recognition.
+ * @member SpeechConfig.fromAuthorizationToken
+ * @function
+ * @public
+ * @param {string} authorizationToken - The initial authorization token.
+ * @param {string} region - The region name (see the region page).
+ * @returns {SpeechConfig} A speech factory instance.
+ */
+ SpeechConfig.fromAuthorizationToken = function (authorizationToken, region) {
+ Contracts_1.Contracts.throwIfNull(authorizationToken, "authorizationToken");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(region, "region");
+ var speechImpl = new SpeechConfigImpl();
+ speechImpl.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Region, region);
+ speechImpl.setProperty(Exports_2.PropertyId.SpeechServiceConnection_IntentRegion, region);
+ speechImpl.authorizationToken = authorizationToken;
+ return speechImpl;
+ };
+ /**
+ * Closes the configuration.
+ * @member SpeechConfig.prototype.close
+ * @function
+ * @public
+ */
+ /* tslint:disable:no-empty */
+ SpeechConfig.prototype.close = function () { };
+ return SpeechConfig;
+}());
+exports.SpeechConfig = SpeechConfig;
+/**
+ * @public
+ * @class SpeechConfigImpl
+ */
+// tslint:disable-next-line:max-classes-per-file
+var SpeechConfigImpl = /** @class */ (function (_super) {
+ __extends(SpeechConfigImpl, _super);
+ function SpeechConfigImpl() {
+ var _this = _super.call(this) || this;
+ _this.privProperties = new Exports_2.PropertyCollection();
+ _this.speechRecognitionLanguage = "en-US"; // Should we have a default?
+ _this.outputFormat = Exports_2.OutputFormat.Simple;
+ return _this;
+ }
+ Object.defineProperty(SpeechConfigImpl.prototype, "properties", {
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechConfigImpl.prototype, "endPoint", {
+ get: function () {
+ return new URL(this.privProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Endpoint));
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechConfigImpl.prototype, "subscriptionKey", {
+ get: function () {
+ return this.privProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Key);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechConfigImpl.prototype, "region", {
+ get: function () {
+ return this.privProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Region);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechConfigImpl.prototype, "authorizationToken", {
+ get: function () {
+ return this.privProperties.getProperty(Exports_2.PropertyId.SpeechServiceAuthorization_Token);
+ },
+ set: function (value) {
+ this.privProperties.setProperty(Exports_2.PropertyId.SpeechServiceAuthorization_Token, value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechConfigImpl.prototype, "speechRecognitionLanguage", {
+ get: function () {
+ return this.privProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage);
+ },
+ set: function (value) {
+ this.privProperties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage, value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechConfigImpl.prototype, "autoDetectSourceLanguages", {
+ get: function () {
+ return this.privProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages);
+ },
+ set: function (value) {
+ this.privProperties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages, value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechConfigImpl.prototype, "outputFormat", {
+ get: function () {
+ return Exports_2.OutputFormat[this.privProperties.getProperty(Exports_1.OutputFormatPropertyName, undefined)];
+ },
+ set: function (value) {
+ this.privProperties.setProperty(Exports_1.OutputFormatPropertyName, Exports_2.OutputFormat[value]);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechConfigImpl.prototype, "endpointId", {
+ get: function () {
+ return this.privProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_EndpointId);
+ },
+ set: function (value) {
+ this.privProperties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_EndpointId, value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ SpeechConfigImpl.prototype.setProperty = function (name, value) {
+ Contracts_1.Contracts.throwIfNull(value, "value");
+ this.privProperties.setProperty(name, value);
+ };
+ SpeechConfigImpl.prototype.getProperty = function (name, def) {
+ return this.privProperties.getProperty(name, def);
+ };
+ SpeechConfigImpl.prototype.setProxy = function (proxyHostName, proxyPort, proxyUserName, proxyPassword) {
+ this.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_ProxyHostName], proxyHostName);
+ this.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_ProxyPort], proxyPort);
+ this.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_ProxyUserName], proxyUserName);
+ this.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_ProxyPassword], proxyPassword);
+ };
+ SpeechConfigImpl.prototype.setServiceProperty = function (name, value, channel) {
+ var currentProperties = JSON.parse(this.privProperties.getProperty(Exports_1.ServicePropertiesPropertyName, "{}"));
+ currentProperties[name] = value;
+ this.privProperties.setProperty(Exports_1.ServicePropertiesPropertyName, JSON.stringify(currentProperties));
+ };
+ SpeechConfigImpl.prototype.setProfanity = function (profanity) {
+ this.privProperties.setProperty(Exports_2.PropertyId.SpeechServiceResponse_ProfanityOption, Exports_2.ProfanityOption[profanity]);
+ };
+ SpeechConfigImpl.prototype.enableAudioLogging = function () {
+ this.privProperties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_EnableAudioLogging, "true");
+ };
+ SpeechConfigImpl.prototype.requestWordLevelTimestamps = function () {
+ this.privProperties.setProperty(Exports_2.PropertyId.SpeechServiceResponse_RequestWordLevelTimestamps, "true");
+ };
+ SpeechConfigImpl.prototype.enableDictation = function () {
+ this.privProperties.setProperty(Exports_1.ForceDictationPropertyName, "true");
+ };
+ SpeechConfigImpl.prototype.clone = function () {
+ var ret = new SpeechConfigImpl();
+ ret.privProperties = this.privProperties.clone();
+ return ret;
+ };
+ Object.defineProperty(SpeechConfigImpl.prototype, "speechSynthesisLanguage", {
+ get: function () {
+ return this.privProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_SynthLanguage);
+ },
+ set: function (language) {
+ this.privProperties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_SynthLanguage, language);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechConfigImpl.prototype, "speechSynthesisVoiceName", {
+ get: function () {
+ return this.privProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_SynthVoice);
+ },
+ set: function (voice) {
+ this.privProperties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_SynthVoice, voice);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechConfigImpl.prototype, "speechSynthesisOutputFormat", {
+ get: function () {
+ return Exports_2.SpeechSynthesisOutputFormat[this.privProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_SynthOutputFormat, undefined)];
+ },
+ set: function (format) {
+ this.privProperties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_SynthOutputFormat, Exports_2.SpeechSynthesisOutputFormat[format]);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeechConfigImpl;
+}(SpeechConfig));
+exports.SpeechConfigImpl = SpeechConfigImpl;
+
+
+
+/***/ }),
+/* 66 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+/**
+ * Speech translation configuration.
+ * @class SpeechTranslationConfig
+ */
+var SpeechTranslationConfig = /** @class */ (function (_super) {
+ __extends(SpeechTranslationConfig, _super);
+ /**
+ * Creates an instance of recognizer config.
+ */
+ function SpeechTranslationConfig() {
+ return _super.call(this) || this;
+ }
+ /**
+ * Static instance of SpeechTranslationConfig returned by passing a subscription key and service region.
+ * @member SpeechTranslationConfig.fromSubscription
+ * @function
+ * @public
+ * @param {string} subscriptionKey - The subscription key.
+ * @param {string} region - The region name (see the region page).
+ * @returns {SpeechTranslationConfig} The speech translation config.
+ */
+ SpeechTranslationConfig.fromSubscription = function (subscriptionKey, region) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(subscriptionKey, "subscriptionKey");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(region, "region");
+ var ret = new SpeechTranslationConfigImpl();
+ ret.properties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Key, subscriptionKey);
+ ret.properties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Region, region);
+ return ret;
+ };
+ /**
+ * Static instance of SpeechTranslationConfig returned by passing authorization token and service region.
+ * Note: The caller needs to ensure that the authorization token is valid. Before the authorization token
+ * expires, the caller needs to refresh it by setting the property authorizationToken with a new
+ * valid token. Otherwise, all the recognizers created by this SpeechTranslationConfig instance
+ * will encounter errors during recognition.
+ * As configuration values are copied when creating a new recognizer, the new token value will not apply
+ * to recognizers that have already been created.
+ * For recognizers that have been created before, you need to set authorization token of the corresponding recognizer
+ * to refresh the token. Otherwise, the recognizers will encounter errors during recognition.
+ * @member SpeechTranslationConfig.fromAuthorizationToken
+ * @function
+ * @public
+ * @param {string} authorizationToken - The authorization token.
+ * @param {string} region - The region name (see the region page).
+ * @returns {SpeechTranslationConfig} The speech translation config.
+ */
+ SpeechTranslationConfig.fromAuthorizationToken = function (authorizationToken, region) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(authorizationToken, "authorizationToken");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(region, "region");
+ var ret = new SpeechTranslationConfigImpl();
+ ret.properties.setProperty(Exports_2.PropertyId.SpeechServiceAuthorization_Token, authorizationToken);
+ ret.properties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Region, region);
+ return ret;
+ };
+ /**
+ * Creates an instance of the speech config with specified host and subscription key.
+ * This method is intended only for users who use a non-default service host. Standard resource path will be assumed.
+ * For services with a non-standard resource path or no path at all, use fromEndpoint instead.
+ * Note: Query parameters are not allowed in the host URI and must be set by other APIs.
+ * Note: To use an authorization token with fromHost, use fromHost(URL),
+ * and then set the AuthorizationToken property on the created SpeechConfig instance.
+ * Note: Added in version 1.9.0.
+ * @member SpeechConfig.fromHost
+ * @function
+ * @public
+ * @param {URL} host - The service endpoint to connect to. Format is "protocol://host:port" where ":port" is optional.
+ * @param {string} subscriptionKey - The subscription key. If a subscription key is not specified, an authorization token must be set.
+ * @returns {SpeechConfig} A speech factory instance.
+ */
+ SpeechTranslationConfig.fromHost = function (hostName, subscriptionKey) {
+ Contracts_1.Contracts.throwIfNull(hostName, "hostName");
+ var speechImpl = new SpeechTranslationConfigImpl();
+ speechImpl.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Host, hostName.protocol + "//" + hostName.hostname + (hostName.port === "" ? "" : ":" + hostName.port));
+ if (undefined !== subscriptionKey) {
+ speechImpl.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Key, subscriptionKey);
+ }
+ return speechImpl;
+ };
+ /**
+ * Creates an instance of the speech translation config with specified endpoint and subscription key.
+ * This method is intended only for users who use a non-standard service endpoint or paramters.
+ * Note: The query properties specified in the endpoint URL are not changed, even if they are
+ * set by any other APIs. For example, if language is defined in the uri as query parameter
+ * "language=de-DE", and also set by the speechRecognitionLanguage property, the language
+ * setting in uri takes precedence, and the effective language is "de-DE".
+ * Only the properties that are not specified in the endpoint URL can be set by other APIs.
+ * Note: To use authorization token with fromEndpoint, pass an empty string to the subscriptionKey in the
+ * fromEndpoint method, and then set authorizationToken="token" on the created SpeechConfig instance to
+ * use the authorization token.
+ * @member SpeechTranslationConfig.fromEndpoint
+ * @function
+ * @public
+ * @param {URL} endpoint - The service endpoint to connect to.
+ * @param {string} subscriptionKey - The subscription key.
+ * @returns {SpeechTranslationConfig} A speech config instance.
+ */
+ SpeechTranslationConfig.fromEndpoint = function (endpoint, subscriptionKey) {
+ Contracts_1.Contracts.throwIfNull(endpoint, "endpoint");
+ Contracts_1.Contracts.throwIfNull(subscriptionKey, "subscriptionKey");
+ var ret = new SpeechTranslationConfigImpl();
+ ret.properties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Endpoint, endpoint.href);
+ ret.properties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Key, subscriptionKey);
+ return ret;
+ };
+ return SpeechTranslationConfig;
+}(Exports_2.SpeechConfig));
+exports.SpeechTranslationConfig = SpeechTranslationConfig;
+/**
+ * @private
+ * @class SpeechTranslationConfigImpl
+ */
+// tslint:disable-next-line:max-classes-per-file
+var SpeechTranslationConfigImpl = /** @class */ (function (_super) {
+ __extends(SpeechTranslationConfigImpl, _super);
+ function SpeechTranslationConfigImpl() {
+ var _this = _super.call(this) || this;
+ _this.privSpeechProperties = new Exports_2.PropertyCollection();
+ _this.outputFormat = Exports_2.OutputFormat.Simple;
+ return _this;
+ }
+ Object.defineProperty(SpeechTranslationConfigImpl.prototype, "authorizationToken", {
+ /**
+ * Gets/Sets the authorization token.
+ * If this is set, subscription key is ignored.
+ * User needs to make sure the provided authorization token is valid and not expired.
+ * @member SpeechTranslationConfigImpl.prototype.authorizationToken
+ * @function
+ * @public
+ * @param {string} value - The authorization token.
+ */
+ set: function (value) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(value, "value");
+ this.privSpeechProperties.setProperty(Exports_2.PropertyId.SpeechServiceAuthorization_Token, value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechTranslationConfigImpl.prototype, "speechRecognitionLanguage", {
+ /**
+ * Gets/Sets the speech recognition language.
+ * @member SpeechTranslationConfigImpl.prototype.speechRecognitionLanguage
+ * @function
+ * @public
+ * @param {string} value - The authorization token.
+ */
+ set: function (value) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(value, "value");
+ this.privSpeechProperties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage, value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechTranslationConfigImpl.prototype, "subscriptionKey", {
+ /**
+ * @member SpeechTranslationConfigImpl.prototype.subscriptionKey
+ * @function
+ * @public
+ */
+ get: function () {
+ return this.privSpeechProperties.getProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_Key]);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechTranslationConfigImpl.prototype, "outputFormat", {
+ /**
+ * Gets the output format
+ * @member SpeechTranslationConfigImpl.prototype.outputFormat
+ * @function
+ * @public
+ */
+ get: function () {
+ return Exports_2.OutputFormat[this.privSpeechProperties.getProperty(Exports_1.OutputFormatPropertyName, undefined)];
+ },
+ /**
+ * Gets/Sets the output format
+ * @member SpeechTranslationConfigImpl.prototype.outputFormat
+ * @function
+ * @public
+ */
+ set: function (value) {
+ this.privSpeechProperties.setProperty(Exports_1.OutputFormatPropertyName, Exports_2.OutputFormat[value]);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechTranslationConfigImpl.prototype, "endpointId", {
+ /**
+ * Gets the endpoint id.
+ * @member SpeechTranslationConfigImpl.prototype.endpointId
+ * @function
+ * @public
+ */
+ get: function () {
+ return this.privSpeechProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_EndpointId);
+ },
+ /**
+ * Gets/Sets the endpoint id.
+ * @member SpeechTranslationConfigImpl.prototype.endpointId
+ * @function
+ * @public
+ */
+ set: function (value) {
+ this.privSpeechProperties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_EndpointId, value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Add a (text) target language to translate into.
+ * @member SpeechTranslationConfigImpl.prototype.addTargetLanguage
+ * @function
+ * @public
+ * @param {string} value - The language such as de-DE
+ */
+ SpeechTranslationConfigImpl.prototype.addTargetLanguage = function (value) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(value, "value");
+ var languages = this.targetLanguages;
+ languages.push(value);
+ this.privSpeechProperties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_TranslationToLanguages, languages.join(","));
+ };
+ Object.defineProperty(SpeechTranslationConfigImpl.prototype, "targetLanguages", {
+ /**
+ * Gets the (text) target language to translate into.
+ * @member SpeechTranslationConfigImpl.prototype.targetLanguages
+ * @function
+ * @public
+ * @param {string} value - The language such as de-DE
+ */
+ get: function () {
+ if (this.privSpeechProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_TranslationToLanguages, undefined) !== undefined) {
+ return this.privSpeechProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_TranslationToLanguages).split(",");
+ }
+ else {
+ return [];
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechTranslationConfigImpl.prototype, "voiceName", {
+ /**
+ * Gets the voice name.
+ * @member SpeechTranslationConfigImpl.prototype.voiceName
+ * @function
+ * @public
+ */
+ get: function () {
+ return this.getProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_TranslationVoice]);
+ },
+ /**
+ * Gets/Sets the voice of the translated language, enable voice synthesis output.
+ * @member SpeechTranslationConfigImpl.prototype.voiceName
+ * @function
+ * @public
+ * @param {string} value - The name of the voice.
+ */
+ set: function (value) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(value, "value");
+ this.privSpeechProperties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_TranslationVoice, value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechTranslationConfigImpl.prototype, "region", {
+ /**
+ * Provides the region.
+ * @member SpeechTranslationConfigImpl.prototype.region
+ * @function
+ * @public
+ * @returns {string} The region.
+ */
+ get: function () {
+ return this.privSpeechProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Region);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ SpeechTranslationConfigImpl.prototype.setProxy = function (proxyHostName, proxyPort, proxyUserName, proxyPassword) {
+ this.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_ProxyHostName], proxyHostName);
+ this.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_ProxyPort], proxyPort);
+ this.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_ProxyUserName], proxyUserName);
+ this.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_ProxyPassword], proxyPassword);
+ };
+ /**
+ * Gets an arbitrary property value.
+ * @member SpeechTranslationConfigImpl.prototype.getProperty
+ * @function
+ * @public
+ * @param {string} name - The name of the property.
+ * @param {string} def - The default value of the property in case it is not set.
+ * @returns {string} The value of the property.
+ */
+ SpeechTranslationConfigImpl.prototype.getProperty = function (name, def) {
+ return this.privSpeechProperties.getProperty(name, def);
+ };
+ /**
+ * Gets/Sets an arbitrary property value.
+ * @member SpeechTranslationConfigImpl.prototype.setProperty
+ * @function
+ * @public
+ * @param {string} name - The name of the property.
+ * @param {string} value - The value of the property.
+ */
+ SpeechTranslationConfigImpl.prototype.setProperty = function (name, value) {
+ this.privSpeechProperties.setProperty(name, value);
+ };
+ Object.defineProperty(SpeechTranslationConfigImpl.prototype, "properties", {
+ /**
+ * Provides access to custom properties.
+ * @member SpeechTranslationConfigImpl.prototype.properties
+ * @function
+ * @public
+ * @returns {PropertyCollection} The properties.
+ */
+ get: function () {
+ return this.privSpeechProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Dispose of associated resources.
+ * @member SpeechTranslationConfigImpl.prototype.close
+ * @function
+ * @public
+ */
+ SpeechTranslationConfigImpl.prototype.close = function () {
+ return;
+ };
+ SpeechTranslationConfigImpl.prototype.setServiceProperty = function (name, value, channel) {
+ var currentProperties = JSON.parse(this.privSpeechProperties.getProperty(Exports_1.ServicePropertiesPropertyName, "{}"));
+ currentProperties[name] = value;
+ this.privSpeechProperties.setProperty(Exports_1.ServicePropertiesPropertyName, JSON.stringify(currentProperties));
+ };
+ SpeechTranslationConfigImpl.prototype.setProfanity = function (profanity) {
+ this.privSpeechProperties.setProperty(Exports_2.PropertyId.SpeechServiceResponse_ProfanityOption, Exports_2.ProfanityOption[profanity]);
+ };
+ SpeechTranslationConfigImpl.prototype.enableAudioLogging = function () {
+ this.privSpeechProperties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_EnableAudioLogging, "true");
+ };
+ SpeechTranslationConfigImpl.prototype.requestWordLevelTimestamps = function () {
+ this.privSpeechProperties.setProperty(Exports_2.PropertyId.SpeechServiceResponse_RequestWordLevelTimestamps, "true");
+ };
+ SpeechTranslationConfigImpl.prototype.enableDictation = function () {
+ this.privSpeechProperties.setProperty(Exports_1.ForceDictationPropertyName, "true");
+ };
+ Object.defineProperty(SpeechTranslationConfigImpl.prototype, "speechSynthesisLanguage", {
+ get: function () {
+ return this.privSpeechProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_SynthLanguage);
+ },
+ set: function (language) {
+ this.privSpeechProperties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_SynthLanguage, language);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechTranslationConfigImpl.prototype, "speechSynthesisVoiceName", {
+ get: function () {
+ return this.privSpeechProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_SynthVoice);
+ },
+ set: function (voice) {
+ this.privSpeechProperties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_SynthVoice, voice);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechTranslationConfigImpl.prototype, "speechSynthesisOutputFormat", {
+ get: function () {
+ return Exports_2.SpeechSynthesisOutputFormat[this.privSpeechProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_SynthOutputFormat, undefined)];
+ },
+ set: function (format) {
+ this.privSpeechProperties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_SynthOutputFormat, Exports_2.SpeechSynthesisOutputFormat[format]);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeechTranslationConfigImpl;
+}(SpeechTranslationConfig));
+exports.SpeechTranslationConfigImpl = SpeechTranslationConfigImpl;
+
+
+
+/***/ }),
+/* 67 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+/**
+ * Represents collection of properties and their values.
+ * @class PropertyCollection
+ */
+var PropertyCollection = /** @class */ (function () {
+ function PropertyCollection() {
+ this.privKeys = [];
+ this.privValues = [];
+ }
+ /**
+ * Returns the property value in type String. The parameter must have the same type as String.
+ * Currently only String, int and bool are allowed.
+ * If the name is not available, the specified defaultValue is returned.
+ * @member PropertyCollection.prototype.getProperty
+ * @function
+ * @public
+ * @param {string} key - The parameter name.
+ * @param {string} def - The default value which is returned if the parameter
+ * is not available in the collection.
+ * @returns {string} value of the parameter.
+ */
+ PropertyCollection.prototype.getProperty = function (key, def) {
+ var keyToUse;
+ if (typeof key === "string") {
+ keyToUse = key;
+ }
+ else {
+ keyToUse = Exports_1.PropertyId[key];
+ }
+ for (var n = 0; n < this.privKeys.length; n++) {
+ if (this.privKeys[n] === keyToUse) {
+ return this.privValues[n];
+ }
+ }
+ return def;
+ };
+ /**
+ * Sets the String value of the parameter specified by name.
+ * @member PropertyCollection.prototype.setProperty
+ * @function
+ * @public
+ * @param {string} key - The parameter name.
+ * @param {string} value - The value of the parameter.
+ */
+ PropertyCollection.prototype.setProperty = function (key, value) {
+ var keyToUse;
+ if (typeof key === "string") {
+ keyToUse = key;
+ }
+ else {
+ keyToUse = Exports_1.PropertyId[key];
+ }
+ for (var n = 0; n < this.privKeys.length; n++) {
+ if (this.privKeys[n] === keyToUse) {
+ this.privValues[n] = value;
+ return;
+ }
+ }
+ this.privKeys.push(keyToUse);
+ this.privValues.push(value);
+ };
+ /**
+ * Clones the collection.
+ * @member PropertyCollection.prototype.clone
+ * @function
+ * @public
+ * @returns {PropertyCollection} A copy of the collection.
+ */
+ PropertyCollection.prototype.clone = function () {
+ var clonedMap = new PropertyCollection();
+ for (var n = 0; n < this.privKeys.length; n++) {
+ clonedMap.privKeys.push(this.privKeys[n]);
+ clonedMap.privValues.push(this.privValues[n]);
+ }
+ return clonedMap;
+ };
+ /**
+ * Merges this set of properties into another, no overwrites.
+ * @member PropertyCollection.prototype.mergeTo
+ * @function
+ * @public
+ * @param {PropertyCollection} The collection to merge into.
+ */
+ PropertyCollection.prototype.mergeTo = function (destinationCollection) {
+ var _this = this;
+ this.privKeys.forEach(function (key) {
+ if (destinationCollection.getProperty(key, undefined) === undefined) {
+ var value = _this.getProperty(key);
+ destinationCollection.setProperty(key, value);
+ }
+ });
+ };
+ return PropertyCollection;
+}());
+exports.PropertyCollection = PropertyCollection;
+
+
+
+/***/ }),
+/* 68 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Defines speech property ids.
+ * @class PropertyId
+ */
+var PropertyId;
+(function (PropertyId) {
+ /**
+ * The Cognitive Services Speech Service subscription Key. If you are using an intent recognizer, you need to specify
+ * to specify the LUIS endpoint key for your particular LUIS app. Under normal circumstances, you shouldn't
+ * have to use this property directly.
+ * Instead, use [[SpeechConfig.fromSubscription]].
+ * @member PropertyId.SpeechServiceConnection_Key
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_Key"] = 0] = "SpeechServiceConnection_Key";
+ /**
+ * The Cognitive Services Speech Service endpoint (url). Under normal circumstances, you shouldn't
+ * have to use this property directly.
+ * Instead, use [[SpeechConfig.fromEndpoint]].
+ * NOTE: This endpoint is not the same as the endpoint used to obtain an access token.
+ * @member PropertyId.SpeechServiceConnection_Endpoint
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_Endpoint"] = 1] = "SpeechServiceConnection_Endpoint";
+ /**
+ * The Cognitive Services Speech Service region. Under normal circumstances, you shouldn't have to
+ * use this property directly.
+ * Instead, use [[SpeechConfig.fromSubscription]], [[SpeechConfig.fromEndpoint]], [[SpeechConfig.fromAuthorizationToken]].
+ * @member PropertyId.SpeechServiceConnection_Region
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_Region"] = 2] = "SpeechServiceConnection_Region";
+ /**
+ * The Cognitive Services Speech Service authorization token (aka access token). Under normal circumstances,
+ * you shouldn't have to use this property directly.
+ * Instead, use [[SpeechConfig.fromAuthorizationToken]], [[SpeechRecognizer.authorizationToken]],
+ * [[IntentRecognizer.authorizationToken]], [[TranslationRecognizer.authorizationToken]], [[SpeakerRecognizer.authorizationToken]].
+ * @member PropertyId.SpeechServiceAuthorization_Token
+ */
+ PropertyId[PropertyId["SpeechServiceAuthorization_Token"] = 3] = "SpeechServiceAuthorization_Token";
+ /**
+ * The Cognitive Services Speech Service authorization type. Currently unused.
+ * @member PropertyId.SpeechServiceAuthorization_Type
+ */
+ PropertyId[PropertyId["SpeechServiceAuthorization_Type"] = 4] = "SpeechServiceAuthorization_Type";
+ /**
+ * The Cognitive Services Speech Service endpoint id. Under normal circumstances, you shouldn't
+ * have to use this property directly.
+ * Instead, use [[SpeechConfig.endpointId]].
+ * NOTE: The endpoint id is available in the Speech Portal, listed under Endpoint Details.
+ * @member PropertyId.SpeechServiceConnection_EndpointId
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_EndpointId"] = 5] = "SpeechServiceConnection_EndpointId";
+ /**
+ * The list of comma separated languages (BCP-47 format) used as target translation languages. Under normal circumstances,
+ * you shouldn't have to use this property directly.
+ * Instead use [[SpeechTranslationConfig.addTargetLanguage]],
+ * [[SpeechTranslationConfig.targetLanguages]], [[TranslationRecognizer.targetLanguages]].
+ * @member PropertyId.SpeechServiceConnection_TranslationToLanguages
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_TranslationToLanguages"] = 6] = "SpeechServiceConnection_TranslationToLanguages";
+ /**
+ * The name of the Cognitive Service Text to Speech Service Voice. Under normal circumstances, you shouldn't have to use this
+ * property directly.
+ * Instead, use [[SpeechTranslationConfig.voiceName]].
+ * NOTE: Valid voice names can be found here.
+ * @member PropertyId.SpeechServiceConnection_TranslationVoice
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_TranslationVoice"] = 7] = "SpeechServiceConnection_TranslationVoice";
+ /**
+ * Translation features.
+ * @member PropertyId.SpeechServiceConnection_TranslationFeatures
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_TranslationFeatures"] = 8] = "SpeechServiceConnection_TranslationFeatures";
+ /**
+ * The Language Understanding Service Region. Under normal circumstances, you shouldn't have to use this property directly.
+ * Instead, use [[LanguageUnderstandingModel]].
+ * @member PropertyId.SpeechServiceConnection_IntentRegion
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_IntentRegion"] = 9] = "SpeechServiceConnection_IntentRegion";
+ /**
+ * The host name of the proxy server used to connect to the Cognitive Services Speech Service. Only relevant in Node.js environments.
+ * You shouldn't have to use this property directly.
+ * Instead use .
+ * Added in version 1.4.0.
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_ProxyHostName"] = 10] = "SpeechServiceConnection_ProxyHostName";
+ /**
+ * The port of the proxy server used to connect to the Cognitive Services Speech Service. Only relevant in Node.js environments.
+ * You shouldn't have to use this property directly.
+ * Instead use .
+ * Added in version 1.4.0.
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_ProxyPort"] = 11] = "SpeechServiceConnection_ProxyPort";
+ /**
+ * The user name of the proxy server used to connect to the Cognitive Services Speech Service. Only relevant in Node.js environments.
+ * You shouldn't have to use this property directly.
+ * Instead use .
+ * Added in version 1.4.0.
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_ProxyUserName"] = 12] = "SpeechServiceConnection_ProxyUserName";
+ /**
+ * The password of the proxy server used to connect to the Cognitive Services Speech Service. Only relevant in Node.js environments.
+ * You shouldn't have to use this property directly.
+ * Instead use .
+ * Added in version 1.4.0.
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_ProxyPassword"] = 13] = "SpeechServiceConnection_ProxyPassword";
+ /**
+ * The Cognitive Services Speech Service recognition Mode. Can be "INTERACTIVE", "CONVERSATION", "DICTATION".
+ * This property is intended to be read-only. The SDK is using it internally.
+ * @member PropertyId.SpeechServiceConnection_RecoMode
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_RecoMode"] = 14] = "SpeechServiceConnection_RecoMode";
+ /**
+ * The spoken language to be recognized (in BCP-47 format). Under normal circumstances, you shouldn't have to use this property
+ * directly.
+ * Instead, use [[SpeechConfig.speechRecognitionLanguage]].
+ * @member PropertyId.SpeechServiceConnection_RecoLanguage
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_RecoLanguage"] = 15] = "SpeechServiceConnection_RecoLanguage";
+ /**
+ * The session id. This id is a universally unique identifier (aka UUID) representing a specific binding of an audio input stream
+ * and the underlying speech recognition instance to which it is bound. Under normal circumstances, you shouldn't have to use this
+ * property directly.
+ * Instead use [[SessionEventArgs.sessionId]].
+ * @member PropertyId.Speech_SessionId
+ */
+ PropertyId[PropertyId["Speech_SessionId"] = 16] = "Speech_SessionId";
+ /**
+ * The spoken language to be synthesized (e.g. en-US)
+ * @member PropertyId.SpeechServiceConnection_SynthLanguage
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_SynthLanguage"] = 17] = "SpeechServiceConnection_SynthLanguage";
+ /**
+ * The name of the TTS voice to be used for speech synthesis
+ * @member PropertyId.SpeechServiceConnection_SynthVoice
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_SynthVoice"] = 18] = "SpeechServiceConnection_SynthVoice";
+ /**
+ * The string to specify TTS output audio format
+ * @member PropertyId.SpeechServiceConnection_SynthOutputFormat
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_SynthOutputFormat"] = 19] = "SpeechServiceConnection_SynthOutputFormat";
+ /**
+ * The list of comma separated languages used as possible source languages
+ * Added in version 1.13.0
+ * @member PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_AutoDetectSourceLanguages"] = 20] = "SpeechServiceConnection_AutoDetectSourceLanguages";
+ /**
+ * The requested Cognitive Services Speech Service response output format (simple or detailed). Under normal circumstances, you shouldn't have
+ * to use this property directly.
+ * Instead use [[SpeechConfig.outputFormat]].
+ * @member PropertyId.SpeechServiceResponse_RequestDetailedResultTrueFalse
+ */
+ PropertyId[PropertyId["SpeechServiceResponse_RequestDetailedResultTrueFalse"] = 21] = "SpeechServiceResponse_RequestDetailedResultTrueFalse";
+ /**
+ * The requested Cognitive Services Speech Service response output profanity level. Currently unused.
+ * @member PropertyId.SpeechServiceResponse_RequestProfanityFilterTrueFalse
+ */
+ PropertyId[PropertyId["SpeechServiceResponse_RequestProfanityFilterTrueFalse"] = 22] = "SpeechServiceResponse_RequestProfanityFilterTrueFalse";
+ /**
+ * The Cognitive Services Speech Service response output (in JSON format). This property is available on recognition result objects only.
+ * @member PropertyId.SpeechServiceResponse_JsonResult
+ */
+ PropertyId[PropertyId["SpeechServiceResponse_JsonResult"] = 23] = "SpeechServiceResponse_JsonResult";
+ /**
+ * The Cognitive Services Speech Service error details (in JSON format). Under normal circumstances, you shouldn't have to
+ * use this property directly. Instead use [[CancellationDetails.errorDetails]].
+ * @member PropertyId.SpeechServiceResponse_JsonErrorDetails
+ */
+ PropertyId[PropertyId["SpeechServiceResponse_JsonErrorDetails"] = 24] = "SpeechServiceResponse_JsonErrorDetails";
+ /**
+ * The cancellation reason. Currently unused.
+ * @member PropertyId.CancellationDetails_Reason
+ */
+ PropertyId[PropertyId["CancellationDetails_Reason"] = 25] = "CancellationDetails_Reason";
+ /**
+ * The cancellation text. Currently unused.
+ * @member PropertyId.CancellationDetails_ReasonText
+ */
+ PropertyId[PropertyId["CancellationDetails_ReasonText"] = 26] = "CancellationDetails_ReasonText";
+ /**
+ * The Cancellation detailed text. Currently unused.
+ * @member PropertyId.CancellationDetails_ReasonDetailedText
+ */
+ PropertyId[PropertyId["CancellationDetails_ReasonDetailedText"] = 27] = "CancellationDetails_ReasonDetailedText";
+ /**
+ * The Language Understanding Service response output (in JSON format). Available via [[IntentRecognitionResult]]
+ * @member PropertyId.LanguageUnderstandingServiceResponse_JsonResult
+ */
+ PropertyId[PropertyId["LanguageUnderstandingServiceResponse_JsonResult"] = 28] = "LanguageUnderstandingServiceResponse_JsonResult";
+ /**
+ * The URL string built from speech configuration.
+ * This property is intended to be read-only. The SDK is using it internally.
+ * NOTE: Added in version 1.7.0.
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_Url"] = 29] = "SpeechServiceConnection_Url";
+ /**
+ * The initial silence timeout value (in milliseconds) used by the service.
+ * Added in version 1.7.0
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_InitialSilenceTimeoutMs"] = 30] = "SpeechServiceConnection_InitialSilenceTimeoutMs";
+ /**
+ * The end silence timeout value (in milliseconds) used by the service.
+ * Added in version 1.7.0
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_EndSilenceTimeoutMs"] = 31] = "SpeechServiceConnection_EndSilenceTimeoutMs";
+ /**
+ * A boolean value specifying whether audio logging is enabled in the service or not.
+ * Added in version 1.7.0
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_EnableAudioLogging"] = 32] = "SpeechServiceConnection_EnableAudioLogging";
+ /**
+ * The requested Cognitive Services Speech Service response output profanity setting.
+ * Allowed values are "masked", "removed", and "raw".
+ * Added in version 1.7.0.
+ */
+ PropertyId[PropertyId["SpeechServiceResponse_ProfanityOption"] = 33] = "SpeechServiceResponse_ProfanityOption";
+ /**
+ * A string value specifying which post processing option should be used by service.
+ * Allowed values are "TrueText".
+ * Added in version 1.7.0
+ */
+ PropertyId[PropertyId["SpeechServiceResponse_PostProcessingOption"] = 34] = "SpeechServiceResponse_PostProcessingOption";
+ /**
+ * A boolean value specifying whether to include word-level timestamps in the response result.
+ * Added in version 1.7.0
+ */
+ PropertyId[PropertyId["SpeechServiceResponse_RequestWordLevelTimestamps"] = 35] = "SpeechServiceResponse_RequestWordLevelTimestamps";
+ /**
+ * The number of times a word has to be in partial results to be returned.
+ * Added in version 1.7.0
+ */
+ PropertyId[PropertyId["SpeechServiceResponse_StablePartialResultThreshold"] = 36] = "SpeechServiceResponse_StablePartialResultThreshold";
+ /**
+ * A string value specifying the output format option in the response result. Internal use only.
+ * Added in version 1.7.0.
+ */
+ PropertyId[PropertyId["SpeechServiceResponse_OutputFormatOption"] = 37] = "SpeechServiceResponse_OutputFormatOption";
+ /**
+ * A boolean value to request for stabilizing translation partial results by omitting words in the end.
+ * Added in version 1.7.0.
+ */
+ PropertyId[PropertyId["SpeechServiceResponse_TranslationRequestStablePartialResult"] = 38] = "SpeechServiceResponse_TranslationRequestStablePartialResult";
+ /**
+ * Identifier used to connect to the backend service.
+ * @member PropertyId.Conversation_ApplicationId
+ */
+ PropertyId[PropertyId["Conversation_ApplicationId"] = 39] = "Conversation_ApplicationId";
+ /**
+ * Type of dialog backend to connect to.
+ * @member PropertyId.Conversation_DialogType
+ */
+ PropertyId[PropertyId["Conversation_DialogType"] = 40] = "Conversation_DialogType";
+ /**
+ * Silence timeout for listening
+ * @member PropertyId.Conversation_Initial_Silence_Timeout
+ */
+ PropertyId[PropertyId["Conversation_Initial_Silence_Timeout"] = 41] = "Conversation_Initial_Silence_Timeout";
+ /**
+ * From Id to add to speech recognition activities.
+ * @member PropertyId.Conversation_From_Id
+ */
+ PropertyId[PropertyId["Conversation_From_Id"] = 42] = "Conversation_From_Id";
+ /**
+ * ConversationId for the session.
+ * @member PropertyId.Conversation_Conversation_Id
+ */
+ PropertyId[PropertyId["Conversation_Conversation_Id"] = 43] = "Conversation_Conversation_Id";
+ /**
+ * Comma separated list of custom voice deployment ids.
+ * @member PropertyId.Conversation_Custom_Voice_Deployment_Ids
+ */
+ PropertyId[PropertyId["Conversation_Custom_Voice_Deployment_Ids"] = 44] = "Conversation_Custom_Voice_Deployment_Ids";
+ /**
+ * Speech activity template, stamp properties from the template on the activity generated by the service for speech.
+ * @member PropertyId.Conversation_Speech_Activity_Template
+ * Added in version 1.10.0.
+ */
+ PropertyId[PropertyId["Conversation_Speech_Activity_Template"] = 45] = "Conversation_Speech_Activity_Template";
+ /**
+ * The Cognitive Services Speech Service host (url). Under normal circumstances, you shouldn't have to use this property directly.
+ * Instead, use [[SpeechConfig.fromHost]].
+ */
+ PropertyId[PropertyId["SpeechServiceConnection_Host"] = 46] = "SpeechServiceConnection_Host";
+ /**
+ * Set the host for service calls to the Conversation Translator REST management and websocket calls.
+ */
+ PropertyId[PropertyId["ConversationTranslator_Host"] = 47] = "ConversationTranslator_Host";
+ /**
+ * Optionally set the the host's display name.
+ * Used when joining a conversation.
+ */
+ PropertyId[PropertyId["ConversationTranslator_Name"] = 48] = "ConversationTranslator_Name";
+ /**
+ * Optionally set a value for the X-CorrelationId request header.
+ * Used for troubleshooting errors in the server logs. It should be a valid guid.
+ */
+ PropertyId[PropertyId["ConversationTranslator_CorrelationId"] = 49] = "ConversationTranslator_CorrelationId";
+ /**
+ * Set the conversation token to be sent to the speech service. This enables the
+ * service to service call from the speech service to the Conversation Translator service for relaying
+ * recognitions. For internal use.
+ */
+ PropertyId[PropertyId["ConversationTranslator_Token"] = 50] = "ConversationTranslator_Token";
+})(PropertyId = exports.PropertyId || (exports.PropertyId = {}));
+
+
+
+/***/ }),
+/* 69 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Exports_2 = __webpack_require__(4);
+var Contracts_1 = __webpack_require__(33);
+var Exports_3 = __webpack_require__(31);
+/**
+ * Defines the base class Recognizer which mainly contains common event handlers.
+ * @class Recognizer
+ */
+var Recognizer = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance of a Recognizer
+ * @constructor
+ * @param {AudioConfig} audioInput - An optional audio input stream associated with the recognizer
+ */
+ function Recognizer(audioConfig, properties, connectionFactory) {
+ this.audioConfig = (audioConfig !== undefined) ? audioConfig : Exports_3.AudioConfig.fromDefaultMicrophoneInput();
+ this.privDisposed = false;
+ this.privProperties = properties.clone();
+ this.privConnectionFactory = connectionFactory;
+ this.implCommonRecognizerSetup();
+ }
+ /**
+ * Dispose of associated resources.
+ * @member Recognizer.prototype.close
+ * @function
+ * @public
+ */
+ Recognizer.prototype.close = function () {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposed);
+ this.dispose(true);
+ };
+ Object.defineProperty(Recognizer.prototype, "internalData", {
+ /**
+ * @Internal
+ * Internal data member to support fromRecognizer* pattern methods on other classes.
+ * Do not use externally, object returned will change without warning or notice.
+ */
+ get: function () {
+ return this.privReco;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * This method performs cleanup of resources.
+ * The Boolean parameter disposing indicates whether the method is called
+ * from Dispose (if disposing is true) or from the finalizer (if disposing is false).
+ * Derived classes should override this method to dispose resource if needed.
+ * @member Recognizer.prototype.dispose
+ * @function
+ * @public
+ * @param {boolean} disposing - Flag to request disposal.
+ */
+ Recognizer.prototype.dispose = function (disposing) {
+ if (this.privDisposed) {
+ return;
+ }
+ if (disposing) {
+ if (this.privReco) {
+ this.privReco.audioSource.turnOff();
+ this.privReco.dispose();
+ }
+ }
+ this.privDisposed = true;
+ };
+ Object.defineProperty(Recognizer, "telemetryEnabled", {
+ /**
+ * This method returns the current state of the telemetry setting.
+ * @member Recognizer.prototype.telemetryEnabled
+ * @function
+ * @public
+ * @returns true if the telemetry is enabled, false otherwise.
+ */
+ get: function () {
+ return Exports_1.ServiceRecognizerBase.telemetryDataEnabled;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * This method globally enables or disables telemetry.
+ * @member Recognizer.prototype.enableTelemetry
+ * @function
+ * @public
+ * @param enabled - Global setting for telemetry collection.
+ * If set to true, telemetry information like microphone errors,
+ * recognition errors are collected and sent to Microsoft.
+ * If set to false, no telemetry is sent to Microsoft.
+ */
+ /* tslint:disable:member-ordering */
+ Recognizer.enableTelemetry = function (enabled) {
+ Exports_1.ServiceRecognizerBase.telemetryDataEnabled = enabled;
+ };
+ // Does the generic recognizer setup that is common across all recognizer types.
+ Recognizer.prototype.implCommonRecognizerSetup = function () {
+ var _this = this;
+ var osPlatform = (typeof window !== "undefined") ? "Browser" : "Node";
+ var osName = "unknown";
+ var osVersion = "unknown";
+ if (typeof navigator !== "undefined") {
+ osPlatform = osPlatform + "/" + navigator.platform;
+ osName = navigator.userAgent;
+ osVersion = navigator.appVersion;
+ }
+ var recognizerConfig = this.createRecognizerConfig(new Exports_1.SpeechServiceConfig(new Exports_1.Context(new Exports_1.OS(osPlatform, osName, osVersion))));
+ var subscriptionKey = this.privProperties.getProperty(Exports_3.PropertyId.SpeechServiceConnection_Key, undefined);
+ var authentication = (subscriptionKey && subscriptionKey !== "") ?
+ new Exports_1.CognitiveSubscriptionKeyAuthentication(subscriptionKey) :
+ new Exports_1.CognitiveTokenAuthentication(function (authFetchEventId) {
+ var authorizationToken = _this.privProperties.getProperty(Exports_3.PropertyId.SpeechServiceAuthorization_Token, undefined);
+ return Exports_2.PromiseHelper.fromResult(authorizationToken);
+ }, function (authFetchEventId) {
+ var authorizationToken = _this.privProperties.getProperty(Exports_3.PropertyId.SpeechServiceAuthorization_Token, undefined);
+ return Exports_2.PromiseHelper.fromResult(authorizationToken);
+ });
+ this.privReco = this.createServiceRecognizer(authentication, this.privConnectionFactory, this.audioConfig, recognizerConfig);
+ };
+ Recognizer.prototype.recognizeOnceAsyncImpl = function (recognitionMode, cb, err) {
+ var _this = this;
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposed);
+ this.implRecognizerStop().on(function (_) {
+ try {
+ _this.privReco.recognize(recognitionMode, function (e) {
+ _this.implRecognizerStop().on(function (_) {
+ if (!!cb) {
+ cb(e);
+ }
+ }, function (error) {
+ if (!!err) {
+ err(error);
+ }
+ });
+ }, function (e) {
+ _this.implRecognizerStop(); // We're already in an error path so best effort here.
+ if (!!err) {
+ err(e);
+ }
+ /* tslint:disable:no-empty */
+ }).on(function (_) { }, function (error) {
+ if (!!err) {
+ err(error);
+ }
+ });
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ // Destroy the recognizer.
+ _this.dispose(true);
+ }
+ }, function (error) {
+ if (!!err) {
+ err(error);
+ }
+ });
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ // Destroy the recognizer.
+ this.dispose(true);
+ }
+ };
+ Recognizer.prototype.startContinuousRecognitionAsyncImpl = function (recognitionMode, cb, err) {
+ var _this = this;
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposed);
+ this.implRecognizerStop().on(function (_) {
+ _this.privReco.recognize(recognitionMode, undefined, undefined).on(function (_) {
+ // report result to promise.
+ if (!!cb) {
+ try {
+ cb();
+ }
+ catch (e) {
+ if (!!err) {
+ err(e);
+ }
+ }
+ cb = undefined;
+ }
+ }, function (error) {
+ if (!!err) {
+ err(error);
+ }
+ // Destroy the recognizer.
+ _this.dispose(true);
+ });
+ }, function (error) {
+ if (!!err) {
+ err(error);
+ }
+ // Destroy the recognizer.
+ _this.dispose(true);
+ });
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ // Destroy the recognizer.
+ this.dispose(true);
+ }
+ };
+ Recognizer.prototype.stopContinuousRecognitionAsyncImpl = function (cb, err) {
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposed);
+ this.implRecognizerStop().on(function (_) {
+ if (!!cb) {
+ try {
+ cb();
+ }
+ catch (e) {
+ if (!!err) {
+ err(e);
+ }
+ }
+ }
+ }, function (error) {
+ if (!!err) {
+ err(error);
+ }
+ });
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ // Destroy the recognizer.
+ this.dispose(true);
+ }
+ };
+ Recognizer.prototype.implRecognizerStop = function () {
+ if (this.privReco) {
+ return this.privReco.stopRecognizing();
+ }
+ return Exports_2.PromiseHelper.fromResult(true);
+ };
+ return Recognizer;
+}());
+exports.Recognizer = Recognizer;
+
+
+
+/***/ }),
+/* 70 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var SpeechConnectionFactory_1 = __webpack_require__(71);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+/**
+ * Performs speech recognition from microphone, file, or other audio input streams, and gets transcribed text as result.
+ * @class SpeechRecognizer
+ */
+var SpeechRecognizer = /** @class */ (function (_super) {
+ __extends(SpeechRecognizer, _super);
+ /**
+ * SpeechRecognizer constructor.
+ * @constructor
+ * @param {SpeechConfig} speechConfig - an set of initial properties for this recognizer
+ * @param {AudioConfig} audioConfig - An optional audio configuration associated with the recognizer
+ */
+ function SpeechRecognizer(speechConfig, audioConfig) {
+ var _this = this;
+ var speechConfigImpl = speechConfig;
+ Contracts_1.Contracts.throwIfNull(speechConfigImpl, "speechConfig");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(speechConfigImpl.properties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage), Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage]);
+ _this = _super.call(this, audioConfig, speechConfigImpl.properties, new SpeechConnectionFactory_1.SpeechConnectionFactory()) || this;
+ _this.privDisposedSpeechRecognizer = false;
+ return _this;
+ }
+ /**
+ * SpeechRecognizer constructor.
+ * @constructor
+ * @param {SpeechConfig} speechConfig - an set of initial properties for this recognizer
+ * @param {AutoDetectSourceLanguageConfig} autoDetectSourceLanguageConfig - An source language detection configuration associated with the recognizer
+ * @param {AudioConfig} audioConfig - An optional audio configuration associated with the recognizer
+ */
+ SpeechRecognizer.FromConfig = function (speechConfig, autoDetectSourceLanguageConfig, audioConfig) {
+ var speechConfigImpl = speechConfig;
+ autoDetectSourceLanguageConfig.properties.mergeTo(speechConfigImpl.properties);
+ var recognizer = new SpeechRecognizer(speechConfig, audioConfig);
+ return recognizer;
+ };
+ Object.defineProperty(SpeechRecognizer.prototype, "endpointId", {
+ /**
+ * Gets the endpoint id of a customized speech model that is used for speech recognition.
+ * @member SpeechRecognizer.prototype.endpointId
+ * @function
+ * @public
+ * @returns {string} the endpoint id of a customized speech model that is used for speech recognition.
+ */
+ get: function () {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposedSpeechRecognizer);
+ return this.properties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_EndpointId, "00000000-0000-0000-0000-000000000000");
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechRecognizer.prototype, "authorizationToken", {
+ /**
+ * Gets the authorization token used to communicate with the service.
+ * @member SpeechRecognizer.prototype.authorizationToken
+ * @function
+ * @public
+ * @returns {string} Authorization token.
+ */
+ get: function () {
+ return this.properties.getProperty(Exports_2.PropertyId.SpeechServiceAuthorization_Token);
+ },
+ /**
+ * Gets/Sets the authorization token used to communicate with the service.
+ * @member SpeechRecognizer.prototype.authorizationToken
+ * @function
+ * @public
+ * @param {string} token - Authorization token.
+ */
+ set: function (token) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(token, "token");
+ this.properties.setProperty(Exports_2.PropertyId.SpeechServiceAuthorization_Token, token);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechRecognizer.prototype, "speechRecognitionLanguage", {
+ /**
+ * Gets the spoken language of recognition.
+ * @member SpeechRecognizer.prototype.speechRecognitionLanguage
+ * @function
+ * @public
+ * @returns {string} The spoken language of recognition.
+ */
+ get: function () {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposedSpeechRecognizer);
+ return this.properties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechRecognizer.prototype, "outputFormat", {
+ /**
+ * Gets the output format of recognition.
+ * @member SpeechRecognizer.prototype.outputFormat
+ * @function
+ * @public
+ * @returns {OutputFormat} The output format of recognition.
+ */
+ get: function () {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposedSpeechRecognizer);
+ if (this.properties.getProperty(Exports_1.OutputFormatPropertyName, Exports_2.OutputFormat[Exports_2.OutputFormat.Simple]) === Exports_2.OutputFormat[Exports_2.OutputFormat.Simple]) {
+ return Exports_2.OutputFormat.Simple;
+ }
+ else {
+ return Exports_2.OutputFormat.Detailed;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechRecognizer.prototype, "properties", {
+ /**
+ * The collection of properties and their values defined for this SpeechRecognizer.
+ * @member SpeechRecognizer.prototype.properties
+ * @function
+ * @public
+ * @returns {PropertyCollection} The collection of properties and their values defined for this SpeechRecognizer.
+ */
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Starts speech recognition, and stops after the first utterance is recognized.
+ * The task returns the recognition text as result.
+ * Note: RecognizeOnceAsync() returns when the first utterance has been recognized,
+ * so it is suitable only for single shot recognition
+ * like command or query. For long-running recognition, use StartContinuousRecognitionAsync() instead.
+ * @member SpeechRecognizer.prototype.recognizeOnceAsync
+ * @function
+ * @public
+ * @param cb - Callback that received the SpeechRecognitionResult.
+ * @param err - Callback invoked in case of an error.
+ */
+ SpeechRecognizer.prototype.recognizeOnceAsync = function (cb, err) {
+ this.recognizeOnceAsyncImpl(Exports_1.RecognitionMode.Interactive, cb, err);
+ };
+ /**
+ * Starts speech recognition, until stopContinuousRecognitionAsync() is called.
+ * User must subscribe to events to receive recognition results.
+ * @member SpeechRecognizer.prototype.startContinuousRecognitionAsync
+ * @function
+ * @public
+ * @param cb - Callback invoked once the recognition has started.
+ * @param err - Callback invoked in case of an error.
+ */
+ SpeechRecognizer.prototype.startContinuousRecognitionAsync = function (cb, err) {
+ this.startContinuousRecognitionAsyncImpl(Exports_1.RecognitionMode.Conversation, cb, err);
+ };
+ /**
+ * Stops continuous speech recognition.
+ * @member SpeechRecognizer.prototype.stopContinuousRecognitionAsync
+ * @function
+ * @public
+ * @param cb - Callback invoked once the recognition has stopped.
+ * @param err - Callback invoked in case of an error.
+ */
+ SpeechRecognizer.prototype.stopContinuousRecognitionAsync = function (cb, err) {
+ this.stopContinuousRecognitionAsyncImpl(cb, err);
+ };
+ /**
+ * Starts speech recognition with keyword spotting, until
+ * stopKeywordRecognitionAsync() is called.
+ * User must subscribe to events to receive recognition results.
+ * Note: Key word spotting functionality is only available on the
+ * Speech Devices SDK. This functionality is currently not included in the SDK itself.
+ * @member SpeechRecognizer.prototype.startKeywordRecognitionAsync
+ * @function
+ * @public
+ * @param {KeywordRecognitionModel} model The keyword recognition model that
+ * specifies the keyword to be recognized.
+ * @param cb - Callback invoked once the recognition has started.
+ * @param err - Callback invoked in case of an error.
+ */
+ SpeechRecognizer.prototype.startKeywordRecognitionAsync = function (model, cb, err) {
+ Contracts_1.Contracts.throwIfNull(model, "model");
+ if (!!err) {
+ err("Not yet implemented.");
+ }
+ };
+ /**
+ * Stops continuous speech recognition.
+ * Note: Key word spotting functionality is only available on the
+ * Speech Devices SDK. This functionality is currently not included in the SDK itself.
+ * @member SpeechRecognizer.prototype.stopKeywordRecognitionAsync
+ * @function
+ * @public
+ * @param cb - Callback invoked once the recognition has stopped.
+ * @param err - Callback invoked in case of an error.
+ */
+ SpeechRecognizer.prototype.stopKeywordRecognitionAsync = function (cb, err) {
+ if (!!cb) {
+ cb();
+ }
+ };
+ /**
+ * closes all external resources held by an instance of this class.
+ * @member SpeechRecognizer.prototype.close
+ * @function
+ * @public
+ */
+ SpeechRecognizer.prototype.close = function () {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposedSpeechRecognizer);
+ this.dispose(true);
+ };
+ /**
+ * Disposes any resources held by the object.
+ * @member SpeechRecognizer.prototype.dispose
+ * @function
+ * @public
+ * @param {boolean} disposing - true if disposing the object.
+ */
+ SpeechRecognizer.prototype.dispose = function (disposing) {
+ if (this.privDisposedSpeechRecognizer) {
+ return;
+ }
+ if (disposing) {
+ this.implRecognizerStop(); // Dispose is synchronous, so just start it....
+ this.privDisposedSpeechRecognizer = true;
+ }
+ _super.prototype.dispose.call(this, disposing);
+ };
+ SpeechRecognizer.prototype.createRecognizerConfig = function (speechConfig) {
+ return new Exports_1.RecognizerConfig(speechConfig, this.properties);
+ };
+ SpeechRecognizer.prototype.createServiceRecognizer = function (authentication, connectionFactory, audioConfig, recognizerConfig) {
+ var configImpl = audioConfig;
+ return new Exports_1.SpeechServiceRecognizer(authentication, connectionFactory, configImpl, recognizerConfig, this);
+ };
+ return SpeechRecognizer;
+}(Exports_2.Recognizer));
+exports.SpeechRecognizer = SpeechRecognizer;
+
+
+
+/***/ }),
+/* 71 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(2);
+var Exports_2 = __webpack_require__(26);
+var Exports_3 = __webpack_require__(31);
+var ConnectionFactoryBase_1 = __webpack_require__(72);
+var Exports_4 = __webpack_require__(26);
+var QueryParameterNames_1 = __webpack_require__(73);
+var SpeechConnectionFactory = /** @class */ (function (_super) {
+ __extends(SpeechConnectionFactory, _super);
+ function SpeechConnectionFactory() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.interactiveRelativeUri = "/speech/recognition/interactive/cognitiveservices/v1";
+ _this.conversationRelativeUri = "/speech/recognition/conversation/cognitiveservices/v1";
+ _this.dictationRelativeUri = "/speech/recognition/dictation/cognitiveservices/v1";
+ _this.create = function (config, authInfo, connectionId) {
+ var endpoint = config.parameters.getProperty(Exports_3.PropertyId.SpeechServiceConnection_Endpoint, undefined);
+ var region = config.parameters.getProperty(Exports_3.PropertyId.SpeechServiceConnection_Region, undefined);
+ var hostSuffix = (region && region.toLowerCase().startsWith("china")) ? ".azure.cn" : ".microsoft.com";
+ var host = config.parameters.getProperty(Exports_3.PropertyId.SpeechServiceConnection_Host, "wss://" + region + ".stt.speech" + hostSuffix);
+ var queryParams = {};
+ var endpointId = config.parameters.getProperty(Exports_3.PropertyId.SpeechServiceConnection_EndpointId, undefined);
+ var language = config.parameters.getProperty(Exports_3.PropertyId.SpeechServiceConnection_RecoLanguage, undefined);
+ if (endpointId) {
+ if (!endpoint || endpoint.search(QueryParameterNames_1.QueryParameterNames.DeploymentIdParamName) === -1) {
+ queryParams[QueryParameterNames_1.QueryParameterNames.DeploymentIdParamName] = endpointId;
+ }
+ }
+ else if (language) {
+ if (!endpoint || endpoint.search(QueryParameterNames_1.QueryParameterNames.LanguageParamName) === -1) {
+ queryParams[QueryParameterNames_1.QueryParameterNames.LanguageParamName] = language;
+ }
+ }
+ if (!endpoint || endpoint.search(QueryParameterNames_1.QueryParameterNames.FormatParamName) === -1) {
+ queryParams[QueryParameterNames_1.QueryParameterNames.FormatParamName] = config.parameters.getProperty(Exports_2.OutputFormatPropertyName, Exports_3.OutputFormat[Exports_3.OutputFormat.Simple]).toLowerCase();
+ }
+ if (config.autoDetectSourceLanguages !== undefined) {
+ queryParams[QueryParameterNames_1.QueryParameterNames.EnableLanguageID] = "true";
+ }
+ _this.setCommonUrlParams(config, queryParams, endpoint);
+ if (!endpoint) {
+ switch (config.recognitionMode) {
+ case Exports_4.RecognitionMode.Conversation:
+ if (config.parameters.getProperty(Exports_2.ForceDictationPropertyName, "false") === "true") {
+ endpoint = host + _this.dictationRelativeUri;
+ }
+ else {
+ endpoint = host + _this.conversationRelativeUri;
+ }
+ break;
+ case Exports_4.RecognitionMode.Dictation:
+ endpoint = host + _this.dictationRelativeUri;
+ break;
+ default:
+ endpoint = host + _this.interactiveRelativeUri; // default is interactive
+ break;
+ }
+ }
+ var headers = {};
+ if (authInfo.token !== undefined && authInfo.token !== "") {
+ headers[authInfo.headerName] = authInfo.token;
+ }
+ headers[QueryParameterNames_1.QueryParameterNames.ConnectionIdHeader] = connectionId;
+ config.parameters.setProperty(Exports_3.PropertyId.SpeechServiceConnection_Url, endpoint);
+ return new Exports_1.WebsocketConnection(endpoint, queryParams, headers, new Exports_4.WebsocketMessageFormatter(), Exports_1.ProxyInfo.fromRecognizerConfig(config), connectionId);
+ };
+ return _this;
+ }
+ return SpeechConnectionFactory;
+}(ConnectionFactoryBase_1.ConnectionFactoryBase));
+exports.SpeechConnectionFactory = SpeechConnectionFactory;
+
+
+
+/***/ }),
+/* 72 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Exports_2 = __webpack_require__(31);
+var QueryParameterNames_1 = __webpack_require__(73);
+var ConnectionFactoryBase = /** @class */ (function () {
+ function ConnectionFactoryBase() {
+ }
+ ConnectionFactoryBase.prototype.setCommonUrlParams = function (config, queryParams, endpoint) {
+ this.setUrlParameter(Exports_2.PropertyId.SpeechServiceConnection_EnableAudioLogging, QueryParameterNames_1.QueryParameterNames.EnableAudioLogging, config, queryParams, endpoint);
+ this.setUrlParameter(Exports_2.PropertyId.SpeechServiceResponse_RequestWordLevelTimestamps, QueryParameterNames_1.QueryParameterNames.EnableWordLevelTimestamps, config, queryParams, endpoint);
+ this.setUrlParameter(Exports_2.PropertyId.SpeechServiceResponse_ProfanityOption, QueryParameterNames_1.QueryParameterNames.Profanify, config, queryParams, endpoint);
+ this.setUrlParameter(Exports_2.PropertyId.SpeechServiceConnection_InitialSilenceTimeoutMs, QueryParameterNames_1.QueryParameterNames.InitialSilenceTimeoutMs, config, queryParams, endpoint);
+ this.setUrlParameter(Exports_2.PropertyId.SpeechServiceConnection_EndSilenceTimeoutMs, QueryParameterNames_1.QueryParameterNames.EndSilenceTimeoutMs, config, queryParams, endpoint);
+ this.setUrlParameter(Exports_2.PropertyId.SpeechServiceResponse_StablePartialResultThreshold, QueryParameterNames_1.QueryParameterNames.StableIntermediateThreshold, config, queryParams, endpoint);
+ var serviceProperties = JSON.parse(config.parameters.getProperty(Exports_1.ServicePropertiesPropertyName, "{}"));
+ Object.keys(serviceProperties).forEach(function (value, num, array) {
+ queryParams[value] = serviceProperties[value];
+ });
+ };
+ ConnectionFactoryBase.prototype.setUrlParameter = function (propId, parameterName, config, queryParams, endpoint) {
+ var value = config.parameters.getProperty(propId, undefined);
+ if (value && (!endpoint || endpoint.search(parameterName) === -1)) {
+ queryParams[parameterName] = value.toLocaleLowerCase();
+ }
+ };
+ return ConnectionFactoryBase;
+}());
+exports.ConnectionFactoryBase = ConnectionFactoryBase;
+
+
+
+/***/ }),
+/* 73 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var QueryParameterNames = /** @class */ (function () {
+ function QueryParameterNames() {
+ }
+ Object.defineProperty(QueryParameterNames, "TestHooksParamName", {
+ get: function () {
+ return "testhooks";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(QueryParameterNames, "ConnectionIdHeader", {
+ get: function () {
+ return "X-ConnectionId";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(QueryParameterNames, "DeploymentIdParamName", {
+ get: function () {
+ return "cid";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(QueryParameterNames, "FormatParamName", {
+ get: function () {
+ return "format";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(QueryParameterNames, "LanguageParamName", {
+ get: function () {
+ return "language";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(QueryParameterNames, "TranslationFromParamName", {
+ get: function () {
+ return "from";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(QueryParameterNames, "TranslationToParamName", {
+ get: function () {
+ return "to";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(QueryParameterNames, "Profanify", {
+ get: function () {
+ return "profanity";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(QueryParameterNames, "EnableAudioLogging", {
+ get: function () {
+ return "storeAudio";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(QueryParameterNames, "EnableWordLevelTimestamps", {
+ get: function () {
+ return "wordLevelTimestamps";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(QueryParameterNames, "InitialSilenceTimeoutMs", {
+ get: function () {
+ return "initialSilenceTimeoutMs";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(QueryParameterNames, "EndSilenceTimeoutMs", {
+ get: function () {
+ return "endSilenceTimeoutMs";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(QueryParameterNames, "StableIntermediateThreshold", {
+ get: function () {
+ return "stableIntermediateThreshold";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(QueryParameterNames, "StableTranslation", {
+ get: function () {
+ return "stableTranslation";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(QueryParameterNames, "EnableLanguageID", {
+ get: function () {
+ return "lidEnabled";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return QueryParameterNames;
+}());
+exports.QueryParameterNames = QueryParameterNames;
+
+
+
+/***/ }),
+/* 74 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+/**
+ * Intent recognizer.
+ * @class
+ */
+var IntentRecognizer = /** @class */ (function (_super) {
+ __extends(IntentRecognizer, _super);
+ /**
+ * Initializes an instance of the IntentRecognizer.
+ * @constructor
+ * @param {SpeechConfig} speechConfig - The set of configuration properties.
+ * @param {AudioConfig} audioConfig - An optional audio input config associated with the recognizer
+ */
+ function IntentRecognizer(speechConfig, audioConfig) {
+ var _this = this;
+ Contracts_1.Contracts.throwIfNullOrUndefined(speechConfig, "speechConfig");
+ var configImpl = speechConfig;
+ Contracts_1.Contracts.throwIfNullOrUndefined(configImpl, "speechConfig");
+ _this = _super.call(this, audioConfig, configImpl.properties, new Exports_1.IntentConnectionFactory()) || this;
+ _this.privAddedIntents = [];
+ _this.privAddedLmIntents = {};
+ _this.privDisposedIntentRecognizer = false;
+ _this.privProperties = configImpl.properties;
+ Contracts_1.Contracts.throwIfNullOrWhitespace(_this.properties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage), Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage]);
+ return _this;
+ }
+ Object.defineProperty(IntentRecognizer.prototype, "speechRecognitionLanguage", {
+ /**
+ * Gets the spoken language of recognition.
+ * @member IntentRecognizer.prototype.speechRecognitionLanguage
+ * @function
+ * @public
+ * @returns {string} the spoken language of recognition.
+ */
+ get: function () {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposedIntentRecognizer);
+ return this.properties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(IntentRecognizer.prototype, "authorizationToken", {
+ /**
+ * Gets the authorization token used to communicate with the service.
+ * @member IntentRecognizer.prototype.authorizationToken
+ * @function
+ * @public
+ * @returns {string} Authorization token.
+ */
+ get: function () {
+ return this.properties.getProperty(Exports_2.PropertyId.SpeechServiceAuthorization_Token);
+ },
+ /**
+ * Gets/Sets the authorization token used to communicate with the service.
+ * Note: Please use a token derived from your LanguageUnderstanding subscription key for the Intent recognizer.
+ * @member IntentRecognizer.prototype.authorizationToken
+ * @function
+ * @public
+ * @param {string} value - Authorization token.
+ */
+ set: function (value) {
+ this.properties.setProperty(Exports_2.PropertyId.SpeechServiceAuthorization_Token, value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(IntentRecognizer.prototype, "properties", {
+ /**
+ * The collection of properties and their values defined for this IntentRecognizer.
+ * @member IntentRecognizer.prototype.properties
+ * @function
+ * @public
+ * @returns {PropertyCollection} The collection of properties and their
+ * values defined for this IntentRecognizer.
+ */
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Starts intent recognition, and stops after the first utterance is recognized.
+ * The task returns the recognition text and intent as result.
+ * Note: RecognizeOnceAsync() returns when the first utterance has been recognized,
+ * so it is suitable only for single shot recognition like command or query.
+ * For long-running recognition, use StartContinuousRecognitionAsync() instead.
+ * @member IntentRecognizer.prototype.recognizeOnceAsync
+ * @function
+ * @public
+ * @param cb - Callback that received the recognition has finished with an IntentRecognitionResult.
+ * @param err - Callback invoked in case of an error.
+ */
+ IntentRecognizer.prototype.recognizeOnceAsync = function (cb, err) {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposedIntentRecognizer);
+ if (Object.keys(this.privAddedLmIntents).length !== 0 || undefined !== this.privUmbrellaIntent) {
+ var context = this.buildSpeechContext();
+ this.privReco.speechContext.setSection("intent", context.Intent);
+ this.privReco.dynamicGrammar.addReferenceGrammar(context.ReferenceGrammars);
+ var intentReco = this.privReco;
+ intentReco.setIntents(this.privAddedLmIntents, this.privUmbrellaIntent);
+ }
+ this.recognizeOnceAsyncImpl(Exports_1.RecognitionMode.Interactive, cb, err);
+ };
+ /**
+ * Starts speech recognition, until stopContinuousRecognitionAsync() is called.
+ * User must subscribe to events to receive recognition results.
+ * @member IntentRecognizer.prototype.startContinuousRecognitionAsync
+ * @function
+ * @public
+ * @param cb - Callback invoked once the recognition has started.
+ * @param err - Callback invoked in case of an error.
+ */
+ IntentRecognizer.prototype.startContinuousRecognitionAsync = function (cb, err) {
+ if (Object.keys(this.privAddedLmIntents).length !== 0) {
+ var context = this.buildSpeechContext();
+ this.privReco.speechContext.setSection("intent", context.Intent);
+ this.privReco.dynamicGrammar.addReferenceGrammar(context.ReferenceGrammars);
+ var intentReco = this.privReco;
+ intentReco.setIntents(this.privAddedLmIntents, this.privUmbrellaIntent);
+ }
+ this.startContinuousRecognitionAsyncImpl(Exports_1.RecognitionMode.Conversation, cb, err);
+ };
+ /**
+ * Stops continuous intent recognition.
+ * @member IntentRecognizer.prototype.stopContinuousRecognitionAsync
+ * @function
+ * @public
+ * @param cb - Callback invoked once the recognition has stopped.
+ * @param err - Callback invoked in case of an error.
+ */
+ IntentRecognizer.prototype.stopContinuousRecognitionAsync = function (cb, err) {
+ this.stopContinuousRecognitionAsyncImpl(cb, err);
+ };
+ /**
+ * Starts speech recognition with keyword spotting, until stopKeywordRecognitionAsync() is called.
+ * User must subscribe to events to receive recognition results.
+ * Note: Key word spotting functionality is only available on the Speech Devices SDK.
+ * This functionality is currently not included in the SDK itself.
+ * @member IntentRecognizer.prototype.startKeywordRecognitionAsync
+ * @function
+ * @public
+ * @param {KeywordRecognitionModel} model - The keyword recognition model that specifies the keyword to be recognized.
+ * @param cb - Callback invoked once the recognition has started.
+ * @param err - Callback invoked in case of an error.
+ */
+ IntentRecognizer.prototype.startKeywordRecognitionAsync = function (model, cb, err) {
+ Contracts_1.Contracts.throwIfNull(model, "model");
+ if (!!err) {
+ err("Not yet implemented.");
+ }
+ };
+ /**
+ * Stops continuous speech recognition.
+ * Note: Key word spotting functionality is only available on the Speech Devices SDK.
+ * This functionality is currently not included in the SDK itself.
+ * @member IntentRecognizer.prototype.stopKeywordRecognitionAsync
+ * @function
+ * @public
+ * @param cb - Callback invoked once the recognition has stopped.
+ * @param err - Callback invoked in case of an error.
+ */
+ IntentRecognizer.prototype.stopKeywordRecognitionAsync = function (cb, err) {
+ if (!!cb) {
+ cb();
+ }
+ };
+ /**
+ * Adds a phrase that should be recognized as intent.
+ * @member IntentRecognizer.prototype.addIntent
+ * @function
+ * @public
+ * @param {string} intentId - A String that represents the identifier of the intent to be recognized.
+ * @param {string} phrase - A String that specifies the phrase representing the intent.
+ */
+ IntentRecognizer.prototype.addIntent = function (simplePhrase, intentId) {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposedIntentRecognizer);
+ Contracts_1.Contracts.throwIfNullOrWhitespace(intentId, "intentId");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(simplePhrase, "simplePhrase");
+ this.privAddedIntents.push([intentId, simplePhrase]);
+ };
+ /**
+ * Adds an intent from Language Understanding service for recognition.
+ * @member IntentRecognizer.prototype.addIntentWithLanguageModel
+ * @function
+ * @public
+ * @param {string} intentId - A String that represents the identifier of the intent
+ * to be recognized. Ignored if intentName is empty.
+ * @param {string} model - The intent model from Language Understanding service.
+ * @param {string} intentName - The intent name defined in the intent model. If it
+ * is empty, all intent names defined in the model will be added.
+ */
+ IntentRecognizer.prototype.addIntentWithLanguageModel = function (intentId, model, intentName) {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposedIntentRecognizer);
+ Contracts_1.Contracts.throwIfNullOrWhitespace(intentId, "intentId");
+ Contracts_1.Contracts.throwIfNull(model, "model");
+ var modelImpl = model;
+ Contracts_1.Contracts.throwIfNullOrWhitespace(modelImpl.appId, "model.appId");
+ this.privAddedLmIntents[intentId] = new Exports_1.AddedLmIntent(modelImpl, intentName);
+ };
+ /**
+ * @summary Adds all intents from the specified Language Understanding Model.
+ * @member IntentRecognizer.prototype.addAllIntents
+ * @function
+ * @public
+ * @function
+ * @public
+ * @param {LanguageUnderstandingModel} model - The language understanding model containing the intents.
+ * @param {string} intentId - A custom id String to be returned in the IntentRecognitionResult's getIntentId() method.
+ */
+ IntentRecognizer.prototype.addAllIntents = function (model, intentId) {
+ Contracts_1.Contracts.throwIfNull(model, "model");
+ var modelImpl = model;
+ Contracts_1.Contracts.throwIfNullOrWhitespace(modelImpl.appId, "model.appId");
+ this.privUmbrellaIntent = new Exports_1.AddedLmIntent(modelImpl, intentId);
+ };
+ /**
+ * closes all external resources held by an instance of this class.
+ * @member IntentRecognizer.prototype.close
+ * @function
+ * @public
+ */
+ IntentRecognizer.prototype.close = function () {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposedIntentRecognizer);
+ this.dispose(true);
+ };
+ IntentRecognizer.prototype.createRecognizerConfig = function (speechConfig) {
+ return new Exports_1.RecognizerConfig(speechConfig, this.properties);
+ };
+ IntentRecognizer.prototype.createServiceRecognizer = function (authentication, connectionFactory, audioConfig, recognizerConfig) {
+ var audioImpl = audioConfig;
+ return new Exports_1.IntentServiceRecognizer(authentication, connectionFactory, audioImpl, recognizerConfig, this);
+ };
+ IntentRecognizer.prototype.dispose = function (disposing) {
+ if (this.privDisposedIntentRecognizer) {
+ return;
+ }
+ if (disposing) {
+ this.privDisposedIntentRecognizer = true;
+ _super.prototype.dispose.call(this, disposing);
+ }
+ };
+ IntentRecognizer.prototype.buildSpeechContext = function () {
+ var appId;
+ var region;
+ var subscriptionKey;
+ var refGrammers = [];
+ if (undefined !== this.privUmbrellaIntent) {
+ appId = this.privUmbrellaIntent.modelImpl.appId;
+ region = this.privUmbrellaIntent.modelImpl.region;
+ subscriptionKey = this.privUmbrellaIntent.modelImpl.subscriptionKey;
+ }
+ // Build the reference grammer array.
+ for (var _i = 0, _a = Object.keys(this.privAddedLmIntents); _i < _a.length; _i++) {
+ var intentId = _a[_i];
+ var addedLmIntent = this.privAddedLmIntents[intentId];
+ // validate all the same model, region, and key...
+ if (appId === undefined) {
+ appId = addedLmIntent.modelImpl.appId;
+ }
+ else {
+ if (appId !== addedLmIntent.modelImpl.appId) {
+ throw new Error("Intents must all be from the same LUIS model");
+ }
+ }
+ if (region === undefined) {
+ region = addedLmIntent.modelImpl.region;
+ }
+ else {
+ if (region !== addedLmIntent.modelImpl.region) {
+ throw new Error("Intents must all be from the same LUIS model in a single region");
+ }
+ }
+ if (subscriptionKey === undefined) {
+ subscriptionKey = addedLmIntent.modelImpl.subscriptionKey;
+ }
+ else {
+ if (subscriptionKey !== addedLmIntent.modelImpl.subscriptionKey) {
+ throw new Error("Intents must all use the same subscription key");
+ }
+ }
+ var grammer = "luis/" + appId + "-PRODUCTION#" + intentId;
+ refGrammers.push(grammer);
+ }
+ return {
+ Intent: {
+ id: appId,
+ key: (subscriptionKey === undefined) ? this.privProperties.getProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_Key]) : subscriptionKey,
+ provider: "LUIS",
+ },
+ ReferenceGrammars: (undefined === this.privUmbrellaIntent) ? refGrammers : ["luis/" + appId + "-PRODUCTION"],
+ };
+ };
+ return IntentRecognizer;
+}(Exports_2.Recognizer));
+exports.IntentRecognizer = IntentRecognizer;
+
+
+
+/***/ }),
+/* 75 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Output format
+ * @class VoiceProfileType
+ */
+var VoiceProfileType;
+(function (VoiceProfileType) {
+ /**
+ * Text independent speaker identification
+ * @member VoiceProfileType.TextIndependentIdentification
+ */
+ VoiceProfileType[VoiceProfileType["TextIndependentIdentification"] = 0] = "TextIndependentIdentification";
+ /**
+ * Text dependent speaker verification
+ * @member VoiceProfileType.TextDependentVerification
+ */
+ VoiceProfileType[VoiceProfileType["TextDependentVerification"] = 1] = "TextDependentVerification";
+ /**
+ * Text independent speaker verification
+ * @member VoiceProfileType.TextIndependentVerification
+ */
+ VoiceProfileType[VoiceProfileType["TextIndependentVerification"] = 2] = "TextIndependentVerification";
+})(VoiceProfileType = exports.VoiceProfileType || (exports.VoiceProfileType = {}));
+
+
+
+/***/ }),
+/* 76 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+/**
+ * Translation recognizer
+ * @class TranslationRecognizer
+ */
+var TranslationRecognizer = /** @class */ (function (_super) {
+ __extends(TranslationRecognizer, _super);
+ /**
+ * Initializes an instance of the TranslationRecognizer.
+ * @constructor
+ * @param {SpeechTranslationConfig} speechConfig - Set of properties to configure this recognizer.
+ * @param {AudioConfig} audioConfig - An optional audio config associated with the recognizer
+ */
+ function TranslationRecognizer(speechConfig, audioConfig) {
+ var _this = this;
+ var configImpl = speechConfig;
+ Contracts_1.Contracts.throwIfNull(configImpl, "speechConfig");
+ _this = _super.call(this, audioConfig, configImpl.properties, new Exports_1.TranslationConnectionFactory()) || this;
+ _this.privDisposedTranslationRecognizer = false;
+ _this.privProperties = configImpl.properties.clone();
+ if (_this.properties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_TranslationVoice, undefined) !== undefined) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(_this.properties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_TranslationVoice), Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_TranslationVoice]);
+ }
+ Contracts_1.Contracts.throwIfNullOrWhitespace(_this.properties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_TranslationToLanguages), Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_TranslationToLanguages]);
+ Contracts_1.Contracts.throwIfNullOrWhitespace(_this.properties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage), Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage]);
+ return _this;
+ }
+ Object.defineProperty(TranslationRecognizer.prototype, "speechRecognitionLanguage", {
+ /**
+ * Gets the language name that was set when the recognizer was created.
+ * @member TranslationRecognizer.prototype.speechRecognitionLanguage
+ * @function
+ * @public
+ * @returns {string} Gets the language name that was set when the recognizer was created.
+ */
+ get: function () {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposedTranslationRecognizer);
+ return this.properties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationRecognizer.prototype, "targetLanguages", {
+ /**
+ * Gets target languages for translation that were set when the recognizer was created.
+ * The language is specified in BCP-47 format. The translation will provide translated text for each of language.
+ * @member TranslationRecognizer.prototype.targetLanguages
+ * @function
+ * @public
+ * @returns {string[]} Gets target languages for translation that were set when the recognizer was created.
+ */
+ get: function () {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposedTranslationRecognizer);
+ return this.properties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_TranslationToLanguages).split(",");
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationRecognizer.prototype, "voiceName", {
+ /**
+ * Gets the name of output voice.
+ * @member TranslationRecognizer.prototype.voiceName
+ * @function
+ * @public
+ * @returns {string} the name of output voice.
+ */
+ get: function () {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposedTranslationRecognizer);
+ return this.properties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_TranslationVoice, undefined);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationRecognizer.prototype, "authorizationToken", {
+ /**
+ * Gets the authorization token used to communicate with the service.
+ * @member TranslationRecognizer.prototype.authorizationToken
+ * @function
+ * @public
+ * @returns {string} Authorization token.
+ */
+ get: function () {
+ return this.properties.getProperty(Exports_2.PropertyId.SpeechServiceAuthorization_Token);
+ },
+ /**
+ * Gets/Sets the authorization token used to communicate with the service.
+ * @member TranslationRecognizer.prototype.authorizationToken
+ * @function
+ * @public
+ * @param {string} value - Authorization token.
+ */
+ set: function (value) {
+ this.properties.setProperty(Exports_2.PropertyId.SpeechServiceAuthorization_Token, value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationRecognizer.prototype, "properties", {
+ /**
+ * The collection of properties and their values defined for this TranslationRecognizer.
+ * @member TranslationRecognizer.prototype.properties
+ * @function
+ * @public
+ * @returns {PropertyCollection} The collection of properties and their values defined for this TranslationRecognizer.
+ */
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Starts recognition and translation, and stops after the first utterance is recognized.
+ * The task returns the translation text as result.
+ * Note: recognizeOnceAsync returns when the first utterance has been recognized, so it is suitableonly
+ * for single shot recognition like command or query. For long-running recognition,
+ * use startContinuousRecognitionAsync() instead.
+ * @member TranslationRecognizer.prototype.recognizeOnceAsync
+ * @function
+ * @public
+ * @param cb - Callback that received the result when the translation has completed.
+ * @param err - Callback invoked in case of an error.
+ */
+ TranslationRecognizer.prototype.recognizeOnceAsync = function (cb, err) {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposedTranslationRecognizer);
+ this.recognizeOnceAsyncImpl(Exports_1.RecognitionMode.Conversation, cb, err);
+ };
+ /**
+ * Starts recognition and translation, until stopContinuousRecognitionAsync() is called.
+ * User must subscribe to events to receive translation results.
+ * @member TranslationRecognizer.prototype.startContinuousRecognitionAsync
+ * @function
+ * @public
+ * @param cb - Callback that received the translation has started.
+ * @param err - Callback invoked in case of an error.
+ */
+ TranslationRecognizer.prototype.startContinuousRecognitionAsync = function (cb, err) {
+ this.startContinuousRecognitionAsyncImpl(Exports_1.RecognitionMode.Conversation, cb, err);
+ };
+ /**
+ * Stops continuous recognition and translation.
+ * @member TranslationRecognizer.prototype.stopContinuousRecognitionAsync
+ * @function
+ * @public
+ * @param cb - Callback that received the translation has stopped.
+ * @param err - Callback invoked in case of an error.
+ */
+ TranslationRecognizer.prototype.stopContinuousRecognitionAsync = function (cb, err) {
+ this.stopContinuousRecognitionAsyncImpl(cb, err);
+ };
+ /**
+ * closes all external resources held by an instance of this class.
+ * @member TranslationRecognizer.prototype.close
+ * @function
+ * @public
+ */
+ TranslationRecognizer.prototype.close = function () {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposedTranslationRecognizer);
+ this.dispose(true);
+ };
+ TranslationRecognizer.prototype.dispose = function (disposing) {
+ if (this.privDisposedTranslationRecognizer) {
+ return;
+ }
+ if (disposing) {
+ this.implRecognizerStop();
+ this.privDisposedTranslationRecognizer = true;
+ _super.prototype.dispose.call(this, disposing);
+ }
+ };
+ TranslationRecognizer.prototype.createRecognizerConfig = function (speechConfig) {
+ return new Exports_1.RecognizerConfig(speechConfig, this.properties);
+ };
+ TranslationRecognizer.prototype.createServiceRecognizer = function (authentication, connectionFactory, audioConfig, recognizerConfig) {
+ var configImpl = audioConfig;
+ return new Exports_1.TranslationServiceRecognizer(authentication, connectionFactory, configImpl, recognizerConfig, this);
+ };
+ return TranslationRecognizer;
+}(Exports_2.Recognizer));
+exports.TranslationRecognizer = TranslationRecognizer;
+
+
+
+/***/ }),
+/* 77 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+/**
+ * Represents collection of parameters and their values.
+ * @class Translation
+ */
+var Translations = /** @class */ (function () {
+ function Translations() {
+ // Use an PropertyCollection internally, just wrapping it to hide the | enum syntax it has.
+ this.privMap = new Exports_1.PropertyCollection();
+ }
+ /**
+ * Returns the parameter value in type String. The parameter must have the same type as String.
+ * Currently only String, int and bool are allowed.
+ * If the name is not available, the specified defaultValue is returned.
+ * @member Translation.prototype.get
+ * @function
+ * @public
+ * @param {string} key - The parameter name.
+ * @param {string} def - The default value which is returned if the parameter is not available in the collection.
+ * @returns {string} value of the parameter.
+ */
+ Translations.prototype.get = function (key, def) {
+ return this.privMap.getProperty(key, def);
+ };
+ /**
+ * Sets the String value of the parameter specified by name.
+ * @member Translation.prototype.set
+ * @function
+ * @public
+ * @param {string} key - The parameter name.
+ * @param {string} value - The value of the parameter.
+ */
+ Translations.prototype.set = function (key, value) {
+ this.privMap.setProperty(key, value);
+ };
+ return Translations;
+}());
+exports.Translations = Translations;
+
+
+
+/***/ }),
+/* 78 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Defines the possible reasons a recognition result might not be recognized.
+ * @class NoMatchReason
+ */
+var NoMatchReason;
+(function (NoMatchReason) {
+ /**
+ * Indicates that speech was detected, but not recognized.
+ * @member NoMatchReason.NotRecognized
+ */
+ NoMatchReason[NoMatchReason["NotRecognized"] = 0] = "NotRecognized";
+ /**
+ * Indicates that the start of the audio stream contained only silence,
+ * and the service timed out waiting for speech.
+ * @member NoMatchReason.InitialSilenceTimeout
+ */
+ NoMatchReason[NoMatchReason["InitialSilenceTimeout"] = 1] = "InitialSilenceTimeout";
+ /**
+ * Indicates that the start of the audio stream contained only noise,
+ * and the service timed out waiting for speech.
+ * @member NoMatchReason.InitialBabbleTimeout
+ */
+ NoMatchReason[NoMatchReason["InitialBabbleTimeout"] = 2] = "InitialBabbleTimeout";
+})(NoMatchReason = exports.NoMatchReason || (exports.NoMatchReason = {}));
+
+
+
+/***/ }),
+/* 79 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Exports_2 = __webpack_require__(31);
+/**
+ * Contains detailed information for NoMatch recognition results.
+ * @class NoMatchDetails
+ */
+var NoMatchDetails = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {NoMatchReason} reason - The no-match reason.
+ */
+ function NoMatchDetails(reason) {
+ this.privReason = reason;
+ }
+ /**
+ * Creates an instance of NoMatchDetails object for the NoMatch SpeechRecognitionResults.
+ * @member NoMatchDetails.fromResult
+ * @function
+ * @public
+ * @param {SpeechRecognitionResult | IntentRecognitionResult | TranslationRecognitionResult}
+ * result - The recognition result that was not recognized.
+ * @returns {NoMatchDetails} The no match details object being created.
+ */
+ NoMatchDetails.fromResult = function (result) {
+ var simpleSpeech = Exports_1.SimpleSpeechPhrase.fromJSON(result.json);
+ var reason = Exports_2.NoMatchReason.NotRecognized;
+ switch (simpleSpeech.RecognitionStatus) {
+ case Exports_1.RecognitionStatus.BabbleTimeout:
+ reason = Exports_2.NoMatchReason.InitialBabbleTimeout;
+ break;
+ case Exports_1.RecognitionStatus.InitialSilenceTimeout:
+ reason = Exports_2.NoMatchReason.InitialSilenceTimeout;
+ break;
+ default:
+ reason = Exports_2.NoMatchReason.NotRecognized;
+ break;
+ }
+ return new NoMatchDetails(reason);
+ };
+ Object.defineProperty(NoMatchDetails.prototype, "reason", {
+ /**
+ * The reason the recognition was canceled.
+ * @member NoMatchDetails.prototype.reason
+ * @function
+ * @public
+ * @returns {NoMatchReason} Specifies the reason canceled.
+ */
+ get: function () {
+ return this.privReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return NoMatchDetails;
+}());
+exports.NoMatchDetails = NoMatchDetails;
+
+
+
+/***/ }),
+/* 80 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Define payload of speech recognition canceled result events.
+ * @class TranslationRecognitionCanceledEventArgs
+ */
+var TranslationRecognitionCanceledEventArgs = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {string} sessionid - The session id.
+ * @param {CancellationReason} cancellationReason - The cancellation reason.
+ * @param {string} errorDetails - Error details, if provided.
+ * @param {TranslationRecognitionResult} result - The result.
+ */
+ function TranslationRecognitionCanceledEventArgs(sessionid, cancellationReason, errorDetails, errorCode, result) {
+ this.privCancelReason = cancellationReason;
+ this.privErrorDetails = errorDetails;
+ this.privResult = result;
+ this.privSessionId = sessionid;
+ this.privErrorCode = errorCode;
+ }
+ Object.defineProperty(TranslationRecognitionCanceledEventArgs.prototype, "result", {
+ /**
+ * Specifies the recognition result.
+ * @member TranslationRecognitionCanceledEventArgs.prototype.result
+ * @function
+ * @public
+ * @returns {TranslationRecognitionResult} the recognition result.
+ */
+ get: function () {
+ return this.privResult;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationRecognitionCanceledEventArgs.prototype, "sessionId", {
+ /**
+ * Specifies the session identifier.
+ * @member TranslationRecognitionCanceledEventArgs.prototype.sessionId
+ * @function
+ * @public
+ * @returns {string} the session identifier.
+ */
+ get: function () {
+ return this.privSessionId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationRecognitionCanceledEventArgs.prototype, "reason", {
+ /**
+ * The reason the recognition was canceled.
+ * @member TranslationRecognitionCanceledEventArgs.prototype.reason
+ * @function
+ * @public
+ * @returns {CancellationReason} Specifies the reason canceled.
+ */
+ get: function () {
+ return this.privCancelReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationRecognitionCanceledEventArgs.prototype, "errorCode", {
+ /**
+ * The error code in case of an unsuccessful recognition.
+ * Added in version 1.1.0.
+ * @return An error code that represents the error reason.
+ */
+ get: function () {
+ return this.privErrorCode;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationRecognitionCanceledEventArgs.prototype, "errorDetails", {
+ /**
+ * In case of an unsuccessful recognition, provides details of the occurred error.
+ * @member TranslationRecognitionCanceledEventArgs.prototype.errorDetails
+ * @function
+ * @public
+ * @returns {string} A String that represents the error details.
+ */
+ get: function () {
+ return this.privErrorDetails;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return TranslationRecognitionCanceledEventArgs;
+}());
+exports.TranslationRecognitionCanceledEventArgs = TranslationRecognitionCanceledEventArgs;
+
+
+
+/***/ }),
+/* 81 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+/**
+ * Define payload of intent recognition canceled result events.
+ * @class IntentRecognitionCanceledEventArgs
+ */
+var IntentRecognitionCanceledEventArgs = /** @class */ (function (_super) {
+ __extends(IntentRecognitionCanceledEventArgs, _super);
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {CancellationReason} result - The result of the intent recognition.
+ * @param {string} offset - The offset.
+ * @param {IntentRecognitionResult} sessionId - The session id.
+ */
+ function IntentRecognitionCanceledEventArgs(reason, errorDetails, errorCode, result, offset, sessionId) {
+ var _this = _super.call(this, result, offset, sessionId) || this;
+ _this.privReason = reason;
+ _this.privErrorDetails = errorDetails;
+ _this.privErrorCode = errorCode;
+ return _this;
+ }
+ Object.defineProperty(IntentRecognitionCanceledEventArgs.prototype, "reason", {
+ /**
+ * The reason the recognition was canceled.
+ * @member IntentRecognitionCanceledEventArgs.prototype.reason
+ * @function
+ * @public
+ * @returns {CancellationReason} Specifies the reason canceled.
+ */
+ get: function () {
+ return this.privReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(IntentRecognitionCanceledEventArgs.prototype, "errorCode", {
+ /**
+ * The error code in case of an unsuccessful recognition.
+ * Added in version 1.1.0.
+ * @return An error code that represents the error reason.
+ */
+ get: function () {
+ return this.privErrorCode;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(IntentRecognitionCanceledEventArgs.prototype, "errorDetails", {
+ /**
+ * In case of an unsuccessful recognition, provides details of the occurred error.
+ * @member IntentRecognitionCanceledEventArgs.prototype.errorDetails
+ * @function
+ * @public
+ * @returns {string} A String that represents the error details.
+ */
+ get: function () {
+ return this.privErrorDetails;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return IntentRecognitionCanceledEventArgs;
+}(Exports_1.IntentRecognitionEventArgs));
+exports.IntentRecognitionCanceledEventArgs = IntentRecognitionCanceledEventArgs;
+
+
+
+/***/ }),
+/* 82 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Contains detailed information about why a result was canceled.
+ * @class CancellationDetailsBase
+ */
+var CancellationDetailsBase = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {CancellationReason} reason - The cancellation reason.
+ * @param {string} errorDetails - The error details, if provided.
+ */
+ function CancellationDetailsBase(reason, errorDetails, errorCode) {
+ this.privReason = reason;
+ this.privErrorDetails = errorDetails;
+ this.privErrorCode = errorCode;
+ }
+ Object.defineProperty(CancellationDetailsBase.prototype, "reason", {
+ /**
+ * The reason the recognition was canceled.
+ * @member CancellationDetailsBase.prototype.reason
+ * @function
+ * @public
+ * @returns {CancellationReason} Specifies the reason canceled.
+ */
+ get: function () {
+ return this.privReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CancellationDetailsBase.prototype, "errorDetails", {
+ /**
+ * In case of an unsuccessful recognition, provides details of the occurred error.
+ * @member CancellationDetailsBase.prototype.errorDetails
+ * @function
+ * @public
+ * @returns {string} A String that represents the error details.
+ */
+ get: function () {
+ return this.privErrorDetails;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CancellationDetailsBase.prototype, "ErrorCode", {
+ /**
+ * The error code in case of an unsuccessful recognition.
+ * Added in version 1.1.0.
+ * @return An error code that represents the error reason.
+ */
+ get: function () {
+ return this.privErrorCode;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return CancellationDetailsBase;
+}());
+exports.CancellationDetailsBase = CancellationDetailsBase;
+
+
+
+/***/ }),
+/* 83 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var CancellationDetailsBase_1 = __webpack_require__(82);
+var Exports_2 = __webpack_require__(31);
+/**
+ * Contains detailed information about why a result was canceled.
+ * @class CancellationDetails
+ */
+var CancellationDetails = /** @class */ (function (_super) {
+ __extends(CancellationDetails, _super);
+ function CancellationDetails(reason, errorDetails, errorCode) {
+ return _super.call(this, reason, errorDetails, errorCode) || this;
+ }
+ /**
+ * Creates an instance of CancellationDetails object for the canceled RecognitionResult.
+ * @member CancellationDetails.fromResult
+ * @function
+ * @public
+ * @param {RecognitionResult | SpeechSynthesisResult} result - The result that was canceled.
+ * @returns {CancellationDetails} The cancellation details object being created.
+ */
+ CancellationDetails.fromResult = function (result) {
+ var reason = Exports_2.CancellationReason.Error;
+ var errorCode = Exports_2.CancellationErrorCode.NoError;
+ if (result instanceof Exports_2.RecognitionResult && !!result.json) {
+ var simpleSpeech = Exports_1.SimpleSpeechPhrase.fromJSON(result.json);
+ reason = Exports_1.EnumTranslation.implTranslateCancelResult(simpleSpeech.RecognitionStatus);
+ }
+ if (!!result.properties) {
+ errorCode = Exports_2.CancellationErrorCode[result.properties.getProperty(Exports_1.CancellationErrorCodePropertyName, Exports_2.CancellationErrorCode[Exports_2.CancellationErrorCode.NoError])];
+ }
+ return new CancellationDetails(reason, result.errorDetails, errorCode);
+ };
+ return CancellationDetails;
+}(CancellationDetailsBase_1.CancellationDetailsBase));
+exports.CancellationDetails = CancellationDetails;
+
+
+
+/***/ }),
+/* 84 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Defines error code in case that CancellationReason is Error.
+ * Added in version 1.1.0.
+ */
+var CancellationErrorCode;
+(function (CancellationErrorCode) {
+ /**
+ * Indicates that no error occurred during speech recognition.
+ */
+ CancellationErrorCode[CancellationErrorCode["NoError"] = 0] = "NoError";
+ /**
+ * Indicates an authentication error.
+ */
+ CancellationErrorCode[CancellationErrorCode["AuthenticationFailure"] = 1] = "AuthenticationFailure";
+ /**
+ * Indicates that one or more recognition parameters are invalid.
+ */
+ CancellationErrorCode[CancellationErrorCode["BadRequestParameters"] = 2] = "BadRequestParameters";
+ /**
+ * Indicates that the number of parallel requests exceeded the number of allowed
+ * concurrent transcriptions for the subscription.
+ */
+ CancellationErrorCode[CancellationErrorCode["TooManyRequests"] = 3] = "TooManyRequests";
+ /**
+ * Indicates a connection error.
+ */
+ CancellationErrorCode[CancellationErrorCode["ConnectionFailure"] = 4] = "ConnectionFailure";
+ /**
+ * Indicates a time-out error when waiting for response from service.
+ */
+ CancellationErrorCode[CancellationErrorCode["ServiceTimeout"] = 5] = "ServiceTimeout";
+ /**
+ * Indicates that an error is returned by the service.
+ */
+ CancellationErrorCode[CancellationErrorCode["ServiceError"] = 6] = "ServiceError";
+ /**
+ * Indicates an unexpected runtime error.
+ */
+ CancellationErrorCode[CancellationErrorCode["RuntimeError"] = 7] = "RuntimeError";
+})(CancellationErrorCode = exports.CancellationErrorCode || (exports.CancellationErrorCode = {}));
+
+
+
+/***/ }),
+/* 85 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+//
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE.md file in the project root for full license information.
+//
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+/**
+ * Defines payload for connection events like Connected/Disconnected.
+ * Added in version 1.2.0
+ */
+var ConnectionEventArgs = /** @class */ (function (_super) {
+ __extends(ConnectionEventArgs, _super);
+ function ConnectionEventArgs() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ return ConnectionEventArgs;
+}(Exports_1.SessionEventArgs));
+exports.ConnectionEventArgs = ConnectionEventArgs;
+
+
+
+/***/ }),
+/* 86 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+//
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE.md file in the project root for full license information.
+//
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+/**
+ * Defines payload for any Service message event
+ * Added in version 1.9.0
+ */
+var ServiceEventArgs = /** @class */ (function (_super) {
+ __extends(ServiceEventArgs, _super);
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {string} json - json payload of the USP message.
+ */
+ function ServiceEventArgs(json, name, sessionId) {
+ var _this = _super.call(this, sessionId) || this;
+ _this.privJsonResult = json;
+ _this.privEventName = name;
+ return _this;
+ }
+ Object.defineProperty(ServiceEventArgs.prototype, "jsonString", {
+ get: function () {
+ return this.privJsonResult;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ServiceEventArgs.prototype, "eventName", {
+ get: function () {
+ return this.privEventName;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ServiceEventArgs;
+}(Exports_1.SessionEventArgs));
+exports.ServiceEventArgs = ServiceEventArgs;
+
+
+
+/***/ }),
+/* 87 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+//
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE.md file in the project root for full license information.
+//
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var ConnectionMessage_1 = __webpack_require__(88);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+/**
+ * Connection is a proxy class for managing connection to the speech service of the specified Recognizer.
+ * By default, a Recognizer autonomously manages connection to service when needed.
+ * The Connection class provides additional methods for users to explicitly open or close a connection and
+ * to subscribe to connection status changes.
+ * The use of Connection is optional, and mainly for scenarios where fine tuning of application
+ * behavior based on connection status is needed. Users can optionally call Open() to manually set up a connection
+ * in advance before starting recognition on the Recognizer associated with this Connection.
+ * If the Recognizer needs to connect or disconnect to service, it will
+ * setup or shutdown the connection independently. In this case the Connection will be notified by change of connection
+ * status via Connected/Disconnected events.
+ * Added in version 1.2.1.
+ */
+var Connection = /** @class */ (function () {
+ function Connection() {
+ }
+ /**
+ * Gets the Connection instance from the specified recognizer.
+ * @param recognizer The recognizer associated with the connection.
+ * @return The Connection instance of the recognizer.
+ */
+ Connection.fromRecognizer = function (recognizer) {
+ var recoBase = recognizer.internalData;
+ var ret = new Connection();
+ ret.privInternalData = recoBase;
+ ret.setupEvents();
+ return ret;
+ };
+ /**
+ * Gets the Connection instance from the specified synthesizer.
+ * @param synthesizer The synthesizer associated with the connection.
+ * @return The Connection instance of the synthesizer.
+ */
+ Connection.fromSynthesizer = function (synthesizer) {
+ var synthBase = synthesizer.internalData;
+ var ret = new Connection();
+ ret.privInternalData = synthBase;
+ ret.setupEvents();
+ return ret;
+ };
+ /**
+ * Starts to set up connection to the service.
+ * Users can optionally call openConnection() to manually set up a connection in advance before starting recognition on the
+ * Recognizer associated with this Connection. After starting recognition, calling Open() will have no effect
+ *
+ * Note: On return, the connection might not be ready yet. Please subscribe to the Connected event to
+ * be notified when the connection is established.
+ */
+ Connection.prototype.openConnection = function () {
+ this.privInternalData.connect();
+ };
+ /**
+ * Closes the connection the service.
+ * Users can optionally call closeConnection() to manually shutdown the connection of the associated Recognizer.
+ *
+ * If closeConnection() is called during recognition, recognition will fail and cancel with an error.
+ */
+ Connection.prototype.closeConnection = function () {
+ if (this.privInternalData instanceof Exports_1.SynthesisAdapterBase) {
+ throw new Error("Disconnecting a synthesizer's connection is currently not supported");
+ }
+ else {
+ this.privInternalData.disconnect();
+ }
+ };
+ /**
+ * Appends a parameter in a message to service.
+ * Added in version 1.12.1.
+ * @param path The path of the network message.
+ * @param propertyName Name of the property
+ * @param propertyValue Value of the property. This is a json string.
+ */
+ Connection.prototype.setMessageProperty = function (path, propertyName, propertyValue) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(propertyName, "propertyName");
+ if (this.privInternalData instanceof Exports_1.ServiceRecognizerBase) {
+ if (path.toLowerCase() !== "speech.context") {
+ throw new Error("Only speech.context message property sets are currently supported for recognizer");
+ }
+ else {
+ this.privInternalData.speechContext.setSection(propertyName, propertyValue);
+ }
+ }
+ else if (this.privInternalData instanceof Exports_1.SynthesisAdapterBase) {
+ if (path.toLowerCase() !== "synthesis.context") {
+ throw new Error("Only synthesis.context message property sets are currently supported for synthesizer");
+ }
+ else {
+ this.privInternalData.synthesisContext.setSection(propertyName, propertyValue);
+ }
+ }
+ };
+ /**
+ * Sends a message to the speech service.
+ * Added in version 1.13.0.
+ * @param path The WebSocket path of the message
+ * @param payload The payload of the message. This is a json string or a ArrayBuffer.
+ * @param success A callback to indicate success.
+ * @param error A callback to indicate an error.
+ */
+ Connection.prototype.sendMessageAsync = function (path, payload, success, error) {
+ this.privInternalData.sendNetworkMessage(path, payload, success, error);
+ };
+ /**
+ * Dispose of associated resources.
+ */
+ Connection.prototype.close = function () {
+ /* tslint:disable:no-empty */
+ };
+ Connection.prototype.setupEvents = function () {
+ var _this = this;
+ this.privEventListener = this.privInternalData.connectionEvents.attach(function (connectionEvent) {
+ if (connectionEvent.name === "ConnectionEstablishedEvent") {
+ if (!!_this.connected) {
+ _this.connected(new Exports_2.ConnectionEventArgs(connectionEvent.connectionId));
+ }
+ }
+ else if (connectionEvent.name === "ConnectionClosedEvent") {
+ if (!!_this.disconnected) {
+ _this.disconnected(new Exports_2.ConnectionEventArgs(connectionEvent.connectionId));
+ }
+ }
+ else if (connectionEvent.name === "ConnectionMessageSentEvent") {
+ if (!!_this.messageSent) {
+ _this.messageSent(new Exports_2.ConnectionMessageEventArgs(new ConnectionMessage_1.ConnectionMessageImpl(connectionEvent.message)));
+ }
+ }
+ else if (connectionEvent.name === "ConnectionMessageReceivedEvent") {
+ if (!!_this.messageReceived) {
+ _this.messageReceived(new Exports_2.ConnectionMessageEventArgs(new ConnectionMessage_1.ConnectionMessageImpl(connectionEvent.message)));
+ }
+ }
+ });
+ this.privServiceEventListener = this.privInternalData.serviceEvents.attach(function (e) {
+ if (!!_this.receivedServiceMessage) {
+ _this.receivedServiceMessage(new Exports_2.ServiceEventArgs(e.jsonString, e.name));
+ }
+ });
+ };
+ return Connection;
+}());
+exports.Connection = Connection;
+
+
+
+/***/ }),
+/* 88 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+//
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE.md file in the project root for full license information.
+//
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var PropertyCollection_1 = __webpack_require__(67);
+var PropertyId_1 = __webpack_require__(68);
+/**
+ * ConnectionMessage represents implementation specific messages sent to and received from
+ * the speech service. These messages are provided for debugging purposes and should not
+ * be used for production use cases with the Azure Cognitive Services Speech Service.
+ * Messages sent to and received from the Speech Service are subject to change without
+ * notice. This includes message contents, headers, payloads, ordering, etc.
+ * Added in version 1.11.0.
+ */
+var ConnectionMessage = /** @class */ (function () {
+ function ConnectionMessage() {
+ }
+ return ConnectionMessage;
+}());
+exports.ConnectionMessage = ConnectionMessage;
+// tslint:disable-next-line:max-classes-per-file
+var ConnectionMessageImpl = /** @class */ (function () {
+ function ConnectionMessageImpl(message) {
+ var _this = this;
+ this.privConnectionMessage = message;
+ this.privProperties = new PropertyCollection_1.PropertyCollection();
+ if (!!this.privConnectionMessage.headers["X-ConnectionId"]) {
+ this.privProperties.setProperty(PropertyId_1.PropertyId.Speech_SessionId, this.privConnectionMessage.headers["X-ConnectionId"]);
+ }
+ Object.keys(this.privConnectionMessage.headers).forEach(function (header, index, array) {
+ _this.privProperties.setProperty(header, _this.privConnectionMessage.headers[header]);
+ });
+ }
+ Object.defineProperty(ConnectionMessageImpl.prototype, "path", {
+ /**
+ * The message path.
+ */
+ get: function () {
+ return this.privConnectionMessage.headers[Object.keys(this.privConnectionMessage.headers).find(function (key) { return key.toLowerCase() === "path".toLowerCase(); })];
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionMessageImpl.prototype, "isTextMessage", {
+ /**
+ * Checks to see if the ConnectionMessage is a text message.
+ * See also IsBinaryMessage().
+ */
+ get: function () {
+ return this.privConnectionMessage.messageType === Exports_1.MessageType.Text;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionMessageImpl.prototype, "isBinaryMessage", {
+ /**
+ * Checks to see if the ConnectionMessage is a binary message.
+ * See also GetBinaryMessage().
+ */
+ get: function () {
+ return this.privConnectionMessage.messageType === Exports_1.MessageType.Binary;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionMessageImpl.prototype, "TextMessage", {
+ /**
+ * Gets the text message payload. Typically the text message content-type is
+ * application/json. To determine other content-types use
+ * Properties.GetProperty("Content-Type").
+ */
+ get: function () {
+ return this.privConnectionMessage.textBody;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionMessageImpl.prototype, "binaryMessage", {
+ /**
+ * Gets the binary message payload.
+ */
+ get: function () {
+ return this.privConnectionMessage.binaryBody;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConnectionMessageImpl.prototype, "properties", {
+ /**
+ * A collection of properties and their values defined for this .
+ * Message headers can be accessed via this collection (e.g. "Content-Type").
+ */
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Returns a string that represents the connection message.
+ */
+ ConnectionMessageImpl.prototype.toString = function () {
+ return "";
+ };
+ return ConnectionMessageImpl;
+}());
+exports.ConnectionMessageImpl = ConnectionMessageImpl;
+
+
+
+/***/ }),
+/* 89 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Allows additions of new phrases to improve speech recognition.
+ *
+ * Phrases added to the recognizer are effective at the start of the next recognition, or the next time the SpeechSDK must reconnect
+ * to the speech service.
+ */
+var PhraseListGrammar = /** @class */ (function () {
+ function PhraseListGrammar(recogBase) {
+ this.privGrammerBuilder = recogBase.dynamicGrammar;
+ }
+ /**
+ * Creates a PhraseListGrammar from a given speech recognizer. Will accept any recognizer that derives from @class Recognizer.
+ * @param recognizer The recognizer to add phrase lists to.
+ */
+ PhraseListGrammar.fromRecognizer = function (recognizer) {
+ var recoBase = recognizer.internalData;
+ return new PhraseListGrammar(recoBase);
+ };
+ /**
+ * Adds a single phrase to the current recognizer.
+ * @param phrase Phrase to add.
+ */
+ PhraseListGrammar.prototype.addPhrase = function (phrase) {
+ this.privGrammerBuilder.addPhrase(phrase);
+ };
+ /**
+ * Adds multiple phrases to the current recognizer.
+ * @param phrases Array of phrases to add.
+ */
+ PhraseListGrammar.prototype.addPhrases = function (phrases) {
+ this.privGrammerBuilder.addPhrase(phrases);
+ };
+ /**
+ * Clears all phrases added to the current recognizer.
+ */
+ PhraseListGrammar.prototype.clear = function () {
+ this.privGrammerBuilder.clearPhrases();
+ };
+ return PhraseListGrammar;
+}());
+exports.PhraseListGrammar = PhraseListGrammar;
+
+
+
+/***/ }),
+/* 90 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Contracts_1 = __webpack_require__(33);
+var Exports_1 = __webpack_require__(31);
+/**
+ * Class that defines base configurations for dialog service connector
+ * @class DialogServiceConfig
+ */
+var DialogServiceConfig = /** @class */ (function () {
+ /**
+ * Creates an instance of DialogService config.
+ * @constructor
+ */
+ function DialogServiceConfig() {
+ }
+ return DialogServiceConfig;
+}());
+exports.DialogServiceConfig = DialogServiceConfig;
+/**
+ * Dialog Service configuration.
+ * @class DialogServiceConfigImpl
+ */
+// tslint:disable-next-line:max-classes-per-file
+var DialogServiceConfigImpl = /** @class */ (function (_super) {
+ __extends(DialogServiceConfigImpl, _super);
+ /**
+ * Creates an instance of dialogService config.
+ */
+ function DialogServiceConfigImpl() {
+ var _this = _super.call(this) || this;
+ _this.privSpeechConfig = new Exports_1.SpeechConfigImpl();
+ return _this;
+ }
+ Object.defineProperty(DialogServiceConfigImpl.prototype, "properties", {
+ /**
+ * Provides access to custom properties.
+ * @member DialogServiceConfigImpl.prototype.properties
+ * @function
+ * @public
+ * @returns {PropertyCollection} The properties.
+ */
+ get: function () {
+ return this.privSpeechConfig.properties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DialogServiceConfigImpl.prototype, "speechRecognitionLanguage", {
+ /**
+ * Gets the speech recognition language.
+ * @member DialogServiceConfigImpl.prototype.speechRecognitionLanguage
+ * @function
+ * @public
+ */
+ get: function () {
+ return this.privSpeechConfig.speechRecognitionLanguage;
+ },
+ /**
+ * Sets the speech recognition language.
+ * @member DialogServiceConfigImpl.prototype.speechRecognitionLanguage
+ * @function
+ * @public
+ * @param {string} value - The language to set.
+ */
+ set: function (value) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(value, "value");
+ this.privSpeechConfig.speechRecognitionLanguage = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Sets a named property as value
+ * @member DialogServiceConfigImpl.prototype.setProperty
+ * @function
+ * @public
+ * @param {PropertyId | string} name - The property to set.
+ * @param {string} value - The value.
+ */
+ DialogServiceConfigImpl.prototype.setProperty = function (name, value) {
+ this.privSpeechConfig.setProperty(name, value);
+ };
+ /**
+ * Sets a named property as value
+ * @member DialogServiceConfigImpl.prototype.getProperty
+ * @function
+ * @public
+ * @param {PropertyId | string} name - The property to get.
+ * @param {string} def - The default value to return in case the property is not known.
+ * @returns {string} The current value, or provided default, of the given property.
+ */
+ DialogServiceConfigImpl.prototype.getProperty = function (name, def) {
+ return this.privSpeechConfig.getProperty(name);
+ };
+ /**
+ * Sets the proxy configuration.
+ * Only relevant in Node.js environments.
+ * Added in version 1.4.0.
+ * @param proxyHostName The host name of the proxy server, without the protocol scheme (http://)
+ * @param proxyPort The port number of the proxy server.
+ * @param proxyUserName The user name of the proxy server.
+ * @param proxyPassword The password of the proxy server.
+ */
+ DialogServiceConfigImpl.prototype.setProxy = function (proxyHostName, proxyPort, proxyUserName, proxyPassword) {
+ this.setProperty(Exports_1.PropertyId.SpeechServiceConnection_ProxyHostName, proxyHostName);
+ this.setProperty(Exports_1.PropertyId.SpeechServiceConnection_ProxyPort, "" + proxyPort);
+ if (proxyUserName) {
+ this.setProperty(Exports_1.PropertyId.SpeechServiceConnection_ProxyUserName, proxyUserName);
+ }
+ if (proxyPassword) {
+ this.setProperty(Exports_1.PropertyId.SpeechServiceConnection_ProxyPassword, proxyPassword);
+ }
+ };
+ DialogServiceConfigImpl.prototype.setServiceProperty = function (name, value, channel) {
+ this.privSpeechConfig.setServiceProperty(name, value, channel);
+ };
+ /**
+ * Dispose of associated resources.
+ * @member DialogServiceConfigImpl.prototype.close
+ * @function
+ * @public
+ */
+ DialogServiceConfigImpl.prototype.close = function () {
+ return;
+ };
+ return DialogServiceConfigImpl;
+}(DialogServiceConfig));
+exports.DialogServiceConfigImpl = DialogServiceConfigImpl;
+
+
+
+/***/ }),
+/* 91 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Contracts_1 = __webpack_require__(33);
+var DialogServiceConfig_1 = __webpack_require__(90);
+var Exports_1 = __webpack_require__(31);
+/**
+ * Class that defines configurations for the dialog service connector object for using a Bot Framework backend.
+ * @class BotFrameworkConfig
+ */
+var BotFrameworkConfig = /** @class */ (function (_super) {
+ __extends(BotFrameworkConfig, _super);
+ /**
+ * Creates an instance of BotFrameworkConfig.
+ */
+ function BotFrameworkConfig() {
+ return _super.call(this) || this;
+ }
+ /**
+ * Creates an instance of the bot framework config with the specified subscription and region.
+ * @member BotFrameworkConfig.fromSubscription
+ * @function
+ * @public
+ * @param subscription Subscription key associated with the bot
+ * @param region The region name (see the region page).
+ * @param botId Optional, ID for using a specific bot.
+ * @returns {BotFrameworkConfig} A new bot framework config.
+ */
+ BotFrameworkConfig.fromSubscription = function (subscription, region, botId) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(subscription, "subscription");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(region, "region");
+ var botFrameworkConfig = new DialogServiceConfig_1.DialogServiceConfigImpl();
+ botFrameworkConfig.setProperty(Exports_1.PropertyId.Conversation_DialogType, "bot_framework");
+ botFrameworkConfig.setProperty(Exports_1.PropertyId.SpeechServiceConnection_Key, subscription);
+ botFrameworkConfig.setProperty(Exports_1.PropertyId.SpeechServiceConnection_Region, region);
+ if (botId) {
+ botFrameworkConfig.setProperty(Exports_1.PropertyId.Conversation_ApplicationId, botId);
+ }
+ return botFrameworkConfig;
+ };
+ /**
+ * Creates an instance of the bot framework config with the specified authorization token and region.
+ * Note: The caller needs to ensure that the authorization token is valid. Before the authorization token
+ * expires, the caller needs to refresh it by calling this setter with a new valid token.
+ * As configuration values are copied when creating a new recognizer, the new token value will not apply to recognizers that have already been created.
+ * For recognizers that have been created before, you need to set authorization token of the corresponding recognizer
+ * to refresh the token. Otherwise, the recognizers will encounter errors during recognition.
+ * @member BotFrameworkConfig.fromAuthorizationToken
+ * @function
+ * @public
+ * @param authorizationToken The authorization token associated with the bot
+ * @param region The region name (see the region page).
+ * @returns {BotFrameworkConfig} A new bot framework config.
+ */
+ BotFrameworkConfig.fromAuthorizationToken = function (authorizationToken, region) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(authorizationToken, "authorizationToken");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(region, "region");
+ var botFrameworkConfig = new DialogServiceConfig_1.DialogServiceConfigImpl();
+ botFrameworkConfig.setProperty(Exports_1.PropertyId.Conversation_DialogType, "bot_framework");
+ botFrameworkConfig.setProperty(Exports_1.PropertyId.SpeechServiceAuthorization_Token, authorizationToken);
+ botFrameworkConfig.setProperty(Exports_1.PropertyId.SpeechServiceConnection_Region, region);
+ return botFrameworkConfig;
+ };
+ return BotFrameworkConfig;
+}(DialogServiceConfig_1.DialogServiceConfigImpl));
+exports.BotFrameworkConfig = BotFrameworkConfig;
+
+
+
+/***/ }),
+/* 92 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Contracts_1 = __webpack_require__(33);
+var DialogServiceConfig_1 = __webpack_require__(90);
+var Exports_1 = __webpack_require__(31);
+/**
+ * Class that defines configurations for the dialog service connector object for using a CustomCommands backend.
+ * @class CustomCommandsConfig
+ */
+var CustomCommandsConfig = /** @class */ (function (_super) {
+ __extends(CustomCommandsConfig, _super);
+ /**
+ * Creates an instance of CustomCommandsConfig.
+ */
+ function CustomCommandsConfig() {
+ return _super.call(this) || this;
+ }
+ /**
+ * Creates an instance of the bot framework config with the specified subscription and region.
+ * @member CustomCommandsConfig.fromSubscription
+ * @function
+ * @public
+ * @param applicationId Speech Commands application id.
+ * @param subscription Subscription key associated with the bot
+ * @param region The region name (see the region page).
+ * @returns {CustomCommandsConfig} A new bot framework config.
+ */
+ CustomCommandsConfig.fromSubscription = function (applicationId, subscription, region) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(applicationId, "applicationId");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(subscription, "subscription");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(region, "region");
+ var customCommandsConfig = new DialogServiceConfig_1.DialogServiceConfigImpl();
+ customCommandsConfig.setProperty(Exports_1.PropertyId.Conversation_DialogType, "custom_commands");
+ customCommandsConfig.setProperty(Exports_1.PropertyId.Conversation_ApplicationId, applicationId);
+ customCommandsConfig.setProperty(Exports_1.PropertyId.SpeechServiceConnection_Key, subscription);
+ customCommandsConfig.setProperty(Exports_1.PropertyId.SpeechServiceConnection_Region, region);
+ return customCommandsConfig;
+ };
+ /**
+ * Creates an instance of the bot framework config with the specified Speech Commands application id, authorization token and region.
+ * Note: The caller needs to ensure that the authorization token is valid. Before the authorization token
+ * expires, the caller needs to refresh it by calling this setter with a new valid token.
+ * As configuration values are copied when creating a new recognizer, the new token value will not apply to recognizers that have already been created.
+ * For recognizers that have been created before, you need to set authorization token of the corresponding recognizer
+ * to refresh the token. Otherwise, the recognizers will encounter errors during recognition.
+ * @member CustomCommandsConfig.fromAuthorizationToken
+ * @function
+ * @public
+ * @param applicationId Speech Commands application id.
+ * @param authorizationToken The authorization token associated with the application.
+ * @param region The region name (see the region page).
+ * @returns {CustomCommandsConfig} A new speech commands config.
+ */
+ CustomCommandsConfig.fromAuthorizationToken = function (applicationId, authorizationToken, region) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(applicationId, "applicationId");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(authorizationToken, "authorizationToken");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(region, "region");
+ var customCommandsConfig = new DialogServiceConfig_1.DialogServiceConfigImpl();
+ customCommandsConfig.setProperty(Exports_1.PropertyId.Conversation_DialogType, "custom_commands");
+ customCommandsConfig.setProperty(Exports_1.PropertyId.Conversation_ApplicationId, applicationId);
+ customCommandsConfig.setProperty(Exports_1.PropertyId.SpeechServiceAuthorization_Token, authorizationToken);
+ customCommandsConfig.setProperty(Exports_1.PropertyId.SpeechServiceConnection_Region, region);
+ return customCommandsConfig;
+ };
+ Object.defineProperty(CustomCommandsConfig.prototype, "applicationId", {
+ /**
+ * Gets the corresponding backend application identifier.
+ * @member CustomCommandsConfig.prototype.Conversation_ApplicationId
+ * @function
+ * @public
+ * @param {string} value - The application identifier to get.
+ */
+ get: function () {
+ return this.getProperty(Exports_1.PropertyId.Conversation_ApplicationId);
+ },
+ /**
+ * Sets the corresponding backend application identifier.
+ * @member CustomCommandsConfig.prototype.Conversation_ApplicationId
+ * @function
+ * @public
+ * @param {string} value - The application identifier to set.
+ */
+ set: function (value) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(value, "value");
+ this.setProperty(Exports_1.PropertyId.Conversation_ApplicationId, value);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return CustomCommandsConfig;
+}(DialogServiceConfig_1.DialogServiceConfigImpl));
+exports.CustomCommandsConfig = CustomCommandsConfig;
+
+
+
+/***/ }),
+/* 93 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var DialogConnectorFactory_1 = __webpack_require__(94);
+var Exports_1 = __webpack_require__(26);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+var PropertyId_1 = __webpack_require__(68);
+var SpeechSynthesisOutputFormat_1 = __webpack_require__(45);
+/**
+ * Dialog Service Connector
+ * @class DialogServiceConnector
+ */
+var DialogServiceConnector = /** @class */ (function (_super) {
+ __extends(DialogServiceConnector, _super);
+ /**
+ * Initializes an instance of the DialogServiceConnector.
+ * @constructor
+ * @param {DialogServiceConfig} dialogConfig - Set of properties to configure this recognizer.
+ * @param {AudioConfig} audioConfig - An optional audio config associated with the recognizer
+ */
+ function DialogServiceConnector(dialogConfig, audioConfig) {
+ var _this = this;
+ var dialogServiceConfigImpl = dialogConfig;
+ Contracts_1.Contracts.throwIfNull(dialogConfig, "dialogConfig");
+ _this = _super.call(this, audioConfig, dialogServiceConfigImpl.properties, new DialogConnectorFactory_1.DialogConnectionFactory()) || this;
+ _this.isTurnComplete = true;
+ _this.privIsDisposed = false;
+ _this.privProperties = dialogServiceConfigImpl.properties.clone();
+ var agentConfig = _this.buildAgentConfig();
+ _this.privReco.agentConfig.set(agentConfig);
+ return _this;
+ }
+ /**
+ * Starts a connection to the service.
+ * Users can optionally call connect() to manually set up a connection in advance, before starting interactions.
+ *
+ * Note: On return, the connection might not be ready yet. Please subscribe to the Connected event to
+ * be notified when the connection is established.
+ * @member DialogServiceConnector.prototype.connect
+ * @function
+ * @public
+ */
+ DialogServiceConnector.prototype.connect = function () {
+ this.privReco.connect();
+ };
+ /**
+ * Closes the connection the service.
+ * Users can optionally call disconnect() to manually shutdown the connection of the associated DialogServiceConnector.
+ *
+ * If disconnect() is called during a recognition, recognition will fail and cancel with an error.
+ */
+ DialogServiceConnector.prototype.disconnect = function () {
+ this.privReco.disconnect();
+ };
+ Object.defineProperty(DialogServiceConnector.prototype, "authorizationToken", {
+ /**
+ * Gets the authorization token used to communicate with the service.
+ * @member DialogServiceConnector.prototype.authorizationToken
+ * @function
+ * @public
+ * @returns {string} Authorization token.
+ */
+ get: function () {
+ return this.properties.getProperty(PropertyId_1.PropertyId.SpeechServiceAuthorization_Token);
+ },
+ /**
+ * Sets the authorization token used to communicate with the service.
+ * @member DialogServiceConnector.prototype.authorizationToken
+ * @function
+ * @public
+ * @param {string} token - Authorization token.
+ */
+ set: function (token) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(token, "token");
+ this.properties.setProperty(PropertyId_1.PropertyId.SpeechServiceAuthorization_Token, token);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DialogServiceConnector.prototype, "properties", {
+ /**
+ * The collection of properties and their values defined for this DialogServiceConnector.
+ * @member DialogServiceConnector.prototype.properties
+ * @function
+ * @public
+ * @returns {PropertyCollection} The collection of properties and their values defined for this DialogServiceConnector.
+ */
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DialogServiceConnector.prototype, "speechActivityTemplate", {
+ /** Gets the template for the activity generated by service from speech.
+ * Properties from the template will be stamped on the generated activity.
+ * It can be empty
+ */
+ get: function () {
+ return this.properties.getProperty(PropertyId_1.PropertyId.Conversation_Speech_Activity_Template);
+ },
+ /** Sets the template for the activity generated by service from speech.
+ * Properties from the template will be stamped on the generated activity.
+ * It can be null or empty.
+ * Note: it has to be a valid Json object.
+ */
+ set: function (speechActivityTemplate) {
+ this.properties.setProperty(PropertyId_1.PropertyId.Conversation_Speech_Activity_Template, speechActivityTemplate);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Starts recognition and stops after the first utterance is recognized.
+ * @member DialogServiceConnector.prototype.listenOnceAsync
+ * @function
+ * @public
+ * @param cb - Callback that received the result when the reco has completed.
+ * @param err - Callback invoked in case of an error.
+ */
+ DialogServiceConnector.prototype.listenOnceAsync = function (cb, err) {
+ var _this = this;
+ if (this.isTurnComplete) {
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ this.connect();
+ this.implRecognizerStop();
+ this.isTurnComplete = false;
+ this.privReco.recognize(Exports_1.RecognitionMode.Conversation, function (e) {
+ _this.implRecognizerStop();
+ _this.isTurnComplete = true;
+ if (!!cb) {
+ cb(e);
+ }
+ }, function (e) {
+ _this.implRecognizerStop();
+ _this.isTurnComplete = true;
+ if (!!err) {
+ err(e);
+ }
+ /* tslint:disable:no-empty */
+ }).on(function (_) { }, function (error) {
+ if (!!err) {
+ err(error);
+ }
+ });
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ // Destroy the recognizer.
+ this.dispose(true);
+ }
+ }
+ };
+ DialogServiceConnector.prototype.sendActivityAsync = function (activity) {
+ this.privReco.sendMessage(activity);
+ };
+ /**
+ * closes all external resources held by an instance of this class.
+ * @member DialogServiceConnector.prototype.close
+ * @function
+ * @public
+ */
+ DialogServiceConnector.prototype.close = function () {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ this.dispose(true);
+ };
+ DialogServiceConnector.prototype.dispose = function (disposing) {
+ if (this.privIsDisposed) {
+ return;
+ }
+ if (disposing) {
+ this.implRecognizerStop();
+ this.privIsDisposed = true;
+ _super.prototype.dispose.call(this, disposing);
+ }
+ };
+ DialogServiceConnector.prototype.createRecognizerConfig = function (speechConfig) {
+ return new Exports_1.RecognizerConfig(speechConfig, this.privProperties);
+ };
+ DialogServiceConnector.prototype.createServiceRecognizer = function (authentication, connectionFactory, audioConfig, recognizerConfig) {
+ var audioSource = audioConfig;
+ return new Exports_1.DialogServiceAdapter(authentication, connectionFactory, audioSource, recognizerConfig, this);
+ };
+ DialogServiceConnector.prototype.buildAgentConfig = function () {
+ var communicationType = this.properties.getProperty("Conversation_Communication_Type", "Default");
+ return {
+ botInfo: {
+ commType: communicationType,
+ commandsCulture: undefined,
+ connectionId: this.properties.getProperty(PropertyId_1.PropertyId.Conversation_ApplicationId),
+ conversationId: this.properties.getProperty(PropertyId_1.PropertyId.Conversation_Conversation_Id, undefined),
+ fromId: this.properties.getProperty(PropertyId_1.PropertyId.Conversation_From_Id, undefined),
+ ttsAudioFormat: SpeechSynthesisOutputFormat_1.SpeechSynthesisOutputFormat[this.properties.getProperty(PropertyId_1.PropertyId.SpeechServiceConnection_SynthOutputFormat, undefined)]
+ },
+ version: 0.2
+ };
+ };
+ return DialogServiceConnector;
+}(Exports_2.Recognizer));
+exports.DialogServiceConnector = DialogServiceConnector;
+
+
+
+/***/ }),
+/* 94 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(2);
+var Exports_2 = __webpack_require__(31);
+var ConnectionFactoryBase_1 = __webpack_require__(72);
+var Exports_3 = __webpack_require__(26);
+var QueryParameterNames_1 = __webpack_require__(73);
+var baseUrl = "convai.speech";
+var botFramework = {
+ authHeader: "X-DLS-Secret",
+ resourcePath: "",
+ version: "v3"
+};
+var customCommands = {
+ authHeader: "X-CommandsAppId",
+ resourcePath: "commands",
+ version: "v1"
+};
+var pathSuffix = "api";
+function getDialogSpecificValues(dialogType) {
+ switch (dialogType) {
+ case "custom_commands": {
+ return customCommands;
+ }
+ case "bot_framework": {
+ return botFramework;
+ }
+ }
+ throw new Error("Invalid dialog type '" + dialogType + "'");
+}
+var DialogConnectionFactory = /** @class */ (function (_super) {
+ __extends(DialogConnectionFactory, _super);
+ function DialogConnectionFactory() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.create = function (config, authInfo, connectionId) {
+ var applicationId = config.parameters.getProperty(Exports_2.PropertyId.Conversation_ApplicationId, "");
+ var dialogType = config.parameters.getProperty(Exports_2.PropertyId.Conversation_DialogType);
+ var region = config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Region);
+ var language = config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage, "en-US");
+ var queryParams = {};
+ queryParams[QueryParameterNames_1.QueryParameterNames.LanguageParamName] = language;
+ queryParams[QueryParameterNames_1.QueryParameterNames.FormatParamName] = config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceResponse_OutputFormatOption, Exports_2.OutputFormat[Exports_2.OutputFormat.Simple]).toLowerCase();
+ var _a = getDialogSpecificValues(dialogType), resourcePath = _a.resourcePath, version = _a.version, authHeader = _a.authHeader;
+ var headers = {};
+ if (authInfo.token != null && authInfo.token !== "") {
+ headers[authInfo.headerName] = authInfo.token;
+ }
+ headers[QueryParameterNames_1.QueryParameterNames.ConnectionIdHeader] = connectionId;
+ if (applicationId !== "") {
+ headers[authHeader] = applicationId;
+ }
+ var endpoint = config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Endpoint, "");
+ if (endpoint === "") {
+ var hostSuffix = (region && region.toLowerCase().startsWith("china")) ? ".azure.cn" : ".microsoft.com";
+ // ApplicationId is only required for CustomCommands, so we're using that to determine default endpoint
+ if (applicationId === "") {
+ endpoint = "wss://" + region + "." + baseUrl + hostSuffix + "/" + pathSuffix + "/" + version;
+ }
+ else {
+ endpoint = "wss://" + region + "." + baseUrl + hostSuffix + "/" + resourcePath + "/" + pathSuffix + "/" + version;
+ }
+ }
+ _this.setCommonUrlParams(config, queryParams, endpoint);
+ return new Exports_1.WebsocketConnection(endpoint, queryParams, headers, new Exports_3.WebsocketMessageFormatter(), Exports_1.ProxyInfo.fromRecognizerConfig(config), connectionId);
+ };
+ return _this;
+ }
+ return DialogConnectionFactory;
+}(ConnectionFactoryBase_1.ConnectionFactoryBase));
+exports.DialogConnectionFactory = DialogConnectionFactory;
+
+
+
+/***/ }),
+/* 95 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Defines contents of received message/events.
+ * @class ActivityReceivedEventArgs
+ */
+var ActivityReceivedEventArgs = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {any} activity - The activity..
+ */
+ function ActivityReceivedEventArgs(activity, audioStream) {
+ this.privActivity = activity;
+ this.privAudioStream = audioStream;
+ }
+ Object.defineProperty(ActivityReceivedEventArgs.prototype, "activity", {
+ /**
+ * Gets the received activity
+ * @member ActivityReceivedEventArgs.prototype.activity
+ * @function
+ * @public
+ * @returns {any} the received activity.
+ */
+ get: function () {
+ return this.privActivity;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ActivityReceivedEventArgs.prototype, "audioStream", {
+ get: function () {
+ return this.privAudioStream;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ActivityReceivedEventArgs;
+}());
+exports.ActivityReceivedEventArgs = ActivityReceivedEventArgs;
+
+
+
+/***/ }),
+/* 96 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Defines channels used to pass property settings to service.
+ * Added in version 1.7.0.
+ */
+var ServicePropertyChannel;
+(function (ServicePropertyChannel) {
+ /**
+ * Uses URI query parameter to pass property settings to service.
+ */
+ ServicePropertyChannel[ServicePropertyChannel["UriQueryParameter"] = 0] = "UriQueryParameter";
+})(ServicePropertyChannel = exports.ServicePropertyChannel || (exports.ServicePropertyChannel = {}));
+
+
+
+/***/ }),
+/* 97 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Profanity option.
+ * Added in version 1.7.0.
+ */
+var ProfanityOption;
+(function (ProfanityOption) {
+ ProfanityOption[ProfanityOption["Masked"] = 0] = "Masked";
+ ProfanityOption[ProfanityOption["Removed"] = 1] = "Removed";
+ ProfanityOption[ProfanityOption["Raw"] = 2] = "Raw";
+})(ProfanityOption = exports.ProfanityOption || (exports.ProfanityOption = {}));
+
+
+
+/***/ }),
+/* 98 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Error_1 = __webpack_require__(10);
+/**
+ * Base audio player class
+ * TODO: Plays only PCM for now.
+ * @class
+ */
+var BaseAudioPlayer = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ */
+ function BaseAudioPlayer(audioFormat) {
+ this.audioContext = null;
+ this.gainNode = null;
+ this.autoUpdateBufferTimer = 0;
+ this.init(audioFormat);
+ }
+ /**
+ * play Audio sample
+ * @param newAudioData audio data to be played.
+ */
+ BaseAudioPlayer.prototype.playAudioSample = function (newAudioData) {
+ this.ensureInitializedContext();
+ var audioData = this.formatAudioData(newAudioData);
+ var newSamplesData = new Float32Array(this.samples.length + audioData.length);
+ newSamplesData.set(this.samples, 0);
+ newSamplesData.set(audioData, this.samples.length);
+ this.samples = newSamplesData;
+ };
+ /**
+ * stops audio and clears the buffers
+ */
+ BaseAudioPlayer.prototype.stopAudio = function () {
+ if (this.audioContext !== null) {
+ this.samples = new Float32Array();
+ clearInterval(this.autoUpdateBufferTimer);
+ this.audioContext.close();
+ this.audioContext = null;
+ }
+ };
+ BaseAudioPlayer.prototype.init = function (audioFormat) {
+ this.audioFormat = audioFormat;
+ this.samples = new Float32Array();
+ };
+ BaseAudioPlayer.prototype.ensureInitializedContext = function () {
+ var _this = this;
+ if (this.audioContext === null) {
+ this.createAudioContext();
+ var timerPeriod = 200;
+ this.autoUpdateBufferTimer = setInterval(function () {
+ _this.updateAudioBuffer();
+ }, timerPeriod);
+ }
+ };
+ BaseAudioPlayer.prototype.createAudioContext = function () {
+ // new ((window as any).AudioContext || (window as any).webkitAudioContext)();
+ this.audioContext = new AudioContext();
+ // TODO: Various examples shows this gain node, it does not seem to be needed unless we plan
+ // to control the volume, not likely
+ this.gainNode = this.audioContext.createGain();
+ this.gainNode.gain.value = 1;
+ this.gainNode.connect(this.audioContext.destination);
+ this.startTime = this.audioContext.currentTime;
+ };
+ BaseAudioPlayer.prototype.formatAudioData = function (audioData) {
+ switch (this.audioFormat.bitsPerSample) {
+ case 8:
+ return this.formatArrayBuffer(new Int8Array(audioData), 128);
+ case 16:
+ return this.formatArrayBuffer(new Int16Array(audioData), 32768);
+ case 32:
+ return this.formatArrayBuffer(new Int32Array(audioData), 2147483648);
+ default:
+ throw new Error_1.InvalidOperationError("Only WAVE_FORMAT_PCM (8/16/32 bps) format supported at this time");
+ }
+ };
+ BaseAudioPlayer.prototype.formatArrayBuffer = function (audioData, maxValue) {
+ var float32Data = new Float32Array(audioData.length);
+ for (var i = 0; i < audioData.length; i++) {
+ float32Data[i] = audioData[i] / maxValue;
+ }
+ return float32Data;
+ };
+ BaseAudioPlayer.prototype.updateAudioBuffer = function () {
+ if (this.samples.length === 0) {
+ return;
+ }
+ var channelCount = this.audioFormat.channels;
+ var bufferSource = this.audioContext.createBufferSource();
+ var frameCount = this.samples.length / channelCount;
+ var audioBuffer = this.audioContext.createBuffer(channelCount, frameCount, this.audioFormat.samplesPerSec);
+ // TODO: Should we do the conversion in the pushAudioSample instead?
+ for (var channel = 0; channel < channelCount; channel++) {
+ // Fill in individual channel data
+ var channelOffset = channel;
+ var audioData = audioBuffer.getChannelData(channel);
+ for (var i = 0; i < this.samples.length; i++, channelOffset += channelCount) {
+ audioData[i] = this.samples[channelOffset];
+ }
+ }
+ if (this.startTime < this.audioContext.currentTime) {
+ this.startTime = this.audioContext.currentTime;
+ }
+ bufferSource.buffer = audioBuffer;
+ bufferSource.connect(this.gainNode);
+ bufferSource.start(this.startTime);
+ // Make sure we play the next sample after the current one.
+ this.startTime += audioBuffer.duration;
+ // Clear the samples for the next pushed data.
+ this.samples = new Float32Array();
+ };
+ return BaseAudioPlayer;
+}());
+exports.BaseAudioPlayer = BaseAudioPlayer;
+
+
+
+/***/ }),
+/* 99 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+//
+// Copyright (c) Microsoft. All rights reserved.
+// Licensed under the MIT license. See LICENSE.md file in the project root for full license information.
+//
+Object.defineProperty(exports, "__esModule", { value: true });
+var ConnectionMessageEventArgs = /** @class */ (function () {
+ function ConnectionMessageEventArgs(message) {
+ this.privConnectionMessage = message;
+ }
+ Object.defineProperty(ConnectionMessageEventArgs.prototype, "message", {
+ /**
+ * Gets the associated with this .
+ */
+ get: function () {
+ return this.privConnectionMessage;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Returns a string that represents the connection message event.
+ */
+ ConnectionMessageEventArgs.prototype.toString = function () {
+ return "Message: " + this.privConnectionMessage.toString();
+ };
+ return ConnectionMessageEventArgs;
+}());
+exports.ConnectionMessageEventArgs = ConnectionMessageEventArgs;
+
+
+
+/***/ }),
+/* 100 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Defines Voice Profile class for Speaker Recognition
+ * @class VoiceProfile
+ */
+var VoiceProfile = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {string} profileId - profileId of this Voice Profile.
+ * @param {VoiceProfileType} profileType - profileType of this Voice Profile.
+ */
+ function VoiceProfile(profileId, profileType) {
+ this.privId = profileId;
+ this.privProfileType = profileType;
+ }
+ Object.defineProperty(VoiceProfile.prototype, "profileId", {
+ /**
+ * profileId of this Voice Profile instance
+ * @member VoiceProfile.prototype.profileId
+ * @function
+ * @public
+ * @returns {string} profileId of this Voice Profile instance.
+ */
+ get: function () {
+ return this.privId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(VoiceProfile.prototype, "profileType", {
+ /**
+ * profileType of this Voice Profile instance
+ * @member VoiceProfile.prototype.profileType
+ * @function
+ * @public
+ * @returns {VoiceProfileType} profile type of this Voice Profile instance.
+ */
+ get: function () {
+ return this.privProfileType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return VoiceProfile;
+}());
+exports.VoiceProfile = VoiceProfile;
+
+
+
+/***/ }),
+/* 101 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+/**
+ * Output format
+ * @class VoiceProfileEnrollmentResult
+ */
+var VoiceProfileEnrollmentResult = /** @class */ (function () {
+ function VoiceProfileEnrollmentResult(reason, json, statusText) {
+ this.privReason = reason;
+ this.privProperties = new Exports_2.PropertyCollection();
+ if (this.privReason !== Exports_2.ResultReason.Canceled) {
+ this.privDetails = JSON.parse(json);
+ Contracts_1.Contracts.throwIfNullOrUndefined(json, "JSON");
+ if (this.privDetails.enrollmentStatus.toLowerCase() === "enrolling") {
+ this.privReason = Exports_2.ResultReason.EnrollingVoiceProfile;
+ }
+ }
+ else {
+ this.privErrorDetails = statusText;
+ this.privProperties.setProperty(Exports_1.CancellationErrorCodePropertyName, Exports_2.CancellationErrorCode[Exports_2.CancellationErrorCode.ServiceError]);
+ }
+ }
+ Object.defineProperty(VoiceProfileEnrollmentResult.prototype, "reason", {
+ get: function () {
+ return this.privReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(VoiceProfileEnrollmentResult.prototype, "enrollmentsCount", {
+ get: function () {
+ return this.privDetails.enrollmentsCount;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(VoiceProfileEnrollmentResult.prototype, "enrollmentsLength", {
+ get: function () {
+ return this.privDetails.enrollmentsLength;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(VoiceProfileEnrollmentResult.prototype, "properties", {
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(VoiceProfileEnrollmentResult.prototype, "errorDetails", {
+ get: function () {
+ return this.privErrorDetails;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return VoiceProfileEnrollmentResult;
+}());
+exports.VoiceProfileEnrollmentResult = VoiceProfileEnrollmentResult;
+/**
+ * @class VoiceProfileEnrollmentCancellationDetails
+ */
+// tslint:disable-next-line:max-classes-per-file
+var VoiceProfileEnrollmentCancellationDetails = /** @class */ (function (_super) {
+ __extends(VoiceProfileEnrollmentCancellationDetails, _super);
+ function VoiceProfileEnrollmentCancellationDetails(reason, errorDetails, errorCode) {
+ return _super.call(this, reason, errorDetails, errorCode) || this;
+ }
+ /**
+ * Creates an instance of VoiceProfileEnrollmentCancellationDetails object for the canceled VoiceProfileEnrollmentResult.
+ * @member VoiceProfileEnrollmentCancellationDetails.fromResult
+ * @function
+ * @public
+ * @param {VoiceProfileEnrollmentResult} result - The result that was canceled.
+ * @returns {VoiceProfileEnrollmentCancellationDetails} The cancellation details object being created.
+ */
+ VoiceProfileEnrollmentCancellationDetails.fromResult = function (result) {
+ var reason = Exports_2.CancellationReason.Error;
+ var errorCode = Exports_2.CancellationErrorCode.NoError;
+ if (!!result.properties) {
+ errorCode = Exports_2.CancellationErrorCode[result.properties.getProperty(Exports_1.CancellationErrorCodePropertyName, Exports_2.CancellationErrorCode[Exports_2.CancellationErrorCode.NoError])];
+ }
+ return new VoiceProfileEnrollmentCancellationDetails(reason, result.errorDetails, errorCode);
+ };
+ return VoiceProfileEnrollmentCancellationDetails;
+}(Exports_2.CancellationDetailsBase));
+exports.VoiceProfileEnrollmentCancellationDetails = VoiceProfileEnrollmentCancellationDetails;
+
+
+
+/***/ }),
+/* 102 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+/**
+ * Output format
+ * @class VoiceProfileResult
+ */
+var VoiceProfileResult = /** @class */ (function () {
+ function VoiceProfileResult(reason, statusText) {
+ this.privReason = reason;
+ this.privProperties = new Exports_2.PropertyCollection();
+ if (reason === Exports_2.ResultReason.Canceled) {
+ Contracts_1.Contracts.throwIfNullOrUndefined(statusText, "statusText");
+ this.privErrorDetails = statusText;
+ this.privProperties.setProperty(Exports_1.CancellationErrorCodePropertyName, Exports_2.CancellationErrorCode[Exports_2.CancellationErrorCode.ServiceError]);
+ }
+ }
+ Object.defineProperty(VoiceProfileResult.prototype, "reason", {
+ get: function () {
+ return this.privReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(VoiceProfileResult.prototype, "properties", {
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(VoiceProfileResult.prototype, "errorDetails", {
+ get: function () {
+ return this.privErrorDetails;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return VoiceProfileResult;
+}());
+exports.VoiceProfileResult = VoiceProfileResult;
+/**
+ * @class VoiceProfileCancellationDetails
+ */
+// tslint:disable-next-line:max-classes-per-file
+var VoiceProfileCancellationDetails = /** @class */ (function (_super) {
+ __extends(VoiceProfileCancellationDetails, _super);
+ function VoiceProfileCancellationDetails(reason, errorDetails, errorCode) {
+ return _super.call(this, reason, errorDetails, errorCode) || this;
+ }
+ /**
+ * Creates an instance of VoiceProfileCancellationDetails object for the canceled VoiceProfileResult.
+ * @member VoiceProfileCancellationDetails.fromResult
+ * @function
+ * @public
+ * @param {VoiceProfileResult} result - The result that was canceled.
+ * @returns {VoiceProfileCancellationDetails} The cancellation details object being created.
+ */
+ VoiceProfileCancellationDetails.fromResult = function (result) {
+ var reason = Exports_2.CancellationReason.Error;
+ var errorCode = Exports_2.CancellationErrorCode.NoError;
+ if (!!result.properties) {
+ errorCode = Exports_2.CancellationErrorCode[result.properties.getProperty(Exports_1.CancellationErrorCodePropertyName, Exports_2.CancellationErrorCode[Exports_2.CancellationErrorCode.NoError])];
+ }
+ return new VoiceProfileCancellationDetails(reason, result.errorDetails, errorCode);
+ };
+ return VoiceProfileCancellationDetails;
+}(Exports_2.CancellationDetailsBase));
+exports.VoiceProfileCancellationDetails = VoiceProfileCancellationDetails;
+
+
+
+/***/ }),
+/* 103 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+/**
+ * Defines VoiceProfileClient class for Speaker Recognition
+ * Handles operations from user for Voice Profile operations (e.g. createProfile, deleteProfile)
+ * @class VoiceProfileClient
+ */
+var VoiceProfileClient = /** @class */ (function () {
+ /**
+ * VoiceProfileClient constructor.
+ * @constructor
+ * @param {SpeechConfig} speechConfig - An set of initial properties for this synthesizer (authentication key, region, &c)
+ */
+ function VoiceProfileClient(speechConfig) {
+ var speechConfigImpl = speechConfig;
+ Contracts_1.Contracts.throwIfNull(speechConfigImpl, "speechConfig");
+ this.privProperties = speechConfigImpl.properties.clone();
+ this.implClientSetup();
+ }
+ Object.defineProperty(VoiceProfileClient.prototype, "authorizationToken", {
+ /**
+ * Gets the authorization token used to communicate with the service.
+ * @member VoiceProfileClient.prototype.authorizationToken
+ * @function
+ * @public
+ * @returns {string} Authorization token.
+ */
+ get: function () {
+ return this.properties.getProperty(Exports_2.PropertyId.SpeechServiceAuthorization_Token);
+ },
+ /**
+ * Gets/Sets the authorization token used to communicate with the service.
+ * @member VoiceProfileClient.prototype.authorizationToken
+ * @function
+ * @public
+ * @param {string} token - Authorization token.
+ */
+ set: function (token) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(token, "token");
+ this.properties.setProperty(Exports_2.PropertyId.SpeechServiceAuthorization_Token, token);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(VoiceProfileClient.prototype, "properties", {
+ /**
+ * The collection of properties and their values defined for this VoiceProfileClient.
+ * @member VoiceProfileClient.prototype.properties
+ * @function
+ * @public
+ * @returns {PropertyCollection} The collection of properties and their values defined for this VoiceProfileClient.
+ */
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Create a speaker recognition voice profile
+ * @member VoiceProfileClient.prototype.createProfileAsync
+ * @function
+ * @public
+ * @param {VoiceProfileType} profileType Type of Voice Profile to be created
+ * specifies the keyword to be recognized.
+ * @param {string} lang Language string (locale) for Voice Profile
+ * @param cb - Callback invoked once Voice Profile has been created.
+ * @param err - Callback invoked in case of an error.
+ */
+ VoiceProfileClient.prototype.createProfileAsync = function (profileType, lang, cb, err) {
+ this.privAdapter.createProfile(profileType, lang).on(function (result) {
+ if (!!cb) {
+ var response = result.json();
+ var profile = new Exports_2.VoiceProfile(response.profileId, profileType);
+ cb(profile);
+ }
+ }, function (error) {
+ if (!!err) {
+ err(error);
+ }
+ });
+ };
+ /**
+ * Create a speaker recognition voice profile
+ * @member VoiceProfileClient.prototype.enrollProfileAsync
+ * @function
+ * @public
+ * @param {VoiceProfile} profile Voice Profile to create enrollment for
+ * @param {AudioConfig} audioConfig source info from which to create enrollment
+ * @param cb - Callback invoked once Enrollment request has been submitted.
+ * @param err - Callback invoked in case of an error.
+ */
+ VoiceProfileClient.prototype.enrollProfileAsync = function (profile, audioConfig, cb, err) {
+ var configImpl = audioConfig;
+ Contracts_1.Contracts.throwIfNullOrUndefined(configImpl, "audioConfig");
+ this.privAdapter.createEnrollment(profile, configImpl).on(function (result) {
+ if (!!cb) {
+ cb(new Exports_2.VoiceProfileEnrollmentResult(result.ok ? Exports_2.ResultReason.EnrolledVoiceProfile : Exports_2.ResultReason.Canceled, result.data, result.statusText));
+ }
+ }, function (error) {
+ if (!!err) {
+ err(error);
+ }
+ });
+ };
+ /**
+ * Delete a speaker recognition voice profile
+ * @member VoiceProfileClient.prototype.deleteProfileAsync
+ * @function
+ * @public
+ * @param {VoiceProfile} profile Voice Profile to be deleted
+ * @param cb - Callback invoked once Voice Profile has been deleted.
+ * @param err - Callback invoked in case of an error.
+ */
+ VoiceProfileClient.prototype.deleteProfileAsync = function (profile, cb, err) {
+ var _this = this;
+ this.privAdapter.deleteProfile(profile).on(function (result) {
+ _this.handleResultCallbacks(result, Exports_2.ResultReason.DeletedVoiceProfile, cb);
+ }, function (error) {
+ if (!!err) {
+ err(error);
+ }
+ });
+ };
+ /**
+ * Remove all enrollments for a speaker recognition voice profile
+ * @member VoiceProfileClient.prototype.resetProfileAsync
+ * @function
+ * @public
+ * @param {VoiceProfile} profile Voice Profile to be reset
+ * @param cb - Callback invoked once Voice Profile has been reset.
+ * @param err - Callback invoked in case of an error.
+ */
+ VoiceProfileClient.prototype.resetProfileAsync = function (profile, cb, err) {
+ var _this = this;
+ this.privAdapter.resetProfile(profile).on(function (result) {
+ _this.handleResultCallbacks(result, Exports_2.ResultReason.ResetVoiceProfile, cb);
+ }, function (error) {
+ if (!!err) {
+ err(error);
+ }
+ });
+ };
+ /**
+ * Included for compatibility
+ * @member VoiceProfileClient.prototype.close
+ * @function
+ * @public
+ */
+ VoiceProfileClient.prototype.close = function () {
+ return;
+ };
+ // Does class setup, swiped from Recognizer.
+ VoiceProfileClient.prototype.implClientSetup = function () {
+ var osPlatform = (typeof window !== "undefined") ? "Browser" : "Node";
+ var osName = "unknown";
+ var osVersion = "unknown";
+ if (typeof navigator !== "undefined") {
+ osPlatform = osPlatform + "/" + navigator.platform;
+ osName = navigator.userAgent;
+ osVersion = navigator.appVersion;
+ }
+ var recognizerConfig = new Exports_1.SpeakerRecognitionConfig(new Exports_1.Context(new Exports_1.OS(osPlatform, osName, osVersion)), this.privProperties);
+ this.privAdapter = new Exports_1.SpeakerIdMessageAdapter(recognizerConfig);
+ };
+ VoiceProfileClient.prototype.handleResultCallbacks = function (result, successReason, cb) {
+ if (!!cb) {
+ var response = new Exports_2.VoiceProfileResult(result.ok ? successReason : Exports_2.ResultReason.Canceled, result.statusText);
+ cb(response);
+ }
+ };
+ return VoiceProfileClient;
+}());
+exports.VoiceProfileClient = VoiceProfileClient;
+
+
+
+/***/ }),
+/* 104 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+/**
+ * Defines SpeakerRecognizer class for Speaker Recognition
+ * Handles operations from user for Voice Profile operations (e.g. createProfile, deleteProfile)
+ * @class SpeakerRecognizer
+ */
+var SpeakerRecognizer = /** @class */ (function () {
+ /**
+ * SpeakerRecognizer constructor.
+ * @constructor
+ * @param {SpeechConfig} speechConfig - An set of initial properties for this recognizer (authentication key, region, &c)
+ */
+ function SpeakerRecognizer(speechConfig, audioConfig) {
+ var speechConfigImpl = speechConfig;
+ Contracts_1.Contracts.throwIfNull(speechConfigImpl, "speechConfig");
+ this.privAudioConfigImpl = audioConfig;
+ Contracts_1.Contracts.throwIfNull(this.privAudioConfigImpl, "audioConfig");
+ this.privProperties = speechConfigImpl.properties.clone();
+ this.implSRSetup();
+ }
+ Object.defineProperty(SpeakerRecognizer.prototype, "authorizationToken", {
+ /**
+ * Gets the authorization token used to communicate with the service.
+ * @member SpeakerRecognizer.prototype.authorizationToken
+ * @function
+ * @public
+ * @returns {string} Authorization token.
+ */
+ get: function () {
+ return this.properties.getProperty(Exports_2.PropertyId.SpeechServiceAuthorization_Token);
+ },
+ /**
+ * Gets/Sets the authorization token used to communicate with the service.
+ * @member SpeakerRecognizer.prototype.authorizationToken
+ * @function
+ * @public
+ * @param {string} token - Authorization token.
+ */
+ set: function (token) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(token, "token");
+ this.properties.setProperty(Exports_2.PropertyId.SpeechServiceAuthorization_Token, token);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeakerRecognizer.prototype, "properties", {
+ /**
+ * The collection of properties and their values defined for this SpeakerRecognizer.
+ * @member SpeakerRecognizer.prototype.properties
+ * @function
+ * @public
+ * @returns {PropertyCollection} The collection of properties and their values defined for this SpeakerRecognizer.
+ */
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Get recognition result for model using given audio
+ * @member SpeakerRecognizer.prototype.recognizeOnceAsync
+ * @function
+ * @public
+ * @param {SpeakerIdentificationModel} model Model containing Voice Profiles to be identified
+ * @param cb - Callback invoked once result is returned.
+ * @param err - Callback invoked in case of an error.
+ */
+ SpeakerRecognizer.prototype.recognizeOnceAsync = function (model, cb, err) {
+ var _this = this;
+ if (model instanceof Exports_2.SpeakerIdentificationModel) {
+ this.privAdapter.identifySpeaker(model, this.privAudioConfigImpl).continueWith(function (promiseResult) {
+ _this.handleResultCallbacks(promiseResult, Exports_2.SpeakerRecognitionResultType.Identify, undefined, cb, err);
+ });
+ }
+ else if (model instanceof Exports_2.SpeakerVerificationModel) {
+ this.privAdapter.verifySpeaker(model, this.privAudioConfigImpl).continueWith(function (promiseResult) {
+ _this.handleResultCallbacks(promiseResult, Exports_2.SpeakerRecognitionResultType.Verify, model.voiceProfile.profileId, cb, err);
+ });
+ }
+ else {
+ throw new Error("SpeakerRecognizer.recognizeOnce: Unexpected model type");
+ }
+ };
+ /**
+ * Included for compatibility
+ * @member SpeakerRecognizer.prototype.close
+ * @function
+ * @public
+ */
+ SpeakerRecognizer.prototype.close = function () {
+ return;
+ };
+ // Does class setup, swiped from Recognizer.
+ SpeakerRecognizer.prototype.implSRSetup = function () {
+ var osPlatform = (typeof window !== "undefined") ? "Browser" : "Node";
+ var osName = "unknown";
+ var osVersion = "unknown";
+ if (typeof navigator !== "undefined") {
+ osPlatform = osPlatform + "/" + navigator.platform;
+ osName = navigator.userAgent;
+ osVersion = navigator.appVersion;
+ }
+ var recognizerConfig = new Exports_1.SpeakerRecognitionConfig(new Exports_1.Context(new Exports_1.OS(osPlatform, osName, osVersion)), this.privProperties);
+ this.privAdapter = new Exports_1.SpeakerIdMessageAdapter(recognizerConfig);
+ };
+ SpeakerRecognizer.prototype.handleResultCallbacks = function (promiseResult, resultType, profileId, cb, err) {
+ try {
+ if (promiseResult.isError) {
+ if (!!err) {
+ err(promiseResult.error);
+ }
+ }
+ else if (promiseResult.isCompleted && !!cb) {
+ cb(new Exports_2.SpeakerRecognitionResult(resultType, promiseResult.result.data, profileId, promiseResult.result.ok ? Exports_2.ResultReason.RecognizedSpeaker : Exports_2.ResultReason.Canceled));
+ }
+ }
+ catch (e) {
+ if (!!err) {
+ err(e);
+ }
+ }
+ };
+ return SpeakerRecognizer;
+}());
+exports.SpeakerRecognizer = SpeakerRecognizer;
+
+
+
+/***/ }),
+/* 105 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Contracts_1 = __webpack_require__(33);
+var Exports_1 = __webpack_require__(31);
+/**
+ * Defines SpeakerIdentificationModel class for Speaker Recognition
+ * Model contains a set of profiles against which to identify speaker(s)
+ * @class SpeakerIdentificationModel
+ */
+var SpeakerIdentificationModel = /** @class */ (function () {
+ function SpeakerIdentificationModel(profiles) {
+ var _this = this;
+ this.privVoiceProfiles = [];
+ Contracts_1.Contracts.throwIfNullOrUndefined(profiles, "VoiceProfiles");
+ if (profiles.length === 0) {
+ throw new Error("Empty Voice Profiles array");
+ }
+ profiles.forEach(function (profile) {
+ if (profile.profileType !== Exports_1.VoiceProfileType.TextIndependentIdentification) {
+ throw new Error("Identification model can only be created from Identification profile: " + profile.profileId);
+ }
+ _this.privVoiceProfiles.push(profile);
+ });
+ }
+ SpeakerIdentificationModel.fromProfiles = function (profiles) {
+ return new SpeakerIdentificationModel(profiles);
+ };
+ Object.defineProperty(SpeakerIdentificationModel.prototype, "voiceProfileIds", {
+ get: function () {
+ return this.privVoiceProfiles.map(function (profile) { return profile.profileId; }).join(",");
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeakerIdentificationModel;
+}());
+exports.SpeakerIdentificationModel = SpeakerIdentificationModel;
+
+
+
+/***/ }),
+/* 106 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Contracts_1 = __webpack_require__(33);
+var Exports_1 = __webpack_require__(31);
+/**
+ * Defines SpeakerVerificationModel class for Speaker Recognition
+ * Model contains a profile against which to verify a speaker
+ * @class SpeakerVerificationModel
+ */
+var SpeakerVerificationModel = /** @class */ (function () {
+ function SpeakerVerificationModel(profile) {
+ Contracts_1.Contracts.throwIfNullOrUndefined(profile, "VoiceProfile");
+ if (profile.profileType === Exports_1.VoiceProfileType.TextIndependentIdentification) {
+ throw new Error("Verification model cannot be created from Identification profile");
+ }
+ this.privVoiceProfile = profile;
+ }
+ SpeakerVerificationModel.fromProfile = function (profile) {
+ return new SpeakerVerificationModel(profile);
+ };
+ Object.defineProperty(SpeakerVerificationModel.prototype, "voiceProfile", {
+ get: function () {
+ return this.privVoiceProfile;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeakerVerificationModel;
+}());
+exports.SpeakerVerificationModel = SpeakerVerificationModel;
+
+
+
+/***/ }),
+/* 107 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+/**
+ * Language auto detect configuration.
+ * @class AutoDetectSourceLanguageConfig
+ * Added in version 1.13.0.
+ */
+var AutoDetectSourceLanguageConfig = /** @class */ (function () {
+ function AutoDetectSourceLanguageConfig() {
+ this.privProperties = new Exports_2.PropertyCollection();
+ }
+ /**
+ * @member AutoDetectSourceLanguageConfig.fromOpenRange
+ * @function
+ * @public
+ * Only [[SpeechSynthesizer]] supports source language auto detection from open range,
+ * for [[Recognizer]], please use AutoDetectSourceLanguageConfig with specific source languages.
+ * @return {AutoDetectSourceLanguageConfig} Instance of AutoDetectSourceLanguageConfig
+ * @summary Creates an instance of the AutoDetectSourceLanguageConfig with open range.
+ */
+ AutoDetectSourceLanguageConfig.fromOpenRange = function () {
+ var config = new AutoDetectSourceLanguageConfig();
+ config.properties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages, Exports_1.AutoDetectSourceLanguagesOpenRangeOptionName);
+ return config;
+ };
+ /**
+ * @member AutoDetectSourceLanguageConfig.fromLanguages
+ * @function
+ * @public
+ * @param {string[]} languages Comma-separated string of languages (eg. "en-US,fr-FR") to populate properties of config.
+ * @return {AutoDetectSourceLanguageConfig} Instance of AutoDetectSourceLanguageConfig
+ * @summary Creates an instance of the AutoDetectSourceLanguageConfig with given languages.
+ */
+ AutoDetectSourceLanguageConfig.fromLanguages = function (languages) {
+ Contracts_1.Contracts.throwIfArrayEmptyOrWhitespace(languages, "languages");
+ var config = new AutoDetectSourceLanguageConfig();
+ config.properties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages, languages.join());
+ return config;
+ };
+ /**
+ * @member AutoDetectSourceLanguageConfig.fromSourceLanguageConfigs
+ * @function
+ * @public
+ * @param {SourceLanguageConfig[]} configs SourceLanguageConfigs to populate properties of config.
+ * @return {AutoDetectSourceLanguageConfig} Instance of AutoDetectSourceLanguageConfig
+ * @summary Creates an instance of the AutoDetectSourceLanguageConfig with given SourceLanguageConfigs.
+ */
+ AutoDetectSourceLanguageConfig.fromSourceLanguageConfigs = function (configs) {
+ if (configs.length < 1) {
+ throw new Error("Expected non-empty SourceLanguageConfig array.");
+ }
+ var autoConfig = new AutoDetectSourceLanguageConfig();
+ var langs = [];
+ configs.forEach(function (config) {
+ langs.push(config.language);
+ if (config.endpointId !== undefined && config.endpointId !== "") {
+ var customProperty = config.language + Exports_2.PropertyId.SpeechServiceConnection_EndpointId.toString();
+ autoConfig.properties.setProperty(customProperty, config.endpointId);
+ }
+ });
+ autoConfig.properties.setProperty(Exports_2.PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages, langs.join());
+ return autoConfig;
+ };
+ Object.defineProperty(AutoDetectSourceLanguageConfig.prototype, "properties", {
+ /**
+ * @member AutoDetectSourceLanguageConfig.prototype.properties
+ * @function
+ * @public
+ * @return {PropertyCollection} Properties of the config.
+ * @summary Gets a auto detected language config properties
+ */
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return AutoDetectSourceLanguageConfig;
+}());
+exports.AutoDetectSourceLanguageConfig = AutoDetectSourceLanguageConfig;
+
+
+
+/***/ }),
+/* 108 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Contracts_1 = __webpack_require__(33);
+/**
+ * Output format
+ * @class AutoDetectSourceLanguageResult
+ */
+var AutoDetectSourceLanguageResult = /** @class */ (function () {
+ function AutoDetectSourceLanguageResult(language, languageDetectionConfidence) {
+ Contracts_1.Contracts.throwIfNullOrUndefined(language, "language");
+ Contracts_1.Contracts.throwIfNullOrUndefined(languageDetectionConfidence, "languageDetectionConfidence");
+ this.privLanguage = language;
+ this.privLanguageDetectionConfidence = languageDetectionConfidence;
+ }
+ /**
+ * Creates an instance of AutoDetectSourceLanguageResult object from a SpeechRecognitionResult instance.
+ * @member AutoDetectSourceLanguageResult.fromResult
+ * @function
+ * @public
+ * @param {SpeechRecognitionResult} result - The recognition result.
+ * @returns {AutoDetectSourceLanguageResult} AutoDetectSourceLanguageResult object being created.
+ */
+ AutoDetectSourceLanguageResult.fromResult = function (result) {
+ return new AutoDetectSourceLanguageResult(result.language, result.languageDetectionConfidence);
+ };
+ Object.defineProperty(AutoDetectSourceLanguageResult.prototype, "language", {
+ get: function () {
+ return this.privLanguage;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(AutoDetectSourceLanguageResult.prototype, "languageDetectionConfidence", {
+ get: function () {
+ return this.privLanguageDetectionConfidence;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return AutoDetectSourceLanguageResult;
+}());
+exports.AutoDetectSourceLanguageResult = AutoDetectSourceLanguageResult;
+
+
+
+/***/ }),
+/* 109 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Contracts_1 = __webpack_require__(33);
+/**
+ * Source Language configuration.
+ * @class SourceLanguageConfig
+ */
+var SourceLanguageConfig = /** @class */ (function () {
+ function SourceLanguageConfig(language, endpointId) {
+ Contracts_1.Contracts.throwIfNullOrUndefined(language, "language");
+ this.privLanguage = language;
+ this.privEndpointId = endpointId;
+ }
+ /**
+ * @member SourceLanguageConfig.fromLanguage
+ * @function
+ * @public
+ * @param {string} language language (eg. "en-US") value of config.
+ * @param {string?} endpointId endpointId of model bound to given language of config.
+ * @return {SourceLanguageConfig} Instance of SourceLanguageConfig
+ * @summary Creates an instance of the SourceLanguageConfig with the given language and optional endpointId.
+ * Added in version 1.13.0.
+ */
+ SourceLanguageConfig.fromLanguage = function (language, endpointId) {
+ return new SourceLanguageConfig(language, endpointId);
+ };
+ Object.defineProperty(SourceLanguageConfig.prototype, "language", {
+ get: function () {
+ return this.privLanguage;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SourceLanguageConfig.prototype, "endpointId", {
+ get: function () {
+ return this.privEndpointId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SourceLanguageConfig;
+}());
+exports.SourceLanguageConfig = SourceLanguageConfig;
+
+
+
+/***/ }),
+/* 110 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+var SpeakerRecognitionResultType;
+(function (SpeakerRecognitionResultType) {
+ SpeakerRecognitionResultType[SpeakerRecognitionResultType["Verify"] = 0] = "Verify";
+ SpeakerRecognitionResultType[SpeakerRecognitionResultType["Identify"] = 1] = "Identify";
+})(SpeakerRecognitionResultType = exports.SpeakerRecognitionResultType || (exports.SpeakerRecognitionResultType = {}));
+/**
+ * Output format
+ * @class SpeakerRecognitionResult
+ */
+var SpeakerRecognitionResult = /** @class */ (function () {
+ function SpeakerRecognitionResult(resultType, data, profileId, resultReason) {
+ if (resultReason === void 0) { resultReason = Exports_2.ResultReason.RecognizedSpeaker; }
+ this.privProperties = new Exports_2.PropertyCollection();
+ this.privReason = resultReason;
+ if (this.privReason !== Exports_2.ResultReason.Canceled) {
+ if (resultType === SpeakerRecognitionResultType.Identify) {
+ var json = JSON.parse(data);
+ Contracts_1.Contracts.throwIfNullOrUndefined(json, "JSON");
+ this.privProfileId = json.identifiedProfile.profileId;
+ this.privScore = json.identifiedProfile.score;
+ }
+ else {
+ var json = JSON.parse(data);
+ Contracts_1.Contracts.throwIfNullOrUndefined(json, "JSON");
+ this.privScore = json.score;
+ if (json.recognitionResult.toLowerCase() !== "accept") {
+ this.privReason = Exports_2.ResultReason.NoMatch;
+ }
+ if (profileId !== undefined && profileId !== "") {
+ this.privProfileId = profileId;
+ }
+ }
+ }
+ else {
+ var json = JSON.parse(data);
+ Contracts_1.Contracts.throwIfNullOrUndefined(json, "JSON");
+ this.privErrorDetails = json.statusText;
+ this.privProperties.setProperty(Exports_1.CancellationErrorCodePropertyName, Exports_2.CancellationErrorCode[Exports_2.CancellationErrorCode.ServiceError]);
+ }
+ this.privProperties.setProperty(Exports_2.PropertyId.SpeechServiceResponse_JsonResult, data);
+ }
+ Object.defineProperty(SpeakerRecognitionResult.prototype, "properties", {
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeakerRecognitionResult.prototype, "reason", {
+ get: function () {
+ return this.privReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeakerRecognitionResult.prototype, "profileId", {
+ get: function () {
+ return this.privProfileId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeakerRecognitionResult.prototype, "errorDetails", {
+ get: function () {
+ return this.privErrorDetails;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeakerRecognitionResult.prototype, "score", {
+ get: function () {
+ return this.privScore;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeakerRecognitionResult;
+}());
+exports.SpeakerRecognitionResult = SpeakerRecognitionResult;
+/**
+ * @class SpeakerRecognitionCancellationDetails
+ */
+// tslint:disable-next-line:max-classes-per-file
+var SpeakerRecognitionCancellationDetails = /** @class */ (function (_super) {
+ __extends(SpeakerRecognitionCancellationDetails, _super);
+ function SpeakerRecognitionCancellationDetails(reason, errorDetails, errorCode) {
+ return _super.call(this, reason, errorDetails, errorCode) || this;
+ }
+ /**
+ * Creates an instance of SpeakerRecognitionCancellationDetails object for the canceled SpeakerRecognitionResult
+ * @member SpeakerRecognitionCancellationDetails.fromResult
+ * @function
+ * @public
+ * @param {SpeakerRecognitionResult} result - The result that was canceled.
+ * @returns {SpeakerRecognitionCancellationDetails} The cancellation details object being created.
+ */
+ SpeakerRecognitionCancellationDetails.fromResult = function (result) {
+ var reason = Exports_2.CancellationReason.Error;
+ var errorCode = Exports_2.CancellationErrorCode.NoError;
+ if (!!result.properties) {
+ errorCode = Exports_2.CancellationErrorCode[result.properties.getProperty(Exports_1.CancellationErrorCodePropertyName, Exports_2.CancellationErrorCode[Exports_2.CancellationErrorCode.NoError])];
+ }
+ return new SpeakerRecognitionCancellationDetails(reason, result.errorDetails, errorCode);
+ };
+ return SpeakerRecognitionCancellationDetails;
+}(Exports_2.CancellationDetailsBase));
+exports.SpeakerRecognitionCancellationDetails = SpeakerRecognitionCancellationDetails;
+
+
+
+/***/ }),
+/* 111 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+// Multi-device Conversation is a Preview feature.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Conversation_1 = __webpack_require__(112);
+exports.Conversation = Conversation_1.Conversation;
+var ConversationExpirationEventArgs_1 = __webpack_require__(113);
+exports.ConversationExpirationEventArgs = ConversationExpirationEventArgs_1.ConversationExpirationEventArgs;
+var ConversationParticipantsChangedEventArgs_1 = __webpack_require__(114);
+exports.ConversationParticipantsChangedEventArgs = ConversationParticipantsChangedEventArgs_1.ConversationParticipantsChangedEventArgs;
+var ConversationTranslationCanceledEventArgs_1 = __webpack_require__(115);
+exports.ConversationTranslationCanceledEventArgs = ConversationTranslationCanceledEventArgs_1.ConversationTranslationCanceledEventArgs;
+var ConversationTranslationEventArgs_1 = __webpack_require__(116);
+exports.ConversationTranslationEventArgs = ConversationTranslationEventArgs_1.ConversationTranslationEventArgs;
+var ConversationTranslationResult_1 = __webpack_require__(117);
+exports.ConversationTranslationResult = ConversationTranslationResult_1.ConversationTranslationResult;
+var ConversationTranslator_1 = __webpack_require__(118);
+exports.ConversationTranslator = ConversationTranslator_1.ConversationTranslator;
+var IParticipant_1 = __webpack_require__(119);
+exports.Participant = IParticipant_1.Participant;
+exports.User = IParticipant_1.User;
+var ParticipantChangedReason_1 = __webpack_require__(120);
+exports.ParticipantChangedReason = ParticipantChangedReason_1.ParticipantChangedReason;
+
+
+
+/***/ }),
+/* 112 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+// Multi-device Conversation is a Preview feature.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+var __spreadArrays = (this && this.__spreadArrays) || function () {
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
+ r[k] = a[j];
+ return r;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+var Conversation = /** @class */ (function () {
+ function Conversation() {
+ }
+ /**
+ * Create a conversation
+ * @param speechConfig
+ * @param cb
+ * @param err
+ */
+ Conversation.createConversationAsync = function (speechConfig, cb, err) {
+ Contracts_1.Contracts.throwIfNullOrUndefined(speechConfig, Exports_1.ConversationConnectionConfig.restErrors.invalidArgs.replace("{arg}", "config"));
+ Contracts_1.Contracts.throwIfNullOrUndefined(speechConfig.region, Exports_1.ConversationConnectionConfig.restErrors.invalidArgs.replace("{arg}", "SpeechServiceConnection_Region"));
+ if (!speechConfig.subscriptionKey && !speechConfig.getProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceAuthorization_Token])) {
+ Contracts_1.Contracts.throwIfNullOrUndefined(speechConfig.subscriptionKey, Exports_1.ConversationConnectionConfig.restErrors.invalidArgs.replace("{arg}", "SpeechServiceConnection_Key"));
+ }
+ var conversationImpl = new ConversationImpl(speechConfig);
+ conversationImpl.createConversationAsync((function () {
+ if (!!cb) {
+ cb();
+ }
+ }), function (error) {
+ if (!!err) {
+ err(error);
+ }
+ });
+ return conversationImpl;
+ };
+ return Conversation;
+}());
+exports.Conversation = Conversation;
+// tslint:disable-next-line:max-classes-per-file
+var ConversationImpl = /** @class */ (function (_super) {
+ __extends(ConversationImpl, _super);
+ /**
+ * Create a conversation impl
+ * @param speechConfig
+ */
+ function ConversationImpl(speechConfig) {
+ var _this = _super.call(this) || this;
+ _this.privIsDisposed = false;
+ _this.privIsConnected = false;
+ _this.privErrors = Exports_1.ConversationConnectionConfig.restErrors;
+ /** websocket callbacks */
+ _this.onConnected = function (e) {
+ _this.privIsConnected = true;
+ try {
+ if (!!_this.privConversationTranslator.sessionStarted) {
+ _this.privConversationTranslator.sessionStarted(_this.privConversationTranslator, e);
+ }
+ }
+ catch (e) {
+ //
+ }
+ };
+ _this.onDisconnected = function (e) {
+ _this.close(false);
+ try {
+ if (!!_this.privConversationTranslator.sessionStopped) {
+ _this.privConversationTranslator.sessionStopped(_this.privConversationTranslator, e);
+ }
+ }
+ catch (e) {
+ //
+ }
+ };
+ _this.onCanceled = function (r, e) {
+ _this.close(false); // ?
+ try {
+ if (!!_this.privConversationTranslator.canceled) {
+ _this.privConversationTranslator.canceled(_this.privConversationTranslator, e);
+ }
+ }
+ catch (e) {
+ //
+ }
+ };
+ _this.onParticipantUpdateCommandReceived = function (r, e) {
+ var _a, _b;
+ try {
+ var updatedParticipant = _this.privParticipants.getParticipant(e.id);
+ if (updatedParticipant !== undefined) {
+ switch (e.key) {
+ case Exports_1.ConversationTranslatorCommandTypes.changeNickname:
+ updatedParticipant.displayName = e.value;
+ break;
+ case Exports_1.ConversationTranslatorCommandTypes.setUseTTS:
+ updatedParticipant.useTts = e.value;
+ break;
+ case Exports_1.ConversationTranslatorCommandTypes.setProfanityFiltering:
+ updatedParticipant.profanity = e.value;
+ break;
+ case Exports_1.ConversationTranslatorCommandTypes.setMute:
+ updatedParticipant.isMuted = e.value;
+ break;
+ case Exports_1.ConversationTranslatorCommandTypes.setTranslateToLanguages:
+ updatedParticipant.translateToLanguages = e.value;
+ break;
+ }
+ _this.privParticipants.addOrUpdateParticipant(updatedParticipant);
+ if (!!((_a = _this.privConversationTranslator) === null || _a === void 0 ? void 0 : _a.participantsChanged)) {
+ (_b = _this.privConversationTranslator) === null || _b === void 0 ? void 0 : _b.participantsChanged(_this.privConversationTranslator, new Exports_2.ConversationParticipantsChangedEventArgs(Exports_2.ParticipantChangedReason.Updated, [_this.toParticipant(updatedParticipant)], e.sessionId));
+ }
+ }
+ }
+ catch (e) {
+ //
+ }
+ };
+ _this.onLockRoomCommandReceived = function (r, e) {
+ // TODO
+ };
+ _this.onMuteAllCommandReceived = function (r, e) {
+ var _a, _b;
+ try {
+ _this.privParticipants.participants.forEach(function (p) { return p.isMuted = (p.isHost ? false : e.isMuted); });
+ if (!!((_a = _this.privConversationTranslator) === null || _a === void 0 ? void 0 : _a.participantsChanged)) {
+ (_b = _this.privConversationTranslator) === null || _b === void 0 ? void 0 : _b.participantsChanged(_this.privConversationTranslator, new Exports_2.ConversationParticipantsChangedEventArgs(Exports_2.ParticipantChangedReason.Updated, _this.toParticipants(false), e.sessionId));
+ }
+ }
+ catch (e) {
+ //
+ }
+ };
+ _this.onParticipantJoinCommandReceived = function (r, e) {
+ var _a, _b;
+ try {
+ var newParticipant = _this.privParticipants.addOrUpdateParticipant(e.participant);
+ if (newParticipant !== undefined) {
+ if (!!((_a = _this.privConversationTranslator) === null || _a === void 0 ? void 0 : _a.participantsChanged)) {
+ (_b = _this.privConversationTranslator) === null || _b === void 0 ? void 0 : _b.participantsChanged(_this.privConversationTranslator, new Exports_2.ConversationParticipantsChangedEventArgs(Exports_2.ParticipantChangedReason.JoinedConversation, [_this.toParticipant(newParticipant)], e.sessionId));
+ }
+ }
+ }
+ catch (e) {
+ //
+ }
+ };
+ _this.onParticipantLeaveCommandReceived = function (r, e) {
+ var _a, _b;
+ try {
+ var ejectedParticipant = _this.privParticipants.getParticipant(e.participant.id);
+ if (ejectedParticipant !== undefined) {
+ // remove the participant from the internal participants list
+ _this.privParticipants.deleteParticipant(e.participant.id);
+ if (!!((_a = _this.privConversationTranslator) === null || _a === void 0 ? void 0 : _a.participantsChanged)) {
+ // notify subscribers that the participant has left the conversation
+ (_b = _this.privConversationTranslator) === null || _b === void 0 ? void 0 : _b.participantsChanged(_this.privConversationTranslator, new Exports_2.ConversationParticipantsChangedEventArgs(Exports_2.ParticipantChangedReason.LeftConversation, [_this.toParticipant(ejectedParticipant)], e.sessionId));
+ }
+ }
+ }
+ catch (e) {
+ //
+ }
+ };
+ _this.onTranslationReceived = function (r, e) {
+ var _a, _b, _c, _d, _e, _f;
+ try {
+ switch (e.command) {
+ case Exports_1.ConversationTranslatorMessageTypes.final:
+ if (!!((_a = _this.privConversationTranslator) === null || _a === void 0 ? void 0 : _a.transcribed)) {
+ (_b = _this.privConversationTranslator) === null || _b === void 0 ? void 0 : _b.transcribed(_this.privConversationTranslator, new Exports_2.ConversationTranslationEventArgs(e.payload, undefined, e.sessionId));
+ }
+ break;
+ case Exports_1.ConversationTranslatorMessageTypes.partial:
+ if (!!((_c = _this.privConversationTranslator) === null || _c === void 0 ? void 0 : _c.transcribing)) {
+ (_d = _this.privConversationTranslator) === null || _d === void 0 ? void 0 : _d.transcribing(_this.privConversationTranslator, new Exports_2.ConversationTranslationEventArgs(e.payload, undefined, e.sessionId));
+ }
+ break;
+ case Exports_1.ConversationTranslatorMessageTypes.instantMessage:
+ if (!!((_e = _this.privConversationTranslator) === null || _e === void 0 ? void 0 : _e.textMessageReceived)) {
+ (_f = _this.privConversationTranslator) === null || _f === void 0 ? void 0 : _f.textMessageReceived(_this.privConversationTranslator, new Exports_2.ConversationTranslationEventArgs(e.payload, undefined, e.sessionId));
+ }
+ break;
+ }
+ }
+ catch (e) {
+ //
+ }
+ };
+ _this.onParticipantsListReceived = function (r, e) {
+ var _a, _b;
+ try {
+ // check if the session token needs to be updated
+ if (e.sessionToken !== undefined && e.sessionToken !== null) {
+ _this.privRoom.token = e.sessionToken;
+ }
+ // save the participants
+ _this.privParticipants.participants = __spreadArrays(e.participants);
+ // enable the conversation
+ if (_this.privParticipants.me !== undefined) {
+ _this.privIsReady = true;
+ }
+ if (!!((_a = _this.privConversationTranslator) === null || _a === void 0 ? void 0 : _a.participantsChanged)) {
+ (_b = _this.privConversationTranslator) === null || _b === void 0 ? void 0 : _b.participantsChanged(_this.privConversationTranslator, new Exports_2.ConversationParticipantsChangedEventArgs(Exports_2.ParticipantChangedReason.JoinedConversation, _this.toParticipants(true), e.sessionId));
+ }
+ // if this is the host, update the nickname if needed
+ if (_this.me.isHost) {
+ var nickname = _this.privConversationTranslator.properties.getProperty(Exports_2.PropertyId.ConversationTranslator_Name);
+ if (nickname !== undefined && nickname.length > 0 && nickname !== _this.me.displayName) {
+ // issue a change nickname request
+ _this.changeNicknameAsync(nickname);
+ }
+ }
+ }
+ catch (e) {
+ //
+ }
+ };
+ _this.onConversationExpiration = function (r, e) {
+ var _a, _b;
+ try {
+ if (!!((_a = _this.privConversationTranslator) === null || _a === void 0 ? void 0 : _a.conversationExpiration)) {
+ (_b = _this.privConversationTranslator) === null || _b === void 0 ? void 0 : _b.conversationExpiration(_this.privConversationTranslator, e);
+ }
+ }
+ catch (e) {
+ //
+ }
+ };
+ _this.privProperties = new Exports_2.PropertyCollection();
+ _this.privManager = new Exports_1.ConversationManager();
+ // check the speech language
+ var language = speechConfig.getProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage]);
+ if (!language) {
+ speechConfig.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage], Exports_1.ConversationConnectionConfig.defaultLanguageCode);
+ }
+ _this.privLanguage = speechConfig.getProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage]);
+ // check the target language(s)
+ if (speechConfig.targetLanguages.length === 0) {
+ speechConfig.addTargetLanguage(_this.privLanguage);
+ }
+ // check the profanity setting: speech and conversationTranslator should be in sync
+ var profanity = speechConfig.getProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceResponse_ProfanityOption]);
+ if (!profanity) {
+ speechConfig.setProfanity(Exports_2.ProfanityOption.Masked);
+ }
+ // check the nickname: it should pass this regex: ^\w+([\s-][\w\(\)]+)*$"
+ // TODO: specify the regex required. Nicknames must be unique or get the duplicate nickname error
+ // TODO: check what the max length is and if a truncation is required or if the service handles it without an error
+ var hostNickname = speechConfig.getProperty(Exports_2.PropertyId[Exports_2.PropertyId.ConversationTranslator_Name]);
+ if (hostNickname === undefined || hostNickname === null || hostNickname.length <= 1 || hostNickname.length > 50) {
+ hostNickname = "Host";
+ }
+ speechConfig.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.ConversationTranslator_Name], hostNickname);
+ // save the speech config for future usage
+ _this.privConfig = speechConfig;
+ // save the config properties
+ var configImpl = speechConfig;
+ Contracts_1.Contracts.throwIfNull(configImpl, "speechConfig");
+ _this.privProperties = configImpl.properties.clone();
+ _this.privIsConnected = false;
+ _this.privParticipants = new Exports_1.InternalParticipants();
+ _this.privIsReady = false;
+ _this.privTextMessageMaxLength = 1000;
+ return _this;
+ }
+ Object.defineProperty(ConversationImpl.prototype, "conversationTranslator", {
+ set: function (value) {
+ this.privConversationTranslator = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationImpl.prototype, "room", {
+ // get the internal data about a conversation
+ get: function () {
+ return this.privRoom;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationImpl.prototype, "connection", {
+ // get the wrapper for connecting to the websockets
+ get: function () {
+ return this.privConversationRecognizer; // this.privConnection;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationImpl.prototype, "authorizationToken", {
+ // get / set the speech auth token
+ get: function () {
+ return this.privToken;
+ },
+ set: function (value) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(value, "authorizationToken");
+ this.privToken = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationImpl.prototype, "config", {
+ // get the config
+ get: function () {
+ return this.privConfig;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationImpl.prototype, "conversationId", {
+ // get the conversation Id
+ get: function () {
+ return this.privRoom ? this.privRoom.roomId : "";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationImpl.prototype, "properties", {
+ // get the properties
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationImpl.prototype, "speechRecognitionLanguage", {
+ // get the speech language
+ get: function () {
+ return this.privLanguage;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationImpl.prototype, "isMutedByHost", {
+ get: function () {
+ var _a, _b;
+ return ((_a = this.privParticipants.me) === null || _a === void 0 ? void 0 : _a.isHost) ? false : (_b = this.privParticipants.me) === null || _b === void 0 ? void 0 : _b.isMuted;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationImpl.prototype, "isConnected", {
+ get: function () {
+ return this.privIsConnected && this.privIsReady;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationImpl.prototype, "participants", {
+ get: function () {
+ return this.toParticipants(true);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationImpl.prototype, "me", {
+ get: function () {
+ return this.toParticipant(this.privParticipants.me);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationImpl.prototype, "host", {
+ get: function () {
+ return this.toParticipant(this.privParticipants.host);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * Create a new conversation as Host
+ * @param cb
+ * @param err
+ */
+ ConversationImpl.prototype.createConversationAsync = function (cb, err) {
+ var _this = this;
+ try {
+ if (!!this.privConversationRecognizer) {
+ this.handleError(new Error(this.privErrors.permissionDeniedStart), err);
+ }
+ this.privManager.createOrJoin(this.privProperties, undefined, (function (room) {
+ if (!room) {
+ _this.handleError(new Error(_this.privErrors.permissionDeniedConnect), err);
+ }
+ _this.privRoom = room;
+ _this.handleCallback(cb, err);
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ /**
+ * Starts a new conversation as host.
+ * @param cb
+ * @param err
+ */
+ ConversationImpl.prototype.startConversationAsync = function (cb, err) {
+ var _this = this;
+ try {
+ // check if there is already a recognizer
+ if (!!this.privConversationRecognizer) {
+ this.handleError(new Error(this.privErrors.permissionDeniedStart), err);
+ }
+ // check if there is conversation data available
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privRoom, this.privErrors.permissionDeniedConnect);
+ // connect to the conversation websocket
+ this.privParticipants.meId = this.privRoom.participantId;
+ this.privConversationRecognizer = new Exports_1.ConversationTranslatorRecognizer(this.privConfig);
+ this.privConversationRecognizer.conversation = this.privRoom;
+ this.privConversationRecognizerConnection = Exports_2.Connection.fromRecognizer(this.privConversationRecognizer);
+ this.privConversationRecognizerConnection.connected = this.onConnected;
+ this.privConversationRecognizerConnection.disconnected = this.onDisconnected;
+ this.privConversationRecognizer.canceled = this.onCanceled;
+ this.privConversationRecognizer.participantUpdateCommandReceived = this.onParticipantUpdateCommandReceived;
+ this.privConversationRecognizer.lockRoomCommandReceived = this.onLockRoomCommandReceived;
+ this.privConversationRecognizer.muteAllCommandReceived = this.onMuteAllCommandReceived;
+ this.privConversationRecognizer.participantJoinCommandReceived = this.onParticipantJoinCommandReceived;
+ this.privConversationRecognizer.participantLeaveCommandReceived = this.onParticipantLeaveCommandReceived;
+ this.privConversationRecognizer.translationReceived = this.onTranslationReceived;
+ this.privConversationRecognizer.participantsListReceived = this.onParticipantsListReceived;
+ this.privConversationRecognizer.conversationExpiration = this.onConversationExpiration;
+ this.privConversationRecognizer.connect(this.privRoom.token, (function () {
+ _this.handleCallback(cb, err);
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ /**
+ * Join a conversation as a participant.
+ * @param conversation
+ * @param nickname
+ * @param lang
+ * @param cb
+ * @param err
+ */
+ ConversationImpl.prototype.joinConversationAsync = function (conversationId, nickname, lang, cb, err) {
+ var _this = this;
+ try {
+ // TODO
+ // if (!!this.privConversationRecognizer) {
+ // throw new Error(this.privErrors.permissionDeniedStart);
+ // }
+ Contracts_1.Contracts.throwIfNullOrWhitespace(conversationId, this.privErrors.invalidArgs.replace("{arg}", "conversationId"));
+ Contracts_1.Contracts.throwIfNullOrWhitespace(nickname, this.privErrors.invalidArgs.replace("{arg}", "nickname"));
+ Contracts_1.Contracts.throwIfNullOrWhitespace(lang, this.privErrors.invalidArgs.replace("{arg}", "language"));
+ // join the conversation
+ this.privManager.createOrJoin(this.privProperties, conversationId, (function (room) {
+ Contracts_1.Contracts.throwIfNullOrUndefined(room, _this.privErrors.permissionDeniedConnect);
+ _this.privRoom = room;
+ _this.privConfig.authorizationToken = room.cognitiveSpeechAuthToken;
+ // join callback
+ if (!!cb) {
+ cb(room.cognitiveSpeechAuthToken);
+ }
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ /**
+ * Deletes a conversation
+ * @param cb
+ * @param err
+ */
+ ConversationImpl.prototype.deleteConversationAsync = function (cb, err) {
+ var _this = this;
+ try {
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privProperties, this.privErrors.permissionDeniedConnect);
+ Contracts_1.Contracts.throwIfNullOrWhitespace(this.privRoom.token, this.privErrors.permissionDeniedConnect);
+ this.privManager.leave(this.privProperties, this.privRoom.token, (function () {
+ _this.handleCallback(cb, err);
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ this.dispose();
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ /**
+ * Issues a request to close the client websockets
+ * @param cb
+ * @param err
+ */
+ ConversationImpl.prototype.endConversationAsync = function (cb, err) {
+ try {
+ this.close(true);
+ this.handleCallback(cb, err);
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ /**
+ * Issues a request to lock the conversation
+ * @param cb
+ * @param err
+ */
+ ConversationImpl.prototype.lockConversationAsync = function (cb, err) {
+ var _this = this;
+ var _a;
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfDisposed(this.privConversationRecognizer.isDisposed());
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privRoom, this.privErrors.permissionDeniedSend);
+ if (!this.canSendAsHost) {
+ this.handleError(new Error(this.privErrors.permissionDeniedConversation.replace("{command}", "lock")), err);
+ }
+ (_a = this.privConversationRecognizer) === null || _a === void 0 ? void 0 : _a.sendLockRequest(true, (function () {
+ _this.handleCallback(cb, err);
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ /**
+ * Issues a request to mute the conversation
+ * @param cb
+ * @param err
+ */
+ ConversationImpl.prototype.muteAllParticipantsAsync = function (cb, err) {
+ var _this = this;
+ var _a;
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfDisposed(this.privConversationRecognizer.isDisposed());
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privConversationRecognizer, this.privErrors.permissionDeniedSend);
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privRoom, this.privErrors.permissionDeniedSend);
+ // check the user's permissions
+ if (!this.canSendAsHost) {
+ this.handleError(new Error(this.privErrors.permissionDeniedConversation.replace("{command}", "mute")), err);
+ }
+ (_a = this.privConversationRecognizer) === null || _a === void 0 ? void 0 : _a.sendMuteAllRequest(true, (function () {
+ _this.handleCallback(cb, err);
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ /**
+ * Issues a request to mute a participant in the conversation
+ * @param userId
+ * @param cb
+ * @param err
+ */
+ ConversationImpl.prototype.muteParticipantAsync = function (userId, cb, err) {
+ var _this = this;
+ var _a;
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfDisposed(this.privConversationRecognizer.isDisposed());
+ Contracts_1.Contracts.throwIfNullOrWhitespace(userId, this.privErrors.invalidArgs.replace("{arg}", "userId"));
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privRoom, this.privErrors.permissionDeniedSend);
+ // check the connection is open (host + participant can perform the mute command)
+ if (!this.canSend) {
+ this.handleError(new Error(this.privErrors.permissionDeniedSend), err);
+ }
+ // if not host, check the participant is not muting another participant
+ if (!this.me.isHost && this.me.id !== userId) {
+ this.handleError(new Error(this.privErrors.permissionDeniedParticipant.replace("{command}", "mute")), err);
+ }
+ // check the user exists
+ var exists = this.privParticipants.getParticipantIndex(userId);
+ if (exists === -1) {
+ this.handleError(new Error(this.privErrors.invalidParticipantRequest), err);
+ }
+ (_a = this.privConversationRecognizer) === null || _a === void 0 ? void 0 : _a.sendMuteRequest(userId, true, (function () {
+ _this.handleCallback(cb, err);
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ /**
+ * Issues a request to remove a participant from the conversation
+ * @param userId
+ * @param cb
+ * @param err
+ */
+ ConversationImpl.prototype.removeParticipantAsync = function (userId, cb, err) {
+ var _this = this;
+ var _a;
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfDisposed(this.privConversationRecognizer.isDisposed());
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privRoom, this.privErrors.permissionDeniedSend);
+ if (!this.canSendAsHost) {
+ this.handleError(new Error(this.privErrors.permissionDeniedParticipant.replace("{command}", "remove")), err);
+ }
+ var participantId_1 = "";
+ if (typeof userId === "string") {
+ participantId_1 = userId;
+ }
+ else if (userId.hasOwnProperty("id")) {
+ var participant = userId;
+ participantId_1 = participant.id;
+ }
+ else if (userId.hasOwnProperty("userId")) {
+ var user = userId;
+ participantId_1 = user.userId;
+ }
+ Contracts_1.Contracts.throwIfNullOrWhitespace(participantId_1, this.privErrors.invalidArgs.replace("{arg}", "userId"));
+ // check the participant exists
+ var index = this.participants.findIndex(function (p) { return p.id === participantId_1; });
+ if (index === -1) {
+ this.handleError(new Error(this.privErrors.invalidParticipantRequest), err);
+ }
+ (_a = this.privConversationRecognizer) === null || _a === void 0 ? void 0 : _a.sendEjectRequest(participantId_1, (function () {
+ _this.handleCallback(cb, err);
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ /**
+ * Issues a request to unlock the conversation
+ * @param cb
+ * @param err
+ */
+ ConversationImpl.prototype.unlockConversationAsync = function (cb, err) {
+ var _this = this;
+ var _a;
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfDisposed(this.privConversationRecognizer.isDisposed());
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privRoom, this.privErrors.permissionDeniedSend);
+ if (!this.canSendAsHost) {
+ this.handleError(new Error(this.privErrors.permissionDeniedConversation.replace("{command}", "unlock")), err);
+ }
+ (_a = this.privConversationRecognizer) === null || _a === void 0 ? void 0 : _a.sendLockRequest(false, (function () {
+ _this.handleCallback(cb, err);
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ /**
+ * Issues a request to unmute all participants in the conversation
+ * @param cb
+ * @param err
+ */
+ ConversationImpl.prototype.unmuteAllParticipantsAsync = function (cb, err) {
+ var _this = this;
+ var _a;
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfDisposed(this.privConversationRecognizer.isDisposed());
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privRoom, this.privErrors.permissionDeniedSend);
+ if (!this.canSendAsHost) {
+ this.handleError(new Error(this.privErrors.permissionDeniedConversation.replace("{command}", "unmute all")), err);
+ }
+ (_a = this.privConversationRecognizer) === null || _a === void 0 ? void 0 : _a.sendMuteAllRequest(false, (function () {
+ _this.handleCallback(cb, err);
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ /**
+ * Issues a request to unmute a participant in the conversation
+ * @param userId
+ * @param cb
+ * @param err
+ */
+ ConversationImpl.prototype.unmuteParticipantAsync = function (userId, cb, err) {
+ var _this = this;
+ var _a;
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfDisposed(this.privConversationRecognizer.isDisposed());
+ Contracts_1.Contracts.throwIfNullOrWhitespace(userId, this.privErrors.invalidArgs.replace("{arg}", "userId"));
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privRoom, this.privErrors.permissionDeniedSend);
+ // check the connection is open (host + participant can perform the mute command)
+ if (!this.canSend) {
+ this.handleError(new Error(this.privErrors.permissionDeniedSend), err);
+ }
+ // if not host, check the participant is not muting another participant
+ if (!this.me.isHost && this.me.id !== userId) {
+ this.handleError(new Error(this.privErrors.permissionDeniedParticipant.replace("{command}", "mute")), err);
+ }
+ // check the user exists
+ var exists = this.privParticipants.getParticipantIndex(userId);
+ if (exists === -1) {
+ this.handleError(new Error(this.privErrors.invalidParticipantRequest), err);
+ }
+ (_a = this.privConversationRecognizer) === null || _a === void 0 ? void 0 : _a.sendMuteRequest(userId, false, (function () {
+ _this.handleCallback(cb, err);
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ /**
+ * Send a text message
+ * @param message
+ * @param cb
+ * @param err
+ */
+ ConversationImpl.prototype.sendTextMessageAsync = function (message, cb, err) {
+ var _this = this;
+ var _a;
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfDisposed(this.privConversationRecognizer.isDisposed());
+ Contracts_1.Contracts.throwIfNullOrWhitespace(message, this.privErrors.invalidArgs.replace("{arg}", "message"));
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privRoom, this.privErrors.permissionDeniedSend);
+ if (!this.canSend) {
+ this.handleError(new Error(this.privErrors.permissionDeniedSend), err);
+ }
+ // TODO: is a max length check required?
+ if (message.length > this.privTextMessageMaxLength) {
+ this.handleError(new Error(this.privErrors.invalidArgs.replace("{arg}", "message length")), err);
+ }
+ (_a = this.privConversationRecognizer) === null || _a === void 0 ? void 0 : _a.sendMessageRequest(message, (function () {
+ _this.handleCallback(cb, err);
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ /**
+ * Change nickname
+ * @param message
+ * @param cb
+ * @param err
+ */
+ ConversationImpl.prototype.changeNicknameAsync = function (nickname, cb, err) {
+ var _this = this;
+ var _a;
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfDisposed(this.privConversationRecognizer.isDisposed());
+ Contracts_1.Contracts.throwIfNullOrWhitespace(nickname, this.privErrors.invalidArgs.replace("{arg}", "nickname"));
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privRoom, this.privErrors.permissionDeniedSend);
+ if (!this.canSend) {
+ this.handleError(new Error(this.privErrors.permissionDeniedSend), err);
+ }
+ (_a = this.privConversationRecognizer) === null || _a === void 0 ? void 0 : _a.sendChangeNicknameRequest(nickname, (function () {
+ _this.handleCallback(cb, err);
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ ConversationImpl.prototype.isDisposed = function () {
+ return this.privIsDisposed;
+ };
+ ConversationImpl.prototype.dispose = function (reason) {
+ var _a;
+ if (this.isDisposed) {
+ return;
+ }
+ this.privIsDisposed = true;
+ (_a = this.config) === null || _a === void 0 ? void 0 : _a.close();
+ if (this.privConversationRecognizerConnection) {
+ this.privConversationRecognizerConnection.closeConnection();
+ this.privConversationRecognizerConnection.close();
+ this.privConversationRecognizerConnection = undefined;
+ }
+ this.privConfig = undefined;
+ this.privLanguage = undefined;
+ this.privProperties = undefined;
+ this.privRoom = undefined;
+ this.privToken = undefined;
+ this.privManager = undefined;
+ this.privConversationRecognizer = undefined;
+ this.privIsConnected = false;
+ this.privIsReady = false;
+ this.privParticipants = undefined;
+ this.privRoom = undefined;
+ };
+ ConversationImpl.prototype.close = function (dispose) {
+ var _a, _b, _c;
+ try {
+ this.privIsConnected = false;
+ (_a = this.privConversationRecognizerConnection) === null || _a === void 0 ? void 0 : _a.closeConnection();
+ (_b = this.privConversationRecognizerConnection) === null || _b === void 0 ? void 0 : _b.close();
+ this.privConversationRecognizer.close();
+ this.privConversationRecognizerConnection = undefined;
+ this.privConversationRecognizer = undefined;
+ (_c = this.privConversationTranslator) === null || _c === void 0 ? void 0 : _c.dispose();
+ }
+ catch (e) {
+ // ignore error
+ }
+ if (dispose) {
+ this.dispose();
+ }
+ };
+ Object.defineProperty(ConversationImpl.prototype, "canSend", {
+ /** Helpers */
+ get: function () {
+ var _a;
+ return this.privIsConnected && !((_a = this.privParticipants.me) === null || _a === void 0 ? void 0 : _a.isMuted);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationImpl.prototype, "canSendAsHost", {
+ get: function () {
+ var _a;
+ return this.privIsConnected && ((_a = this.privParticipants.me) === null || _a === void 0 ? void 0 : _a.isHost);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ConversationImpl.prototype.handleCallback = function (cb, err) {
+ if (!!cb) {
+ try {
+ cb();
+ }
+ catch (e) {
+ if (!!err) {
+ err(e);
+ }
+ }
+ cb = undefined;
+ }
+ };
+ ConversationImpl.prototype.handleError = function (error, err) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ };
+ /** Participant Helpers */
+ ConversationImpl.prototype.toParticipants = function (includeHost) {
+ var _this = this;
+ var participants = this.privParticipants.participants.map(function (p) {
+ return _this.toParticipant(p);
+ });
+ if (!includeHost) {
+ return participants.filter(function (p) { return p.isHost === false; });
+ }
+ else {
+ return participants;
+ }
+ };
+ ConversationImpl.prototype.toParticipant = function (p) {
+ return new Exports_2.Participant(p.id, p.avatar, p.displayName, p.isHost, p.isMuted, p.isUsingTts, p.preferredLanguage);
+ };
+ return ConversationImpl;
+}(Conversation));
+exports.ConversationImpl = ConversationImpl;
+
+
+
+/***/ }),
+/* 113 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+// Multi-device Conversation is a Preview feature.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+var ConversationExpirationEventArgs = /** @class */ (function (_super) {
+ __extends(ConversationExpirationEventArgs, _super);
+ function ConversationExpirationEventArgs(expirationTime, sessionId) {
+ var _this = _super.call(this, sessionId) || this;
+ _this.privExpirationTime = expirationTime;
+ return _this;
+ }
+ Object.defineProperty(ConversationExpirationEventArgs.prototype, "expirationTime", {
+ /** How much longer until the conversation expires (in minutes). */
+ get: function () {
+ return this.privExpirationTime;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConversationExpirationEventArgs;
+}(Exports_1.SessionEventArgs));
+exports.ConversationExpirationEventArgs = ConversationExpirationEventArgs;
+
+
+
+/***/ }),
+/* 114 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+// Multi-device Conversation is a Preview feature.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+var ConversationParticipantsChangedEventArgs = /** @class */ (function (_super) {
+ __extends(ConversationParticipantsChangedEventArgs, _super);
+ function ConversationParticipantsChangedEventArgs(reason, participants, sessionId) {
+ var _this = _super.call(this, sessionId) || this;
+ _this.privReason = reason;
+ _this.privParticipant = participants;
+ return _this;
+ }
+ Object.defineProperty(ConversationParticipantsChangedEventArgs.prototype, "reason", {
+ get: function () {
+ return this.privReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationParticipantsChangedEventArgs.prototype, "participants", {
+ get: function () {
+ return this.privParticipant;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConversationParticipantsChangedEventArgs;
+}(Exports_1.SessionEventArgs));
+exports.ConversationParticipantsChangedEventArgs = ConversationParticipantsChangedEventArgs;
+
+
+
+/***/ }),
+/* 115 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+// Multi-device Conversation is a Preview feature.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+var ConversationTranslationCanceledEventArgs = /** @class */ (function (_super) {
+ __extends(ConversationTranslationCanceledEventArgs, _super);
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {CancellationReason} reason - The cancellation reason.
+ * @param {string} errorDetails - Error details, if provided.
+ * @param {number} offset - The offset.
+ * @param {string} sessionId - The session id.
+ */
+ function ConversationTranslationCanceledEventArgs(reason, errorDetails, errorCode, offset, sessionId) {
+ var _this = _super.call(this, offset, sessionId) || this;
+ _this.privReason = reason;
+ _this.privErrorDetails = errorDetails;
+ _this.privErrorCode = errorCode;
+ return _this;
+ }
+ Object.defineProperty(ConversationTranslationCanceledEventArgs.prototype, "reason", {
+ /**
+ * The reason the recognition was canceled.
+ * @member SpeechRecognitionCanceledEventArgs.prototype.reason
+ * @function
+ * @public
+ * @returns {CancellationReason} Specifies the reason canceled.
+ */
+ get: function () {
+ return this.privReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationTranslationCanceledEventArgs.prototype, "errorCode", {
+ /**
+ * The error code in case of an unsuccessful recognition.
+ * Added in version 1.1.0.
+ * @return An error code that represents the error reason.
+ */
+ get: function () {
+ return this.privErrorCode;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationTranslationCanceledEventArgs.prototype, "errorDetails", {
+ /**
+ * In case of an unsuccessful recognition, provides details of the occurred error.
+ * @member SpeechRecognitionCanceledEventArgs.prototype.errorDetails
+ * @function
+ * @public
+ * @returns {string} A String that represents the error details.
+ */
+ get: function () {
+ return this.privErrorDetails;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConversationTranslationCanceledEventArgs;
+}(Exports_1.RecognitionEventArgs));
+exports.ConversationTranslationCanceledEventArgs = ConversationTranslationCanceledEventArgs;
+
+
+
+/***/ }),
+/* 116 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+// Multi-device Conversation is a Preview feature.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+var ConversationTranslationEventArgs = /** @class */ (function (_super) {
+ __extends(ConversationTranslationEventArgs, _super);
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {ConversationTranslationResult} result - The translation recognition result.
+ * @param {number} offset - The offset.
+ * @param {string} sessionId - The session id.
+ */
+ function ConversationTranslationEventArgs(result, offset, sessionId) {
+ var _this = _super.call(this, offset, sessionId) || this;
+ _this.privResult = result;
+ return _this;
+ }
+ Object.defineProperty(ConversationTranslationEventArgs.prototype, "result", {
+ /**
+ * Specifies the recognition result.
+ * @returns {ConversationTranslationResult} the recognition result.
+ */
+ get: function () {
+ return this.privResult;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConversationTranslationEventArgs;
+}(Exports_1.RecognitionEventArgs));
+exports.ConversationTranslationEventArgs = ConversationTranslationEventArgs;
+
+
+
+/***/ }),
+/* 117 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+// Multi-device Conversation is a Preview feature.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var TranslationRecognitionResult_1 = __webpack_require__(62);
+var ConversationTranslationResult = /** @class */ (function (_super) {
+ __extends(ConversationTranslationResult, _super);
+ function ConversationTranslationResult(participantId, translations, originalLanguage, resultId, reason, text, duration, offset, errorDetails, json, properties) {
+ var _this = _super.call(this, translations, resultId, reason, text, duration, offset, errorDetails, json, properties) || this;
+ _this.privId = participantId;
+ _this.privOrigLang = originalLanguage;
+ return _this;
+ }
+ Object.defineProperty(ConversationTranslationResult.prototype, "participantId", {
+ /**
+ * The unique identifier for the participant this result is for.
+ */
+ get: function () {
+ return this.privId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationTranslationResult.prototype, "originalLang", {
+ /**
+ * The original language this result was in.
+ */
+ get: function () {
+ return this.privOrigLang;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConversationTranslationResult;
+}(TranslationRecognitionResult_1.TranslationRecognitionResult));
+exports.ConversationTranslationResult = ConversationTranslationResult;
+
+
+
+/***/ }),
+/* 118 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+// Multi-device Conversation is a Preview feature.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+var Conversation_1 = __webpack_require__(112);
+var Exports_3 = __webpack_require__(111);
+var SpeechState;
+(function (SpeechState) {
+ SpeechState[SpeechState["Inactive"] = 0] = "Inactive";
+ SpeechState[SpeechState["Connecting"] = 1] = "Connecting";
+ SpeechState[SpeechState["Connected"] = 2] = "Connected";
+})(SpeechState = exports.SpeechState || (exports.SpeechState = {}));
+/***
+ * Join, leave or connect to a conversation.
+ */
+var ConversationTranslator = /** @class */ (function () {
+ function ConversationTranslator(audioConfig) {
+ var _this = this;
+ this.privIsDisposed = false;
+ this.privIsSpeaking = false;
+ this.privSpeechState = SpeechState.Inactive;
+ this.privErrors = Exports_1.ConversationConnectionConfig.restErrors;
+ this.privPlaceholderKey = "abcdefghijklmnopqrstuvwxyz012345";
+ this.privPlaceholderRegion = "westus";
+ /** Recognizer callbacks */
+ this.onSpeechConnected = function (e) {
+ _this.privSpeechState = SpeechState.Connected;
+ };
+ this.onSpeechDisconnected = function (e) {
+ _this.privSpeechState = SpeechState.Inactive;
+ _this.cancelSpeech();
+ };
+ this.onSpeechRecognized = function (r, e) {
+ // TODO: add support for getting recognitions from here if own speech
+ var _a;
+ // if there is an error connecting to the conversation service from the speech service the error will be returned in the ErrorDetails field.
+ if ((_a = e.result) === null || _a === void 0 ? void 0 : _a.errorDetails) {
+ _this.cancelSpeech();
+ // TODO: format the error message contained in 'errorDetails'
+ _this.fireCancelEvent(e.result.errorDetails);
+ }
+ };
+ this.onSpeechRecognizing = function (r, e) {
+ // TODO: add support for getting recognitions from here if own speech
+ };
+ this.onSpeechCanceled = function (r, e) {
+ if (_this.privSpeechState !== SpeechState.Inactive) {
+ try {
+ _this.cancelSpeech();
+ }
+ catch (error) {
+ _this.privSpeechState = SpeechState.Inactive;
+ }
+ }
+ };
+ this.onSpeechSessionStarted = function (r, e) {
+ _this.privSpeechState = SpeechState.Connected;
+ };
+ this.onSpeechSessionStopped = function (r, e) {
+ _this.privSpeechState = SpeechState.Inactive;
+ };
+ this.privProperties = new Exports_2.PropertyCollection();
+ this.privAudioConfig = audioConfig;
+ }
+ Object.defineProperty(ConversationTranslator.prototype, "properties", {
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationTranslator.prototype, "speechRecognitionLanguage", {
+ get: function () {
+ return this.privSpeechRecognitionLanguage;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationTranslator.prototype, "participants", {
+ get: function () {
+ var _a;
+ return (_a = this.privConversation) === null || _a === void 0 ? void 0 : _a.participants;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ConversationTranslator.prototype.joinConversationAsync = function (conversation, nickname, param1, param2, param3) {
+ var _this = this;
+ try {
+ if (typeof conversation === "string") {
+ Contracts_1.Contracts.throwIfNullOrUndefined(conversation, this.privErrors.invalidArgs.replace("{arg}", "conversation id"));
+ Contracts_1.Contracts.throwIfNullOrWhitespace(nickname, this.privErrors.invalidArgs.replace("{arg}", "nickname"));
+ if (!!this.privConversation) {
+ this.handleError(new Error(this.privErrors.permissionDeniedStart), param3);
+ }
+ var lang = param1;
+ if (lang === undefined || lang === null || lang === "") {
+ lang = Exports_1.ConversationConnectionConfig.defaultLanguageCode;
+ }
+ // create a placecholder config
+ this.privSpeechTranslationConfig = Exports_2.SpeechTranslationConfig.fromSubscription(this.privPlaceholderKey, this.privPlaceholderRegion);
+ this.privSpeechTranslationConfig.setProfanity(Exports_2.ProfanityOption.Masked);
+ this.privSpeechTranslationConfig.addTargetLanguage(lang);
+ this.privSpeechTranslationConfig.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage], lang);
+ this.privSpeechTranslationConfig.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.ConversationTranslator_Name], nickname);
+ var endpoint = this.privProperties.getProperty(Exports_2.PropertyId.ConversationTranslator_Host);
+ if (endpoint) {
+ this.privSpeechTranslationConfig.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.ConversationTranslator_Host], endpoint);
+ }
+ var speechEndpointHost = this.privProperties.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Host);
+ if (speechEndpointHost) {
+ this.privSpeechTranslationConfig.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_Host], speechEndpointHost);
+ }
+ // join the conversation
+ this.privConversation = new Conversation_1.ConversationImpl(this.privSpeechTranslationConfig);
+ this.privConversation.conversationTranslator = this;
+ this.privConversation.joinConversationAsync(conversation, nickname, lang, (function (result) {
+ if (!result) {
+ _this.handleError(new Error(_this.privErrors.permissionDeniedConnect), param3);
+ }
+ _this.privSpeechTranslationConfig.authorizationToken = result;
+ // connect to the ws
+ _this.privConversation.startConversationAsync((function () {
+ _this.handleCallback(param2, param3);
+ }), (function (error) {
+ _this.handleError(error, param3);
+ }));
+ }), (function (error) {
+ _this.handleError(error, param3);
+ }));
+ }
+ else if (typeof conversation === "object") {
+ Contracts_1.Contracts.throwIfNullOrUndefined(conversation, this.privErrors.invalidArgs.replace("{arg}", "conversation id"));
+ Contracts_1.Contracts.throwIfNullOrWhitespace(nickname, this.privErrors.invalidArgs.replace("{arg}", "nickname"));
+ // save the nickname
+ this.privProperties.setProperty(Exports_2.PropertyId.ConversationTranslator_Name, nickname);
+ // ref the conversation object
+ this.privConversation = conversation;
+ // ref the conversation translator object
+ this.privConversation.conversationTranslator = this;
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privConversation, this.privErrors.permissionDeniedConnect);
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privConversation.room.token, this.privErrors.permissionDeniedConnect);
+ this.privSpeechTranslationConfig = conversation.config;
+ this.handleCallback(param1, param2);
+ }
+ else {
+ this.handleError(new Error(this.privErrors.invalidArgs.replace("{arg}", "invalid conversation type")), param2);
+ }
+ }
+ catch (error) {
+ this.handleError(error, typeof param1 === "string" ? param3 : param2);
+ }
+ };
+ /**
+ * Leave the conversation
+ * @param cb
+ * @param err
+ */
+ ConversationTranslator.prototype.leaveConversationAsync = function (cb, err) {
+ var _this = this;
+ try {
+ // stop the speech websocket
+ this.cancelSpeech();
+ // stop the websocket
+ this.privConversation.endConversationAsync((function () {
+ // https delete request
+ _this.privConversation.deleteConversationAsync((function () {
+ _this.handleCallback(cb, err);
+ _this.dispose();
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ /**
+ * Send a text message
+ * @param message
+ * @param cb
+ * @param err
+ */
+ ConversationTranslator.prototype.sendTextMessageAsync = function (message, cb, err) {
+ var _a;
+ try {
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privConversation, this.privErrors.permissionDeniedSend);
+ Contracts_1.Contracts.throwIfNullOrWhitespace(message, this.privErrors.invalidArgs.replace("{arg}", message));
+ (_a = this.privConversation) === null || _a === void 0 ? void 0 : _a.sendTextMessageAsync(message, cb, err);
+ }
+ catch (error) {
+ this.handleError(error, err);
+ }
+ };
+ /**
+ * Start speaking
+ * @param cb
+ * @param err
+ */
+ ConversationTranslator.prototype.startTranscribingAsync = function (cb, err) {
+ var _this = this;
+ try {
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privConversation, this.privErrors.permissionDeniedSend);
+ Contracts_1.Contracts.throwIfNullOrUndefined(this.privConversation.room.token, this.privErrors.permissionDeniedConnect);
+ if (!this.canSpeak) {
+ this.handleError(new Error(this.privErrors.permissionDeniedSend), err);
+ }
+ if (this.privTranslationRecognizer === undefined) {
+ this.connectTranslatorRecognizer((function () {
+ _this.startContinuousRecognition((function () {
+ _this.privIsSpeaking = true;
+ _this.handleCallback(cb, err);
+ }), (function (error) {
+ _this.privIsSpeaking = false;
+ // this.fireCancelEvent(error);
+ _this.cancelSpeech();
+ _this.handleError(error, err);
+ }));
+ }), (function (error) {
+ _this.handleError(error, err);
+ }));
+ }
+ else {
+ this.startContinuousRecognition((function () {
+ _this.privIsSpeaking = true;
+ _this.handleCallback(cb, err);
+ }), (function (error) {
+ _this.privIsSpeaking = false;
+ // this.fireCancelEvent(error);
+ _this.cancelSpeech();
+ _this.handleError(error, err);
+ }));
+ }
+ }
+ catch (error) {
+ this.handleError(error, err);
+ this.cancelSpeech();
+ }
+ };
+ /**
+ * Stop speaking
+ * @param cb
+ * @param err
+ */
+ ConversationTranslator.prototype.stopTranscribingAsync = function (cb, err) {
+ var _this = this;
+ var _a;
+ try {
+ if (!this.privIsSpeaking) {
+ // stop speech
+ this.cancelSpeech();
+ this.handleCallback(cb, err);
+ return;
+ }
+ // stop the recognition but leave the websocket open
+ this.privIsSpeaking = false;
+ (_a = this.privTranslationRecognizer) === null || _a === void 0 ? void 0 : _a.stopContinuousRecognitionAsync(function () {
+ _this.handleCallback(cb, err);
+ }, function (error) {
+ _this.handleError(error, err);
+ _this.cancelSpeech();
+ });
+ }
+ catch (error) {
+ this.handleError(error, err);
+ this.cancelSpeech();
+ }
+ };
+ ConversationTranslator.prototype.isDisposed = function () {
+ return this.privIsDisposed;
+ };
+ ConversationTranslator.prototype.dispose = function (reason) {
+ var _a, _b;
+ if (this.isDisposed && !this.privIsSpeaking) {
+ return;
+ }
+ this.cancelSpeech();
+ this.privIsDisposed = true;
+ (_a = this.privSpeechTranslationConfig) === null || _a === void 0 ? void 0 : _a.close();
+ this.privSpeechRecognitionLanguage = undefined;
+ this.privProperties = undefined;
+ this.privAudioConfig = undefined;
+ this.privSpeechTranslationConfig = undefined;
+ (_b = this.privConversation) === null || _b === void 0 ? void 0 : _b.dispose();
+ this.privConversation = undefined;
+ };
+ /**
+ * Connect to the speech translation recognizer.
+ * Currently there is no language validation performed before sending the SpeechLanguage code to the service.
+ * If it's an invalid language the raw error will be: 'Error during WebSocket handshake: Unexpected response code: 400'
+ * e.g. pass in 'fr' instead of 'fr-FR', or a text-only language 'cy'
+ * @param cb
+ * @param err
+ */
+ ConversationTranslator.prototype.connectTranslatorRecognizer = function (cb, err) {
+ try {
+ if (this.privAudioConfig === undefined) {
+ this.privAudioConfig = Exports_2.AudioConfig.fromDefaultMicrophoneInput();
+ }
+ // clear the temp subscription key if it's a participant joining
+ if (this.privSpeechTranslationConfig.getProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_Key])
+ === this.privPlaceholderKey) {
+ this.privSpeechTranslationConfig.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_Key], "");
+ }
+ // TODO
+ var token = encodeURIComponent(this.privConversation.room.token);
+ var endpointHost = this.privSpeechTranslationConfig.getProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_Host], Exports_1.ConversationConnectionConfig.speechHost);
+ endpointHost = endpointHost.replace("{region}", this.privConversation.room.cognitiveSpeechRegion);
+ var url = "wss://" + endpointHost + Exports_1.ConversationConnectionConfig.speechPath + "?" + Exports_1.ConversationConnectionConfig.configParams.token + "=" + token;
+ this.privSpeechTranslationConfig.setProperty(Exports_2.PropertyId[Exports_2.PropertyId.SpeechServiceConnection_Endpoint], url);
+ this.privTranslationRecognizer = new Exports_2.TranslationRecognizer(this.privSpeechTranslationConfig, this.privAudioConfig);
+ this.privTranslationRecognizerConnection = Exports_2.Connection.fromRecognizer(this.privTranslationRecognizer);
+ this.privTranslationRecognizerConnection.connected = this.onSpeechConnected;
+ this.privTranslationRecognizerConnection.disconnected = this.onSpeechDisconnected;
+ this.privTranslationRecognizer.recognized = this.onSpeechRecognized;
+ this.privTranslationRecognizer.recognizing = this.onSpeechRecognizing;
+ this.privTranslationRecognizer.canceled = this.onSpeechCanceled;
+ this.privTranslationRecognizer.sessionStarted = this.onSpeechSessionStarted;
+ this.privTranslationRecognizer.sessionStopped = this.onSpeechSessionStopped;
+ this.handleCallback(cb, err);
+ }
+ catch (error) {
+ this.handleError(error, err);
+ this.cancelSpeech();
+ // this.fireCancelEvent(error); ?
+ }
+ };
+ /**
+ * Handle the start speaking request
+ * @param cb
+ * @param err
+ */
+ ConversationTranslator.prototype.startContinuousRecognition = function (cb, err) {
+ this.privTranslationRecognizer.startContinuousRecognitionAsync(cb, err);
+ };
+ /**
+ * Fire a cancel event
+ * @param error
+ */
+ ConversationTranslator.prototype.fireCancelEvent = function (error) {
+ var _a, _b, _c, _d, _e, _f, _g;
+ try {
+ if (!!this.canceled) {
+ var cancelEvent = new Exports_3.ConversationTranslationCanceledEventArgs((_b = (_a = error) === null || _a === void 0 ? void 0 : _a.reason, (_b !== null && _b !== void 0 ? _b : Exports_2.CancellationReason.Error)), (_d = (_c = error) === null || _c === void 0 ? void 0 : _c.errorDetails, (_d !== null && _d !== void 0 ? _d : error)), (_f = (_e = error) === null || _e === void 0 ? void 0 : _e.errorCode, (_f !== null && _f !== void 0 ? _f : Exports_2.CancellationErrorCode.RuntimeError)), undefined, (_g = error) === null || _g === void 0 ? void 0 : _g.sessionId);
+ this.canceled(this, cancelEvent);
+ }
+ }
+ catch (e) {
+ //
+ }
+ };
+ /**
+ * Cancel the speech websocket
+ */
+ ConversationTranslator.prototype.cancelSpeech = function () {
+ var _a, _b;
+ try {
+ this.privIsSpeaking = false;
+ (_a = this.privTranslationRecognizer) === null || _a === void 0 ? void 0 : _a.stopContinuousRecognitionAsync();
+ (_b = this.privTranslationRecognizerConnection) === null || _b === void 0 ? void 0 : _b.closeConnection();
+ this.privTranslationRecognizerConnection = undefined;
+ this.privTranslationRecognizer = undefined;
+ this.privSpeechState = SpeechState.Inactive;
+ }
+ catch (e) {
+ // ignore the error
+ }
+ };
+ Object.defineProperty(ConversationTranslator.prototype, "canSpeak", {
+ get: function () {
+ // is there a Conversation websocket available
+ if (!this.privConversation.isConnected) {
+ return false;
+ }
+ // is the user already speaking
+ if (this.privIsSpeaking || this.privSpeechState === SpeechState.Connected || this.privSpeechState === SpeechState.Connecting) {
+ return false;
+ }
+ // is the user muted
+ if (this.privConversation.isMutedByHost) {
+ return false;
+ }
+ return true;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ConversationTranslator.prototype.handleCallback = function (cb, err) {
+ if (!!cb) {
+ try {
+ cb();
+ }
+ catch (e) {
+ if (!!err) {
+ err(e);
+ }
+ }
+ cb = undefined;
+ }
+ };
+ ConversationTranslator.prototype.handleError = function (error, err) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ };
+ return ConversationTranslator;
+}());
+exports.ConversationTranslator = ConversationTranslator;
+
+
+
+/***/ }),
+/* 119 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+// Multi-device Conversation is a Preview feature.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+var User = /** @class */ (function () {
+ function User(userId) {
+ this.privUserId = userId;
+ }
+ Object.defineProperty(User.prototype, "userId", {
+ get: function () {
+ return this.privUserId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return User;
+}());
+exports.User = User;
+// tslint:disable-next-line: max-classes-per-file
+var Participant = /** @class */ (function () {
+ function Participant(id, avatar, displayName, isHost, isMuted, isUsingTts, preferredLanguage) {
+ this.privId = id;
+ this.privAvatar = avatar;
+ this.privDisplayName = displayName;
+ this.privIsHost = isHost;
+ this.privIsMuted = isMuted;
+ this.privIsUsingTts = isUsingTts;
+ this.privPreferredLanguage = preferredLanguage;
+ this.privPoperties = new Exports_1.PropertyCollection();
+ }
+ Object.defineProperty(Participant.prototype, "avatar", {
+ get: function () {
+ return this.privAvatar;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Participant.prototype, "displayName", {
+ get: function () {
+ return this.privDisplayName;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Participant.prototype, "id", {
+ get: function () {
+ return this.privId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Participant.prototype, "preferredLanguage", {
+ get: function () {
+ return this.privPreferredLanguage;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Participant.prototype, "isHost", {
+ get: function () {
+ return this.privIsHost;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Participant.prototype, "isMuted", {
+ get: function () {
+ return this.privIsMuted;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Participant.prototype, "isUsingTts", {
+ get: function () {
+ return this.privIsUsingTts;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(Participant.prototype, "properties", {
+ get: function () {
+ return this.privPoperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return Participant;
+}());
+exports.Participant = Participant;
+
+
+
+/***/ }),
+/* 120 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+// Multi-device Conversation is a Preview feature.
+Object.defineProperty(exports, "__esModule", { value: true });
+var ParticipantChangedReason;
+(function (ParticipantChangedReason) {
+ /** Participant has joined the conversation. */
+ ParticipantChangedReason[ParticipantChangedReason["JoinedConversation"] = 0] = "JoinedConversation";
+ /** Participant has left the conversation. This could be voluntary, or involuntary
+ * (e.g. they are experiencing networking issues).
+ */
+ ParticipantChangedReason[ParticipantChangedReason["LeftConversation"] = 1] = "LeftConversation";
+ /** The participants' state has changed (e.g. they became muted, changed their nickname). */
+ ParticipantChangedReason[ParticipantChangedReason["Updated"] = 2] = "Updated";
+})(ParticipantChangedReason = exports.ParticipantChangedReason || (exports.ParticipantChangedReason = {}));
+
+
+
+/***/ }),
+/* 121 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Exports_2 = __webpack_require__(4);
+var AudioFileWriter_1 = __webpack_require__(34);
+var AudioOutputFormat_1 = __webpack_require__(44);
+var AudioOutputStream_1 = __webpack_require__(43);
+var Contracts_1 = __webpack_require__(33);
+var Exports_3 = __webpack_require__(31);
+/**
+ * Defines the class SpeechSynthesizer for text to speech.
+ * Added in version 1.11.0
+ * @class SpeechSynthesizer
+ */
+var SpeechSynthesizer = /** @class */ (function () {
+ /**
+ * SpeechSynthesizer constructor.
+ * @constructor
+ * @param {SpeechConfig} speechConfig - An set of initial properties for this synthesizer
+ * @param {AudioConfig} audioConfig - An optional audio configuration associated with the synthesizer
+ */
+ function SpeechSynthesizer(speechConfig, audioConfig) {
+ var speechConfigImpl = speechConfig;
+ Contracts_1.Contracts.throwIfNull(speechConfigImpl, "speechConfig");
+ if (audioConfig !== null) {
+ this.audioConfig = (audioConfig !== undefined) ? audioConfig : Exports_3.AudioConfig.fromDefaultSpeakerOutput();
+ }
+ this.privProperties = speechConfigImpl.properties.clone();
+ this.privDisposed = false;
+ this.privSynthesizing = false;
+ this.privConnectionFactory = new Exports_1.SpeechSynthesisConnectionFactory();
+ this.synthesisRequestQueue = new Exports_2.Queue();
+ this.implCommonSynthesizeSetup();
+ }
+ Object.defineProperty(SpeechSynthesizer.prototype, "authorizationToken", {
+ /**
+ * Gets the authorization token used to communicate with the service.
+ * @member SpeechSynthesizer.prototype.authorizationToken
+ * @function
+ * @public
+ * @returns {string} Authorization token.
+ */
+ get: function () {
+ return this.properties.getProperty(Exports_3.PropertyId.SpeechServiceAuthorization_Token);
+ },
+ /**
+ * Gets/Sets the authorization token used to communicate with the service.
+ * @member SpeechSynthesizer.prototype.authorizationToken
+ * @function
+ * @public
+ * @param {string} token - Authorization token.
+ */
+ set: function (token) {
+ Contracts_1.Contracts.throwIfNullOrWhitespace(token, "token");
+ this.properties.setProperty(Exports_3.PropertyId.SpeechServiceAuthorization_Token, token);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechSynthesizer.prototype, "properties", {
+ /**
+ * The collection of properties and their values defined for this SpeechSynthesizer.
+ * @member SpeechSynthesizer.prototype.properties
+ * @function
+ * @public
+ * @returns {PropertyCollection} The collection of properties and their values defined for this SpeechSynthesizer.
+ */
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechSynthesizer.prototype, "autoDetectSourceLanguage", {
+ /**
+ * Indicates if auto detect source language is enabled
+ * @member SpeechSynthesizer.prototype.properties
+ * @function
+ * @public
+ * @returns {boolean} if auto detect source language is enabled
+ */
+ get: function () {
+ return this.properties.getProperty(Exports_3.PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages) === Exports_1.AutoDetectSourceLanguagesOpenRangeOptionName;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * SpeechSynthesizer constructor.
+ * @constructor
+ * @param {SpeechConfig} speechConfig - an set of initial properties for this synthesizer
+ * @param {AutoDetectSourceLanguageConfig} autoDetectSourceLanguageConfig - An source language detection configuration associated with the synthesizer
+ * @param {AudioConfig} audioConfig - An optional audio configuration associated with the synthesizer
+ */
+ SpeechSynthesizer.FromConfig = function (speechConfig, autoDetectSourceLanguageConfig, audioConfig) {
+ var speechConfigImpl = speechConfig;
+ autoDetectSourceLanguageConfig.properties.mergeTo(speechConfigImpl.properties);
+ return new SpeechSynthesizer(speechConfig, audioConfig);
+ };
+ SpeechSynthesizer.prototype.buildSsml = function (text) {
+ var _a;
+ var languageToDefaultVoice = (_a = {},
+ _a["ar-EG"] = "Microsoft Server Speech Text to Speech Voice (ar-EG, Hoda)",
+ _a["ar-SA"] = "Microsoft Server Speech Text to Speech Voice (ar-SA, Naayf)",
+ _a["bg-BG"] = "Microsoft Server Speech Text to Speech Voice (bg-BG, Ivan)",
+ _a["ca-ES"] = "Microsoft Server Speech Text to Speech Voice (ca-ES, HerenaRUS)",
+ _a["cs-CZ"] = "Microsoft Server Speech Text to Speech Voice (cs-CZ, Jakub)",
+ _a["da-DK"] = "Microsoft Server Speech Text to Speech Voice (da-DK, HelleRUS)",
+ _a["de-AT"] = "Microsoft Server Speech Text to Speech Voice (de-AT, Michael)",
+ _a["de-CH"] = "Microsoft Server Speech Text to Speech Voice (de-CH, Karsten)",
+ _a["de-DE"] = "Microsoft Server Speech Text to Speech Voice (de-DE, HeddaRUS)",
+ _a["el-GR"] = "Microsoft Server Speech Text to Speech Voice (el-GR, Stefanos)",
+ _a["en-AU"] = "Microsoft Server Speech Text to Speech Voice (en-AU, HayleyRUS)",
+ _a["en-CA"] = "Microsoft Server Speech Text to Speech Voice (en-CA, HeatherRUS)",
+ _a["en-GB"] = "Microsoft Server Speech Text to Speech Voice (en-GB, HazelRUS)",
+ _a["en-IE"] = "Microsoft Server Speech Text to Speech Voice (en-IE, Sean)",
+ _a["en-IN"] = "Microsoft Server Speech Text to Speech Voice (en-IN, PriyaRUS)",
+ _a["en-US"] = "Microsoft Server Speech Text to Speech Voice (en-US, AriaRUS)",
+ _a["es-ES"] = "Microsoft Server Speech Text to Speech Voice (es-ES, HelenaRUS)",
+ _a["es-MX"] = "Microsoft Server Speech Text to Speech Voice (es-MX, HildaRUS)",
+ _a["fi-FI"] = "Microsoft Server Speech Text to Speech Voice (fi-FI, HeidiRUS)",
+ _a["fr-CA"] = "Microsoft Server Speech Text to Speech Voice (fr-CA, HarmonieRUS)",
+ _a["fr-CH"] = "Microsoft Server Speech Text to Speech Voice (fr-CH, Guillaume)",
+ _a["fr-FR"] = "Microsoft Server Speech Text to Speech Voice (fr-FR, HortenseRUS)",
+ _a["he-IL"] = "Microsoft Server Speech Text to Speech Voice (he-IL, Asaf)",
+ _a["hi-IN"] = "Microsoft Server Speech Text to Speech Voice (hi-IN, Kalpana)",
+ _a["hr-HR"] = "Microsoft Server Speech Text to Speech Voice (hr-HR, Matej)",
+ _a["hu-HU"] = "Microsoft Server Speech Text to Speech Voice (hu-HU, Szabolcs)",
+ _a["id-ID"] = "Microsoft Server Speech Text to Speech Voice (id-ID, Andika)",
+ _a["it-IT"] = "Microsoft Server Speech Text to Speech Voice (it-IT, LuciaRUS)",
+ _a["ja-JP"] = "Microsoft Server Speech Text to Speech Voice (ja-JP, HarukaRUS)",
+ _a["ko-KR"] = "Microsoft Server Speech Text to Speech Voice (ko-KR, HeamiRUS)",
+ _a["ms-MY"] = "Microsoft Server Speech Text to Speech Voice (ms-MY, Rizwan)",
+ _a["nb-NO"] = "Microsoft Server Speech Text to Speech Voice (nb-NO, HuldaRUS)",
+ _a["nl-NL"] = "Microsoft Server Speech Text to Speech Voice (nl-NL, HannaRUS)",
+ _a["pl-PL"] = "Microsoft Server Speech Text to Speech Voice (pl-PL, PaulinaRUS)",
+ _a["pt-BR"] = "Microsoft Server Speech Text to Speech Voice (pt-BR, HeloisaRUS)",
+ _a["pt-PT"] = "Microsoft Server Speech Text to Speech Voice (pt-PT, HeliaRUS)",
+ _a["ro-RO"] = "Microsoft Server Speech Text to Speech Voice (ro-RO, Andrei)",
+ _a["ru-RU"] = "Microsoft Server Speech Text to Speech Voice (ru-RU, EkaterinaRUS)",
+ _a["sk-SK"] = "Microsoft Server Speech Text to Speech Voice (sk-SK, Filip)",
+ _a["sl-SI"] = "Microsoft Server Speech Text to Speech Voice (sl-SI, Lado)",
+ _a["sv-SE"] = "Microsoft Server Speech Text to Speech Voice (sv-SE, HedvigRUS)",
+ _a["ta-IN"] = "Microsoft Server Speech Text to Speech Voice (ta-IN, Valluvar)",
+ _a["te-IN"] = "Microsoft Server Speech Text to Speech Voice (te-IN, Chitra)",
+ _a["th-TH"] = "Microsoft Server Speech Text to Speech Voice (th-TH, Pattara)",
+ _a["tr-TR"] = "Microsoft Server Speech Text to Speech Voice (tr-TR, SedaRUS)",
+ _a["vi-VN"] = "Microsoft Server Speech Text to Speech Voice (vi-VN, An)",
+ _a["zh-CN"] = "Microsoft Server Speech Text to Speech Voice (zh-CN, HuihuiRUS)",
+ _a["zh-HK"] = "Microsoft Server Speech Text to Speech Voice (zh-HK, TracyRUS)",
+ _a["zh-TW"] = "Microsoft Server Speech Text to Speech Voice (zh-TW, HanHanRUS)",
+ _a);
+ var language = this.properties.getProperty(Exports_3.PropertyId.SpeechServiceConnection_SynthLanguage, "en-US");
+ var voice = this.properties.getProperty(Exports_3.PropertyId.SpeechServiceConnection_SynthVoice, "");
+ var ssml = SpeechSynthesizer.XMLEncode(text);
+ if (this.autoDetectSourceLanguage) {
+ language = "en-US";
+ }
+ else {
+ voice = voice || languageToDefaultVoice[language];
+ }
+ if (voice) {
+ ssml = "" + ssml + "";
+ }
+ ssml = "" + ssml + "";
+ return ssml;
+ };
+ /**
+ * Executes speech synthesis on plain text.
+ * The task returns the synthesis result.
+ * @member SpeechSynthesizer.prototype.speakTextAsync
+ * @function
+ * @public
+ * @param text - Text to be synthesized.
+ * @param cb - Callback that received the SpeechSynthesisResult.
+ * @param err - Callback invoked in case of an error.
+ * @param stream - AudioOutputStream to receive the synthesized audio.
+ */
+ SpeechSynthesizer.prototype.speakTextAsync = function (text, cb, err, stream) {
+ this.speakImpl(text, false, cb, err, stream);
+ };
+ /**
+ * Executes speech synthesis on SSML.
+ * The task returns the synthesis result.
+ * @member SpeechSynthesizer.prototype.speakSsmlAsync
+ * @function
+ * @public
+ * @param ssml - SSML to be synthesized.
+ * @param cb - Callback that received the SpeechSynthesisResult.
+ * @param err - Callback invoked in case of an error.
+ * @param stream - AudioOutputStream to receive the synthesized audio.
+ */
+ SpeechSynthesizer.prototype.speakSsmlAsync = function (ssml, cb, err, stream) {
+ this.speakImpl(ssml, true, cb, err, stream);
+ };
+ /**
+ * Dispose of associated resources.
+ * @member SpeechSynthesizer.prototype.close
+ * @function
+ * @public
+ */
+ SpeechSynthesizer.prototype.close = function () {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposed);
+ this.dispose(true);
+ };
+ Object.defineProperty(SpeechSynthesizer.prototype, "internalData", {
+ /**
+ * @Internal
+ * Do not use externally, object returned will change without warning or notice.
+ */
+ get: function () {
+ return this.privAdapter;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ /**
+ * This method performs cleanup of resources.
+ * The Boolean parameter disposing indicates whether the method is called
+ * from Dispose (if disposing is true) or from the finalizer (if disposing is false).
+ * Derived classes should override this method to dispose resource if needed.
+ * @member SpeechSynthesizer.prototype.dispose
+ * @function
+ * @public
+ * @param {boolean} disposing - Flag to request disposal.
+ */
+ SpeechSynthesizer.prototype.dispose = function (disposing) {
+ if (this.privDisposed) {
+ return;
+ }
+ if (disposing) {
+ if (this.privAdapter) {
+ this.privAdapter.dispose();
+ }
+ }
+ this.privDisposed = true;
+ };
+ //
+ // ################################################################################################################
+ // IMPLEMENTATION.
+ // Move to independent class
+ // ################################################################################################################
+ //
+ SpeechSynthesizer.prototype.createSynthesizerConfig = function (speechConfig) {
+ return new Exports_1.SynthesizerConfig(speechConfig, this.privProperties);
+ };
+ // Creates the synthesis adapter
+ SpeechSynthesizer.prototype.createSynthesisAdapter = function (authentication, connectionFactory, audioConfig, synthesizerConfig) {
+ return new Exports_1.SynthesisAdapterBase(authentication, connectionFactory, synthesizerConfig, this, this.audioConfig);
+ };
+ SpeechSynthesizer.prototype.implCommonSynthesizeSetup = function () {
+ var _this = this;
+ var osPlatform = (typeof window !== "undefined") ? "Browser" : "Node";
+ var osName = "unknown";
+ var osVersion = "unknown";
+ if (typeof navigator !== "undefined") {
+ osPlatform = osPlatform + "/" + navigator.platform;
+ osName = navigator.userAgent;
+ osVersion = navigator.appVersion;
+ }
+ var synthesizerConfig = this.createSynthesizerConfig(new Exports_1.SpeechServiceConfig(new Exports_1.Context(new Exports_1.OS(osPlatform, osName, osVersion))));
+ var subscriptionKey = this.privProperties.getProperty(Exports_3.PropertyId.SpeechServiceConnection_Key, undefined);
+ var authentication = (subscriptionKey && subscriptionKey !== "") ?
+ new Exports_1.CognitiveSubscriptionKeyAuthentication(subscriptionKey) :
+ new Exports_1.CognitiveTokenAuthentication(function (authFetchEventId) {
+ var authorizationToken = _this.privProperties.getProperty(Exports_3.PropertyId.SpeechServiceAuthorization_Token, undefined);
+ return Exports_2.PromiseHelper.fromResult(authorizationToken);
+ }, function (authFetchEventId) {
+ var authorizationToken = _this.privProperties.getProperty(Exports_3.PropertyId.SpeechServiceAuthorization_Token, undefined);
+ return Exports_2.PromiseHelper.fromResult(authorizationToken);
+ });
+ this.privAdapter = this.createSynthesisAdapter(authentication, this.privConnectionFactory, this.audioConfig, synthesizerConfig);
+ this.privAdapter.audioOutputFormat = AudioOutputFormat_1.AudioOutputFormatImpl.fromSpeechSynthesisOutputFormat(Exports_3.SpeechSynthesisOutputFormat[this.properties.getProperty(Exports_3.PropertyId.SpeechServiceConnection_SynthOutputFormat, undefined)]);
+ };
+ SpeechSynthesizer.prototype.speakImpl = function (text, IsSsml, cb, err, dataStream) {
+ var _this = this;
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privDisposed);
+ var requestId = Exports_2.createNoDashGuid();
+ var audioDestination = void 0;
+ if (dataStream instanceof Exports_3.PushAudioOutputStreamCallback) {
+ audioDestination = new AudioOutputStream_1.PushAudioOutputStreamImpl(dataStream);
+ }
+ else if (dataStream instanceof Exports_3.PullAudioOutputStream) {
+ audioDestination = dataStream;
+ }
+ else if (dataStream !== undefined) {
+ audioDestination = new AudioFileWriter_1.AudioFileWriter(dataStream);
+ }
+ else {
+ audioDestination = undefined;
+ }
+ this.synthesisRequestQueue.enqueue(new SynthesisRequest(requestId, text, IsSsml, function (e) {
+ _this.privSynthesizing = false;
+ if (!!cb) {
+ try {
+ cb(e);
+ }
+ catch (e) {
+ if (!!err) {
+ err(e);
+ }
+ }
+ }
+ cb = undefined;
+ _this.adapterSpeak();
+ }, function (e) {
+ if (!!err) {
+ err(e);
+ }
+ }, audioDestination));
+ this.adapterSpeak();
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ // Destroy the synthesizer.
+ this.dispose(true);
+ }
+ };
+ SpeechSynthesizer.prototype.adapterSpeak = function () {
+ var _this = this;
+ if (!this.privDisposed && !this.privSynthesizing) {
+ this.privSynthesizing = true;
+ return this.synthesisRequestQueue.dequeue().
+ onSuccessContinueWithPromise(function (request) {
+ return _this.privAdapter.Speak(request.text, request.isSSML, request.requestId, request.cb, request.err, request.dataStream);
+ });
+ }
+ return Exports_2.PromiseHelper.fromResult(true);
+ };
+ SpeechSynthesizer.XMLEncode = function (text) {
+ return text.replace(/&/g, "&")
+ .replace(//g, ">")
+ .replace(/"/g, """)
+ .replace(/'/g, "'");
+ };
+ return SpeechSynthesizer;
+}());
+exports.SpeechSynthesizer = SpeechSynthesizer;
+// tslint:disable-next-line:max-classes-per-file
+var SynthesisRequest = /** @class */ (function () {
+ function SynthesisRequest(requestId, text, isSSML, cb, err, dataStream) {
+ this.requestId = requestId;
+ this.text = text;
+ this.isSSML = isSSML;
+ this.cb = cb;
+ this.err = err;
+ this.dataStream = dataStream;
+ }
+ return SynthesisRequest;
+}());
+exports.SynthesisRequest = SynthesisRequest;
+
+
+
+/***/ }),
+/* 122 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Defines result of speech synthesis.
+ * @class SpeechSynthesisResult
+ * Added in version 1.11.0
+ */
+var SpeechSynthesisResult = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {string} resultId - The result id.
+ * @param {ResultReason} reason - The reason.
+ * @param {number} audioData - The offset into the stream.
+ * @param {string} errorDetails - Error details, if provided.
+ * @param {PropertyCollection} properties - Additional properties, if provided.
+ */
+ function SpeechSynthesisResult(resultId, reason, audioData, errorDetails, properties) {
+ this.privResultId = resultId;
+ this.privReason = reason;
+ this.privAudioData = audioData;
+ this.privErrorDetails = errorDetails;
+ this.privProperties = properties;
+ }
+ Object.defineProperty(SpeechSynthesisResult.prototype, "resultId", {
+ /**
+ * Specifies the result identifier.
+ * @member SpeechSynthesisResult.prototype.resultId
+ * @function
+ * @public
+ * @returns {string} Specifies the result identifier.
+ */
+ get: function () {
+ return this.privResultId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechSynthesisResult.prototype, "reason", {
+ /**
+ * Specifies status of the result.
+ * @member SpeechSynthesisResult.prototype.reason
+ * @function
+ * @public
+ * @returns {ResultReason} Specifies status of the result.
+ */
+ get: function () {
+ return this.privReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechSynthesisResult.prototype, "audioData", {
+ /**
+ * The synthesized audio data
+ * @member SpeechSynthesisResult.prototype.audioData
+ * @function
+ * @public
+ * @returns {ArrayBuffer} The synthesized audio data.
+ */
+ get: function () {
+ return this.privAudioData;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechSynthesisResult.prototype, "errorDetails", {
+ /**
+ * In case of an unsuccessful synthesis, provides details of the occurred error.
+ * @member SpeechSynthesisResult.prototype.errorDetails
+ * @function
+ * @public
+ * @returns {string} a brief description of an error.
+ */
+ get: function () {
+ return this.privErrorDetails;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechSynthesisResult.prototype, "properties", {
+ /**
+ * The set of properties exposed in the result.
+ * @member SpeechSynthesisResult.prototype.properties
+ * @function
+ * @public
+ * @returns {PropertyCollection} The set of properties exposed in the result.
+ */
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeechSynthesisResult;
+}());
+exports.SpeechSynthesisResult = SpeechSynthesisResult;
+
+
+
+/***/ }),
+/* 123 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Defines contents of speech synthesis events.
+ * @class SpeechSynthesisEventArgs
+ * Added in version 1.11.0
+ */
+var SpeechSynthesisEventArgs = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {SpeechSynthesisResult} result - The speech synthesis result.
+ */
+ function SpeechSynthesisEventArgs(result) {
+ this.privResult = result;
+ }
+ Object.defineProperty(SpeechSynthesisEventArgs.prototype, "result", {
+ /**
+ * Specifies the synthesis result.
+ * @member SpeechSynthesisEventArgs.prototype.result
+ * @function
+ * @public
+ * @returns {SpeechSynthesisResult} the synthesis result.
+ */
+ get: function () {
+ return this.privResult;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeechSynthesisEventArgs;
+}());
+exports.SpeechSynthesisEventArgs = SpeechSynthesisEventArgs;
+
+
+
+/***/ }),
+/* 124 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Defines contents of speech synthesis word boundary event.
+ * @class SpeechSynthesisWordBoundaryEventArgs
+ * Added in version 1.11.0
+ */
+var SpeechSynthesisWordBoundaryEventArgs = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param {number} audioOffset - The audio offset.
+ * @param {string} text - The text.
+ * @param {number} wordLength - The length of the word.
+ * @param {number} textOffset - The text offset.
+ */
+ function SpeechSynthesisWordBoundaryEventArgs(audioOffset, text, wordLength, textOffset) {
+ this.privAduioOffset = audioOffset;
+ this.privText = text;
+ this.privWordLength = wordLength;
+ this.privTextOffset = textOffset;
+ }
+ Object.defineProperty(SpeechSynthesisWordBoundaryEventArgs.prototype, "audioOffset", {
+ /**
+ * Specifies the audio offset.
+ * @member SpeechSynthesisWordBoundaryEventArgs.prototype.audioOffset
+ * @function
+ * @public
+ * @returns {number} the audio offset.
+ */
+ get: function () {
+ return this.privAduioOffset;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechSynthesisWordBoundaryEventArgs.prototype, "text", {
+ /**
+ * Specifies the text of the word boundary event.
+ * @member SpeechSynthesisWordBoundaryEventArgs.prototype.text
+ * @function
+ * @public
+ * @returns {string} the text.
+ */
+ get: function () {
+ return this.privText;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechSynthesisWordBoundaryEventArgs.prototype, "wordLength", {
+ /**
+ * Specifies the word length
+ * @member SpeechSynthesisWordBoundaryEventArgs.prototype.wordLength
+ * @function
+ * @public
+ * @returns {number} the word length
+ */
+ get: function () {
+ return this.privWordLength;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechSynthesisWordBoundaryEventArgs.prototype, "textOffset", {
+ /**
+ * Specifies the text offset.
+ * @member SpeechSynthesisWordBoundaryEventArgs.prototype.textOffset
+ * @function
+ * @public
+ * @returns {number} the text offset.
+ */
+ get: function () {
+ return this.privTextOffset;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeechSynthesisWordBoundaryEventArgs;
+}());
+exports.SpeechSynthesisWordBoundaryEventArgs = SpeechSynthesisWordBoundaryEventArgs;
+
+
+
+/***/ }),
+/* 125 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var _a;
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Exports_2 = __webpack_require__(4);
+var AudioOutputFormat_1 = __webpack_require__(44);
+var AudioOutputStream_1 = __webpack_require__(43);
+var MediaDurationPlaceholderSeconds = 60 * 30;
+var AudioFormatToMimeType = (_a = {},
+ _a[AudioOutputFormat_1.AudioFormatTag.PCM] = "audio/wav",
+ _a[AudioOutputFormat_1.AudioFormatTag.MP3] = "audio/mpeg",
+ _a[AudioOutputFormat_1.AudioFormatTag.Opus] = "audio/ogg",
+ _a);
+/**
+ * Represents the speaker playback audio destination, which only works in browser.
+ * Note: the SDK will try to use Media Source Extensions to play audio.
+ * Mp3 format has better supports on Microsoft Edge, Chrome and Safari (desktop), so, it's better to specify mp3 format for playback.
+ * @class SpeakerAudioDestination
+ * Updated in version 1.12.1
+ */
+var SpeakerAudioDestination = /** @class */ (function () {
+ function SpeakerAudioDestination(audioDestinationId) {
+ this.privPlaybackStarted = false;
+ this.privAppendingToBuffer = false;
+ this.privMediaSourceOpened = false;
+ this.privBytesReceived = 0;
+ this.privId = audioDestinationId ? audioDestinationId : Exports_2.createNoDashGuid();
+ this.privIsPaused = false;
+ this.privIsClosed = false;
+ }
+ SpeakerAudioDestination.prototype.id = function () {
+ return this.privId;
+ };
+ SpeakerAudioDestination.prototype.write = function (buffer) {
+ if (this.privAudioBuffer !== undefined) {
+ this.privAudioBuffer.push(buffer);
+ this.updateSourceBuffer();
+ }
+ else if (this.privAudioOutputStream !== undefined) {
+ this.privAudioOutputStream.write(buffer);
+ this.privBytesReceived += buffer.byteLength;
+ }
+ };
+ SpeakerAudioDestination.prototype.close = function () {
+ this.privIsClosed = true;
+ if (this.privSourceBuffer !== undefined) {
+ this.handleSourceBufferUpdateEnd();
+ }
+ else if (this.privAudioOutputStream !== undefined) {
+ var receivedAudio = new ArrayBuffer(this.privBytesReceived);
+ this.privAudioOutputStream.read(receivedAudio);
+ if (this.privFormat.hasHeader) {
+ receivedAudio = Exports_1.SynthesisAdapterBase.addHeader(receivedAudio, this.privFormat);
+ }
+ var audioBlob = new Blob([receivedAudio], { type: AudioFormatToMimeType[this.privFormat.formatTag] });
+ this.privAudio.src = window.URL.createObjectURL(audioBlob);
+ this.notifyPlayback();
+ }
+ };
+ Object.defineProperty(SpeakerAudioDestination.prototype, "format", {
+ set: function (format) {
+ var _this = this;
+ if (typeof (AudioContext) !== "undefined" || typeof (window.webkitAudioContext) !== "undefined") {
+ this.privFormat = format;
+ var mimeType_1 = AudioFormatToMimeType[this.privFormat.formatTag];
+ if (mimeType_1 === undefined) {
+ // tslint:disable-next-line:no-console
+ console.warn("Unknown mimeType for format " + AudioOutputFormat_1.AudioFormatTag[this.privFormat.formatTag] + ".");
+ }
+ else if (typeof (MediaSource) !== "undefined" && MediaSource.isTypeSupported(mimeType_1)) {
+ this.privAudio = new Audio();
+ this.privAudioBuffer = [];
+ this.privMediaSource = new MediaSource();
+ this.privAudio.src = URL.createObjectURL(this.privMediaSource);
+ this.privAudio.load();
+ this.privMediaSource.onsourceopen = function (event) {
+ _this.privMediaSourceOpened = true;
+ _this.privMediaSource.duration = MediaDurationPlaceholderSeconds;
+ _this.privSourceBuffer = _this.privMediaSource.addSourceBuffer(mimeType_1);
+ _this.privSourceBuffer.onupdate = function (_) {
+ _this.updateSourceBuffer();
+ };
+ _this.privSourceBuffer.onupdateend = function (_) {
+ _this.handleSourceBufferUpdateEnd();
+ };
+ _this.privSourceBuffer.onupdatestart = function (_) {
+ _this.privAppendingToBuffer = false;
+ };
+ };
+ this.updateSourceBuffer();
+ }
+ else {
+ // tslint:disable-next-line:no-console
+ console.warn("Format " + AudioOutputFormat_1.AudioFormatTag[this.privFormat.formatTag] + " could not be played by MSE, streaming playback is not enabled.");
+ this.privAudioOutputStream = new AudioOutputStream_1.PullAudioOutputStreamImpl();
+ this.privAudioOutputStream.format = this.privFormat;
+ this.privAudio = new Audio();
+ }
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeakerAudioDestination.prototype, "isClosed", {
+ get: function () {
+ return this.privIsClosed;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeakerAudioDestination.prototype, "currentTime", {
+ get: function () {
+ if (this.privAudio !== undefined) {
+ return this.privAudio.currentTime;
+ }
+ return -1;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ SpeakerAudioDestination.prototype.pause = function () {
+ if (!this.privIsPaused && this.privAudio !== undefined) {
+ this.privAudio.pause();
+ this.privIsPaused = true;
+ }
+ };
+ SpeakerAudioDestination.prototype.resume = function () {
+ if (this.privIsPaused && this.privAudio !== undefined) {
+ this.privAudio.play();
+ this.privIsPaused = false;
+ }
+ };
+ Object.defineProperty(SpeakerAudioDestination.prototype, "internalAudio", {
+ get: function () {
+ return this.privAudio;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ SpeakerAudioDestination.prototype.updateSourceBuffer = function () {
+ if (this.privAudioBuffer !== undefined && (this.privAudioBuffer.length > 0) && this.sourceBufferAvailable()) {
+ this.privAppendingToBuffer = true;
+ var binary = this.privAudioBuffer.shift();
+ try {
+ this.privSourceBuffer.appendBuffer(binary);
+ }
+ catch (error) {
+ this.privAudioBuffer.unshift(binary);
+ // tslint:disable-next-line:no-console
+ console.log("buffer filled, pausing addition of binaries until space is made");
+ return;
+ }
+ this.notifyPlayback();
+ }
+ else if (this.canEndStream()) {
+ this.handleSourceBufferUpdateEnd();
+ }
+ };
+ SpeakerAudioDestination.prototype.handleSourceBufferUpdateEnd = function () {
+ if (this.canEndStream() && this.sourceBufferAvailable()) {
+ this.privMediaSource.endOfStream();
+ this.notifyPlayback();
+ }
+ };
+ SpeakerAudioDestination.prototype.notifyPlayback = function () {
+ var _this = this;
+ if (!this.privPlaybackStarted && this.privAudio !== undefined) {
+ this.privAudio.onended = function () {
+ if (!!_this.onAudioEnd) {
+ _this.onAudioEnd(_this);
+ }
+ };
+ if (!this.privIsPaused) {
+ this.privAudio.play();
+ }
+ this.privPlaybackStarted = true;
+ }
+ };
+ SpeakerAudioDestination.prototype.canEndStream = function () {
+ return (this.isClosed && this.privSourceBuffer !== undefined && (this.privAudioBuffer.length === 0)
+ && this.privMediaSourceOpened && !this.privAppendingToBuffer && this.privMediaSource.readyState === "open");
+ };
+ SpeakerAudioDestination.prototype.sourceBufferAvailable = function () {
+ return (this.privSourceBuffer !== undefined && !this.privSourceBuffer.updating);
+ };
+ return SpeakerAudioDestination;
+}());
+exports.SpeakerAudioDestination = SpeakerAudioDestination;
+
+
+
+/***/ }),
+/* 126 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var SpeechRecognitionEvent = /** @class */ (function (_super) {
+ __extends(SpeechRecognitionEvent, _super);
+ function SpeechRecognitionEvent(eventName, requestId, sessionId, eventType) {
+ if (eventType === void 0) { eventType = Exports_1.EventType.Info; }
+ var _this = _super.call(this, eventName, eventType) || this;
+ _this.privRequestId = requestId;
+ _this.privSessionId = sessionId;
+ return _this;
+ }
+ Object.defineProperty(SpeechRecognitionEvent.prototype, "requestId", {
+ get: function () {
+ return this.privRequestId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechRecognitionEvent.prototype, "sessionId", {
+ get: function () {
+ return this.privSessionId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeechRecognitionEvent;
+}(Exports_1.PlatformEvent));
+exports.SpeechRecognitionEvent = SpeechRecognitionEvent;
+// tslint:disable-next-line:max-classes-per-file
+var RecognitionTriggeredEvent = /** @class */ (function (_super) {
+ __extends(RecognitionTriggeredEvent, _super);
+ function RecognitionTriggeredEvent(requestId, sessionId, audioSourceId, audioNodeId) {
+ var _this = _super.call(this, "RecognitionTriggeredEvent", requestId, sessionId) || this;
+ _this.privAudioSourceId = audioSourceId;
+ _this.privAudioNodeId = audioNodeId;
+ return _this;
+ }
+ Object.defineProperty(RecognitionTriggeredEvent.prototype, "audioSourceId", {
+ get: function () {
+ return this.privAudioSourceId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionTriggeredEvent.prototype, "audioNodeId", {
+ get: function () {
+ return this.privAudioNodeId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return RecognitionTriggeredEvent;
+}(SpeechRecognitionEvent));
+exports.RecognitionTriggeredEvent = RecognitionTriggeredEvent;
+// tslint:disable-next-line:max-classes-per-file
+var ListeningStartedEvent = /** @class */ (function (_super) {
+ __extends(ListeningStartedEvent, _super);
+ function ListeningStartedEvent(requestId, sessionId, audioSourceId, audioNodeId) {
+ var _this = _super.call(this, "ListeningStartedEvent", requestId, sessionId) || this;
+ _this.privAudioSourceId = audioSourceId;
+ _this.privAudioNodeId = audioNodeId;
+ return _this;
+ }
+ Object.defineProperty(ListeningStartedEvent.prototype, "audioSourceId", {
+ get: function () {
+ return this.privAudioSourceId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ListeningStartedEvent.prototype, "audioNodeId", {
+ get: function () {
+ return this.privAudioNodeId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ListeningStartedEvent;
+}(SpeechRecognitionEvent));
+exports.ListeningStartedEvent = ListeningStartedEvent;
+// tslint:disable-next-line:max-classes-per-file
+var ConnectingToServiceEvent = /** @class */ (function (_super) {
+ __extends(ConnectingToServiceEvent, _super);
+ function ConnectingToServiceEvent(requestId, authFetchEventid, sessionId) {
+ var _this = _super.call(this, "ConnectingToServiceEvent", requestId, sessionId) || this;
+ _this.privAuthFetchEventid = authFetchEventid;
+ return _this;
+ }
+ Object.defineProperty(ConnectingToServiceEvent.prototype, "authFetchEventid", {
+ get: function () {
+ return this.privAuthFetchEventid;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConnectingToServiceEvent;
+}(SpeechRecognitionEvent));
+exports.ConnectingToServiceEvent = ConnectingToServiceEvent;
+// tslint:disable-next-line:max-classes-per-file
+var RecognitionStartedEvent = /** @class */ (function (_super) {
+ __extends(RecognitionStartedEvent, _super);
+ function RecognitionStartedEvent(requestId, audioSourceId, audioNodeId, authFetchEventId, sessionId) {
+ var _this = _super.call(this, "RecognitionStartedEvent", requestId, sessionId) || this;
+ _this.privAudioSourceId = audioSourceId;
+ _this.privAudioNodeId = audioNodeId;
+ _this.privAuthFetchEventId = authFetchEventId;
+ return _this;
+ }
+ Object.defineProperty(RecognitionStartedEvent.prototype, "audioSourceId", {
+ get: function () {
+ return this.privAudioSourceId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionStartedEvent.prototype, "audioNodeId", {
+ get: function () {
+ return this.privAudioNodeId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionStartedEvent.prototype, "authFetchEventId", {
+ get: function () {
+ return this.privAuthFetchEventId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return RecognitionStartedEvent;
+}(SpeechRecognitionEvent));
+exports.RecognitionStartedEvent = RecognitionStartedEvent;
+var RecognitionCompletionStatus;
+(function (RecognitionCompletionStatus) {
+ RecognitionCompletionStatus[RecognitionCompletionStatus["Success"] = 0] = "Success";
+ RecognitionCompletionStatus[RecognitionCompletionStatus["AudioSourceError"] = 1] = "AudioSourceError";
+ RecognitionCompletionStatus[RecognitionCompletionStatus["AudioSourceTimeout"] = 2] = "AudioSourceTimeout";
+ RecognitionCompletionStatus[RecognitionCompletionStatus["AuthTokenFetchError"] = 3] = "AuthTokenFetchError";
+ RecognitionCompletionStatus[RecognitionCompletionStatus["AuthTokenFetchTimeout"] = 4] = "AuthTokenFetchTimeout";
+ RecognitionCompletionStatus[RecognitionCompletionStatus["UnAuthorized"] = 5] = "UnAuthorized";
+ RecognitionCompletionStatus[RecognitionCompletionStatus["ConnectTimeout"] = 6] = "ConnectTimeout";
+ RecognitionCompletionStatus[RecognitionCompletionStatus["ConnectError"] = 7] = "ConnectError";
+ RecognitionCompletionStatus[RecognitionCompletionStatus["ClientRecognitionActivityTimeout"] = 8] = "ClientRecognitionActivityTimeout";
+ RecognitionCompletionStatus[RecognitionCompletionStatus["UnknownError"] = 9] = "UnknownError";
+})(RecognitionCompletionStatus = exports.RecognitionCompletionStatus || (exports.RecognitionCompletionStatus = {}));
+// tslint:disable-next-line:max-classes-per-file
+var RecognitionEndedEvent = /** @class */ (function (_super) {
+ __extends(RecognitionEndedEvent, _super);
+ function RecognitionEndedEvent(requestId, audioSourceId, audioNodeId, authFetchEventId, sessionId, serviceTag, status, error) {
+ var _this = _super.call(this, "RecognitionEndedEvent", requestId, sessionId, status === RecognitionCompletionStatus.Success ? Exports_1.EventType.Info : Exports_1.EventType.Error) || this;
+ _this.privAudioSourceId = audioSourceId;
+ _this.privAudioNodeId = audioNodeId;
+ _this.privAuthFetchEventId = authFetchEventId;
+ _this.privStatus = status;
+ _this.privError = error;
+ _this.privServiceTag = serviceTag;
+ return _this;
+ }
+ Object.defineProperty(RecognitionEndedEvent.prototype, "audioSourceId", {
+ get: function () {
+ return this.privAudioSourceId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionEndedEvent.prototype, "audioNodeId", {
+ get: function () {
+ return this.privAudioNodeId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionEndedEvent.prototype, "authFetchEventId", {
+ get: function () {
+ return this.privAuthFetchEventId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionEndedEvent.prototype, "serviceTag", {
+ get: function () {
+ return this.privServiceTag;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionEndedEvent.prototype, "status", {
+ get: function () {
+ return this.privStatus;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognitionEndedEvent.prototype, "error", {
+ get: function () {
+ return this.privError;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return RecognitionEndedEvent;
+}(SpeechRecognitionEvent));
+exports.RecognitionEndedEvent = RecognitionEndedEvent;
+
+
+
+/***/ }),
+/* 127 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(2);
+var Exports_2 = __webpack_require__(4);
+var Exports_3 = __webpack_require__(31);
+var Exports_4 = __webpack_require__(26);
+var SpeechConnectionMessage_Internal_1 = __webpack_require__(128);
+var ServiceRecognizerBase = /** @class */ (function () {
+ function ServiceRecognizerBase(authentication, connectionFactory, audioSource, recognizerConfig, recognizer) {
+ var _this = this;
+ this.privSetTimeout = setTimeout;
+ this.recognizeOverride = undefined;
+ this.disconnectOverride = undefined;
+ this.sendTelemetryData = function () {
+ var telemetryData = _this.privRequestSession.getTelemetry();
+ if (ServiceRecognizerBase.telemetryDataEnabled !== true ||
+ _this.privIsDisposed ||
+ null === telemetryData) {
+ return Exports_2.PromiseHelper.fromResult(true);
+ }
+ if (!!ServiceRecognizerBase.telemetryData) {
+ try {
+ ServiceRecognizerBase.telemetryData(telemetryData);
+ /* tslint:disable:no-empty */
+ }
+ catch (_a) { }
+ }
+ return _this.fetchConnection().onSuccessContinueWith(function (connection) {
+ return connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(Exports_2.MessageType.Text, "telemetry", _this.privRequestSession.requestId, "application/json", telemetryData));
+ });
+ };
+ this.receiveMessageOverride = undefined;
+ this.receiveMessage = function () {
+ return _this.fetchConnection().on(function (connection) {
+ return connection.read()
+ .onSuccessContinueWithPromise(function (message) {
+ if (_this.receiveMessageOverride !== undefined) {
+ return _this.receiveMessageOverride();
+ }
+ if (_this.privIsDisposed) {
+ // We're done.
+ return Exports_2.PromiseHelper.fromResult(undefined);
+ }
+ // indicates we are draining the queue and it came with no message;
+ if (!message) {
+ if (!_this.privRequestSession.isRecognizing) {
+ return Exports_2.PromiseHelper.fromResult(true);
+ }
+ else {
+ return _this.receiveMessage();
+ }
+ }
+ _this.privServiceHasSentMessage = true;
+ var connectionMessage = SpeechConnectionMessage_Internal_1.SpeechConnectionMessage.fromConnectionMessage(message);
+ if (connectionMessage.requestId.toLowerCase() === _this.privRequestSession.requestId.toLowerCase()) {
+ switch (connectionMessage.path.toLowerCase()) {
+ case "turn.start":
+ _this.privMustReportEndOfStream = true;
+ _this.privRequestSession.onServiceTurnStartResponse();
+ break;
+ case "speech.startdetected":
+ var speechStartDetected = Exports_4.SpeechDetected.fromJSON(connectionMessage.textBody);
+ var speechStartEventArgs = new Exports_3.RecognitionEventArgs(speechStartDetected.Offset, _this.privRequestSession.sessionId);
+ if (!!_this.privRecognizer.speechStartDetected) {
+ _this.privRecognizer.speechStartDetected(_this.privRecognizer, speechStartEventArgs);
+ }
+ break;
+ case "speech.enddetected":
+ var json = void 0;
+ if (connectionMessage.textBody.length > 0) {
+ json = connectionMessage.textBody;
+ }
+ else {
+ // If the request was empty, the JSON returned is empty.
+ json = "{ Offset: 0 }";
+ }
+ var speechStopDetected = Exports_4.SpeechDetected.fromJSON(json);
+ // Only shrink the buffers for continuous recognition.
+ // For single shot, the speech.phrase message will come after the speech.end and it should own buffer shrink.
+ if (_this.privRecognizerConfig.isContinuousRecognition) {
+ _this.privRequestSession.onServiceRecognized(speechStopDetected.Offset + _this.privRequestSession.currentTurnAudioOffset);
+ }
+ var speechStopEventArgs = new Exports_3.RecognitionEventArgs(speechStopDetected.Offset + _this.privRequestSession.currentTurnAudioOffset, _this.privRequestSession.sessionId);
+ if (!!_this.privRecognizer.speechEndDetected) {
+ _this.privRecognizer.speechEndDetected(_this.privRecognizer, speechStopEventArgs);
+ }
+ break;
+ case "turn.end":
+ _this.sendTelemetryData();
+ if (_this.privRequestSession.isSpeechEnded && _this.privMustReportEndOfStream) {
+ _this.privMustReportEndOfStream = false;
+ _this.cancelRecognitionLocal(Exports_3.CancellationReason.EndOfStream, Exports_3.CancellationErrorCode.NoError, undefined);
+ }
+ var sessionStopEventArgs = new Exports_3.SessionEventArgs(_this.privRequestSession.sessionId);
+ _this.privRequestSession.onServiceTurnEndResponse(_this.privRecognizerConfig.isContinuousRecognition);
+ if (!_this.privRecognizerConfig.isContinuousRecognition || _this.privRequestSession.isSpeechEnded || !_this.privRequestSession.isRecognizing) {
+ if (!!_this.privRecognizer.sessionStopped) {
+ _this.privRecognizer.sessionStopped(_this.privRecognizer, sessionStopEventArgs);
+ }
+ return Exports_2.PromiseHelper.fromResult(true);
+ }
+ else {
+ _this.fetchConnection().onSuccessContinueWith(function (connection) {
+ _this.sendSpeechContext(connection);
+ _this.sendWaveHeader(connection);
+ });
+ }
+ break;
+ default:
+ if (!_this.processTypeSpecificMessages(connectionMessage)) {
+ // here are some messages that the derived class has not processed, dispatch them to connect class
+ if (!!_this.privServiceEvents) {
+ _this.serviceEvents.onEvent(new Exports_2.ServiceEvent(connectionMessage.path.toLowerCase(), connectionMessage.textBody));
+ }
+ }
+ }
+ }
+ return _this.receiveMessage();
+ });
+ }, function (error) {
+ });
+ };
+ this.sendSpeechContext = function (connection) {
+ var speechContextJson = _this.speechContext.toJSON();
+ if (speechContextJson) {
+ return connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(Exports_2.MessageType.Text, "speech.context", _this.privRequestSession.requestId, "application/json", speechContextJson));
+ }
+ return Exports_2.PromiseHelper.fromResult(true);
+ };
+ this.connectImplOverride = undefined;
+ this.configConnectionOverride = undefined;
+ this.fetchConnectionOverride = undefined;
+ this.sendSpeechServiceConfig = function (connection, requestSession, SpeechServiceConfigJson) {
+ // filter out anything that is not required for the service to work.
+ if (ServiceRecognizerBase.telemetryDataEnabled !== true) {
+ var withTelemetry = JSON.parse(SpeechServiceConfigJson);
+ var replacement = {
+ context: {
+ system: withTelemetry.context.system,
+ },
+ };
+ SpeechServiceConfigJson = JSON.stringify(replacement);
+ }
+ if (SpeechServiceConfigJson) { // && this.privConnectionId !== this.privSpeechServiceConfigConnectionId) {
+ // this.privSpeechServiceConfigConnectionId = this.privConnectionId;
+ return connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(Exports_2.MessageType.Text, "speech.config", requestSession.requestId, "application/json", SpeechServiceConfigJson));
+ }
+ return Exports_2.PromiseHelper.fromResult(true);
+ };
+ this.sendAudio = function (audioStreamNode) {
+ return _this.audioSource.format.onSuccessContinueWithPromise(function (audioFormat) {
+ // NOTE: Home-baked promises crash ios safari during the invocation
+ // of the error callback chain (looks like the recursion is way too deep, and
+ // it blows up the stack). The following construct is a stop-gap that does not
+ // bubble the error up the callback chain and hence circumvents this problem.
+ // TODO: rewrite with ES6 promises.
+ var deferred = new Exports_2.Deferred();
+ // The time we last sent data to the service.
+ var nextSendTime = Date.now();
+ // Max amount to send before we start to throttle
+ var fastLaneSizeMs = _this.privRecognizerConfig.parameters.getProperty("SPEECH-TransmitLengthBeforThrottleMs", "5000");
+ var maxSendUnthrottledBytes = audioFormat.avgBytesPerSec / 1000 * parseInt(fastLaneSizeMs, 10);
+ var startRecogNumber = _this.privRequestSession.recogNumber;
+ var readAndUploadCycle = function () {
+ // If speech is done, stop sending audio.
+ if (!_this.privIsDisposed &&
+ !_this.privRequestSession.isSpeechEnded &&
+ _this.privRequestSession.isRecognizing &&
+ _this.privRequestSession.recogNumber === startRecogNumber) {
+ _this.fetchConnection().on(function (connection) {
+ audioStreamNode.read().on(function (audioStreamChunk) {
+ // we have a new audio chunk to upload.
+ if (_this.privRequestSession.isSpeechEnded) {
+ // If service already recognized audio end then don't send any more audio
+ deferred.resolve(true);
+ return;
+ }
+ var payload;
+ var sendDelay;
+ if (!audioStreamChunk || audioStreamChunk.isEnd) {
+ payload = null;
+ sendDelay = 0;
+ }
+ else {
+ payload = audioStreamChunk.buffer;
+ _this.privRequestSession.onAudioSent(payload.byteLength);
+ if (maxSendUnthrottledBytes >= _this.privRequestSession.bytesSent) {
+ sendDelay = 0;
+ }
+ else {
+ sendDelay = Math.max(0, nextSendTime - Date.now());
+ }
+ }
+ // Are we ready to send, or need we delay more?
+ _this.privSetTimeout(function () {
+ var _a;
+ if (payload !== null) {
+ nextSendTime = Date.now() + (payload.byteLength * 1000 / (audioFormat.avgBytesPerSec * 2));
+ }
+ var uploaded = connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(Exports_2.MessageType.Binary, "audio", _this.privRequestSession.requestId, null, payload));
+ if (!((_a = audioStreamChunk) === null || _a === void 0 ? void 0 : _a.isEnd)) {
+ uploaded.continueWith(function (_) {
+ // this.writeBufferToConsole(payload);
+ // Regardless of success or failure, schedule the next upload.
+ // If the underlying connection was broken, the next cycle will
+ // get a new connection and re-transmit missing audio automatically.
+ readAndUploadCycle();
+ });
+ }
+ else {
+ // the audio stream has been closed, no need to schedule next
+ // read-upload cycle.
+ _this.privRequestSession.onSpeechEnded();
+ deferred.resolve(true);
+ }
+ }, sendDelay);
+ }, function (error) {
+ if (_this.privRequestSession.isSpeechEnded) {
+ // For whatever reason, Reject is used to remove queue subscribers inside
+ // the Queue.DrainAndDispose invoked from DetachAudioNode down below, which
+ // means that sometimes things can be rejected in normal circumstances, without
+ // any errors.
+ deferred.resolve(true); // TODO: remove the argument, it's is completely meaningless.
+ }
+ else {
+ // Only reject, if there was a proper error.
+ deferred.reject(error);
+ }
+ });
+ }, function (error) {
+ deferred.reject(error);
+ });
+ }
+ };
+ readAndUploadCycle();
+ return deferred.promise();
+ });
+ };
+ this.fetchConnection = function () {
+ if (_this.fetchConnectionOverride !== undefined) {
+ return _this.fetchConnectionOverride();
+ }
+ return _this.configureConnection();
+ };
+ if (!authentication) {
+ throw new Exports_2.ArgumentNullError("authentication");
+ }
+ if (!connectionFactory) {
+ throw new Exports_2.ArgumentNullError("connectionFactory");
+ }
+ if (!audioSource) {
+ throw new Exports_2.ArgumentNullError("audioSource");
+ }
+ if (!recognizerConfig) {
+ throw new Exports_2.ArgumentNullError("recognizerConfig");
+ }
+ this.privMustReportEndOfStream = false;
+ this.privAuthentication = authentication;
+ this.privConnectionFactory = connectionFactory;
+ this.privAudioSource = audioSource;
+ this.privRecognizerConfig = recognizerConfig;
+ this.privIsDisposed = false;
+ this.privRecognizer = recognizer;
+ this.privRequestSession = new Exports_4.RequestSession(this.privAudioSource.id());
+ this.privConnectionEvents = new Exports_2.EventSource();
+ this.privServiceEvents = new Exports_2.EventSource();
+ this.privDynamicGrammar = new Exports_4.DynamicGrammarBuilder();
+ this.privSpeechContext = new Exports_4.SpeechContext(this.privDynamicGrammar);
+ this.privAgentConfig = new Exports_4.AgentConfig();
+ if (typeof (Blob) !== "undefined" && typeof (Worker) !== "undefined") {
+ this.privSetTimeout = Exports_2.Timeout.setTimeout;
+ }
+ }
+ Object.defineProperty(ServiceRecognizerBase.prototype, "audioSource", {
+ get: function () {
+ return this.privAudioSource;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ServiceRecognizerBase.prototype, "speechContext", {
+ get: function () {
+ return this.privSpeechContext;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ServiceRecognizerBase.prototype, "dynamicGrammar", {
+ get: function () {
+ return this.privDynamicGrammar;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ServiceRecognizerBase.prototype, "agentConfig", {
+ get: function () {
+ return this.privAgentConfig;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ServiceRecognizerBase.prototype, "conversationTranslatorToken", {
+ set: function (token) {
+ this.privRecognizerConfig.parameters.setProperty(Exports_3.PropertyId.ConversationTranslator_Token, token);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ServiceRecognizerBase.prototype.isDisposed = function () {
+ return this.privIsDisposed;
+ };
+ ServiceRecognizerBase.prototype.dispose = function (reason) {
+ this.privIsDisposed = true;
+ if (this.privConnectionConfigurationPromise) {
+ this.privConnectionConfigurationPromise.onSuccessContinueWith(function (connection) {
+ connection.dispose(reason);
+ });
+ }
+ };
+ Object.defineProperty(ServiceRecognizerBase.prototype, "connectionEvents", {
+ get: function () {
+ return this.privConnectionEvents;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ServiceRecognizerBase.prototype, "serviceEvents", {
+ get: function () {
+ return this.privServiceEvents;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ServiceRecognizerBase.prototype, "recognitionMode", {
+ get: function () {
+ return this.privRecognizerConfig.recognitionMode;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ServiceRecognizerBase.prototype.recognize = function (recoMode, successCallback, errorCallBack) {
+ var _this = this;
+ if (this.recognizeOverride !== undefined) {
+ return this.recognizeOverride(recoMode, successCallback, errorCallBack);
+ }
+ // Clear the existing configuration promise to force a re-transmission of config and context.
+ this.privConnectionConfigurationPromise = null;
+ this.privRecognizerConfig.recognitionMode = recoMode;
+ this.privSuccessCallback = successCallback;
+ this.privErrorCallback = errorCallBack;
+ this.privRequestSession.startNewRecognition();
+ this.privRequestSession.listenForServiceTelemetry(this.privAudioSource.events);
+ // Start the connection to the service. The promise this will create is stored and will be used by configureConnection().
+ this.connectImpl();
+ return this.audioSource
+ .attach(this.privRequestSession.audioNodeId)
+ .onSuccessContinueWithPromise(function (result) {
+ var audioNode;
+ return _this.audioSource.format.onSuccessContinueWithPromise(function (format) {
+ audioNode = new Exports_1.ReplayableAudioNode(result, format.avgBytesPerSec);
+ _this.privRequestSession.onAudioSourceAttachCompleted(audioNode, false);
+ return _this.audioSource.deviceInfo.onSuccessContinueWithPromise(function (deviceInfo) {
+ _this.privRecognizerConfig.SpeechServiceConfig.Context.audio = { source: deviceInfo };
+ return _this.configureConnection()
+ .continueWithPromise(function (result) {
+ if (result.isError) {
+ _this.cancelRecognitionLocal(Exports_3.CancellationReason.Error, Exports_3.CancellationErrorCode.ConnectionFailure, result.error);
+ return Exports_2.PromiseHelper.fromError(result.error);
+ }
+ var sessionStartEventArgs = new Exports_3.SessionEventArgs(_this.privRequestSession.sessionId);
+ if (!!_this.privRecognizer.sessionStarted) {
+ _this.privRecognizer.sessionStarted(_this.privRecognizer, sessionStartEventArgs);
+ }
+ var messageRetrievalPromise = _this.receiveMessage();
+ var audioSendPromise = _this.sendAudio(audioNode);
+ /* tslint:disable:no-empty */
+ audioSendPromise.on(function (_) { }, function (error) {
+ _this.cancelRecognitionLocal(Exports_3.CancellationReason.Error, Exports_3.CancellationErrorCode.RuntimeError, error);
+ });
+ return Exports_2.PromiseHelper.fromResult(true);
+ });
+ });
+ });
+ });
+ };
+ ServiceRecognizerBase.prototype.stopRecognizing = function () {
+ var _this = this;
+ if (this.privRequestSession.isRecognizing) {
+ this.audioSource.turnOff();
+ return this.sendFinalAudio().onSuccessContinueWithPromise(function (_) {
+ _this.privRequestSession.onStopRecognizing();
+ return _this.privRequestSession.turnCompletionPromise.onSuccessContinueWith(function (_) {
+ _this.privRequestSession.onStopRecognizing();
+ _this.privRequestSession.dispose();
+ return true;
+ });
+ });
+ }
+ return Exports_2.PromiseHelper.fromResult(true);
+ };
+ ServiceRecognizerBase.prototype.connect = function () {
+ this.connectImpl().result();
+ };
+ ServiceRecognizerBase.prototype.connectAsync = function (cb, err) {
+ this.connectImpl().continueWith(function (promiseResult) {
+ try {
+ if (promiseResult.isError) {
+ if (!!err) {
+ err(promiseResult.error);
+ }
+ }
+ else if (promiseResult.isCompleted) {
+ if (!!cb) {
+ cb();
+ }
+ }
+ }
+ catch (e) {
+ if (!!err) {
+ err(e);
+ }
+ }
+ });
+ };
+ ServiceRecognizerBase.prototype.disconnect = function () {
+ if (this.disconnectOverride !== undefined) {
+ this.disconnectOverride();
+ return;
+ }
+ this.cancelRecognitionLocal(Exports_3.CancellationReason.Error, Exports_3.CancellationErrorCode.NoError, "Disconnecting");
+ if (this.privConnectionPromise.result().isCompleted) {
+ if (!this.privConnectionPromise.result().isError) {
+ this.privConnectionPromise.result().result.dispose();
+ this.privConnectionPromise = null;
+ }
+ }
+ else {
+ this.privConnectionPromise.onSuccessContinueWith(function (connection) {
+ connection.dispose();
+ });
+ }
+ };
+ ServiceRecognizerBase.prototype.disconnectAsync = function (cb, err) {
+ try {
+ if (this.disconnectOverride !== undefined) {
+ this.disconnectOverride();
+ if (!!cb) {
+ cb();
+ }
+ return;
+ }
+ this.cancelRecognitionLocal(Exports_3.CancellationReason.Error, Exports_3.CancellationErrorCode.NoError, "Disconnecting");
+ this.privConnectionPromise.continueWith(function (result) {
+ try {
+ if (result.isError) {
+ if (!!err) {
+ err(result.error);
+ }
+ }
+ else if (result.isCompleted) {
+ result.result.dispose();
+ if (!!cb) {
+ cb();
+ }
+ }
+ }
+ catch (e) {
+ if (!!err) {
+ err(e);
+ }
+ }
+ });
+ }
+ catch (e) {
+ if (!!err) {
+ err(e);
+ }
+ }
+ };
+ ServiceRecognizerBase.prototype.sendMessage = function (message) { };
+ ServiceRecognizerBase.prototype.sendNetworkMessage = function (path, payload, success, err) {
+ var _this = this;
+ var type = typeof payload === "string" ? Exports_2.MessageType.Text : Exports_2.MessageType.Binary;
+ var contentType = typeof payload === "string" ? "application/json" : "";
+ this.fetchConnection().on(function (connection) {
+ connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(type, path, _this.privRequestSession.requestId, contentType, payload)).on(function () {
+ if (!!success) {
+ success();
+ }
+ }, function (error) {
+ if (!!err) {
+ err(error);
+ }
+ });
+ }, function (error) {
+ if (!!err) {
+ err(error);
+ }
+ });
+ };
+ Object.defineProperty(ServiceRecognizerBase.prototype, "activityTemplate", {
+ get: function () { return this.privActivityTemplate; },
+ set: function (messagePayload) { this.privActivityTemplate = messagePayload; },
+ enumerable: true,
+ configurable: true
+ });
+ // Cancels recognition.
+ ServiceRecognizerBase.prototype.cancelRecognitionLocal = function (cancellationReason, errorCode, error) {
+ if (!!this.privRequestSession.isRecognizing) {
+ this.privRequestSession.onStopRecognizing();
+ this.cancelRecognition(this.privRequestSession.sessionId, this.privRequestSession.requestId, cancellationReason, errorCode, error);
+ }
+ };
+ ServiceRecognizerBase.prototype.sendWaveHeader = function (connection) {
+ var _this = this;
+ return this.audioSource.format.onSuccessContinueWithPromise(function (format) {
+ // this.writeBufferToConsole(format.header);
+ return connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(Exports_2.MessageType.Binary, "audio", _this.privRequestSession.requestId, "audio/x-wav", format.header));
+ });
+ };
+ // Establishes a websocket connection to the end point.
+ ServiceRecognizerBase.prototype.connectImpl = function (isUnAuthorized) {
+ var _this = this;
+ if (isUnAuthorized === void 0) { isUnAuthorized = false; }
+ if (this.connectImplOverride !== undefined) {
+ return this.connectImplOverride(isUnAuthorized);
+ }
+ if (this.privConnectionPromise) {
+ if (this.privConnectionPromise.result().isCompleted &&
+ (this.privConnectionPromise.result().isError
+ || this.privConnectionPromise.result().result.state() === Exports_2.ConnectionState.Disconnected) &&
+ this.privServiceHasSentMessage === true) {
+ this.privConnectionId = null;
+ this.privConnectionPromise = null;
+ this.privServiceHasSentMessage = false;
+ return this.connectImpl();
+ }
+ else {
+ return this.privConnectionPromise;
+ }
+ }
+ this.privAuthFetchEventId = Exports_2.createNoDashGuid();
+ this.privConnectionId = Exports_2.createNoDashGuid();
+ this.privRequestSession.onPreConnectionStart(this.privAuthFetchEventId, this.privConnectionId);
+ var authPromise = isUnAuthorized ? this.privAuthentication.fetchOnExpiry(this.privAuthFetchEventId) : this.privAuthentication.fetch(this.privAuthFetchEventId);
+ this.privConnectionPromise = authPromise
+ .continueWithPromise(function (result) {
+ if (result.isError) {
+ _this.privRequestSession.onAuthCompleted(true, result.error);
+ throw new Error(result.error);
+ }
+ else {
+ _this.privRequestSession.onAuthCompleted(false);
+ }
+ var connection = _this.privConnectionFactory.create(_this.privRecognizerConfig, result.result, _this.privConnectionId);
+ _this.privRequestSession.listenForServiceTelemetry(connection.events);
+ // Attach to the underlying event. No need to hold onto the detach pointers as in the event the connection goes away,
+ // it'll stop sending events.
+ connection.events.attach(function (event) {
+ _this.connectionEvents.onEvent(event);
+ });
+ return connection.open().onSuccessContinueWithPromise(function (response) {
+ if (response.statusCode === 200) {
+ _this.privRequestSession.onPreConnectionStart(_this.privAuthFetchEventId, _this.privConnectionId);
+ _this.privRequestSession.onConnectionEstablishCompleted(response.statusCode);
+ return Exports_2.PromiseHelper.fromResult(connection);
+ }
+ else if (response.statusCode === 403 && !isUnAuthorized) {
+ return _this.connectImpl(true);
+ }
+ else {
+ _this.privRequestSession.onConnectionEstablishCompleted(response.statusCode, response.reason);
+ return Exports_2.PromiseHelper.fromError("Unable to contact server. StatusCode: " + response.statusCode + ", " + _this.privRecognizerConfig.parameters.getProperty(Exports_3.PropertyId.SpeechServiceConnection_Endpoint) + " Reason: " + response.reason);
+ }
+ });
+ });
+ return this.privConnectionPromise;
+ };
+ ServiceRecognizerBase.prototype.writeBufferToConsole = function (buffer) {
+ var out = "Buffer Size: ";
+ if (null === buffer) {
+ out += "null";
+ }
+ else {
+ var readView = new Uint8Array(buffer);
+ out += buffer.byteLength + "\r\n";
+ for (var i = 0; i < buffer.byteLength; i++) {
+ out += readView[i].toString(16).padStart(2, "0") + " ";
+ }
+ }
+ // tslint:disable-next-line:no-console
+ console.info(out);
+ };
+ ServiceRecognizerBase.prototype.sendFinalAudio = function () {
+ var _this = this;
+ var deferred = new Exports_2.Deferred();
+ this.fetchConnection().on(function (connection) {
+ connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(Exports_2.MessageType.Binary, "audio", _this.privRequestSession.requestId, null, null)).on(function (_) {
+ deferred.resolve(true);
+ }, function (error) {
+ deferred.reject(error);
+ });
+ }, function (error) {
+ deferred.reject(error);
+ });
+ return deferred.promise();
+ };
+ // Takes an established websocket connection to the endpoint and sends speech configuration information.
+ ServiceRecognizerBase.prototype.configureConnection = function () {
+ var _this = this;
+ if (this.configConnectionOverride !== undefined) {
+ return this.configConnectionOverride();
+ }
+ if (this.privConnectionConfigurationPromise) {
+ if (this.privConnectionConfigurationPromise.result().isCompleted &&
+ (this.privConnectionConfigurationPromise.result().isError
+ || this.privConnectionConfigurationPromise.result().result.state() === Exports_2.ConnectionState.Disconnected)) {
+ this.privConnectionConfigurationPromise = null;
+ return this.configureConnection();
+ }
+ else {
+ return this.privConnectionConfigurationPromise;
+ }
+ }
+ this.privConnectionConfigurationPromise = this.connectImpl().onSuccessContinueWithPromise(function (connection) {
+ return _this.sendSpeechServiceConfig(connection, _this.privRequestSession, _this.privRecognizerConfig.SpeechServiceConfig.serialize())
+ .onSuccessContinueWithPromise(function (_) {
+ return _this.sendSpeechContext(connection).onSuccessContinueWithPromise(function (_) {
+ return _this.sendWaveHeader(connection).onSuccessContinueWith(function (_) {
+ return connection;
+ });
+ });
+ });
+ });
+ return this.privConnectionConfigurationPromise;
+ };
+ ServiceRecognizerBase.telemetryDataEnabled = true;
+ return ServiceRecognizerBase;
+}());
+exports.ServiceRecognizerBase = ServiceRecognizerBase;
+
+
+
+/***/ }),
+/* 128 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var PathHeaderName = "Path";
+var ContentTypeHeaderName = "Content-Type";
+var RequestIdHeaderName = "X-RequestId";
+var RequestTimestampHeaderName = "X-Timestamp";
+var RequestStreamIdHeaderName = "x-streamid";
+var SpeechConnectionMessage = /** @class */ (function (_super) {
+ __extends(SpeechConnectionMessage, _super);
+ function SpeechConnectionMessage(messageType, path, requestId, contentType, body, streamId, additionalHeaders, id) {
+ var _this = this;
+ if (!path) {
+ throw new Exports_1.ArgumentNullError("path");
+ }
+ if (!requestId) {
+ throw new Exports_1.ArgumentNullError("requestId");
+ }
+ var headers = {};
+ headers[PathHeaderName] = path;
+ headers[RequestIdHeaderName] = requestId;
+ headers[RequestTimestampHeaderName] = new Date().toISOString();
+ if (contentType) {
+ headers[ContentTypeHeaderName] = contentType;
+ }
+ if (streamId) {
+ headers[RequestStreamIdHeaderName] = streamId;
+ }
+ if (additionalHeaders) {
+ for (var headerName in additionalHeaders) {
+ if (headerName) {
+ headers[headerName] = additionalHeaders[headerName];
+ }
+ }
+ }
+ if (id) {
+ _this = _super.call(this, messageType, body, headers, id) || this;
+ }
+ else {
+ _this = _super.call(this, messageType, body, headers) || this;
+ }
+ _this.privPath = path;
+ _this.privRequestId = requestId;
+ _this.privContentType = contentType;
+ _this.privStreamId = streamId;
+ _this.privAdditionalHeaders = additionalHeaders;
+ return _this;
+ }
+ Object.defineProperty(SpeechConnectionMessage.prototype, "path", {
+ get: function () {
+ return this.privPath;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechConnectionMessage.prototype, "requestId", {
+ get: function () {
+ return this.privRequestId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechConnectionMessage.prototype, "contentType", {
+ get: function () {
+ return this.privContentType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechConnectionMessage.prototype, "streamId", {
+ get: function () {
+ return this.privStreamId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechConnectionMessage.prototype, "additionalHeaders", {
+ get: function () {
+ return this.privAdditionalHeaders;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ SpeechConnectionMessage.fromConnectionMessage = function (message) {
+ var path = null;
+ var requestId = null;
+ var contentType = null;
+ var requestTimestamp = null;
+ var streamId = null;
+ var additionalHeaders = {};
+ if (message.headers) {
+ for (var headerName in message.headers) {
+ if (headerName) {
+ if (headerName.toLowerCase() === PathHeaderName.toLowerCase()) {
+ path = message.headers[headerName];
+ }
+ else if (headerName.toLowerCase() === RequestIdHeaderName.toLowerCase()) {
+ requestId = message.headers[headerName];
+ }
+ else if (headerName.toLowerCase() === RequestTimestampHeaderName.toLowerCase()) {
+ requestTimestamp = message.headers[headerName];
+ }
+ else if (headerName.toLowerCase() === ContentTypeHeaderName.toLowerCase()) {
+ contentType = message.headers[headerName];
+ }
+ else if (headerName.toLowerCase() === RequestStreamIdHeaderName.toLowerCase()) {
+ streamId = message.headers[headerName];
+ }
+ else {
+ additionalHeaders[headerName] = message.headers[headerName];
+ }
+ }
+ }
+ }
+ return new SpeechConnectionMessage(message.messageType, path, requestId, contentType, message.body, streamId, additionalHeaders, message.id);
+ };
+ return SpeechConnectionMessage;
+}(Exports_1.ConnectionMessage));
+exports.SpeechConnectionMessage = SpeechConnectionMessage;
+
+
+
+/***/ }),
+/* 129 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+var RecognitionMode;
+(function (RecognitionMode) {
+ RecognitionMode[RecognitionMode["Interactive"] = 0] = "Interactive";
+ RecognitionMode[RecognitionMode["Conversation"] = 1] = "Conversation";
+ RecognitionMode[RecognitionMode["Dictation"] = 2] = "Dictation";
+})(RecognitionMode = exports.RecognitionMode || (exports.RecognitionMode = {}));
+var SpeechResultFormat;
+(function (SpeechResultFormat) {
+ SpeechResultFormat[SpeechResultFormat["Simple"] = 0] = "Simple";
+ SpeechResultFormat[SpeechResultFormat["Detailed"] = 1] = "Detailed";
+})(SpeechResultFormat = exports.SpeechResultFormat || (exports.SpeechResultFormat = {}));
+var RecognizerConfig = /** @class */ (function () {
+ function RecognizerConfig(speechServiceConfig, parameters) {
+ this.privRecognitionMode = RecognitionMode.Interactive;
+ this.privSpeechServiceConfig = speechServiceConfig ? speechServiceConfig : new SpeechServiceConfig(new Context(null));
+ this.privParameters = parameters;
+ }
+ Object.defineProperty(RecognizerConfig.prototype, "parameters", {
+ get: function () {
+ return this.privParameters;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognizerConfig.prototype, "recognitionMode", {
+ get: function () {
+ return this.privRecognitionMode;
+ },
+ set: function (value) {
+ this.privRecognitionMode = value;
+ this.privRecognitionActivityTimeout = value === RecognitionMode.Interactive ? 8000 : 25000;
+ this.privSpeechServiceConfig.Recognition = RecognitionMode[value];
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognizerConfig.prototype, "SpeechServiceConfig", {
+ get: function () {
+ return this.privSpeechServiceConfig;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognizerConfig.prototype, "recognitionActivityTimeout", {
+ get: function () {
+ return this.privRecognitionActivityTimeout;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognizerConfig.prototype, "isContinuousRecognition", {
+ get: function () {
+ return this.privRecognitionMode !== RecognitionMode.Interactive;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RecognizerConfig.prototype, "autoDetectSourceLanguages", {
+ get: function () {
+ return this.parameters.getProperty(Exports_1.PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages, undefined);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return RecognizerConfig;
+}());
+exports.RecognizerConfig = RecognizerConfig;
+// The config is serialized and sent as the Speech.Config
+// tslint:disable-next-line:max-classes-per-file
+var SpeechServiceConfig = /** @class */ (function () {
+ function SpeechServiceConfig(context) {
+ var _this = this;
+ this.serialize = function () {
+ return JSON.stringify(_this, function (key, value) {
+ if (value && typeof value === "object") {
+ var replacement = {};
+ for (var k in value) {
+ if (Object.hasOwnProperty.call(value, k)) {
+ replacement[k && k.charAt(0).toLowerCase() + k.substring(1)] = value[k];
+ }
+ }
+ return replacement;
+ }
+ return value;
+ });
+ };
+ this.context = context;
+ }
+ Object.defineProperty(SpeechServiceConfig.prototype, "Context", {
+ get: function () {
+ return this.context;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechServiceConfig.prototype, "Recognition", {
+ get: function () {
+ return this.recognition;
+ },
+ set: function (value) {
+ this.recognition = value.toLowerCase();
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeechServiceConfig;
+}());
+exports.SpeechServiceConfig = SpeechServiceConfig;
+// tslint:disable-next-line:max-classes-per-file
+var Context = /** @class */ (function () {
+ function Context(os) {
+ this.system = new System();
+ this.os = os;
+ }
+ return Context;
+}());
+exports.Context = Context;
+// tslint:disable-next-line:max-classes-per-file
+var System = /** @class */ (function () {
+ function System() {
+ // Note: below will be patched for official builds.
+ var SPEECHSDK_CLIENTSDK_VERSION = "1.13.0";
+ this.name = "SpeechSDK";
+ this.version = SPEECHSDK_CLIENTSDK_VERSION;
+ this.build = "JavaScript";
+ this.lang = "JavaScript";
+ }
+ return System;
+}());
+exports.System = System;
+// tslint:disable-next-line:max-classes-per-file
+var OS = /** @class */ (function () {
+ function OS(platform, name, version) {
+ this.platform = platform;
+ this.name = name;
+ this.version = version;
+ }
+ return OS;
+}());
+exports.OS = OS;
+// tslint:disable-next-line:max-classes-per-file
+var Device = /** @class */ (function () {
+ function Device(manufacturer, model, version) {
+ this.manufacturer = manufacturer;
+ this.model = model;
+ this.version = version;
+ }
+ return Device;
+}());
+exports.Device = Device;
+var connectivity;
+(function (connectivity) {
+ connectivity["Bluetooth"] = "Bluetooth";
+ connectivity["Wired"] = "Wired";
+ connectivity["WiFi"] = "WiFi";
+ connectivity["Cellular"] = "Cellular";
+ connectivity["InBuilt"] = "InBuilt";
+ connectivity["Unknown"] = "Unknown";
+})(connectivity = exports.connectivity || (exports.connectivity = {}));
+var type;
+(function (type) {
+ type["Phone"] = "Phone";
+ type["Speaker"] = "Speaker";
+ type["Car"] = "Car";
+ type["Headset"] = "Headset";
+ type["Thermostat"] = "Thermostat";
+ type["Microphones"] = "Microphones";
+ type["Deskphone"] = "Deskphone";
+ type["RemoteControl"] = "RemoteControl";
+ type["Unknown"] = "Unknown";
+ type["File"] = "File";
+ type["Stream"] = "Stream";
+})(type = exports.type || (exports.type = {}));
+
+
+
+/***/ }),
+/* 130 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var CRLF = "\r\n";
+var WebsocketMessageFormatter = /** @class */ (function () {
+ function WebsocketMessageFormatter() {
+ var _this = this;
+ this.toConnectionMessage = function (message) {
+ var deferral = new Exports_1.Deferred();
+ try {
+ if (message.messageType === Exports_1.MessageType.Text) {
+ var textMessage = message.textContent;
+ var headers = {};
+ var body = null;
+ if (textMessage) {
+ var headerBodySplit = textMessage.split("\r\n\r\n");
+ if (headerBodySplit && headerBodySplit.length > 0) {
+ headers = _this.parseHeaders(headerBodySplit[0]);
+ if (headerBodySplit.length > 1) {
+ body = headerBodySplit[1];
+ }
+ }
+ }
+ deferral.resolve(new Exports_1.ConnectionMessage(message.messageType, body, headers, message.id));
+ }
+ else if (message.messageType === Exports_1.MessageType.Binary) {
+ var binaryMessage = message.binaryContent;
+ var headers = {};
+ var body = null;
+ if (!binaryMessage || binaryMessage.byteLength < 2) {
+ throw new Error("Invalid binary message format. Header length missing.");
+ }
+ var dataView = new DataView(binaryMessage);
+ var headerLength = dataView.getInt16(0);
+ if (binaryMessage.byteLength < headerLength + 2) {
+ throw new Error("Invalid binary message format. Header content missing.");
+ }
+ var headersString = "";
+ for (var i = 0; i < headerLength; i++) {
+ headersString += String.fromCharCode((dataView).getInt8(i + 2));
+ }
+ headers = _this.parseHeaders(headersString);
+ if (binaryMessage.byteLength > headerLength + 2) {
+ body = binaryMessage.slice(2 + headerLength);
+ }
+ deferral.resolve(new Exports_1.ConnectionMessage(message.messageType, body, headers, message.id));
+ }
+ }
+ catch (e) {
+ deferral.reject("Error formatting the message. Error: " + e);
+ }
+ return deferral.promise();
+ };
+ this.fromConnectionMessage = function (message) {
+ var deferral = new Exports_1.Deferred();
+ try {
+ if (message.messageType === Exports_1.MessageType.Text) {
+ var payload = "" + _this.makeHeaders(message) + CRLF + (message.textBody ? message.textBody : "");
+ deferral.resolve(new Exports_1.RawWebsocketMessage(Exports_1.MessageType.Text, payload, message.id));
+ }
+ else if (message.messageType === Exports_1.MessageType.Binary) {
+ var headersString = _this.makeHeaders(message);
+ var content = message.binaryBody;
+ var headerInt8Array = new Int8Array(_this.stringToArrayBuffer(headersString));
+ var payload = new ArrayBuffer(2 + headerInt8Array.byteLength + (content ? content.byteLength : 0));
+ var dataView = new DataView(payload);
+ dataView.setInt16(0, headerInt8Array.length);
+ for (var i = 0; i < headerInt8Array.byteLength; i++) {
+ dataView.setInt8(2 + i, headerInt8Array[i]);
+ }
+ if (content) {
+ var bodyInt8Array = new Int8Array(content);
+ for (var i = 0; i < bodyInt8Array.byteLength; i++) {
+ dataView.setInt8(2 + headerInt8Array.byteLength + i, bodyInt8Array[i]);
+ }
+ }
+ deferral.resolve(new Exports_1.RawWebsocketMessage(Exports_1.MessageType.Binary, payload, message.id));
+ }
+ }
+ catch (e) {
+ deferral.reject("Error formatting the message. " + e);
+ }
+ return deferral.promise();
+ };
+ this.makeHeaders = function (message) {
+ var headersString = "";
+ if (message.headers) {
+ for (var header in message.headers) {
+ if (header) {
+ headersString += header + ": " + message.headers[header] + CRLF;
+ }
+ }
+ }
+ return headersString;
+ };
+ this.parseHeaders = function (headersString) {
+ var headers = {};
+ if (headersString) {
+ var headerMatches = headersString.match(/[^\r\n]+/g);
+ if (headers) {
+ for (var _i = 0, headerMatches_1 = headerMatches; _i < headerMatches_1.length; _i++) {
+ var header = headerMatches_1[_i];
+ if (header) {
+ var separatorIndex = header.indexOf(":");
+ var headerName = separatorIndex > 0 ? header.substr(0, separatorIndex).trim().toLowerCase() : header;
+ var headerValue = separatorIndex > 0 && header.length > (separatorIndex + 1) ?
+ header.substr(separatorIndex + 1).trim() :
+ "";
+ headers[headerName] = headerValue;
+ }
+ }
+ }
+ }
+ return headers;
+ };
+ this.stringToArrayBuffer = function (str) {
+ var buffer = new ArrayBuffer(str.length);
+ var view = new DataView(buffer);
+ for (var i = 0; i < str.length; i++) {
+ view.setUint8(i, str.charCodeAt(i));
+ }
+ return buffer;
+ };
+ }
+ return WebsocketMessageFormatter;
+}());
+exports.WebsocketMessageFormatter = WebsocketMessageFormatter;
+
+
+
+/***/ }),
+/* 131 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(2);
+var Exports_2 = __webpack_require__(31);
+var ConnectionFactoryBase_1 = __webpack_require__(72);
+var Exports_3 = __webpack_require__(26);
+var QueryParameterNames_1 = __webpack_require__(73);
+var TestHooksParamName = "testhooks";
+var ConnectionIdHeader = "X-ConnectionId";
+var TranslationConnectionFactory = /** @class */ (function (_super) {
+ __extends(TranslationConnectionFactory, _super);
+ function TranslationConnectionFactory() {
+ var _this = _super !== null && _super.apply(this, arguments) || this;
+ _this.create = function (config, authInfo, connectionId) {
+ var endpoint = config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Endpoint, undefined);
+ if (!endpoint) {
+ var region = config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Region, undefined);
+ var hostSuffix = (region && region.toLowerCase().startsWith("china")) ? ".azure.cn" : ".microsoft.com";
+ var host = config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Host, "wss://" + region + ".s2s.speech" + hostSuffix);
+ endpoint = host + "/speech/translation/cognitiveservices/v1";
+ }
+ var queryParams = {
+ from: config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_RecoLanguage),
+ to: config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_TranslationToLanguages),
+ };
+ _this.setCommonUrlParams(config, queryParams, endpoint);
+ _this.setUrlParameter(Exports_2.PropertyId.SpeechServiceResponse_TranslationRequestStablePartialResult, QueryParameterNames_1.QueryParameterNames.StableTranslation, config, queryParams, endpoint);
+ var voiceName = "voice";
+ var featureName = "features";
+ if (config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_TranslationVoice, undefined) !== undefined) {
+ queryParams[voiceName] = config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_TranslationVoice);
+ queryParams[featureName] = "texttospeech";
+ }
+ var headers = {};
+ if (authInfo.token !== undefined && authInfo.token !== "") {
+ headers[authInfo.headerName] = authInfo.token;
+ }
+ headers[ConnectionIdHeader] = connectionId;
+ config.parameters.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Url, endpoint);
+ return new Exports_1.WebsocketConnection(endpoint, queryParams, headers, new Exports_3.WebsocketMessageFormatter(), Exports_1.ProxyInfo.fromRecognizerConfig(config), connectionId);
+ };
+ return _this;
+ }
+ return TranslationConnectionFactory;
+}(ConnectionFactoryBase_1.ConnectionFactoryBase));
+exports.TranslationConnectionFactory = TranslationConnectionFactory;
+
+
+
+/***/ }),
+/* 132 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(2);
+var Exports_2 = __webpack_require__(31);
+var Exports_3 = __webpack_require__(26);
+var QueryParameterNames_1 = __webpack_require__(73);
+var SpeechSynthesisConnectionFactory = /** @class */ (function () {
+ function SpeechSynthesisConnectionFactory() {
+ var _this = this;
+ this.synthesisUri = "/cognitiveservices/websocket/v1";
+ this.create = function (config, authInfo, connectionId) {
+ var endpoint = config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Endpoint, undefined);
+ var region = config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Region, undefined);
+ var hostSuffix = (region && region.toLowerCase().startsWith("china")) ? ".azure.cn" : ".microsoft.com";
+ var host = config.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Host, "wss://" + region + ".tts.speech" + hostSuffix);
+ var queryParams = {};
+ if (!endpoint) {
+ endpoint = host + _this.synthesisUri;
+ }
+ var headers = {};
+ if (authInfo.token !== undefined && authInfo.token !== "") {
+ headers[authInfo.headerName] = authInfo.token;
+ }
+ headers[QueryParameterNames_1.QueryParameterNames.ConnectionIdHeader] = connectionId;
+ config.parameters.setProperty(Exports_2.PropertyId.SpeechServiceConnection_Url, endpoint);
+ return new Exports_1.WebsocketConnection(endpoint, queryParams, headers, new Exports_3.WebsocketMessageFormatter(), Exports_1.ProxyInfo.fromParameters(config.parameters), connectionId);
+ };
+ }
+ return SpeechSynthesisConnectionFactory;
+}());
+exports.SpeechSynthesisConnectionFactory = SpeechSynthesisConnectionFactory;
+
+
+
+/***/ }),
+/* 133 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+var Exports_2 = __webpack_require__(26);
+var EnumTranslation = /** @class */ (function () {
+ function EnumTranslation() {
+ }
+ EnumTranslation.implTranslateRecognitionResult = function (recognitionStatus) {
+ var reason = Exports_1.ResultReason.Canceled;
+ switch (recognitionStatus) {
+ case Exports_2.RecognitionStatus.Success:
+ reason = Exports_1.ResultReason.RecognizedSpeech;
+ break;
+ case Exports_2.RecognitionStatus.NoMatch:
+ case Exports_2.RecognitionStatus.InitialSilenceTimeout:
+ case Exports_2.RecognitionStatus.BabbleTimeout:
+ case Exports_2.RecognitionStatus.EndOfDictation:
+ reason = Exports_1.ResultReason.NoMatch;
+ break;
+ case Exports_2.RecognitionStatus.Error:
+ default:
+ reason = Exports_1.ResultReason.Canceled;
+ break;
+ }
+ return reason;
+ };
+ EnumTranslation.implTranslateCancelResult = function (recognitionStatus) {
+ var reason = Exports_1.CancellationReason.EndOfStream;
+ switch (recognitionStatus) {
+ case Exports_2.RecognitionStatus.Success:
+ case Exports_2.RecognitionStatus.EndOfDictation:
+ case Exports_2.RecognitionStatus.NoMatch:
+ reason = Exports_1.CancellationReason.EndOfStream;
+ break;
+ case Exports_2.RecognitionStatus.InitialSilenceTimeout:
+ case Exports_2.RecognitionStatus.BabbleTimeout:
+ case Exports_2.RecognitionStatus.Error:
+ default:
+ reason = Exports_1.CancellationReason.Error;
+ break;
+ }
+ return reason;
+ };
+ EnumTranslation.implTranslateCancelErrorCode = function (recognitionStatus) {
+ var reason = Exports_1.CancellationErrorCode.NoError;
+ switch (recognitionStatus) {
+ case Exports_2.RecognitionStatus.Error:
+ reason = Exports_1.CancellationErrorCode.ServiceError;
+ break;
+ case Exports_2.RecognitionStatus.TooManyRequests:
+ reason = Exports_1.CancellationErrorCode.TooManyRequests;
+ break;
+ default:
+ reason = Exports_1.CancellationErrorCode.NoError;
+ break;
+ }
+ return reason;
+ };
+ return EnumTranslation;
+}());
+exports.EnumTranslation = EnumTranslation;
+
+
+
+/***/ }),
+/* 134 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * @class SynthesisStatus
+ * @private
+ */
+var SynthesisStatus;
+(function (SynthesisStatus) {
+ /**
+ * The response contains valid audio data.
+ * @member SynthesisStatus.Success
+ */
+ SynthesisStatus[SynthesisStatus["Success"] = 0] = "Success";
+ /**
+ * Indicates the end of audio data. No valid audio data is included in the message.
+ * @member SynthesisStatus.SynthesisEnd
+ */
+ SynthesisStatus[SynthesisStatus["SynthesisEnd"] = 1] = "SynthesisEnd";
+ /**
+ * Indicates an error occurred during synthesis data processing.
+ * @member SynthesisStatus.Error
+ */
+ SynthesisStatus[SynthesisStatus["Error"] = 2] = "Error";
+})(SynthesisStatus = exports.SynthesisStatus || (exports.SynthesisStatus = {}));
+var RecognitionStatus;
+(function (RecognitionStatus) {
+ RecognitionStatus[RecognitionStatus["Success"] = 0] = "Success";
+ RecognitionStatus[RecognitionStatus["NoMatch"] = 1] = "NoMatch";
+ RecognitionStatus[RecognitionStatus["InitialSilenceTimeout"] = 2] = "InitialSilenceTimeout";
+ RecognitionStatus[RecognitionStatus["BabbleTimeout"] = 3] = "BabbleTimeout";
+ RecognitionStatus[RecognitionStatus["Error"] = 4] = "Error";
+ RecognitionStatus[RecognitionStatus["EndOfDictation"] = 5] = "EndOfDictation";
+ RecognitionStatus[RecognitionStatus["TooManyRequests"] = 6] = "TooManyRequests";
+})(RecognitionStatus = exports.RecognitionStatus || (exports.RecognitionStatus = {}));
+
+
+
+/***/ }),
+/* 135 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var TranslationSynthesisEnd = /** @class */ (function () {
+ function TranslationSynthesisEnd(json) {
+ this.privSynthesisEnd = JSON.parse(json);
+ this.privSynthesisEnd.SynthesisStatus = Exports_1.SynthesisStatus[this.privSynthesisEnd.SynthesisStatus];
+ }
+ TranslationSynthesisEnd.fromJSON = function (json) {
+ return new TranslationSynthesisEnd(json);
+ };
+ Object.defineProperty(TranslationSynthesisEnd.prototype, "SynthesisStatus", {
+ get: function () {
+ return this.privSynthesisEnd.SynthesisStatus;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationSynthesisEnd.prototype, "FailureReason", {
+ get: function () {
+ return this.privSynthesisEnd.FailureReason;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return TranslationSynthesisEnd;
+}());
+exports.TranslationSynthesisEnd = TranslationSynthesisEnd;
+
+
+
+/***/ }),
+/* 136 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var TranslationStatus_1 = __webpack_require__(21);
+var TranslationHypothesis = /** @class */ (function () {
+ function TranslationHypothesis(json) {
+ this.privTranslationHypothesis = JSON.parse(json);
+ this.privTranslationHypothesis.Translation.TranslationStatus = TranslationStatus_1.TranslationStatus[this.privTranslationHypothesis.Translation.TranslationStatus];
+ }
+ TranslationHypothesis.fromJSON = function (json) {
+ return new TranslationHypothesis(json);
+ };
+ Object.defineProperty(TranslationHypothesis.prototype, "Duration", {
+ get: function () {
+ return this.privTranslationHypothesis.Duration;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationHypothesis.prototype, "Offset", {
+ get: function () {
+ return this.privTranslationHypothesis.Offset;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationHypothesis.prototype, "Text", {
+ get: function () {
+ return this.privTranslationHypothesis.Text;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationHypothesis.prototype, "Translation", {
+ get: function () {
+ return this.privTranslationHypothesis.Translation;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return TranslationHypothesis;
+}());
+exports.TranslationHypothesis = TranslationHypothesis;
+
+
+
+/***/ }),
+/* 137 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var TranslationStatus_1 = __webpack_require__(21);
+var TranslationPhrase = /** @class */ (function () {
+ function TranslationPhrase(json) {
+ this.privTranslationPhrase = JSON.parse(json);
+ this.privTranslationPhrase.RecognitionStatus = Exports_1.RecognitionStatus[this.privTranslationPhrase.RecognitionStatus];
+ if (this.privTranslationPhrase.Translation !== undefined) {
+ this.privTranslationPhrase.Translation.TranslationStatus = TranslationStatus_1.TranslationStatus[this.privTranslationPhrase.Translation.TranslationStatus];
+ }
+ }
+ TranslationPhrase.fromJSON = function (json) {
+ return new TranslationPhrase(json);
+ };
+ Object.defineProperty(TranslationPhrase.prototype, "RecognitionStatus", {
+ get: function () {
+ return this.privTranslationPhrase.RecognitionStatus;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationPhrase.prototype, "Offset", {
+ get: function () {
+ return this.privTranslationPhrase.Offset;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationPhrase.prototype, "Duration", {
+ get: function () {
+ return this.privTranslationPhrase.Duration;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationPhrase.prototype, "Text", {
+ get: function () {
+ return this.privTranslationPhrase.Text;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TranslationPhrase.prototype, "Translation", {
+ get: function () {
+ return this.privTranslationPhrase.Translation;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return TranslationPhrase;
+}());
+exports.TranslationPhrase = TranslationPhrase;
+
+
+
+/***/ }),
+/* 138 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var Exports_2 = __webpack_require__(31);
+var Exports_3 = __webpack_require__(26);
+// tslint:disable-next-line:max-classes-per-file
+var TranslationServiceRecognizer = /** @class */ (function (_super) {
+ __extends(TranslationServiceRecognizer, _super);
+ function TranslationServiceRecognizer(authentication, connectionFactory, audioSource, recognizerConfig, translationRecognizer) {
+ var _this = _super.call(this, authentication, connectionFactory, audioSource, recognizerConfig, translationRecognizer) || this;
+ _this.privTranslationRecognizer = translationRecognizer;
+ return _this;
+ }
+ TranslationServiceRecognizer.prototype.processTypeSpecificMessages = function (connectionMessage) {
+ var resultProps = new Exports_2.PropertyCollection();
+ var processed = false;
+ if (connectionMessage.messageType === Exports_1.MessageType.Text) {
+ resultProps.setProperty(Exports_2.PropertyId.SpeechServiceResponse_JsonResult, connectionMessage.textBody);
+ }
+ switch (connectionMessage.path.toLowerCase()) {
+ case "translation.hypothesis":
+ var result = this.fireEventForResult(Exports_3.TranslationHypothesis.fromJSON(connectionMessage.textBody), resultProps);
+ this.privRequestSession.onHypothesis(this.privRequestSession.currentTurnAudioOffset + result.offset);
+ if (!!this.privTranslationRecognizer.recognizing) {
+ try {
+ this.privTranslationRecognizer.recognizing(this.privTranslationRecognizer, result);
+ /* tslint:disable:no-empty */
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ processed = true;
+ break;
+ case "translation.phrase":
+ var translatedPhrase = Exports_3.TranslationPhrase.fromJSON(connectionMessage.textBody);
+ this.privRequestSession.onPhraseRecognized(this.privRequestSession.currentTurnAudioOffset + translatedPhrase.Offset + translatedPhrase.Duration);
+ if (translatedPhrase.RecognitionStatus === Exports_3.RecognitionStatus.Success) {
+ // OK, the recognition was successful. How'd the translation do?
+ var result_1 = this.fireEventForResult(translatedPhrase, resultProps);
+ if (!!this.privTranslationRecognizer.recognized) {
+ try {
+ this.privTranslationRecognizer.recognized(this.privTranslationRecognizer, result_1);
+ /* tslint:disable:no-empty */
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ // report result to promise.
+ if (!!this.privSuccessCallback) {
+ try {
+ this.privSuccessCallback(result_1.result);
+ }
+ catch (e) {
+ if (!!this.privErrorCallback) {
+ this.privErrorCallback(e);
+ }
+ }
+ // Only invoke the call back once.
+ // and if it's successful don't invoke the
+ // error after that.
+ this.privSuccessCallback = undefined;
+ this.privErrorCallback = undefined;
+ }
+ break;
+ }
+ else {
+ var reason = Exports_3.EnumTranslation.implTranslateRecognitionResult(translatedPhrase.RecognitionStatus);
+ var result_2 = new Exports_2.TranslationRecognitionResult(undefined, this.privRequestSession.requestId, reason, translatedPhrase.Text, translatedPhrase.Duration, this.privRequestSession.currentTurnAudioOffset + translatedPhrase.Offset, undefined, connectionMessage.textBody, resultProps);
+ if (reason === Exports_2.ResultReason.Canceled) {
+ var cancelReason = Exports_3.EnumTranslation.implTranslateCancelResult(translatedPhrase.RecognitionStatus);
+ this.cancelRecognitionLocal(cancelReason, Exports_3.EnumTranslation.implTranslateCancelErrorCode(translatedPhrase.RecognitionStatus), undefined);
+ }
+ else {
+ if (!(this.privRequestSession.isSpeechEnded && reason === Exports_2.ResultReason.NoMatch && translatedPhrase.RecognitionStatus !== Exports_3.RecognitionStatus.InitialSilenceTimeout)) {
+ var ev = new Exports_2.TranslationRecognitionEventArgs(result_2, result_2.offset, this.privRequestSession.sessionId);
+ if (!!this.privTranslationRecognizer.recognized) {
+ try {
+ this.privTranslationRecognizer.recognized(this.privTranslationRecognizer, ev);
+ /* tslint:disable:no-empty */
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ }
+ // report result to promise.
+ if (!!this.privSuccessCallback) {
+ try {
+ this.privSuccessCallback(result_2);
+ }
+ catch (e) {
+ if (!!this.privErrorCallback) {
+ this.privErrorCallback(e);
+ }
+ }
+ // Only invoke the call back once.
+ // and if it's successful don't invoke the
+ // error after that.
+ this.privSuccessCallback = undefined;
+ this.privErrorCallback = undefined;
+ }
+ }
+ }
+ processed = true;
+ break;
+ case "translation.synthesis":
+ this.sendSynthesisAudio(connectionMessage.binaryBody, this.privRequestSession.sessionId);
+ processed = true;
+ break;
+ case "translation.synthesis.end":
+ var synthEnd = Exports_3.TranslationSynthesisEnd.fromJSON(connectionMessage.textBody);
+ switch (synthEnd.SynthesisStatus) {
+ case Exports_3.SynthesisStatus.Error:
+ if (!!this.privTranslationRecognizer.synthesizing) {
+ var result_3 = new Exports_2.TranslationSynthesisResult(Exports_2.ResultReason.Canceled, undefined);
+ var retEvent = new Exports_2.TranslationSynthesisEventArgs(result_3, this.privRequestSession.sessionId);
+ try {
+ this.privTranslationRecognizer.synthesizing(this.privTranslationRecognizer, retEvent);
+ /* tslint:disable:no-empty */
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ if (!!this.privTranslationRecognizer.canceled) {
+ // And raise a canceled event to send the rich(er) error message back.
+ var canceledResult = new Exports_2.TranslationRecognitionCanceledEventArgs(this.privRequestSession.sessionId, Exports_2.CancellationReason.Error, synthEnd.FailureReason, Exports_2.CancellationErrorCode.ServiceError, null);
+ try {
+ this.privTranslationRecognizer.canceled(this.privTranslationRecognizer, canceledResult);
+ /* tslint:disable:no-empty */
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ break;
+ case Exports_3.SynthesisStatus.Success:
+ this.sendSynthesisAudio(undefined, this.privRequestSession.sessionId);
+ break;
+ default:
+ break;
+ }
+ processed = true;
+ break;
+ default:
+ break;
+ }
+ return processed;
+ };
+ // Cancels recognition.
+ TranslationServiceRecognizer.prototype.cancelRecognition = function (sessionId, requestId, cancellationReason, errorCode, error) {
+ var properties = new Exports_2.PropertyCollection();
+ properties.setProperty(Exports_3.CancellationErrorCodePropertyName, Exports_2.CancellationErrorCode[errorCode]);
+ if (!!this.privTranslationRecognizer.canceled) {
+ var cancelEvent = new Exports_2.TranslationRecognitionCanceledEventArgs(sessionId, cancellationReason, error, errorCode, undefined);
+ try {
+ this.privTranslationRecognizer.canceled(this.privTranslationRecognizer, cancelEvent);
+ /* tslint:disable:no-empty */
+ }
+ catch (_a) { }
+ }
+ if (!!this.privSuccessCallback) {
+ var result = new Exports_2.TranslationRecognitionResult(undefined, // Translations
+ requestId, Exports_2.ResultReason.Canceled, undefined, // Text
+ undefined, // Druation
+ undefined, // Offset
+ error, undefined, // Json
+ properties);
+ try {
+ this.privSuccessCallback(result);
+ /* tslint:disable:no-empty */
+ this.privSuccessCallback = undefined;
+ }
+ catch (_b) { }
+ }
+ };
+ TranslationServiceRecognizer.prototype.fireEventForResult = function (serviceResult, properties) {
+ var translations;
+ if (undefined !== serviceResult.Translation.Translations) {
+ translations = new Exports_2.Translations();
+ for (var _i = 0, _a = serviceResult.Translation.Translations; _i < _a.length; _i++) {
+ var translation = _a[_i];
+ translations.set(translation.Language, translation.Text);
+ }
+ }
+ var resultReason;
+ if (serviceResult instanceof Exports_3.TranslationPhrase) {
+ if (serviceResult.Translation.TranslationStatus === Exports_1.TranslationStatus.Success) {
+ resultReason = Exports_2.ResultReason.TranslatedSpeech;
+ }
+ else {
+ resultReason = Exports_2.ResultReason.RecognizedSpeech;
+ }
+ }
+ else {
+ resultReason = Exports_2.ResultReason.TranslatingSpeech;
+ }
+ var offset = serviceResult.Offset + this.privRequestSession.currentTurnAudioOffset;
+ var result = new Exports_2.TranslationRecognitionResult(translations, this.privRequestSession.requestId, resultReason, serviceResult.Text, serviceResult.Duration, offset, serviceResult.Translation.FailureReason, JSON.stringify(serviceResult), properties);
+ var ev = new Exports_2.TranslationRecognitionEventArgs(result, offset, this.privRequestSession.sessionId);
+ return ev;
+ };
+ TranslationServiceRecognizer.prototype.sendSynthesisAudio = function (audio, sessionId) {
+ var reason = (undefined === audio) ? Exports_2.ResultReason.SynthesizingAudioCompleted : Exports_2.ResultReason.SynthesizingAudio;
+ var result = new Exports_2.TranslationSynthesisResult(reason, audio);
+ var retEvent = new Exports_2.TranslationSynthesisEventArgs(result, sessionId);
+ if (!!this.privTranslationRecognizer.synthesizing) {
+ try {
+ this.privTranslationRecognizer.synthesizing(this.privTranslationRecognizer, retEvent);
+ /* tslint:disable:no-empty */
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ };
+ return TranslationServiceRecognizer;
+}(Exports_3.ServiceRecognizerBase));
+exports.TranslationServiceRecognizer = TranslationServiceRecognizer;
+
+
+
+/***/ }),
+/* 139 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var SpeechDetected = /** @class */ (function () {
+ function SpeechDetected(json) {
+ this.privSpeechStartDetected = JSON.parse(json);
+ }
+ SpeechDetected.fromJSON = function (json) {
+ return new SpeechDetected(json);
+ };
+ Object.defineProperty(SpeechDetected.prototype, "Offset", {
+ get: function () {
+ return this.privSpeechStartDetected.Offset;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeechDetected;
+}());
+exports.SpeechDetected = SpeechDetected;
+
+
+
+/***/ }),
+/* 140 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var SpeechHypothesis = /** @class */ (function () {
+ function SpeechHypothesis(json) {
+ this.privSpeechHypothesis = JSON.parse(json);
+ }
+ SpeechHypothesis.fromJSON = function (json) {
+ return new SpeechHypothesis(json);
+ };
+ Object.defineProperty(SpeechHypothesis.prototype, "Text", {
+ get: function () {
+ return this.privSpeechHypothesis.Text;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechHypothesis.prototype, "Offset", {
+ get: function () {
+ return this.privSpeechHypothesis.Offset;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechHypothesis.prototype, "Duration", {
+ get: function () {
+ return this.privSpeechHypothesis.Duration;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechHypothesis.prototype, "Language", {
+ get: function () {
+ return this.privSpeechHypothesis.PrimaryLanguage === undefined ? undefined : this.privSpeechHypothesis.PrimaryLanguage.Language;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechHypothesis.prototype, "LanguageDetectionConfidence", {
+ get: function () {
+ return this.privSpeechHypothesis.PrimaryLanguage === undefined ? undefined : this.privSpeechHypothesis.PrimaryLanguage.Confidence;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeechHypothesis;
+}());
+exports.SpeechHypothesis = SpeechHypothesis;
+
+
+
+/***/ }),
+/* 141 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+var Exports_2 = __webpack_require__(26);
+// tslint:disable-next-line:max-classes-per-file
+var SpeechServiceRecognizer = /** @class */ (function (_super) {
+ __extends(SpeechServiceRecognizer, _super);
+ function SpeechServiceRecognizer(authentication, connectionFactory, audioSource, recognizerConfig, speechRecognizer) {
+ var _this = _super.call(this, authentication, connectionFactory, audioSource, recognizerConfig, speechRecognizer) || this;
+ _this.privSpeechRecognizer = speechRecognizer;
+ if (recognizerConfig.autoDetectSourceLanguages !== undefined) {
+ var sourceLanguages = recognizerConfig.autoDetectSourceLanguages.split(",");
+ _this.privSpeechContext.setSection("languageId", {
+ languages: sourceLanguages,
+ onSuccess: { action: "Recognize" },
+ onUnknown: { action: "None" }
+ });
+ _this.privSpeechContext.setSection("phraseOutput", {
+ interimResults: {
+ resultType: "Auto"
+ },
+ phraseResults: {
+ resultType: "Always"
+ }
+ });
+ }
+ return _this;
+ }
+ SpeechServiceRecognizer.prototype.processTypeSpecificMessages = function (connectionMessage) {
+ var result;
+ var resultProps = new Exports_1.PropertyCollection();
+ resultProps.setProperty(Exports_1.PropertyId.SpeechServiceResponse_JsonResult, connectionMessage.textBody);
+ var processed = false;
+ switch (connectionMessage.path.toLowerCase()) {
+ case "speech.hypothesis":
+ case "speech.fragment":
+ var hypothesis = Exports_2.SpeechHypothesis.fromJSON(connectionMessage.textBody);
+ var offset = hypothesis.Offset + this.privRequestSession.currentTurnAudioOffset;
+ result = new Exports_1.SpeechRecognitionResult(this.privRequestSession.requestId, Exports_1.ResultReason.RecognizingSpeech, hypothesis.Text, hypothesis.Duration, offset, hypothesis.Language, hypothesis.LanguageDetectionConfidence, undefined, connectionMessage.textBody, resultProps);
+ this.privRequestSession.onHypothesis(offset);
+ var ev = new Exports_1.SpeechRecognitionEventArgs(result, hypothesis.Duration, this.privRequestSession.sessionId);
+ if (!!this.privSpeechRecognizer.recognizing) {
+ try {
+ this.privSpeechRecognizer.recognizing(this.privSpeechRecognizer, ev);
+ /* tslint:disable:no-empty */
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ processed = true;
+ break;
+ case "speech.phrase":
+ var simple = Exports_2.SimpleSpeechPhrase.fromJSON(connectionMessage.textBody);
+ var resultReason = Exports_2.EnumTranslation.implTranslateRecognitionResult(simple.RecognitionStatus);
+ this.privRequestSession.onPhraseRecognized(this.privRequestSession.currentTurnAudioOffset + simple.Offset + simple.Duration);
+ if (Exports_1.ResultReason.Canceled === resultReason) {
+ var cancelReason = Exports_2.EnumTranslation.implTranslateCancelResult(simple.RecognitionStatus);
+ this.cancelRecognitionLocal(cancelReason, Exports_2.EnumTranslation.implTranslateCancelErrorCode(simple.RecognitionStatus), undefined);
+ }
+ else {
+ if (!(this.privRequestSession.isSpeechEnded && resultReason === Exports_1.ResultReason.NoMatch && simple.RecognitionStatus !== Exports_2.RecognitionStatus.InitialSilenceTimeout)) {
+ if (this.privRecognizerConfig.parameters.getProperty(Exports_2.OutputFormatPropertyName) === Exports_1.OutputFormat[Exports_1.OutputFormat.Simple]) {
+ result = new Exports_1.SpeechRecognitionResult(this.privRequestSession.requestId, resultReason, simple.DisplayText, simple.Duration, simple.Offset + this.privRequestSession.currentTurnAudioOffset, simple.Language, simple.LanguageDetectionConfidence, undefined, connectionMessage.textBody, resultProps);
+ }
+ else {
+ var detailed = Exports_2.DetailedSpeechPhrase.fromJSON(connectionMessage.textBody);
+ result = new Exports_1.SpeechRecognitionResult(this.privRequestSession.requestId, resultReason, detailed.RecognitionStatus === Exports_2.RecognitionStatus.Success ? detailed.NBest[0].Display : undefined, detailed.Duration, detailed.Offset + this.privRequestSession.currentTurnAudioOffset, detailed.Language, detailed.LanguageDetectionConfidence, undefined, connectionMessage.textBody, resultProps);
+ }
+ var event_1 = new Exports_1.SpeechRecognitionEventArgs(result, result.offset, this.privRequestSession.sessionId);
+ if (!!this.privSpeechRecognizer.recognized) {
+ try {
+ this.privSpeechRecognizer.recognized(this.privSpeechRecognizer, event_1);
+ /* tslint:disable:no-empty */
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ }
+ if (!!this.privSuccessCallback) {
+ try {
+ this.privSuccessCallback(result);
+ }
+ catch (e) {
+ if (!!this.privErrorCallback) {
+ this.privErrorCallback(e);
+ }
+ }
+ // Only invoke the call back once.
+ // and if it's successful don't invoke the
+ // error after that.
+ this.privSuccessCallback = undefined;
+ this.privErrorCallback = undefined;
+ }
+ }
+ processed = true;
+ break;
+ default:
+ break;
+ }
+ return processed;
+ };
+ // Cancels recognition.
+ SpeechServiceRecognizer.prototype.cancelRecognition = function (sessionId, requestId, cancellationReason, errorCode, error) {
+ var properties = new Exports_1.PropertyCollection();
+ properties.setProperty(Exports_2.CancellationErrorCodePropertyName, Exports_1.CancellationErrorCode[errorCode]);
+ if (!!this.privSpeechRecognizer.canceled) {
+ var cancelEvent = new Exports_1.SpeechRecognitionCanceledEventArgs(cancellationReason, error, errorCode, undefined, sessionId);
+ try {
+ this.privSpeechRecognizer.canceled(this.privSpeechRecognizer, cancelEvent);
+ /* tslint:disable:no-empty */
+ }
+ catch (_a) { }
+ }
+ if (!!this.privSuccessCallback) {
+ var result = new Exports_1.SpeechRecognitionResult(requestId, Exports_1.ResultReason.Canceled, undefined, // Text
+ undefined, // Duration
+ undefined, // Offset
+ undefined, // Language
+ undefined, // Language Detection Confidence
+ error, undefined, // Json
+ properties);
+ try {
+ this.privSuccessCallback(result);
+ this.privSuccessCallback = undefined;
+ /* tslint:disable:no-empty */
+ }
+ catch (_b) { }
+ }
+ };
+ return SpeechServiceRecognizer;
+}(Exports_2.ServiceRecognizerBase));
+exports.SpeechServiceRecognizer = SpeechServiceRecognizer;
+
+
+
+/***/ }),
+/* 142 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var DetailedSpeechPhrase = /** @class */ (function () {
+ function DetailedSpeechPhrase(json) {
+ this.privDetailedSpeechPhrase = JSON.parse(json);
+ this.privDetailedSpeechPhrase.RecognitionStatus = Exports_1.RecognitionStatus[this.privDetailedSpeechPhrase.RecognitionStatus];
+ }
+ DetailedSpeechPhrase.fromJSON = function (json) {
+ return new DetailedSpeechPhrase(json);
+ };
+ Object.defineProperty(DetailedSpeechPhrase.prototype, "RecognitionStatus", {
+ get: function () {
+ return this.privDetailedSpeechPhrase.RecognitionStatus;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DetailedSpeechPhrase.prototype, "NBest", {
+ get: function () {
+ return this.privDetailedSpeechPhrase.NBest;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DetailedSpeechPhrase.prototype, "Duration", {
+ get: function () {
+ return this.privDetailedSpeechPhrase.Duration;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DetailedSpeechPhrase.prototype, "Offset", {
+ get: function () {
+ return this.privDetailedSpeechPhrase.Offset;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DetailedSpeechPhrase.prototype, "Language", {
+ get: function () {
+ return this.privDetailedSpeechPhrase.PrimaryLanguage === undefined ? undefined : this.privDetailedSpeechPhrase.PrimaryLanguage.Language;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(DetailedSpeechPhrase.prototype, "LanguageDetectionConfidence", {
+ get: function () {
+ return this.privDetailedSpeechPhrase.PrimaryLanguage === undefined ? undefined : this.privDetailedSpeechPhrase.PrimaryLanguage.Confidence;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return DetailedSpeechPhrase;
+}());
+exports.DetailedSpeechPhrase = DetailedSpeechPhrase;
+
+
+
+/***/ }),
+/* 143 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var SimpleSpeechPhrase = /** @class */ (function () {
+ function SimpleSpeechPhrase(json) {
+ this.privSimpleSpeechPhrase = JSON.parse(json);
+ this.privSimpleSpeechPhrase.RecognitionStatus = Exports_1.RecognitionStatus[this.privSimpleSpeechPhrase.RecognitionStatus];
+ }
+ SimpleSpeechPhrase.fromJSON = function (json) {
+ return new SimpleSpeechPhrase(json);
+ };
+ Object.defineProperty(SimpleSpeechPhrase.prototype, "RecognitionStatus", {
+ get: function () {
+ return this.privSimpleSpeechPhrase.RecognitionStatus;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SimpleSpeechPhrase.prototype, "DisplayText", {
+ get: function () {
+ return this.privSimpleSpeechPhrase.DisplayText;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SimpleSpeechPhrase.prototype, "Offset", {
+ get: function () {
+ return this.privSimpleSpeechPhrase.Offset;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SimpleSpeechPhrase.prototype, "Duration", {
+ get: function () {
+ return this.privSimpleSpeechPhrase.Duration;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SimpleSpeechPhrase.prototype, "Language", {
+ get: function () {
+ return this.privSimpleSpeechPhrase.PrimaryLanguage === undefined ? undefined : this.privSimpleSpeechPhrase.PrimaryLanguage.Language;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SimpleSpeechPhrase.prototype, "LanguageDetectionConfidence", {
+ get: function () {
+ return this.privSimpleSpeechPhrase.PrimaryLanguage === undefined ? undefined : this.privSimpleSpeechPhrase.PrimaryLanguage.Confidence;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SimpleSpeechPhrase;
+}());
+exports.SimpleSpeechPhrase = SimpleSpeechPhrase;
+
+
+
+/***/ }),
+/* 144 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * @class AddedLmIntent
+ */
+// tslint:disable-next-line:max-classes-per-file
+var AddedLmIntent = /** @class */ (function () {
+ /**
+ * Creates and initializes an instance of this class.
+ * @constructor
+ * @param modelImpl - The model.
+ * @param intentName - The intent name.
+ */
+ function AddedLmIntent(modelImpl, intentName) {
+ this.modelImpl = modelImpl;
+ this.intentName = intentName;
+ }
+ return AddedLmIntent;
+}());
+exports.AddedLmIntent = AddedLmIntent;
+
+
+
+/***/ }),
+/* 145 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var Exports_2 = __webpack_require__(31);
+var Exports_3 = __webpack_require__(26);
+// tslint:disable-next-line:max-classes-per-file
+var IntentServiceRecognizer = /** @class */ (function (_super) {
+ __extends(IntentServiceRecognizer, _super);
+ function IntentServiceRecognizer(authentication, connectionFactory, audioSource, recognizerConfig, recognizer) {
+ var _this = _super.call(this, authentication, connectionFactory, audioSource, recognizerConfig, recognizer) || this;
+ _this.privIntentRecognizer = recognizer;
+ _this.privIntentDataSent = false;
+ return _this;
+ }
+ IntentServiceRecognizer.prototype.setIntents = function (addedIntents, umbrellaIntent) {
+ this.privAddedLmIntents = addedIntents;
+ this.privUmbrellaIntent = umbrellaIntent;
+ this.privIntentDataSent = true;
+ };
+ IntentServiceRecognizer.prototype.processTypeSpecificMessages = function (connectionMessage) {
+ var _this = this;
+ var result;
+ var ev;
+ var processed = false;
+ var resultProps = new Exports_2.PropertyCollection();
+ if (connectionMessage.messageType === Exports_1.MessageType.Text) {
+ resultProps.setProperty(Exports_2.PropertyId.SpeechServiceResponse_JsonResult, connectionMessage.textBody);
+ }
+ switch (connectionMessage.path.toLowerCase()) {
+ case "speech.hypothesis":
+ var speechHypothesis = Exports_3.SpeechHypothesis.fromJSON(connectionMessage.textBody);
+ result = new Exports_2.IntentRecognitionResult(undefined, this.privRequestSession.requestId, Exports_2.ResultReason.RecognizingIntent, speechHypothesis.Text, speechHypothesis.Duration, speechHypothesis.Offset + this.privRequestSession.currentTurnAudioOffset, speechHypothesis.Language, speechHypothesis.LanguageDetectionConfidence, undefined, connectionMessage.textBody, resultProps);
+ this.privRequestSession.onHypothesis(result.offset);
+ ev = new Exports_2.IntentRecognitionEventArgs(result, speechHypothesis.Offset + this.privRequestSession.currentTurnAudioOffset, this.privRequestSession.sessionId);
+ if (!!this.privIntentRecognizer.recognizing) {
+ try {
+ this.privIntentRecognizer.recognizing(this.privIntentRecognizer, ev);
+ /* tslint:disable:no-empty */
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ processed = true;
+ break;
+ case "speech.phrase":
+ var simple = Exports_3.SimpleSpeechPhrase.fromJSON(connectionMessage.textBody);
+ result = new Exports_2.IntentRecognitionResult(undefined, this.privRequestSession.requestId, Exports_3.EnumTranslation.implTranslateRecognitionResult(simple.RecognitionStatus), simple.DisplayText, simple.Duration, simple.Offset + this.privRequestSession.currentTurnAudioOffset, simple.Language, simple.LanguageDetectionConfidence, undefined, connectionMessage.textBody, resultProps);
+ ev = new Exports_2.IntentRecognitionEventArgs(result, result.offset, this.privRequestSession.sessionId);
+ var sendEvent = function () {
+ if (!!_this.privIntentRecognizer.recognized) {
+ try {
+ _this.privIntentRecognizer.recognized(_this.privIntentRecognizer, ev);
+ /* tslint:disable:no-empty */
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ // report result to promise.
+ if (!!_this.privSuccessCallback) {
+ try {
+ _this.privSuccessCallback(result);
+ }
+ catch (e) {
+ if (!!_this.privErrorCallback) {
+ _this.privErrorCallback(e);
+ }
+ }
+ // Only invoke the call back once.
+ // and if it's successful don't invoke the
+ // error after that.
+ _this.privSuccessCallback = undefined;
+ _this.privErrorCallback = undefined;
+ }
+ };
+ // If intent data was sent, the terminal result for this recognizer is an intent being found.
+ // If no intent data was sent, the terminal event is speech recognition being successful.
+ if (false === this.privIntentDataSent || Exports_2.ResultReason.NoMatch === ev.result.reason) {
+ // Advance the buffers.
+ this.privRequestSession.onPhraseRecognized(ev.offset + ev.result.duration);
+ sendEvent();
+ }
+ else {
+ // Squirrel away the args, when the response event arrives it will build upon them
+ // and then return
+ this.privPendingIntentArgs = ev;
+ }
+ processed = true;
+ break;
+ case "response":
+ // Response from LUIS
+ ev = this.privPendingIntentArgs;
+ this.privPendingIntentArgs = undefined;
+ if (undefined === ev) {
+ if ("" === connectionMessage.textBody) {
+ // This condition happens if there is nothing but silence in the
+ // audio sent to the service.
+ return;
+ }
+ // Odd... Not sure this can happen
+ ev = new Exports_2.IntentRecognitionEventArgs(new Exports_2.IntentRecognitionResult(), 0 /*TODO*/, this.privRequestSession.sessionId);
+ }
+ var intentResponse = Exports_3.IntentResponse.fromJSON(connectionMessage.textBody);
+ // If LUIS didn't return anything, send the existing event, else
+ // modify it to show the match.
+ // See if the intent found is in the list of intents asked for.
+ var addedIntent = this.privAddedLmIntents[intentResponse.topScoringIntent.intent];
+ if (this.privUmbrellaIntent !== undefined) {
+ addedIntent = this.privUmbrellaIntent;
+ }
+ if (null !== intentResponse && addedIntent !== undefined) {
+ var intentId = addedIntent.intentName === undefined ? intentResponse.topScoringIntent.intent : addedIntent.intentName;
+ var reason = ev.result.reason;
+ if (undefined !== intentId) {
+ reason = Exports_2.ResultReason.RecognizedIntent;
+ }
+ // make sure, properties is set.
+ var properties = (undefined !== ev.result.properties) ?
+ ev.result.properties : new Exports_2.PropertyCollection();
+ properties.setProperty(Exports_2.PropertyId.LanguageUnderstandingServiceResponse_JsonResult, connectionMessage.textBody);
+ ev = new Exports_2.IntentRecognitionEventArgs(new Exports_2.IntentRecognitionResult(intentId, ev.result.resultId, reason, ev.result.text, ev.result.duration, ev.result.offset, undefined, undefined, ev.result.errorDetails, ev.result.json, properties), ev.offset, ev.sessionId);
+ }
+ this.privRequestSession.onPhraseRecognized(ev.offset + ev.result.duration);
+ if (!!this.privIntentRecognizer.recognized) {
+ try {
+ this.privIntentRecognizer.recognized(this.privIntentRecognizer, ev);
+ /* tslint:disable:no-empty */
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ // report result to promise.
+ if (!!this.privSuccessCallback) {
+ try {
+ this.privSuccessCallback(ev.result);
+ }
+ catch (e) {
+ if (!!this.privErrorCallback) {
+ this.privErrorCallback(e);
+ }
+ }
+ // Only invoke the call back once.
+ // and if it's successful don't invoke the
+ // error after that.
+ this.privSuccessCallback = undefined;
+ this.privErrorCallback = undefined;
+ }
+ processed = true;
+ break;
+ default:
+ break;
+ }
+ return processed;
+ };
+ // Cancels recognition.
+ IntentServiceRecognizer.prototype.cancelRecognition = function (sessionId, requestId, cancellationReason, errorCode, error) {
+ var properties = new Exports_2.PropertyCollection();
+ properties.setProperty(Exports_3.CancellationErrorCodePropertyName, Exports_2.CancellationErrorCode[errorCode]);
+ if (!!this.privIntentRecognizer.canceled) {
+ var cancelEvent = new Exports_2.IntentRecognitionCanceledEventArgs(cancellationReason, error, errorCode, undefined, undefined, sessionId);
+ try {
+ this.privIntentRecognizer.canceled(this.privIntentRecognizer, cancelEvent);
+ /* tslint:disable:no-empty */
+ }
+ catch (_a) { }
+ }
+ if (!!this.privSuccessCallback) {
+ var result = new Exports_2.IntentRecognitionResult(undefined, // Intent Id
+ requestId, Exports_2.ResultReason.Canceled, undefined, // Text
+ undefined, // Duration
+ undefined, // Offset
+ undefined, // Language
+ undefined, // LanguageDetectionConfidence
+ error, undefined, // Json
+ properties);
+ try {
+ this.privSuccessCallback(result);
+ this.privSuccessCallback = undefined;
+ /* tslint:disable:no-empty */
+ }
+ catch (_b) { }
+ }
+ };
+ return IntentServiceRecognizer;
+}(Exports_3.ServiceRecognizerBase));
+exports.IntentServiceRecognizer = IntentServiceRecognizer;
+
+
+
+/***/ }),
+/* 146 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+// response
+Object.defineProperty(exports, "__esModule", { value: true });
+var IntentResponse = /** @class */ (function () {
+ function IntentResponse(json) {
+ this.privIntentResponse = JSON.parse(json);
+ }
+ IntentResponse.fromJSON = function (json) {
+ return new IntentResponse(json);
+ };
+ Object.defineProperty(IntentResponse.prototype, "query", {
+ get: function () {
+ return this.privIntentResponse.query;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(IntentResponse.prototype, "topScoringIntent", {
+ get: function () {
+ return this.privIntentResponse.topScoringIntent;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(IntentResponse.prototype, "entities", {
+ get: function () {
+ return this.privIntentResponse.entities;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return IntentResponse;
+}());
+exports.IntentResponse = IntentResponse;
+
+
+
+/***/ }),
+/* 147 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var RecognitionEvents_1 = __webpack_require__(126);
+var ServiceTelemetryListener_Internal_1 = __webpack_require__(148);
+var RequestSession = /** @class */ (function () {
+ function RequestSession(audioSourceId) {
+ var _this = this;
+ this.privIsDisposed = false;
+ this.privDetachables = new Array();
+ this.privIsAudioNodeDetached = false;
+ this.privIsRecognizing = false;
+ this.privIsSpeechEnded = false;
+ this.privTurnStartAudioOffset = 0;
+ this.privLastRecoOffset = 0;
+ this.privHypothesisReceived = false;
+ this.privBytesSent = 0;
+ this.privRecogNumber = 0;
+ this.onAudioSourceAttachCompleted = function (audioNode, isError, error) {
+ _this.privAudioNode = audioNode;
+ _this.privIsAudioNodeDetached = false;
+ if (isError) {
+ _this.onComplete();
+ }
+ else {
+ _this.onEvent(new RecognitionEvents_1.ListeningStartedEvent(_this.privRequestId, _this.privSessionId, _this.privAudioSourceId, _this.privAudioNodeId));
+ }
+ };
+ this.onPreConnectionStart = function (authFetchEventId, connectionId) {
+ _this.privAuthFetchEventId = authFetchEventId;
+ _this.privSessionId = connectionId;
+ _this.onEvent(new RecognitionEvents_1.ConnectingToServiceEvent(_this.privRequestId, _this.privAuthFetchEventId, _this.privSessionId));
+ };
+ this.onAuthCompleted = function (isError, error) {
+ if (isError) {
+ _this.onComplete();
+ }
+ };
+ this.onConnectionEstablishCompleted = function (statusCode, reason) {
+ if (statusCode === 200) {
+ _this.onEvent(new RecognitionEvents_1.RecognitionStartedEvent(_this.requestId, _this.privAudioSourceId, _this.privAudioNodeId, _this.privAuthFetchEventId, _this.privSessionId));
+ if (!!_this.privAudioNode) {
+ _this.privAudioNode.replay();
+ }
+ _this.privTurnStartAudioOffset = _this.privLastRecoOffset;
+ _this.privBytesSent = 0;
+ return;
+ }
+ else if (statusCode === 403) {
+ _this.onComplete();
+ }
+ };
+ this.onServiceTurnEndResponse = function (continuousRecognition) {
+ _this.privTurnDeferral.resolve(true);
+ if (!continuousRecognition || _this.isSpeechEnded) {
+ _this.onComplete();
+ }
+ else {
+ // Start a new request set.
+ _this.privTurnStartAudioOffset = _this.privLastRecoOffset;
+ _this.privRequestId = Exports_1.createNoDashGuid();
+ _this.privAudioNode.replay();
+ }
+ };
+ this.onServiceTurnStartResponse = function () {
+ if (_this.privTurnDeferral.state() === Exports_1.PromiseState.None) {
+ // What? How are we starting a turn with another not done?
+ _this.privTurnDeferral.reject("Another turn started before current completed.");
+ }
+ _this.privTurnDeferral = new Exports_1.Deferred();
+ };
+ this.dispose = function (error) {
+ if (!_this.privIsDisposed) {
+ // we should have completed by now. If we did not its an unknown error.
+ _this.privIsDisposed = true;
+ for (var _i = 0, _a = _this.privDetachables; _i < _a.length; _i++) {
+ var detachable = _a[_i];
+ detachable.detach();
+ }
+ _this.privServiceTelemetryListener.dispose();
+ }
+ };
+ this.getTelemetry = function () {
+ if (_this.privServiceTelemetryListener.hasTelemetry) {
+ return _this.privServiceTelemetryListener.getTelemetry();
+ }
+ else {
+ return null;
+ }
+ };
+ this.onEvent = function (event) {
+ if (!!_this.privServiceTelemetryListener) {
+ _this.privServiceTelemetryListener.onEvent(event);
+ }
+ Exports_1.Events.instance.onEvent(event);
+ };
+ this.onComplete = function () {
+ if (!!_this.privIsRecognizing) {
+ _this.privIsRecognizing = false;
+ _this.detachAudioNode();
+ }
+ };
+ this.detachAudioNode = function () {
+ if (!_this.privIsAudioNodeDetached) {
+ _this.privIsAudioNodeDetached = true;
+ if (_this.privAudioNode) {
+ _this.privAudioNode.detach();
+ }
+ }
+ };
+ this.privAudioSourceId = audioSourceId;
+ this.privRequestId = Exports_1.createNoDashGuid();
+ this.privAudioNodeId = Exports_1.createNoDashGuid();
+ this.privTurnDeferral = new Exports_1.Deferred();
+ // We're not in a turn, so resolve.
+ this.privTurnDeferral.resolve(true);
+ }
+ Object.defineProperty(RequestSession.prototype, "sessionId", {
+ get: function () {
+ return this.privSessionId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RequestSession.prototype, "requestId", {
+ get: function () {
+ return this.privRequestId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RequestSession.prototype, "audioNodeId", {
+ get: function () {
+ return this.privAudioNodeId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RequestSession.prototype, "turnCompletionPromise", {
+ get: function () {
+ return this.privTurnDeferral.promise();
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RequestSession.prototype, "isSpeechEnded", {
+ get: function () {
+ return this.privIsSpeechEnded;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RequestSession.prototype, "isRecognizing", {
+ get: function () {
+ return this.privIsRecognizing;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RequestSession.prototype, "currentTurnAudioOffset", {
+ get: function () {
+ return this.privTurnStartAudioOffset;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RequestSession.prototype, "recogNumber", {
+ get: function () {
+ return this.privRecogNumber;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RequestSession.prototype, "bytesSent", {
+ // The number of bytes sent for the current connection.
+ // Counter is reset to 0 each time a connection is established.
+ get: function () {
+ return this.privBytesSent;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ RequestSession.prototype.listenForServiceTelemetry = function (eventSource) {
+ if (!!this.privServiceTelemetryListener) {
+ this.privDetachables.push(eventSource.attachListener(this.privServiceTelemetryListener));
+ }
+ };
+ RequestSession.prototype.startNewRecognition = function () {
+ this.privIsSpeechEnded = false;
+ this.privIsRecognizing = true;
+ this.privTurnStartAudioOffset = 0;
+ this.privLastRecoOffset = 0;
+ this.privRequestId = Exports_1.createNoDashGuid();
+ this.privRecogNumber++;
+ this.privServiceTelemetryListener = new ServiceTelemetryListener_Internal_1.ServiceTelemetryListener(this.privRequestId, this.privAudioSourceId, this.privAudioNodeId);
+ this.onEvent(new RecognitionEvents_1.RecognitionTriggeredEvent(this.requestId, this.privSessionId, this.privAudioSourceId, this.privAudioNodeId));
+ };
+ RequestSession.prototype.onHypothesis = function (offset) {
+ if (!this.privHypothesisReceived) {
+ this.privHypothesisReceived = true;
+ this.privServiceTelemetryListener.hypothesisReceived(this.privAudioNode.findTimeAtOffset(offset));
+ }
+ };
+ RequestSession.prototype.onPhraseRecognized = function (offset) {
+ this.privServiceTelemetryListener.phraseReceived(this.privAudioNode.findTimeAtOffset(offset));
+ this.onServiceRecognized(offset);
+ };
+ RequestSession.prototype.onServiceRecognized = function (offset) {
+ this.privLastRecoOffset = offset;
+ this.privHypothesisReceived = false;
+ this.privAudioNode.shrinkBuffers(offset);
+ };
+ RequestSession.prototype.onAudioSent = function (bytesSent) {
+ this.privBytesSent += bytesSent;
+ };
+ RequestSession.prototype.onStopRecognizing = function () {
+ this.onComplete();
+ };
+ // Should be called with the audioNode for this session has indicated that it is out of speech.
+ RequestSession.prototype.onSpeechEnded = function () {
+ this.privIsSpeechEnded = true;
+ };
+ return RequestSession;
+}());
+exports.RequestSession = RequestSession;
+
+
+
+/***/ }),
+/* 148 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var RecognitionEvents_1 = __webpack_require__(126);
+// tslint:disable-next-line:max-classes-per-file
+var ServiceTelemetryListener = /** @class */ (function () {
+ function ServiceTelemetryListener(requestId, audioSourceId, audioNodeId) {
+ var _this = this;
+ this.privIsDisposed = false;
+ this.privListeningTriggerMetric = null;
+ this.privMicMetric = null;
+ this.privConnectionEstablishMetric = null;
+ this.onEvent = function (e) {
+ if (_this.privIsDisposed) {
+ return;
+ }
+ if (e instanceof RecognitionEvents_1.RecognitionTriggeredEvent && e.requestId === _this.privRequestId) {
+ _this.privListeningTriggerMetric = {
+ End: e.eventTime,
+ Name: "ListeningTrigger",
+ Start: e.eventTime,
+ };
+ }
+ if (e instanceof Exports_1.AudioStreamNodeAttachingEvent && e.audioSourceId === _this.privAudioSourceId && e.audioNodeId === _this.privAudioNodeId) {
+ _this.privMicStartTime = e.eventTime;
+ }
+ if (e instanceof Exports_1.AudioStreamNodeAttachedEvent && e.audioSourceId === _this.privAudioSourceId && e.audioNodeId === _this.privAudioNodeId) {
+ _this.privMicStartTime = e.eventTime;
+ }
+ if (e instanceof Exports_1.AudioSourceErrorEvent && e.audioSourceId === _this.privAudioSourceId) {
+ if (!_this.privMicMetric) {
+ _this.privMicMetric = {
+ End: e.eventTime,
+ Error: e.error,
+ Name: "Microphone",
+ Start: _this.privMicStartTime,
+ };
+ }
+ }
+ if (e instanceof Exports_1.AudioStreamNodeErrorEvent && e.audioSourceId === _this.privAudioSourceId && e.audioNodeId === _this.privAudioNodeId) {
+ if (!_this.privMicMetric) {
+ _this.privMicMetric = {
+ End: e.eventTime,
+ Error: e.error,
+ Name: "Microphone",
+ Start: _this.privMicStartTime,
+ };
+ }
+ }
+ if (e instanceof Exports_1.AudioStreamNodeDetachedEvent && e.audioSourceId === _this.privAudioSourceId && e.audioNodeId === _this.privAudioNodeId) {
+ if (!_this.privMicMetric) {
+ _this.privMicMetric = {
+ End: e.eventTime,
+ Name: "Microphone",
+ Start: _this.privMicStartTime,
+ };
+ }
+ }
+ if (e instanceof RecognitionEvents_1.ConnectingToServiceEvent && e.requestId === _this.privRequestId) {
+ _this.privConnectionId = e.sessionId;
+ }
+ if (e instanceof Exports_1.ConnectionStartEvent && e.connectionId === _this.privConnectionId) {
+ _this.privConnectionStartTime = e.eventTime;
+ }
+ if (e instanceof Exports_1.ConnectionEstablishedEvent && e.connectionId === _this.privConnectionId) {
+ if (!_this.privConnectionEstablishMetric) {
+ _this.privConnectionEstablishMetric = {
+ End: e.eventTime,
+ Id: _this.privConnectionId,
+ Name: "Connection",
+ Start: _this.privConnectionStartTime,
+ };
+ }
+ }
+ if (e instanceof Exports_1.ConnectionEstablishErrorEvent && e.connectionId === _this.privConnectionId) {
+ if (!_this.privConnectionEstablishMetric) {
+ _this.privConnectionEstablishMetric = {
+ End: e.eventTime,
+ Error: _this.getConnectionError(e.statusCode),
+ Id: _this.privConnectionId,
+ Name: "Connection",
+ Start: _this.privConnectionStartTime,
+ };
+ }
+ }
+ if (e instanceof Exports_1.ConnectionMessageReceivedEvent && e.connectionId === _this.privConnectionId) {
+ if (e.message && e.message.headers && e.message.headers.path) {
+ if (!_this.privReceivedMessages[e.message.headers.path]) {
+ _this.privReceivedMessages[e.message.headers.path] = new Array();
+ }
+ _this.privReceivedMessages[e.message.headers.path].push(e.networkReceivedTime);
+ }
+ }
+ };
+ this.getTelemetry = function () {
+ var metrics = new Array();
+ if (_this.privListeningTriggerMetric) {
+ metrics.push(_this.privListeningTriggerMetric);
+ }
+ if (_this.privMicMetric) {
+ metrics.push(_this.privMicMetric);
+ }
+ if (_this.privConnectionEstablishMetric) {
+ metrics.push(_this.privConnectionEstablishMetric);
+ }
+ if (_this.privPhraseLatencies.length > 0) {
+ metrics.push({
+ PhraseLatencyMs: _this.privPhraseLatencies,
+ });
+ }
+ if (_this.privHypothesisLatencies.length > 0) {
+ metrics.push({
+ FirstHypothesisLatencyMs: _this.privHypothesisLatencies,
+ });
+ }
+ var telemetry = {
+ Metrics: metrics,
+ ReceivedMessages: _this.privReceivedMessages,
+ };
+ var json = JSON.stringify(telemetry);
+ // We dont want to send the same telemetry again. So clean those out.
+ _this.privReceivedMessages = {};
+ _this.privListeningTriggerMetric = null;
+ _this.privMicMetric = null;
+ _this.privConnectionEstablishMetric = null;
+ _this.privPhraseLatencies = [];
+ _this.privHypothesisLatencies = [];
+ return json;
+ };
+ this.dispose = function () {
+ _this.privIsDisposed = true;
+ };
+ this.getConnectionError = function (statusCode) {
+ /*
+ -- Websocket status codes --
+ NormalClosure = 1000,
+ EndpointUnavailable = 1001,
+ ProtocolError = 1002,
+ InvalidMessageType = 1003,
+ Empty = 1005,
+ InvalidPayloadData = 1007,
+ PolicyViolation = 1008,
+ MessageTooBig = 1009,
+ MandatoryExtension = 1010,
+ InternalServerError = 1011
+ */
+ switch (statusCode) {
+ case 400:
+ case 1002:
+ case 1003:
+ case 1005:
+ case 1007:
+ case 1008:
+ case 1009: return "BadRequest";
+ case 401: return "Unauthorized";
+ case 403: return "Forbidden";
+ case 503:
+ case 1001: return "ServerUnavailable";
+ case 500:
+ case 1011: return "ServerError";
+ case 408:
+ case 504: return "Timeout";
+ default: return "statuscode:" + statusCode.toString();
+ }
+ };
+ this.privRequestId = requestId;
+ this.privAudioSourceId = audioSourceId;
+ this.privAudioNodeId = audioNodeId;
+ this.privReceivedMessages = {};
+ this.privPhraseLatencies = [];
+ this.privHypothesisLatencies = [];
+ }
+ ServiceTelemetryListener.prototype.phraseReceived = function (audioReceivedTime) {
+ if (audioReceivedTime > 0) { // 0 indicates the time is unknown. Drop it.
+ this.privPhraseLatencies.push(Date.now() - audioReceivedTime);
+ }
+ };
+ ServiceTelemetryListener.prototype.hypothesisReceived = function (audioReceivedTime) {
+ if (audioReceivedTime > 0) { // 0 indicates the time is unknown. Drop it.
+ this.privHypothesisLatencies.push(Date.now() - audioReceivedTime);
+ }
+ };
+ Object.defineProperty(ServiceTelemetryListener.prototype, "hasTelemetry", {
+ // Determines if there are any telemetry events to send to the service.
+ get: function () {
+ return (Object.keys(this.privReceivedMessages).length !== 0 ||
+ this.privListeningTriggerMetric !== null ||
+ this.privMicMetric !== null ||
+ this.privConnectionEstablishMetric !== null ||
+ this.privPhraseLatencies.length !== 0 ||
+ this.privHypothesisLatencies.length !== 0);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ServiceTelemetryListener;
+}());
+exports.ServiceTelemetryListener = ServiceTelemetryListener;
+
+
+
+/***/ }),
+/* 149 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Represents the JSON used in the speech.context message sent to the speech service.
+ * The dynamic grammar is always refreshed from the encapsulated dynamic grammar object.
+ */
+var SpeechContext = /** @class */ (function () {
+ function SpeechContext(dynamicGrammar) {
+ this.privContext = {};
+ this.privDynamicGrammar = dynamicGrammar;
+ }
+ /**
+ * Adds a section to the speech.context object.
+ * @param sectionName Name of the section to add.
+ * @param value JSON serializable object that represents the value.
+ */
+ SpeechContext.prototype.setSection = function (sectionName, value) {
+ this.privContext[sectionName] = value;
+ };
+ SpeechContext.prototype.toJSON = function () {
+ var dgi = this.privDynamicGrammar.generateGrammarObject();
+ this.setSection("dgi", dgi);
+ var ret = JSON.stringify(this.privContext);
+ return ret;
+ };
+ return SpeechContext;
+}());
+exports.SpeechContext = SpeechContext;
+
+
+
+/***/ }),
+/* 150 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Responsible for building the object to be sent to the speech service to support dynamic grammars.
+ * @class DynamicGrammarBuilder
+ */
+var DynamicGrammarBuilder = /** @class */ (function () {
+ function DynamicGrammarBuilder() {
+ }
+ // Adds one more reference phrases to the dynamic grammar to send.
+ // All added phrases are generic phrases.
+ DynamicGrammarBuilder.prototype.addPhrase = function (phrase) {
+ if (!this.privPhrases) {
+ this.privPhrases = [];
+ }
+ if (phrase instanceof Array) {
+ this.privPhrases = this.privPhrases.concat(phrase);
+ }
+ else {
+ this.privPhrases.push(phrase);
+ }
+ };
+ // Clears all phrases stored in the current object.
+ DynamicGrammarBuilder.prototype.clearPhrases = function () {
+ this.privPhrases = undefined;
+ };
+ // Adds one or more reference grammars to the current grammar.
+ DynamicGrammarBuilder.prototype.addReferenceGrammar = function (grammar) {
+ if (!this.privGrammars) {
+ this.privGrammars = [];
+ }
+ if (grammar instanceof Array) {
+ this.privGrammars = this.privGrammars.concat(grammar);
+ }
+ else {
+ this.privGrammars.push(grammar);
+ }
+ };
+ // clears all grammars stored on the recognizer.
+ DynamicGrammarBuilder.prototype.clearGrammars = function () {
+ this.privGrammars = undefined;
+ };
+ // Generates an object that represents the dynamic grammar used by the Speech Service.
+ // This is done by building an object with the correct layout based on the phrases and reference grammars added to this instance
+ // of a DynamicGrammarBuilder
+ DynamicGrammarBuilder.prototype.generateGrammarObject = function () {
+ if (this.privGrammars === undefined && this.privPhrases === undefined) {
+ return undefined;
+ }
+ var retObj = {};
+ retObj.ReferenceGrammars = this.privGrammars;
+ if (undefined !== this.privPhrases && 0 !== this.privPhrases.length) {
+ var retPhrases_1 = [];
+ this.privPhrases.forEach(function (value, index, array) {
+ retPhrases_1.push({
+ Text: value,
+ });
+ });
+ retObj.Groups = [{ Type: "Generic", Items: retPhrases_1 }];
+ }
+ return retObj;
+ };
+ return DynamicGrammarBuilder;
+}());
+exports.DynamicGrammarBuilder = DynamicGrammarBuilder;
+
+
+
+/***/ }),
+/* 151 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(2);
+var Exports_2 = __webpack_require__(4);
+var Exports_3 = __webpack_require__(31);
+var DialogServiceTurnStateManager_1 = __webpack_require__(152);
+var Exports_4 = __webpack_require__(26);
+var ActivityResponsePayload_1 = __webpack_require__(154);
+var SpeechConnectionMessage_Internal_1 = __webpack_require__(128);
+var DialogServiceAdapter = /** @class */ (function (_super) {
+ __extends(DialogServiceAdapter, _super);
+ function DialogServiceAdapter(authentication, connectionFactory, audioSource, recognizerConfig, dialogServiceConnector) {
+ var _this = _super.call(this, authentication, connectionFactory, audioSource, recognizerConfig, dialogServiceConnector) || this;
+ _this.sendMessage = function (message) {
+ var interactionGuid = Exports_2.createGuid();
+ var requestId = Exports_2.createNoDashGuid();
+ var agentMessage = {
+ context: {
+ interactionId: interactionGuid
+ },
+ messagePayload: JSON.parse(message),
+ version: 0.5
+ };
+ var agentMessageJson = JSON.stringify(agentMessage);
+ _this.fetchDialogConnection().onSuccessContinueWith(function (connection) {
+ connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(Exports_2.MessageType.Text, "agent", requestId, "application/json", agentMessageJson));
+ });
+ };
+ _this.listenOnce = function (recoMode, successCallback, errorCallback) {
+ _this.privRecognizerConfig.recognitionMode = recoMode;
+ _this.privSuccessCallback = successCallback;
+ _this.privErrorCallback = errorCallback;
+ _this.privDialogRequestSession.startNewRecognition();
+ _this.privDialogRequestSession.listenForServiceTelemetry(_this.privDialogAudioSource.events);
+ // Start the connection to the service. The promise this will create is stored and will be used by configureConnection().
+ _this.dialogConnectImpl();
+ _this.sendPreAudioMessages();
+ return _this.privDialogAudioSource
+ .attach(_this.privDialogRequestSession.audioNodeId)
+ .continueWithPromise(function (result) {
+ var audioNode;
+ if (result.isError) {
+ _this.cancelRecognition(_this.privDialogRequestSession.sessionId, _this.privDialogRequestSession.requestId, Exports_3.CancellationReason.Error, Exports_3.CancellationErrorCode.ConnectionFailure, result.error);
+ return Exports_2.PromiseHelper.fromError(result.error);
+ }
+ return _this.privDialogAudioSource.format.onSuccessContinueWithPromise(function (format) {
+ audioNode = new Exports_1.ReplayableAudioNode(result.result, format.avgBytesPerSec);
+ _this.privDialogRequestSession.onAudioSourceAttachCompleted(audioNode, false);
+ return _this.privDialogAudioSource.deviceInfo.onSuccessContinueWithPromise(function (deviceInfo) {
+ _this.privRecognizerConfig.SpeechServiceConfig.Context.audio = { source: deviceInfo };
+ return _this.configConnection()
+ .continueWithPromise(function (result) {
+ if (result.isError) {
+ _this.cancelRecognitionLocal(Exports_3.CancellationReason.Error, Exports_3.CancellationErrorCode.ConnectionFailure, result.error);
+ return Exports_2.PromiseHelper.fromError(result.error);
+ }
+ var sessionStartEventArgs = new Exports_3.SessionEventArgs(_this.privDialogRequestSession.sessionId);
+ if (!!_this.privRecognizer.sessionStarted) {
+ _this.privRecognizer.sessionStarted(_this.privRecognizer, sessionStartEventArgs);
+ }
+ var audioSendPromise = _this.sendAudio(audioNode);
+ // /* tslint:disable:no-empty */
+ audioSendPromise.on(function (_) { }, function (error) {
+ _this.cancelRecognition(_this.privDialogRequestSession.sessionId, _this.privDialogRequestSession.requestId, Exports_3.CancellationReason.Error, Exports_3.CancellationErrorCode.RuntimeError, error);
+ });
+ return Exports_2.PromiseHelper.fromResult(true);
+ });
+ });
+ });
+ });
+ };
+ _this.sendAudio = function (audioStreamNode) {
+ return _this.privDialogAudioSource.format.onSuccessContinueWithPromise(function (audioFormat) {
+ // NOTE: Home-baked promises crash ios safari during the invocation
+ // of the error callback chain (looks like the recursion is way too deep, and
+ // it blows up the stack). The following construct is a stop-gap that does not
+ // bubble the error up the callback chain and hence circumvents this problem.
+ // TODO: rewrite with ES6 promises.
+ var deferred = new Exports_2.Deferred();
+ // The time we last sent data to the service.
+ var nextSendTime = Date.now();
+ // Max amount to send before we start to throttle
+ var fastLaneSizeMs = _this.privRecognizerConfig.parameters.getProperty("SPEECH-TransmitLengthBeforThrottleMs", "5000");
+ var maxSendUnthrottledBytes = audioFormat.avgBytesPerSec / 1000 * parseInt(fastLaneSizeMs, 10);
+ var startRecogNumber = _this.privDialogRequestSession.recogNumber;
+ var readAndUploadCycle = function () {
+ // If speech is done, stop sending audio.
+ if (!_this.privDialogIsDisposed &&
+ !_this.privDialogRequestSession.isSpeechEnded &&
+ _this.privDialogRequestSession.isRecognizing &&
+ _this.privDialogRequestSession.recogNumber === startRecogNumber) {
+ _this.fetchDialogConnection().on(function (connection) {
+ audioStreamNode.read().on(function (audioStreamChunk) {
+ // we have a new audio chunk to upload.
+ if (_this.privDialogRequestSession.isSpeechEnded) {
+ // If service already recognized audio end then don't send any more audio
+ deferred.resolve(true);
+ return;
+ }
+ var payload;
+ var sendDelay;
+ if (!audioStreamChunk || audioStreamChunk.isEnd) {
+ payload = null;
+ sendDelay = 0;
+ }
+ else {
+ payload = audioStreamChunk.buffer;
+ _this.privDialogRequestSession.onAudioSent(payload.byteLength);
+ if (maxSendUnthrottledBytes >= _this.privDialogRequestSession.bytesSent) {
+ sendDelay = 0;
+ }
+ else {
+ sendDelay = Math.max(0, nextSendTime - Date.now());
+ }
+ }
+ // Are we ready to send, or need we delay more?
+ setTimeout(function () {
+ if (payload !== null) {
+ nextSendTime = Date.now() + (payload.byteLength * 1000 / (audioFormat.avgBytesPerSec * 2));
+ }
+ var uploaded = connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(Exports_2.MessageType.Binary, "audio", _this.privDialogRequestSession.requestId, null, payload));
+ if (audioStreamChunk && !audioStreamChunk.isEnd) {
+ uploaded.continueWith(function (_) {
+ // Regardless of success or failure, schedule the next upload.
+ // If the underlying connection was broken, the next cycle will
+ // get a new connection and re-transmit missing audio automatically.
+ readAndUploadCycle();
+ });
+ }
+ else {
+ // the audio stream has been closed, no need to schedule next
+ // read-upload cycle.
+ _this.privDialogRequestSession.onSpeechEnded();
+ deferred.resolve(true);
+ }
+ }, sendDelay);
+ }, function (error) {
+ if (_this.privDialogRequestSession.isSpeechEnded) {
+ // For whatever reason, Reject is used to remove queue subscribers inside
+ // the Queue.DrainAndDispose invoked from DetachAudioNode down below, which
+ // means that sometimes things can be rejected in normal circumstances, without
+ // any errors.
+ deferred.resolve(true); // TODO: remove the argument, it's is completely meaningless.
+ }
+ else {
+ // Only reject, if there was a proper error.
+ deferred.reject(error);
+ }
+ });
+ }, function (error) {
+ deferred.reject(error);
+ });
+ }
+ };
+ readAndUploadCycle();
+ return deferred.promise();
+ });
+ };
+ _this.receiveDialogMessageOverride = function () {
+ // we won't rely on the cascading promises of the connection since we want to continually be available to receive messages
+ var communicationCustodian = new Exports_2.Deferred();
+ _this.fetchDialogConnection().on(function (connection) {
+ return connection.read()
+ .onSuccessContinueWithPromise(function (message) {
+ var isDisposed = _this.isDisposed();
+ var terminateMessageLoop = (!_this.isDisposed() && _this.terminateMessageLoop);
+ if (isDisposed || terminateMessageLoop) {
+ // We're done.
+ communicationCustodian.resolve(undefined);
+ return Exports_2.PromiseHelper.fromResult(undefined);
+ }
+ if (!message) {
+ return _this.receiveDialogMessageOverride();
+ }
+ var connectionMessage = SpeechConnectionMessage_Internal_1.SpeechConnectionMessage.fromConnectionMessage(message);
+ switch (connectionMessage.path.toLowerCase()) {
+ case "turn.start":
+ {
+ var turnRequestId = connectionMessage.requestId.toUpperCase();
+ var audioSessionReqId = _this.privDialogRequestSession.requestId.toUpperCase();
+ // turn started by the service
+ if (turnRequestId !== audioSessionReqId) {
+ _this.privTurnStateManager.StartTurn(turnRequestId);
+ }
+ else {
+ _this.privDialogRequestSession.onServiceTurnStartResponse();
+ }
+ }
+ break;
+ case "speech.startdetected":
+ var speechStartDetected = Exports_4.SpeechDetected.fromJSON(connectionMessage.textBody);
+ var speechStartEventArgs = new Exports_3.RecognitionEventArgs(speechStartDetected.Offset, _this.privDialogRequestSession.sessionId);
+ if (!!_this.privRecognizer.speechStartDetected) {
+ _this.privRecognizer.speechStartDetected(_this.privRecognizer, speechStartEventArgs);
+ }
+ break;
+ case "speech.enddetected":
+ var json = void 0;
+ if (connectionMessage.textBody.length > 0) {
+ json = connectionMessage.textBody;
+ }
+ else {
+ // If the request was empty, the JSON returned is empty.
+ json = "{ Offset: 0 }";
+ }
+ var speechStopDetected = Exports_4.SpeechDetected.fromJSON(json);
+ _this.privDialogRequestSession.onServiceRecognized(speechStopDetected.Offset + _this.privDialogRequestSession.currentTurnAudioOffset);
+ var speechStopEventArgs = new Exports_3.RecognitionEventArgs(speechStopDetected.Offset + _this.privDialogRequestSession.currentTurnAudioOffset, _this.privDialogRequestSession.sessionId);
+ if (!!_this.privRecognizer.speechEndDetected) {
+ _this.privRecognizer.speechEndDetected(_this.privRecognizer, speechStopEventArgs);
+ }
+ break;
+ case "turn.end":
+ {
+ var turnEndRequestId = connectionMessage.requestId.toUpperCase();
+ var audioSessionReqId = _this.privDialogRequestSession.requestId.toUpperCase();
+ // turn started by the service
+ if (turnEndRequestId !== audioSessionReqId) {
+ _this.privTurnStateManager.CompleteTurn(turnEndRequestId);
+ }
+ else {
+ // Audio session turn
+ var sessionStopEventArgs = new Exports_3.SessionEventArgs(_this.privDialogRequestSession.sessionId);
+ _this.privDialogRequestSession.onServiceTurnEndResponse(false);
+ if (_this.privDialogRequestSession.isSpeechEnded) {
+ if (!!_this.privRecognizer.sessionStopped) {
+ _this.privRecognizer.sessionStopped(_this.privRecognizer, sessionStopEventArgs);
+ }
+ }
+ // report result to promise.
+ if (!!_this.privSuccessCallback && _this.privLastResult) {
+ try {
+ _this.privSuccessCallback(_this.privLastResult);
+ _this.privLastResult = null;
+ }
+ catch (e) {
+ if (!!_this.privErrorCallback) {
+ _this.privErrorCallback(e);
+ }
+ }
+ // Only invoke the call back once.
+ // and if it's successful don't invoke the
+ // error after that.
+ _this.privSuccessCallback = undefined;
+ _this.privErrorCallback = undefined;
+ }
+ }
+ }
+ break;
+ default:
+ if (!_this.processTypeSpecificMessages(connectionMessage)) {
+ if (!!_this.serviceEvents) {
+ _this.serviceEvents.onEvent(new Exports_2.ServiceEvent(connectionMessage.path.toLowerCase(), connectionMessage.textBody));
+ }
+ }
+ }
+ return _this.receiveDialogMessageOverride();
+ });
+ }, function (error) {
+ _this.terminateMessageLoop = true;
+ communicationCustodian.resolve(undefined);
+ return Exports_2.PromiseHelper.fromResult(undefined);
+ });
+ return communicationCustodian.promise();
+ };
+ _this.fetchDialogConnection = function () {
+ return _this.configConnection();
+ };
+ _this.sendAgentConfig = function (connection) {
+ if (_this.agentConfig && !_this.agentConfigSent) {
+ if (_this.privRecognizerConfig.parameters.getProperty(Exports_3.PropertyId.Conversation_DialogType) === "custom_commands") {
+ var config = _this.agentConfig.get();
+ config.botInfo.commandsCulture = _this.privRecognizerConfig.parameters.getProperty(Exports_3.PropertyId.SpeechServiceConnection_RecoLanguage, "en-us");
+ _this.agentConfig.set(config);
+ }
+ var agentConfigJson = _this.agentConfig.toJsonString();
+ // guard against sending this multiple times on one connection
+ _this.agentConfigSent = true;
+ return connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(Exports_2.MessageType.Text, "agent.config", _this.privDialogRequestSession.requestId, "application/json", agentConfigJson));
+ }
+ return Exports_2.PromiseHelper.fromResult(true);
+ };
+ _this.sendAgentContext = function (connection) {
+ var guid = Exports_2.createGuid();
+ var speechActivityTemplate = _this.privDialogServiceConnector.properties.getProperty(Exports_3.PropertyId.Conversation_Speech_Activity_Template);
+ var agentContext = {
+ channelData: "",
+ context: {
+ interactionId: guid
+ },
+ messagePayload: typeof speechActivityTemplate === undefined ? undefined : speechActivityTemplate,
+ version: 0.5
+ };
+ var agentContextJson = JSON.stringify(agentContext);
+ return connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(Exports_2.MessageType.Text, "speech.agent.context", _this.privDialogRequestSession.requestId, "application/json", agentContextJson));
+ };
+ _this.privDialogServiceConnector = dialogServiceConnector;
+ _this.privDialogAuthentication = authentication;
+ _this.receiveMessageOverride = _this.receiveDialogMessageOverride;
+ _this.privTurnStateManager = new DialogServiceTurnStateManager_1.DialogServiceTurnStateManager();
+ _this.recognizeOverride = _this.listenOnce;
+ _this.connectImplOverride = _this.dialogConnectImpl;
+ _this.configConnectionOverride = _this.configConnection;
+ _this.fetchConnectionOverride = _this.fetchDialogConnection;
+ _this.disconnectOverride = _this.privDisconnect;
+ _this.privDialogAudioSource = audioSource;
+ _this.privDialogRequestSession = new Exports_4.RequestSession(audioSource.id());
+ _this.privDialogConnectionFactory = connectionFactory;
+ _this.privDialogIsDisposed = false;
+ _this.agentConfigSent = false;
+ _this.privLastResult = null;
+ return _this;
+ }
+ DialogServiceAdapter.prototype.isDisposed = function () {
+ return this.privDialogIsDisposed;
+ };
+ DialogServiceAdapter.prototype.dispose = function (reason) {
+ this.privDialogIsDisposed = true;
+ if (this.privConnectionConfigPromise) {
+ this.privConnectionConfigPromise.onSuccessContinueWith(function (connection) {
+ connection.dispose(reason);
+ });
+ }
+ };
+ DialogServiceAdapter.prototype.privDisconnect = function () {
+ this.cancelRecognition(this.privDialogRequestSession.sessionId, this.privDialogRequestSession.requestId, Exports_3.CancellationReason.Error, Exports_3.CancellationErrorCode.NoError, "Disconnecting");
+ this.terminateMessageLoop = true;
+ this.agentConfigSent = false;
+ if (this.privDialogConnectionPromise.result().isCompleted) {
+ if (!this.privDialogConnectionPromise.result().isError) {
+ this.privDialogConnectionPromise.result().result.dispose();
+ this.privDialogConnectionPromise = null;
+ }
+ }
+ else {
+ this.privDialogConnectionPromise.onSuccessContinueWith(function (connection) {
+ connection.dispose();
+ });
+ }
+ };
+ DialogServiceAdapter.prototype.processTypeSpecificMessages = function (connectionMessage) {
+ var resultProps = new Exports_3.PropertyCollection();
+ if (connectionMessage.messageType === Exports_2.MessageType.Text) {
+ resultProps.setProperty(Exports_3.PropertyId.SpeechServiceResponse_JsonResult, connectionMessage.textBody);
+ }
+ var result;
+ var processed;
+ switch (connectionMessage.path.toLowerCase()) {
+ case "speech.phrase":
+ var speechPhrase = Exports_4.SimpleSpeechPhrase.fromJSON(connectionMessage.textBody);
+ this.privDialogRequestSession.onPhraseRecognized(this.privDialogRequestSession.currentTurnAudioOffset + speechPhrase.Offset + speechPhrase.Duration);
+ if (speechPhrase.RecognitionStatus === Exports_4.RecognitionStatus.Success) {
+ var args = this.fireEventForResult(speechPhrase, resultProps);
+ this.privLastResult = args.result;
+ if (!!this.privDialogServiceConnector.recognized) {
+ try {
+ this.privDialogServiceConnector.recognized(this.privDialogServiceConnector, args);
+ /* tslint:disable:no-empty */
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ }
+ processed = true;
+ break;
+ case "speech.hypothesis":
+ var hypothesis = Exports_4.SpeechHypothesis.fromJSON(connectionMessage.textBody);
+ var offset = hypothesis.Offset + this.privDialogRequestSession.currentTurnAudioOffset;
+ result = new Exports_3.SpeechRecognitionResult(this.privDialogRequestSession.requestId, Exports_3.ResultReason.RecognizingSpeech, hypothesis.Text, hypothesis.Duration, offset, hypothesis.Language, hypothesis.LanguageDetectionConfidence, undefined, connectionMessage.textBody, resultProps);
+ this.privDialogRequestSession.onHypothesis(offset);
+ var ev = new Exports_3.SpeechRecognitionEventArgs(result, hypothesis.Duration, this.privDialogRequestSession.sessionId);
+ if (!!this.privDialogServiceConnector.recognizing) {
+ try {
+ this.privDialogServiceConnector.recognizing(this.privDialogServiceConnector, ev);
+ /* tslint:disable:no-empty */
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ processed = true;
+ break;
+ case "audio":
+ {
+ var audioRequestId = connectionMessage.requestId.toUpperCase();
+ var turn = this.privTurnStateManager.GetTurn(audioRequestId);
+ try {
+ // Empty binary message signals end of stream.
+ if (!connectionMessage.binaryBody) {
+ turn.endAudioStream();
+ }
+ else {
+ turn.audioStream.write(connectionMessage.binaryBody);
+ }
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ processed = true;
+ break;
+ case "response":
+ {
+ var responseRequestId = connectionMessage.requestId.toUpperCase();
+ var activityPayload = ActivityResponsePayload_1.ActivityPayloadResponse.fromJSON(connectionMessage.textBody);
+ var turn = this.privTurnStateManager.GetTurn(responseRequestId);
+ // update the conversation Id
+ if (activityPayload.conversationId) {
+ var updateAgentConfig = this.agentConfig.get();
+ updateAgentConfig.botInfo.conversationId = activityPayload.conversationId;
+ this.agentConfig.set(updateAgentConfig);
+ }
+ var pullAudioOutputStream = turn.processActivityPayload(activityPayload, Exports_3.SpeechSynthesisOutputFormat[this.privDialogServiceConnector.properties.getProperty(Exports_3.PropertyId.SpeechServiceConnection_SynthOutputFormat, undefined)]);
+ var activity = new Exports_3.ActivityReceivedEventArgs(activityPayload.messagePayload, pullAudioOutputStream);
+ if (!!this.privDialogServiceConnector.activityReceived) {
+ try {
+ this.privDialogServiceConnector.activityReceived(this.privDialogServiceConnector, activity);
+ /* tslint:disable:no-empty */
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ }
+ processed = true;
+ break;
+ default:
+ break;
+ }
+ return processed;
+ };
+ // Cancels recognition.
+ DialogServiceAdapter.prototype.cancelRecognition = function (sessionId, requestId, cancellationReason, errorCode, error) {
+ this.terminateMessageLoop = true;
+ if (!!this.privDialogRequestSession.isRecognizing) {
+ this.privDialogRequestSession.onStopRecognizing();
+ }
+ if (!!this.privDialogServiceConnector.canceled) {
+ var properties = new Exports_3.PropertyCollection();
+ properties.setProperty(Exports_4.CancellationErrorCodePropertyName, Exports_3.CancellationErrorCode[errorCode]);
+ var cancelEvent = new Exports_3.SpeechRecognitionCanceledEventArgs(cancellationReason, error, errorCode, undefined, sessionId);
+ try {
+ this.privDialogServiceConnector.canceled(this.privDialogServiceConnector, cancelEvent);
+ /* tslint:disable:no-empty */
+ }
+ catch (_a) { }
+ if (!!this.privSuccessCallback) {
+ var result = new Exports_3.SpeechRecognitionResult(undefined, // ResultId
+ Exports_3.ResultReason.Canceled, undefined, // Text
+ undefined, // Druation
+ undefined, // Offset
+ undefined, // Language
+ undefined, // Language Detection Confidence
+ error, undefined, // Json
+ properties);
+ try {
+ this.privSuccessCallback(result);
+ this.privSuccessCallback = undefined;
+ /* tslint:disable:no-empty */
+ }
+ catch (_b) { }
+ }
+ }
+ };
+ DialogServiceAdapter.prototype.sendWaveHeader = function (connection) {
+ var _this = this;
+ return this.audioSource.format.onSuccessContinueWithPromise(function (format) {
+ return connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(Exports_2.MessageType.Binary, "audio", _this.privDialogRequestSession.requestId, "audio/x-wav", format.header));
+ });
+ };
+ // Establishes a websocket connection to the end point.
+ DialogServiceAdapter.prototype.dialogConnectImpl = function (isUnAuthorized) {
+ var _this = this;
+ if (isUnAuthorized === void 0) { isUnAuthorized = false; }
+ if (this.privDialogConnectionPromise) {
+ if (this.privDialogConnectionPromise.result().isCompleted &&
+ (this.privDialogConnectionPromise.result().isError
+ || this.privDialogConnectionPromise.result().result.state() === Exports_2.ConnectionState.Disconnected)) {
+ this.agentConfigSent = false;
+ this.privDialogConnectionPromise = null;
+ this.terminateMessageLoop = true;
+ return this.configConnection();
+ }
+ else {
+ return this.privDialogConnectionPromise;
+ }
+ }
+ this.privDialogAuthFetchEventId = Exports_2.createNoDashGuid();
+ // keep the connectionId for reconnect events
+ if (this.privConnectionId === undefined) {
+ this.privConnectionId = Exports_2.createNoDashGuid();
+ }
+ this.privDialogRequestSession.onPreConnectionStart(this.privDialogAuthFetchEventId, this.privConnectionId);
+ var authPromise = isUnAuthorized ? this.privDialogAuthentication.fetchOnExpiry(this.privDialogAuthFetchEventId) : this.privDialogAuthentication.fetch(this.privDialogAuthFetchEventId);
+ this.privDialogConnectionPromise = authPromise
+ .continueWithPromise(function (result) {
+ if (result.isError) {
+ _this.privDialogRequestSession.onAuthCompleted(true, result.error);
+ throw new Error(result.error);
+ }
+ else {
+ _this.privDialogRequestSession.onAuthCompleted(false);
+ }
+ var connection = _this.privDialogConnectionFactory.create(_this.privRecognizerConfig, result.result, _this.privConnectionId);
+ _this.privDialogRequestSession.listenForServiceTelemetry(connection.events);
+ // Attach to the underlying event. No need to hold onto the detach pointers as in the event the connection goes away,
+ // it'll stop sending events.
+ connection.events.attach(function (event) {
+ _this.connectionEvents.onEvent(event);
+ });
+ return connection.open().onSuccessContinueWithPromise(function (response) {
+ if (response.statusCode === 200) {
+ _this.privDialogRequestSession.onPreConnectionStart(_this.privDialogAuthFetchEventId, _this.privConnectionId);
+ _this.privDialogRequestSession.onConnectionEstablishCompleted(response.statusCode);
+ return Exports_2.PromiseHelper.fromResult(connection);
+ }
+ else if (response.statusCode === 403 && !isUnAuthorized) {
+ return _this.dialogConnectImpl(true);
+ }
+ else {
+ _this.privDialogRequestSession.onConnectionEstablishCompleted(response.statusCode, response.reason);
+ return Exports_2.PromiseHelper.fromError("Unable to contact server. StatusCode: " + response.statusCode + ", " + _this.privRecognizerConfig.parameters.getProperty(Exports_3.PropertyId.SpeechServiceConnection_Endpoint) + " Reason: " + response.reason);
+ }
+ });
+ });
+ this.privConnectionLoop = this.startMessageLoop();
+ return this.privDialogConnectionPromise;
+ };
+ DialogServiceAdapter.prototype.startMessageLoop = function () {
+ var _this = this;
+ this.terminateMessageLoop = false;
+ var messageRetrievalPromise = this.receiveDialogMessageOverride();
+ return messageRetrievalPromise.on(function (r) {
+ return true;
+ }, function (error) {
+ _this.cancelRecognition(_this.privDialogRequestSession.sessionId, _this.privDialogRequestSession.requestId, Exports_3.CancellationReason.Error, Exports_3.CancellationErrorCode.RuntimeError, error);
+ });
+ };
+ // Takes an established websocket connection to the endpoint and sends speech configuration information.
+ DialogServiceAdapter.prototype.configConnection = function () {
+ var _this = this;
+ if (this.privConnectionConfigPromise) {
+ if (this.privConnectionConfigPromise.result().isCompleted &&
+ (this.privConnectionConfigPromise.result().isError
+ || this.privConnectionConfigPromise.result().result.state() === Exports_2.ConnectionState.Disconnected)) {
+ this.privConnectionConfigPromise = null;
+ return this.configConnection();
+ }
+ else {
+ return this.privConnectionConfigPromise;
+ }
+ }
+ if (this.terminateMessageLoop) {
+ this.terminateMessageLoop = false;
+ return Exports_2.PromiseHelper.fromError("Connection to service terminated.");
+ }
+ this.privConnectionConfigPromise = this.dialogConnectImpl().onSuccessContinueWithPromise(function (connection) {
+ return _this.sendSpeechServiceConfig(connection, _this.privDialogRequestSession, _this.privRecognizerConfig.SpeechServiceConfig.serialize())
+ .onSuccessContinueWithPromise(function (_) {
+ return _this.sendAgentConfig(connection).onSuccessContinueWith(function (_) {
+ return connection;
+ });
+ });
+ });
+ return this.privConnectionConfigPromise;
+ };
+ DialogServiceAdapter.prototype.sendPreAudioMessages = function () {
+ var _this = this;
+ this.fetchDialogConnection().onSuccessContinueWith(function (connection) {
+ _this.sendAgentContext(connection);
+ _this.sendWaveHeader(connection);
+ });
+ };
+ DialogServiceAdapter.prototype.fireEventForResult = function (serviceResult, properties) {
+ var resultReason = Exports_4.EnumTranslation.implTranslateRecognitionResult(serviceResult.RecognitionStatus);
+ var offset = serviceResult.Offset + this.privDialogRequestSession.currentTurnAudioOffset;
+ var result = new Exports_3.SpeechRecognitionResult(this.privDialogRequestSession.requestId, resultReason, serviceResult.DisplayText, serviceResult.Duration, offset, serviceResult.Language, serviceResult.LanguageDetectionConfidence, undefined, JSON.stringify(serviceResult), properties);
+ var ev = new Exports_3.SpeechRecognitionEventArgs(result, offset, this.privDialogRequestSession.sessionId);
+ return ev;
+ };
+ return DialogServiceAdapter;
+}(Exports_4.ServiceRecognizerBase));
+exports.DialogServiceAdapter = DialogServiceAdapter;
+
+
+
+/***/ }),
+/* 152 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Error_1 = __webpack_require__(10);
+var DialogServiceTurnState_1 = __webpack_require__(153);
+var DialogServiceTurnStateManager = /** @class */ (function () {
+ function DialogServiceTurnStateManager() {
+ this.privTurnMap = new Map();
+ return;
+ }
+ DialogServiceTurnStateManager.prototype.StartTurn = function (id) {
+ if (this.privTurnMap.has(id)) {
+ throw new Error_1.InvalidOperationError("Service error: There is already a turn with id:" + id);
+ }
+ var turnState = new DialogServiceTurnState_1.DialogServiceTurnState(this, id);
+ this.privTurnMap.set(id, turnState);
+ return this.privTurnMap.get(id);
+ };
+ DialogServiceTurnStateManager.prototype.GetTurn = function (id) {
+ return this.privTurnMap.get(id);
+ };
+ DialogServiceTurnStateManager.prototype.CompleteTurn = function (id) {
+ if (!this.privTurnMap.has(id)) {
+ throw new Error_1.InvalidOperationError("Service error: Received turn end for an unknown turn id:" + id);
+ }
+ var turnState = this.privTurnMap.get(id);
+ turnState.complete();
+ this.privTurnMap.delete(id);
+ return turnState;
+ };
+ return DialogServiceTurnStateManager;
+}());
+exports.DialogServiceTurnStateManager = DialogServiceTurnStateManager;
+
+
+
+/***/ }),
+/* 153 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var AudioOutputFormat_1 = __webpack_require__(44);
+var AudioOutputStream_1 = __webpack_require__(43);
+var ActivityResponsePayload_1 = __webpack_require__(154);
+var DialogServiceTurnState = /** @class */ (function () {
+ function DialogServiceTurnState(manager, requestId) {
+ this.privRequestId = requestId;
+ this.privIsCompleted = false;
+ this.privAudioStream = null;
+ this.privTurnManager = manager;
+ this.resetTurnEndTimeout();
+ // tslint:disable-next-line:no-console
+ // console.info("DialogServiceTurnState debugturn start:" + this.privRequestId);
+ }
+ Object.defineProperty(DialogServiceTurnState.prototype, "audioStream", {
+ get: function () {
+ // Called when is needed to stream.
+ this.resetTurnEndTimeout();
+ return this.privAudioStream;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ DialogServiceTurnState.prototype.processActivityPayload = function (payload, audioFormat) {
+ if (payload.messageDataStreamType === ActivityResponsePayload_1.MessageDataStreamType.TextToSpeechAudio) {
+ this.privAudioStream = AudioOutputStream_1.AudioOutputStream.createPullStream();
+ this.privAudioStream.format = (audioFormat !== undefined) ? audioFormat : AudioOutputFormat_1.AudioOutputFormatImpl.getDefaultOutputFormat();
+ // tslint:disable-next-line:no-console
+ // console.info("Audio start debugturn:" + this.privRequestId);
+ }
+ return this.privAudioStream;
+ };
+ DialogServiceTurnState.prototype.endAudioStream = function () {
+ if (this.privAudioStream !== null && !this.privAudioStream.isClosed) {
+ this.privAudioStream.close();
+ }
+ };
+ DialogServiceTurnState.prototype.complete = function () {
+ if (this.privTimeoutToken !== undefined) {
+ clearTimeout(this.privTimeoutToken);
+ }
+ this.endAudioStream();
+ };
+ DialogServiceTurnState.prototype.resetTurnEndTimeout = function () {
+ var _this = this;
+ if (this.privTimeoutToken !== undefined) {
+ clearTimeout(this.privTimeoutToken);
+ }
+ // tslint:disable-next-line:no-console
+ // console.info("Timeout reset debugturn:" + this.privRequestId);
+ this.privTimeoutToken = setTimeout(function () {
+ // tslint:disable-next-line:no-console
+ // console.info("Timeout complete debugturn:" + this.privRequestId);
+ _this.privTurnManager.CompleteTurn(_this.privRequestId);
+ return;
+ }, 2000);
+ };
+ return DialogServiceTurnState;
+}());
+exports.DialogServiceTurnState = DialogServiceTurnState;
+
+
+
+/***/ }),
+/* 154 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+// response
+Object.defineProperty(exports, "__esModule", { value: true });
+var ActivityPayloadResponse = /** @class */ (function () {
+ function ActivityPayloadResponse(json) {
+ this.privActivityResponse = JSON.parse(json);
+ }
+ ActivityPayloadResponse.fromJSON = function (json) {
+ return new ActivityPayloadResponse(json);
+ };
+ Object.defineProperty(ActivityPayloadResponse.prototype, "conversationId", {
+ get: function () {
+ return this.privActivityResponse.conversationId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ActivityPayloadResponse.prototype, "messageDataStreamType", {
+ get: function () {
+ return this.privActivityResponse.messageDataStreamType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ActivityPayloadResponse.prototype, "messagePayload", {
+ get: function () {
+ return this.privActivityResponse.messagePayload;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ActivityPayloadResponse.prototype, "version", {
+ get: function () {
+ return this.privActivityResponse.version;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ActivityPayloadResponse;
+}());
+exports.ActivityPayloadResponse = ActivityPayloadResponse;
+var MessageDataStreamType;
+(function (MessageDataStreamType) {
+ MessageDataStreamType[MessageDataStreamType["None"] = 0] = "None";
+ MessageDataStreamType[MessageDataStreamType["TextToSpeechAudio"] = 1] = "TextToSpeechAudio";
+})(MessageDataStreamType = exports.MessageDataStreamType || (exports.MessageDataStreamType = {}));
+
+
+
+/***/ }),
+/* 155 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Represents the JSON used in the agent.config message sent to the speech service.
+ */
+var AgentConfig = /** @class */ (function () {
+ function AgentConfig() {
+ }
+ AgentConfig.prototype.toJsonString = function () {
+ return JSON.stringify(this.iPrivConfig);
+ };
+ AgentConfig.prototype.get = function () {
+ return this.iPrivConfig;
+ };
+ /**
+ * Setter for the agent.config object.
+ * @param value a JSON serializable object.
+ */
+ AgentConfig.prototype.set = function (value) {
+ this.iPrivConfig = value;
+ };
+ return AgentConfig;
+}());
+exports.AgentConfig = AgentConfig;
+
+
+
+/***/ }),
+/* 156 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var ConversationManager_1 = __webpack_require__(157);
+exports.ConversationManager = ConversationManager_1.ConversationManager;
+var ConversationTranslatorRecognizer_1 = __webpack_require__(161);
+exports.ConversationTranslatorRecognizer = ConversationTranslatorRecognizer_1.ConversationTranslatorRecognizer;
+var ConversationConnectionConfig_1 = __webpack_require__(158);
+exports.ConversationConnectionConfig = ConversationConnectionConfig_1.ConversationConnectionConfig;
+var ConversationTranslatorEventArgs_1 = __webpack_require__(167);
+exports.ConversationReceivedTranslationEventArgs = ConversationTranslatorEventArgs_1.ConversationReceivedTranslationEventArgs;
+exports.LockRoomEventArgs = ConversationTranslatorEventArgs_1.LockRoomEventArgs;
+exports.MuteAllEventArgs = ConversationTranslatorEventArgs_1.MuteAllEventArgs;
+exports.ParticipantAttributeEventArgs = ConversationTranslatorEventArgs_1.ParticipantAttributeEventArgs;
+exports.ParticipantEventArgs = ConversationTranslatorEventArgs_1.ParticipantEventArgs;
+exports.ParticipantsListEventArgs = ConversationTranslatorEventArgs_1.ParticipantsListEventArgs;
+var ConversationTranslatorInterfaces_1 = __webpack_require__(168);
+exports.ConversationTranslatorCommandTypes = ConversationTranslatorInterfaces_1.ConversationTranslatorCommandTypes;
+exports.ConversationTranslatorMessageTypes = ConversationTranslatorInterfaces_1.ConversationTranslatorMessageTypes;
+exports.InternalParticipants = ConversationTranslatorInterfaces_1.InternalParticipants;
+
+
+
+/***/ }),
+/* 157 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Contracts_1 = __webpack_require__(33);
+var Exports_1 = __webpack_require__(31);
+var ConversationConnectionConfig_1 = __webpack_require__(158);
+var ConversationUtils_1 = __webpack_require__(160);
+var ConversationManager = /** @class */ (function () {
+ function ConversationManager() {
+ //
+ this.privRequestParams = ConversationConnectionConfig_1.ConversationConnectionConfig.configParams;
+ this.privErrors = ConversationConnectionConfig_1.ConversationConnectionConfig.restErrors;
+ this.privHost = ConversationConnectionConfig_1.ConversationConnectionConfig.host;
+ this.privApiVersion = ConversationConnectionConfig_1.ConversationConnectionConfig.apiVersion;
+ this.privRestPath = ConversationConnectionConfig_1.ConversationConnectionConfig.restPath;
+ }
+ /**
+ * Make a POST request to the Conversation Manager service endpoint to create or join a conversation.
+ * @param args
+ * @param conversationCode
+ * @param callback
+ * @param errorCallback
+ */
+ ConversationManager.prototype.createOrJoin = function (args, conversationCode, cb, err) {
+ var _this = this;
+ try {
+ Contracts_1.Contracts.throwIfNullOrUndefined(args, "args");
+ var languageCode = args.getProperty(Exports_1.PropertyId.SpeechServiceConnection_RecoLanguage, ConversationConnectionConfig_1.ConversationConnectionConfig.defaultLanguageCode);
+ var nickname = args.getProperty(Exports_1.PropertyId.ConversationTranslator_Name);
+ var endpointHost = args.getProperty(Exports_1.PropertyId.ConversationTranslator_Host, this.privHost);
+ var correlationId = args.getProperty(Exports_1.PropertyId.ConversationTranslator_CorrelationId);
+ var subscriptionKey = args.getProperty(Exports_1.PropertyId.SpeechServiceConnection_Key);
+ var subscriptionRegion = args.getProperty(Exports_1.PropertyId.SpeechServiceConnection_Region);
+ var authToken = args.getProperty(Exports_1.PropertyId.SpeechServiceAuthorization_Token);
+ Contracts_1.Contracts.throwIfNullOrWhitespace(languageCode, "languageCode");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(nickname, "nickname");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(endpointHost, "endpointHost");
+ var queryParams = {};
+ queryParams[this.privRequestParams.apiVersion] = this.privApiVersion;
+ queryParams[this.privRequestParams.languageCode] = languageCode;
+ queryParams[this.privRequestParams.nickname] = nickname;
+ var headers = {};
+ if (correlationId) {
+ headers[this.privRequestParams.correlationId] = correlationId;
+ }
+ headers[this.privRequestParams.clientAppId] = ConversationConnectionConfig_1.ConversationConnectionConfig.clientAppId;
+ if (conversationCode !== undefined) {
+ queryParams[this.privRequestParams.roomId] = conversationCode;
+ }
+ else {
+ Contracts_1.Contracts.throwIfNullOrUndefined(subscriptionRegion, this.privErrors.authInvalidSubscriptionRegion);
+ headers[this.privRequestParams.subscriptionRegion] = subscriptionRegion;
+ if (subscriptionKey) {
+ headers[this.privRequestParams.subscriptionKey] = subscriptionKey;
+ }
+ else if (authToken) {
+ headers[this.privRequestParams.authorization] = "Bearer " + authToken;
+ }
+ else {
+ Contracts_1.Contracts.throwIfNullOrUndefined(subscriptionKey, this.privErrors.authInvalidSubscriptionKey);
+ }
+ }
+ var config = {};
+ config.headers = headers;
+ var endpoint = "https://" + endpointHost + this.privRestPath;
+ // TODO: support a proxy and certificate validation
+ ConversationUtils_1.request("post", endpoint, queryParams, null, config, function (response) {
+ var requestId = ConversationUtils_1.extractHeaderValue(_this.privRequestParams.requestId, response.headers);
+ if (!response.ok) {
+ if (!!err) {
+ // get the error
+ var errorMessage = _this.privErrors.invalidCreateJoinConversationResponse.replace("{status}", response.status.toString());
+ var errMessageRaw = void 0;
+ try {
+ errMessageRaw = JSON.parse(response.data);
+ errorMessage += " [" + errMessageRaw.error.code + ": " + errMessageRaw.error.message + "]";
+ }
+ catch (e) {
+ errorMessage += " [" + response.data + "]";
+ }
+ if (requestId) {
+ errorMessage += " " + requestId;
+ }
+ err(errorMessage);
+ }
+ return;
+ }
+ var conversation = JSON.parse(response.data);
+ if (conversation) {
+ conversation.requestId = requestId;
+ }
+ if (!!cb) {
+ try {
+ cb(conversation);
+ }
+ catch (e) {
+ if (!!err) {
+ err(e);
+ }
+ }
+ cb = undefined;
+ }
+ });
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ }
+ };
+ /**
+ * Make a DELETE request to the Conversation Manager service endpoint to leave the conversation.
+ * @param args
+ * @param sessionToken
+ * @param callback
+ */
+ ConversationManager.prototype.leave = function (args, sessionToken, cb, err) {
+ try {
+ Contracts_1.Contracts.throwIfNullOrUndefined(args, this.privErrors.invalidArgs.replace("{arg}", "config"));
+ Contracts_1.Contracts.throwIfNullOrWhitespace(sessionToken, this.privErrors.invalidArgs.replace("{arg}", "token"));
+ var endpointHost = args.getProperty(Exports_1.PropertyId.ConversationTranslator_Host, this.privHost);
+ var correlationId = args.getProperty(Exports_1.PropertyId.ConversationTranslator_CorrelationId);
+ var queryParams = {};
+ queryParams[this.privRequestParams.apiVersion] = this.privApiVersion;
+ queryParams[this.privRequestParams.sessionToken] = sessionToken;
+ var headers = {};
+ if (correlationId) {
+ headers[this.privRequestParams.correlationId] = correlationId;
+ }
+ var config = {};
+ config.headers = headers;
+ var endpoint = "https://" + endpointHost + this.privRestPath;
+ // TODO: support a proxy and certificate validation
+ ConversationUtils_1.request("delete", endpoint, queryParams, null, config, function (response) {
+ if (!response.ok) {
+ // ignore errors on delete
+ }
+ if (!!cb) {
+ try {
+ cb();
+ }
+ catch (e) {
+ if (!!err) {
+ err(e);
+ }
+ }
+ cb = undefined;
+ }
+ });
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ }
+ };
+ return ConversationManager;
+}());
+exports.ConversationManager = ConversationManager;
+
+
+
+/***/ }),
+/* 158 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var RestConfigBase_1 = __webpack_require__(159);
+var ConversationConnectionConfig = /** @class */ (function (_super) {
+ __extends(ConversationConnectionConfig, _super);
+ function ConversationConnectionConfig() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ Object.defineProperty(ConversationConnectionConfig, "host", {
+ get: function () {
+ return ConversationConnectionConfig.privHost;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationConnectionConfig, "apiVersion", {
+ get: function () {
+ return ConversationConnectionConfig.privApiVersion;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationConnectionConfig, "clientAppId", {
+ get: function () {
+ return ConversationConnectionConfig.privClientAppId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationConnectionConfig, "defaultLanguageCode", {
+ get: function () {
+ return ConversationConnectionConfig.privDefaultLanguageCode;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationConnectionConfig, "restPath", {
+ get: function () {
+ return ConversationConnectionConfig.privRestPath;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationConnectionConfig, "webSocketPath", {
+ get: function () {
+ return ConversationConnectionConfig.privWebSocketPath;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationConnectionConfig, "speechHost", {
+ get: function () {
+ return ConversationConnectionConfig.privSpeechHost;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationConnectionConfig, "speechPath", {
+ get: function () {
+ return ConversationConnectionConfig.privSpeechPath;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ConversationConnectionConfig.privHost = "dev.microsofttranslator.com";
+ ConversationConnectionConfig.privRestPath = "/capito/room";
+ ConversationConnectionConfig.privApiVersion = "2.0";
+ ConversationConnectionConfig.privDefaultLanguageCode = "en-US";
+ ConversationConnectionConfig.privClientAppId = "FC539C22-1767-4F1F-84BC-B4D811114F15";
+ ConversationConnectionConfig.privWebSocketPath = "/capito/translate";
+ ConversationConnectionConfig.privSpeechHost = "{region}.s2s.speech.microsoft.com";
+ ConversationConnectionConfig.privSpeechPath = "/speech/translation/cognitiveservices/v1";
+ return ConversationConnectionConfig;
+}(RestConfigBase_1.RestConfigBase));
+exports.ConversationConnectionConfig = ConversationConnectionConfig;
+
+
+
+/***/ }),
+/* 159 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var RestConfigBase = /** @class */ (function () {
+ function RestConfigBase() {
+ }
+ Object.defineProperty(RestConfigBase, "requestOptions", {
+ get: function () {
+ return RestConfigBase.privDefaultRequestOptions;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RestConfigBase, "configParams", {
+ get: function () {
+ return RestConfigBase.privDefaultParams;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(RestConfigBase, "restErrors", {
+ get: function () {
+ return RestConfigBase.privRestErrors;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ RestConfigBase.privDefaultRequestOptions = {
+ headers: {
+ Accept: "application/json",
+ },
+ ignoreCache: false,
+ timeout: 10000,
+ };
+ RestConfigBase.privRestErrors = {
+ authInvalidSubscriptionKey: "You must specify either an authentication token to use, or a Cognitive Speech subscription key.",
+ authInvalidSubscriptionRegion: "You must specify the Cognitive Speech region to use.",
+ invalidArgs: "Required input not found: {arg}.",
+ invalidCreateJoinConversationResponse: "Creating/Joining conversation failed with HTTP {status}.",
+ invalidParticipantRequest: "The requested participant was not found.",
+ permissionDeniedConnect: "Required credentials not found.",
+ permissionDeniedConversation: "Invalid operation: only the host can {command} the conversation.",
+ permissionDeniedParticipant: "Invalid operation: only the host can {command} a participant.",
+ permissionDeniedSend: "Invalid operation: the conversation is not in a connected state.",
+ permissionDeniedStart: "Invalid operation: there is already an active conversation.",
+ };
+ RestConfigBase.privDefaultParams = {
+ apiVersion: "api-version",
+ authorization: "Authorization",
+ clientAppId: "X-ClientAppId",
+ contentTypeKey: "Content-Type",
+ correlationId: "X-CorrelationId",
+ languageCode: "language",
+ nickname: "nickname",
+ profanity: "profanity",
+ requestId: "X-RequestId",
+ roomId: "roomid",
+ sessionToken: "token",
+ subscriptionKey: "Ocp-Apim-Subscription-Key",
+ subscriptionRegion: "Ocp-Apim-Subscription-Region",
+ token: "X-CapitoToken",
+ };
+ return RestConfigBase;
+}());
+exports.RestConfigBase = RestConfigBase;
+
+
+
+/***/ }),
+/* 160 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var RestConfigBase_1 = __webpack_require__(159);
+/**
+ * Config settings for Conversation Translator
+ */
+/**
+ * Helpers for sending / receiving HTTPS requests / responses.
+ * @param params
+ */
+function queryParams(params) {
+ if (params === void 0) { params = {}; }
+ return Object.keys(params)
+ .map(function (k) { return encodeURIComponent(k) + "=" + encodeURIComponent(params[k]); })
+ .join("&");
+}
+function withQuery(url, params) {
+ if (params === void 0) { params = {}; }
+ var queryString = queryParams(params);
+ return queryString ? url + (url.indexOf("?") === -1 ? "?" : "&") + queryString : url;
+}
+function parseXHRResult(xhr) {
+ return {
+ data: xhr.responseText,
+ headers: xhr.getAllResponseHeaders(),
+ json: function () { return JSON.parse(xhr.responseText); },
+ ok: xhr.status >= 200 && xhr.status < 300,
+ status: xhr.status,
+ statusText: xhr.statusText,
+ };
+}
+function errorResponse(xhr, message) {
+ if (message === void 0) { message = null; }
+ return {
+ data: message || xhr.statusText,
+ headers: xhr.getAllResponseHeaders(),
+ json: function () { return JSON.parse(message || ("\"" + xhr.statusText + "\"")); },
+ ok: false,
+ status: xhr.status,
+ statusText: xhr.statusText,
+ };
+}
+function extractHeaderValue(headerKey, headers) {
+ var headerValue = "";
+ try {
+ var arr = headers.trim().split(/[\r\n]+/);
+ var headerMap_1 = {};
+ arr.forEach(function (line) {
+ var parts = line.split(": ");
+ var header = parts.shift().toLowerCase();
+ var value = parts.join(": ");
+ headerMap_1[header] = value;
+ });
+ headerValue = headerMap_1[headerKey.toLowerCase()];
+ }
+ catch (e) {
+ // ignore the error
+ }
+ return headerValue;
+}
+exports.extractHeaderValue = extractHeaderValue;
+function request(method, url, queryParams, body, options, callback) {
+ if (queryParams === void 0) { queryParams = {}; }
+ if (body === void 0) { body = null; }
+ if (options === void 0) { options = {}; }
+ var defaultRequestOptions = RestConfigBase_1.RestConfigBase.requestOptions;
+ var ignoreCache = options.ignoreCache || defaultRequestOptions.ignoreCache;
+ var headers = options.headers || defaultRequestOptions.headers;
+ var timeout = options.timeout || defaultRequestOptions.timeout;
+ var xhr = new XMLHttpRequest();
+ xhr.open(method, withQuery(url, queryParams), true);
+ if (headers) {
+ Object.keys(headers).forEach(function (key) { return xhr.setRequestHeader(key, headers[key]); });
+ }
+ if (ignoreCache) {
+ xhr.setRequestHeader("Cache-Control", "no-cache");
+ }
+ xhr.timeout = timeout;
+ xhr.onload = function (evt) {
+ callback(parseXHRResult(xhr));
+ };
+ xhr.onerror = function (evt) {
+ callback(errorResponse(xhr, "Failed to make request."));
+ };
+ xhr.ontimeout = function (evt) {
+ callback(errorResponse(xhr, "Request took longer than expected."));
+ };
+ if (method === "post" && body) {
+ xhr.setRequestHeader("Content-Type", "application/json");
+ xhr.send(JSON.stringify(body));
+ }
+ else {
+ xhr.send();
+ }
+}
+exports.request = request;
+function PromiseToEmptyCallback(promise, cb, err) {
+ if (!!promise) {
+ promise.continueWith(function (antecedent) {
+ try {
+ if (antecedent.isError) {
+ if (!!err) {
+ err(antecedent.error);
+ }
+ }
+ else {
+ if (!!cb) {
+ cb();
+ }
+ }
+ }
+ catch (e) {
+ if (!!err) {
+ err("'Unhandled error on promise callback: " + e + ". InnerError: " + antecedent.error + "'");
+ }
+ }
+ });
+ }
+ else {
+ if (!!err) {
+ err("Null promise");
+ }
+ }
+}
+exports.PromiseToEmptyCallback = PromiseToEmptyCallback;
+
+
+
+/***/ }),
+/* 161 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Contracts_1 = __webpack_require__(33);
+var Exports_2 = __webpack_require__(31);
+var ConversationConnectionFactory_1 = __webpack_require__(162);
+var ConversationServiceAdapter_1 = __webpack_require__(165);
+var ConversationTranslatorInterfaces_1 = __webpack_require__(168);
+var ConversationUtils_1 = __webpack_require__(160);
+/**
+ * Sends messages to the Conversation Translator websocket and listens for incoming events containing websocket messages.
+ * Based off the recognizers in the SDK folder.
+ */
+var ConversationTranslatorRecognizer = /** @class */ (function (_super) {
+ __extends(ConversationTranslatorRecognizer, _super);
+ function ConversationTranslatorRecognizer(speechConfig, audioConfig) {
+ var _this = this;
+ var serviceConfigImpl = speechConfig;
+ Contracts_1.Contracts.throwIfNull(serviceConfigImpl, "speechConfig");
+ _this = _super.call(this, audioConfig, serviceConfigImpl.properties, new ConversationConnectionFactory_1.ConversationConnectionFactory()) || this;
+ _this.privIsDisposed = false;
+ _this.privProperties = serviceConfigImpl.properties.clone();
+ return _this;
+ }
+ Object.defineProperty(ConversationTranslatorRecognizer.prototype, "conversation", {
+ set: function (value) {
+ this.privRoom = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationTranslatorRecognizer.prototype, "speechRecognitionLanguage", {
+ /**
+ * Return the speech language used by the recognizer
+ */
+ get: function () {
+ return this.privSpeechRecognitionLanguage;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationTranslatorRecognizer.prototype, "properties", {
+ /**
+ * Return the properties for the recognizer
+ */
+ get: function () {
+ return this.privProperties;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ ConversationTranslatorRecognizer.prototype.isDisposed = function () {
+ return this.privIsDisposed;
+ };
+ /**
+ * Connect to the recognizer
+ * @param token
+ */
+ ConversationTranslatorRecognizer.prototype.connect = function (token, cb, err) {
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfNullOrWhitespace(token, "token");
+ this.privReco.conversationTranslatorToken = token;
+ this.privReco.connectAsync(cb, err);
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ }
+ };
+ /**
+ * Disconnect from the recognizer
+ */
+ ConversationTranslatorRecognizer.prototype.disconnect = function (cb, err) {
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ this.privRoom = undefined;
+ this.privReco.disconnectAsync(cb, err);
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ // Destroy the recognizer.
+ this.dispose(true);
+ }
+ };
+ /**
+ * Send the text message command to the websocket
+ * @param conversationId
+ * @param participantId
+ * @param message
+ */
+ ConversationTranslatorRecognizer.prototype.sendMessageRequest = function (message, cb, err) {
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfNullOrWhitespace(this.privRoom.roomId, "conversationId");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(this.privRoom.participantId, "participantId");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(message, "message");
+ var command = {
+ // tslint:disable-next-line: object-literal-shorthand
+ participantId: this.privRoom.participantId,
+ roomId: this.privRoom.roomId,
+ text: message,
+ type: ConversationTranslatorInterfaces_1.ConversationTranslatorMessageTypes.instantMessage
+ };
+ this.sendMessage(JSON.stringify(command), cb, err);
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ // Destroy the recognizer.
+ this.dispose(true);
+ }
+ };
+ /**
+ * Send the lock conversation command to the websocket
+ * @param conversationId
+ * @param participantId
+ * @param isLocked
+ */
+ ConversationTranslatorRecognizer.prototype.sendLockRequest = function (isLocked, cb, err) {
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfNullOrWhitespace(this.privRoom.roomId, "conversationId");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(this.privRoom.participantId, "participantId");
+ Contracts_1.Contracts.throwIfNullOrUndefined(isLocked, "isLocked");
+ var command = {
+ command: ConversationTranslatorInterfaces_1.ConversationTranslatorCommandTypes.setLockState,
+ // tslint:disable-next-line: object-literal-shorthand
+ participantId: this.privRoom.participantId,
+ roomid: this.privRoom.roomId,
+ type: ConversationTranslatorInterfaces_1.ConversationTranslatorMessageTypes.participantCommand,
+ value: isLocked
+ };
+ this.sendMessage(JSON.stringify(command), cb, err);
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ // Destroy the recognizer.
+ this.dispose(true);
+ }
+ };
+ /**
+ * Send the mute all participants command to the websocket
+ * @param conversationId
+ * @param participantId
+ * @param isMuted
+ */
+ ConversationTranslatorRecognizer.prototype.sendMuteAllRequest = function (isMuted, cb, err) {
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfNullOrWhitespace(this.privRoom.roomId, "conversationId");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(this.privRoom.participantId, "participantId");
+ Contracts_1.Contracts.throwIfNullOrUndefined(isMuted, "isMuted");
+ var command = {
+ command: ConversationTranslatorInterfaces_1.ConversationTranslatorCommandTypes.setMuteAll,
+ // tslint:disable-next-line: object-literal-shorthand
+ participantId: this.privRoom.participantId,
+ roomid: this.privRoom.roomId,
+ type: ConversationTranslatorInterfaces_1.ConversationTranslatorMessageTypes.participantCommand,
+ value: isMuted
+ };
+ this.sendMessage(JSON.stringify(command), cb, err);
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ // Destroy the recognizer.
+ this.dispose(true);
+ }
+ };
+ /**
+ * Send the mute participant command to the websocket
+ * @param conversationId
+ * @param participantId
+ * @param isMuted
+ */
+ ConversationTranslatorRecognizer.prototype.sendMuteRequest = function (participantId, isMuted, cb, err) {
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfNullOrWhitespace(this.privRoom.roomId, "conversationId");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(participantId, "participantId");
+ Contracts_1.Contracts.throwIfNullOrUndefined(isMuted, "isMuted");
+ var command = {
+ command: ConversationTranslatorInterfaces_1.ConversationTranslatorCommandTypes.setMute,
+ // tslint:disable-next-line: object-literal-shorthand
+ participantId: participantId,
+ roomid: this.privRoom.roomId,
+ type: ConversationTranslatorInterfaces_1.ConversationTranslatorMessageTypes.participantCommand,
+ value: isMuted
+ };
+ this.sendMessage(JSON.stringify(command), cb, err);
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ // Destroy the recognizer.
+ this.dispose(true);
+ }
+ };
+ /**
+ * Send the eject participant command to the websocket
+ * @param conversationId
+ * @param participantId
+ */
+ ConversationTranslatorRecognizer.prototype.sendEjectRequest = function (participantId, cb, err) {
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfNullOrWhitespace(this.privRoom.roomId, "conversationId");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(participantId, "participantId");
+ var command = {
+ command: ConversationTranslatorInterfaces_1.ConversationTranslatorCommandTypes.ejectParticipant,
+ // tslint:disable-next-line: object-literal-shorthand
+ participantId: participantId,
+ roomid: this.privRoom.roomId,
+ type: ConversationTranslatorInterfaces_1.ConversationTranslatorMessageTypes.participantCommand,
+ };
+ this.sendMessage(JSON.stringify(command), cb, err);
+ if (!!cb) {
+ try {
+ cb();
+ }
+ catch (e) {
+ if (!!err) {
+ err(e);
+ }
+ }
+ }
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ // Destroy the recognizer.
+ this.dispose(true);
+ }
+ };
+ /**
+ * Send the mute participant command to the websocket
+ * @param conversationId
+ * @param participantId
+ * @param isMuted
+ */
+ ConversationTranslatorRecognizer.prototype.sendChangeNicknameRequest = function (nickname, cb, err) {
+ try {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ Contracts_1.Contracts.throwIfNullOrWhitespace(this.privRoom.roomId, "conversationId");
+ Contracts_1.Contracts.throwIfNullOrWhitespace(nickname, "nickname");
+ var command = {
+ command: ConversationTranslatorInterfaces_1.ConversationTranslatorCommandTypes.changeNickname,
+ nickname: nickname,
+ // tslint:disable-next-line: object-literal-shorthand
+ participantId: this.privRoom.participantId,
+ roomid: this.privRoom.roomId,
+ type: ConversationTranslatorInterfaces_1.ConversationTranslatorMessageTypes.participantCommand,
+ value: nickname
+ };
+ this.sendMessage(JSON.stringify(command), cb, err);
+ }
+ catch (error) {
+ if (!!err) {
+ if (error instanceof Error) {
+ var typedError = error;
+ err(typedError.name + ": " + typedError.message);
+ }
+ else {
+ err(error);
+ }
+ }
+ // Destroy the recognizer.
+ this.dispose(true);
+ }
+ };
+ /**
+ * Close and dispose the recognizer
+ */
+ ConversationTranslatorRecognizer.prototype.close = function () {
+ Contracts_1.Contracts.throwIfDisposed(this.privIsDisposed);
+ this.dispose(true);
+ };
+ /**
+ * Dispose the recognizer
+ * @param disposing
+ */
+ ConversationTranslatorRecognizer.prototype.dispose = function (disposing) {
+ if (this.privIsDisposed) {
+ return;
+ }
+ if (disposing) {
+ this.privIsDisposed = true;
+ _super.prototype.dispose.call(this, disposing);
+ }
+ };
+ /**
+ * Create the config for the recognizer
+ * @param speechConfig
+ */
+ ConversationTranslatorRecognizer.prototype.createRecognizerConfig = function (speechConfig) {
+ return new Exports_1.RecognizerConfig(speechConfig, this.privProperties);
+ };
+ /**
+ * Create the service recognizer.
+ * The audio source is redundnant here but is required by the implementation.
+ * @param authentication
+ * @param connectionFactory
+ * @param audioConfig
+ * @param recognizerConfig
+ */
+ ConversationTranslatorRecognizer.prototype.createServiceRecognizer = function (authentication, connectionFactory, audioConfig, recognizerConfig) {
+ var audioSource = audioConfig;
+ return new ConversationServiceAdapter_1.ConversationServiceAdapter(authentication, connectionFactory, audioSource, recognizerConfig, this);
+ };
+ ConversationTranslatorRecognizer.prototype.sendMessage = function (msg, cb, err) {
+ var withAsync = this.privReco;
+ ConversationUtils_1.PromiseToEmptyCallback(withAsync.sendMessageAsync(msg), cb, err);
+ };
+ return ConversationTranslatorRecognizer;
+}(Exports_2.Recognizer));
+exports.ConversationTranslatorRecognizer = ConversationTranslatorRecognizer;
+
+
+
+/***/ }),
+/* 162 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(2);
+var Exports_2 = __webpack_require__(4);
+var Contracts_1 = __webpack_require__(33);
+var Exports_3 = __webpack_require__(31);
+var ConnectionFactoryBase_1 = __webpack_require__(72);
+var ConversationConnectionConfig_1 = __webpack_require__(158);
+var ConversationWebsocketMessageFormatter_1 = __webpack_require__(163);
+/**
+ * Create a connection to the Conversation Translator websocket for sending instant messages and commands, and for receiving translated messages.
+ * The conversation must already have been started or joined.
+ */
+var ConversationConnectionFactory = /** @class */ (function (_super) {
+ __extends(ConversationConnectionFactory, _super);
+ function ConversationConnectionFactory() {
+ return _super !== null && _super.apply(this, arguments) || this;
+ }
+ ConversationConnectionFactory.prototype.create = function (config, authInfo, connectionId) {
+ var endpointHost = config.parameters.getProperty(Exports_3.PropertyId.ConversationTranslator_Host, ConversationConnectionConfig_1.ConversationConnectionConfig.host);
+ var correlationId = config.parameters.getProperty(Exports_3.PropertyId.ConversationTranslator_CorrelationId, Exports_2.createGuid());
+ var endpoint = "wss://" + endpointHost + ConversationConnectionConfig_1.ConversationConnectionConfig.webSocketPath;
+ var token = config.parameters.getProperty(Exports_3.PropertyId.ConversationTranslator_Token, undefined);
+ Contracts_1.Contracts.throwIfNullOrUndefined(token, "token");
+ var queryParams = {};
+ queryParams[ConversationConnectionConfig_1.ConversationConnectionConfig.configParams.apiVersion] = ConversationConnectionConfig_1.ConversationConnectionConfig.apiVersion;
+ queryParams[ConversationConnectionConfig_1.ConversationConnectionConfig.configParams.token] = token;
+ queryParams[ConversationConnectionConfig_1.ConversationConnectionConfig.configParams.correlationId] = correlationId;
+ return new Exports_1.WebsocketConnection(endpoint, queryParams, {}, new ConversationWebsocketMessageFormatter_1.ConversationWebsocketMessageFormatter(), Exports_1.ProxyInfo.fromRecognizerConfig(config), connectionId);
+ };
+ return ConversationConnectionFactory;
+}(ConnectionFactoryBase_1.ConnectionFactoryBase));
+exports.ConversationConnectionFactory = ConversationConnectionFactory;
+
+
+
+/***/ }),
+/* 163 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var ConversationConnectionMessage_1 = __webpack_require__(164);
+/**
+ * Based off WebsocketMessageFormatter. The messages for Conversation Translator have some variations from the Speech messages.
+ */
+var ConversationWebsocketMessageFormatter = /** @class */ (function () {
+ function ConversationWebsocketMessageFormatter() {
+ /**
+ * Format incoming messages: text (speech partial/final, IM) or binary (tts)
+ */
+ this.toConnectionMessage = function (message) {
+ var deferral = new Exports_1.Deferred();
+ try {
+ if (message.messageType === Exports_1.MessageType.Text) {
+ var incomingMessage = new ConversationConnectionMessage_1.ConversationConnectionMessage(message.messageType, message.textContent, {}, message.id);
+ deferral.resolve(incomingMessage);
+ }
+ else if (message.messageType === Exports_1.MessageType.Binary) {
+ deferral.resolve(new ConversationConnectionMessage_1.ConversationConnectionMessage(message.messageType, message.binaryContent, undefined, message.id));
+ }
+ }
+ catch (e) {
+ deferral.reject("Error formatting the message. Error: " + e);
+ }
+ return deferral.promise();
+ };
+ /**
+ * Format outgoing messages: text (commands or IM)
+ */
+ this.fromConnectionMessage = function (message) {
+ var deferral = new Exports_1.Deferred();
+ try {
+ if (message.messageType === Exports_1.MessageType.Text) {
+ var payload = "" + (message.textBody ? message.textBody : "");
+ deferral.resolve(new Exports_1.RawWebsocketMessage(Exports_1.MessageType.Text, payload, message.id));
+ }
+ }
+ catch (e) {
+ deferral.reject("Error formatting the message. " + e);
+ }
+ return deferral.promise();
+ };
+ }
+ return ConversationWebsocketMessageFormatter;
+}());
+exports.ConversationWebsocketMessageFormatter = ConversationWebsocketMessageFormatter;
+
+
+
+/***/ }),
+/* 164 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var ConversationConnectionMessage = /** @class */ (function (_super) {
+ __extends(ConversationConnectionMessage, _super);
+ function ConversationConnectionMessage(messageType, body, headers, id) {
+ var _this = _super.call(this, messageType, body, headers, id) || this;
+ var json = JSON.parse(_this.textBody);
+ if (json.type !== undefined) {
+ _this.privConversationMessageType = json.type;
+ }
+ return _this;
+ }
+ Object.defineProperty(ConversationConnectionMessage.prototype, "conversationMessageType", {
+ get: function () {
+ return this.privConversationMessageType;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConversationConnectionMessage;
+}(Exports_1.ConnectionMessage));
+exports.ConversationConnectionMessage = ConversationConnectionMessage;
+
+
+
+/***/ }),
+/* 165 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var Promise_1 = __webpack_require__(16);
+var Exports_2 = __webpack_require__(31);
+var Exports_3 = __webpack_require__(26);
+var ConversationConnectionMessage_1 = __webpack_require__(164);
+var ConversationRequestSession_1 = __webpack_require__(166);
+var ConversationTranslatorEventArgs_1 = __webpack_require__(167);
+var ConversationTranslatorInterfaces_1 = __webpack_require__(168);
+var Exports_4 = __webpack_require__(169);
+/***
+ * The service adapter handles sending and receiving messages to the Conversation Translator websocket.
+ */
+var ConversationServiceAdapter = /** @class */ (function (_super) {
+ __extends(ConversationServiceAdapter, _super);
+ function ConversationServiceAdapter(authentication, connectionFactory, audioSource, recognizerConfig, conversationServiceConnector) {
+ var _this = _super.call(this, authentication, connectionFactory, audioSource, recognizerConfig, conversationServiceConnector) || this;
+ _this.privLastPartialUtteranceId = "";
+ _this.sendMessageAsync = function (message) {
+ var sink = new Promise_1.Sink();
+ _this.fetchConversationConnection().continueWith(function (antecedent) {
+ try {
+ if (antecedent.isError) {
+ sink.reject(antecedent.error);
+ }
+ else {
+ antecedent.result.send(new ConversationConnectionMessage_1.ConversationConnectionMessage(Exports_1.MessageType.Text, message))
+ .continueWith(function (innerAntecedent) {
+ try {
+ if (innerAntecedent.isError) {
+ sink.reject(innerAntecedent.error);
+ }
+ else {
+ sink.resolve(innerAntecedent.result);
+ }
+ }
+ catch (e) {
+ sink.reject("Unhandled inner error: " + e);
+ }
+ });
+ }
+ }
+ catch (e) {
+ sink.reject("Unhandled error: " + e);
+ }
+ });
+ return new Exports_1.Promise(sink);
+ };
+ _this.noOp = function () {
+ // operation not supported
+ };
+ /**
+ * Process incoming websocket messages
+ */
+ _this.receiveConversationMessageOverride = function (successCallback, errorCallBack) {
+ // we won't rely on the cascading promises of the connection since we want to continually be available to receive messages
+ var communicationCustodian = new Exports_1.Deferred();
+ _this.fetchConversationConnection().on(function (connection) {
+ return connection.read().onSuccessContinueWithPromise(function (message) {
+ var isDisposed = _this.isDisposed();
+ var terminateMessageLoop = (!_this.isDisposed() && _this.terminateMessageLoop);
+ var sessionId = _this.privConversationRequestSession.sessionId;
+ var sendFinal = false;
+ if (isDisposed || terminateMessageLoop) {
+ // We're done.
+ communicationCustodian.resolve(undefined);
+ return Exports_1.PromiseHelper.fromResult(undefined);
+ }
+ if (!message) {
+ return _this.receiveConversationMessageOverride();
+ }
+ try {
+ switch (message.conversationMessageType.toLowerCase()) {
+ case "info":
+ case "participant_command":
+ case "command":
+ var commandPayload = Exports_4.CommandResponsePayload.fromJSON(message.textBody);
+ switch (commandPayload.command.toLowerCase()) {
+ /**
+ * 'ParticpantList' is the first message sent to the user after the websocket connection has opened.
+ * The consuming client must wait for this message to arrive
+ * before starting to send their own data.
+ */
+ case "participantlist":
+ var participantsPayload = Exports_4.ParticipantsListPayloadResponse.fromJSON(message.textBody);
+ var participantsResult = participantsPayload.participants.map(function (p) {
+ var participant = {
+ avatar: p.avatar,
+ displayName: p.nickname,
+ id: p.participantId,
+ isHost: p.ishost,
+ isMuted: p.ismuted,
+ isUsingTts: p.usetts,
+ preferredLanguage: p.locale
+ };
+ return participant;
+ });
+ if (!!_this.privConversationServiceConnector.participantsListReceived) {
+ _this.privConversationServiceConnector.participantsListReceived(_this.privConversationServiceConnector, new ConversationTranslatorEventArgs_1.ParticipantsListEventArgs(participantsPayload.roomid, participantsPayload.token, participantsPayload.translateTo, participantsPayload.profanityFilter, participantsPayload.roomProfanityFilter, participantsPayload.roomLocked, participantsPayload.muteAll, participantsResult, sessionId));
+ }
+ break;
+ /**
+ * 'SetTranslateToLanguages' represents the list of languages being used in the Conversation by all users(?).
+ * This is sent at the start of the Conversation
+ */
+ case "settranslatetolanguages":
+ if (!!_this.privConversationServiceConnector.participantUpdateCommandReceived) {
+ _this.privConversationServiceConnector.participantUpdateCommandReceived(_this.privConversationServiceConnector, new ConversationTranslatorEventArgs_1.ParticipantAttributeEventArgs(commandPayload.participantId, ConversationTranslatorInterfaces_1.ConversationTranslatorCommandTypes.setTranslateToLanguages, commandPayload.value, sessionId));
+ }
+ break;
+ /**
+ * 'SetProfanityFiltering' lets the client set the level of profanity filtering.
+ * If sent by the participant the setting will effect only their own profanity level.
+ * If sent by the host, the setting will effect all participants including the host.
+ * Note: the profanity filters differ from Speech Service (?): 'marked', 'raw', 'removed', 'tagged'
+ */
+ case "setprofanityfiltering":
+ if (!!_this.privConversationServiceConnector.participantUpdateCommandReceived) {
+ _this.privConversationServiceConnector.participantUpdateCommandReceived(_this.privConversationServiceConnector, new ConversationTranslatorEventArgs_1.ParticipantAttributeEventArgs(commandPayload.participantId, ConversationTranslatorInterfaces_1.ConversationTranslatorCommandTypes.setProfanityFiltering, commandPayload.value, sessionId));
+ }
+ break;
+ /**
+ * 'SetMute' is sent if the participant has been muted by the host.
+ * Check the 'participantId' to determine if the current user has been muted.
+ */
+ case "setmute":
+ if (!!_this.privConversationServiceConnector.participantUpdateCommandReceived) {
+ _this.privConversationServiceConnector.participantUpdateCommandReceived(_this.privConversationServiceConnector, new ConversationTranslatorEventArgs_1.ParticipantAttributeEventArgs(commandPayload.participantId, ConversationTranslatorInterfaces_1.ConversationTranslatorCommandTypes.setMute, commandPayload.value, sessionId));
+ }
+ break;
+ /**
+ * 'SetMuteAll' is sent if the Conversation has been muted by the host.
+ */
+ case "setmuteall":
+ if (!!_this.privConversationServiceConnector.muteAllCommandReceived) {
+ _this.privConversationServiceConnector.muteAllCommandReceived(_this.privConversationServiceConnector, new ConversationTranslatorEventArgs_1.MuteAllEventArgs(commandPayload.value, sessionId));
+ }
+ break;
+ /**
+ * 'RoomExpirationWarning' is sent towards the end of the Conversation session to give a timeout warning.
+ */
+ case "roomexpirationwarning":
+ if (!!_this.privConversationServiceConnector.conversationExpiration) {
+ _this.privConversationServiceConnector.conversationExpiration(_this.privConversationServiceConnector, new Exports_2.ConversationExpirationEventArgs(commandPayload.value, _this.privConversationRequestSession.sessionId));
+ }
+ break;
+ /**
+ * 'SetUseTts' is sent as a confirmation if the user requests TTS to be turned on or off.
+ */
+ case "setusetts":
+ if (!!_this.privConversationServiceConnector.participantUpdateCommandReceived) {
+ _this.privConversationServiceConnector.participantUpdateCommandReceived(_this.privConversationServiceConnector, new ConversationTranslatorEventArgs_1.ParticipantAttributeEventArgs(commandPayload.participantId, ConversationTranslatorInterfaces_1.ConversationTranslatorCommandTypes.setUseTTS, commandPayload.value, sessionId));
+ }
+ break;
+ /**
+ * 'SetLockState' is set if the host has locked or unlocked the Conversation.
+ */
+ case "setlockstate":
+ if (!!_this.privConversationServiceConnector.lockRoomCommandReceived) {
+ _this.privConversationServiceConnector.lockRoomCommandReceived(_this.privConversationServiceConnector, new ConversationTranslatorEventArgs_1.LockRoomEventArgs(commandPayload.value, sessionId));
+ }
+ break;
+ /**
+ * 'ChangeNickname' is received if a user changes their display name.
+ * Any cached particpiants list should be updated to reflect the display name.
+ */
+ case "changenickname":
+ if (!!_this.privConversationServiceConnector.participantUpdateCommandReceived) {
+ _this.privConversationServiceConnector.participantUpdateCommandReceived(_this.privConversationServiceConnector, new ConversationTranslatorEventArgs_1.ParticipantAttributeEventArgs(commandPayload.participantId, ConversationTranslatorInterfaces_1.ConversationTranslatorCommandTypes.changeNickname, commandPayload.nickname, sessionId));
+ }
+ break;
+ /**
+ * 'JoinSession' is sent when a user joins the Conversation.
+ */
+ case "joinsession":
+ var joinParticipantPayload = Exports_4.ParticipantPayloadResponse.fromJSON(message.textBody);
+ var joiningParticipant = {
+ avatar: joinParticipantPayload.avatar,
+ displayName: joinParticipantPayload.nickname,
+ id: joinParticipantPayload.participantId,
+ isHost: joinParticipantPayload.ishost,
+ isMuted: joinParticipantPayload.ismuted,
+ isUsingTts: joinParticipantPayload.usetts,
+ preferredLanguage: joinParticipantPayload.locale,
+ };
+ if (!!_this.privConversationServiceConnector.participantJoinCommandReceived) {
+ _this.privConversationServiceConnector.participantJoinCommandReceived(_this.privConversationServiceConnector, new ConversationTranslatorEventArgs_1.ParticipantEventArgs(joiningParticipant, sessionId));
+ }
+ break;
+ /**
+ * 'LeaveSession' is sent when a user leaves the Conversation'.
+ */
+ case "leavesession":
+ var leavingParticipant = {
+ id: commandPayload.participantId
+ };
+ if (!!_this.privConversationServiceConnector.participantLeaveCommandReceived) {
+ _this.privConversationServiceConnector.participantLeaveCommandReceived(_this.privConversationServiceConnector, new ConversationTranslatorEventArgs_1.ParticipantEventArgs(leavingParticipant, sessionId));
+ }
+ break;
+ /**
+ * 'DisconnectSession' is sent when a user is disconnected from the session (e.g. network problem).
+ * Check the 'ParticipantId' to check whether the message is for the current user.
+ */
+ case "disconnectsession":
+ var disconnectParticipant = {
+ id: commandPayload.participantId
+ };
+ break;
+ /**
+ * Message not recognized.
+ */
+ default:
+ break;
+ }
+ break;
+ /**
+ * 'partial' (or 'hypothesis') represents a unfinalized speech message.
+ */
+ case "partial":
+ /**
+ * 'final' (or 'phrase') represents a finalized speech message.
+ */
+ case "final":
+ var speechPayload = Exports_4.SpeechResponsePayload.fromJSON(message.textBody);
+ var speechResult = new Exports_2.ConversationTranslationResult(speechPayload.participantId, _this.getTranslations(speechPayload.translations), speechPayload.language, undefined, undefined, speechPayload.recognition, undefined, undefined, message.textBody, undefined);
+ if (speechPayload.isFinal) {
+ // check the length, sometimes empty finals are returned
+ if (speechResult.text !== undefined && speechResult.text.length > 0) {
+ sendFinal = true;
+ }
+ else if (speechPayload.id === _this.privLastPartialUtteranceId) {
+ // send final as normal. We had a non-empty partial for this same utterance
+ // so sending the empty final is important
+ sendFinal = true;
+ }
+ else {
+ // suppress unneeded final
+ }
+ if (sendFinal) {
+ if (!!_this.privConversationServiceConnector.translationReceived) {
+ _this.privConversationServiceConnector.translationReceived(_this.privConversationServiceConnector, new ConversationTranslatorEventArgs_1.ConversationReceivedTranslationEventArgs(ConversationTranslatorInterfaces_1.ConversationTranslatorMessageTypes.final, speechResult, sessionId));
+ }
+ }
+ }
+ else if (speechResult.text !== undefined) {
+ _this.privLastPartialUtteranceId = speechPayload.id;
+ if (!!_this.privConversationServiceConnector.translationReceived) {
+ _this.privConversationServiceConnector.translationReceived(_this.privConversationServiceConnector, new ConversationTranslatorEventArgs_1.ConversationReceivedTranslationEventArgs(ConversationTranslatorInterfaces_1.ConversationTranslatorMessageTypes.partial, speechResult, sessionId));
+ }
+ }
+ break;
+ /**
+ * "translated_message" is a text message or instant message (IM).
+ */
+ case "translated_message":
+ var textPayload = Exports_4.TextResponsePayload.fromJSON(message.textBody);
+ var textResult = new Exports_2.ConversationTranslationResult(textPayload.participantId, _this.getTranslations(textPayload.translations), textPayload.language, undefined, undefined, textPayload.originalText, undefined, undefined, undefined, message.textBody, undefined);
+ if (!!_this.privConversationServiceConnector.translationReceived) {
+ _this.privConversationServiceConnector.translationReceived(_this.privConversationServiceConnector, new ConversationTranslatorEventArgs_1.ConversationReceivedTranslationEventArgs(ConversationTranslatorInterfaces_1.ConversationTranslatorMessageTypes.instantMessage, textResult, sessionId));
+ }
+ break;
+ default:
+ // ignore any unsupported message types
+ break;
+ }
+ }
+ catch (e) {
+ // continue
+ }
+ return _this.receiveConversationMessageOverride();
+ });
+ }, function (error) {
+ _this.terminateMessageLoop = true;
+ });
+ return communicationCustodian.promise();
+ };
+ _this.fetchConversationConnection = function () {
+ return _this.configConnection();
+ };
+ _this.privConversationServiceConnector = conversationServiceConnector;
+ _this.privConversationAuthentication = authentication;
+ _this.receiveMessageOverride = _this.receiveConversationMessageOverride;
+ _this.recognizeOverride = _this.noOp;
+ _this.connectImplOverride = _this.conversationConnectImpl;
+ _this.configConnectionOverride = _this.configConnection;
+ _this.fetchConnectionOverride = _this.fetchConversationConnection;
+ _this.disconnectOverride = _this.privDisconnect;
+ _this.privConversationRequestSession = new ConversationRequestSession_1.ConversationRequestSession(Exports_1.createNoDashGuid());
+ _this.privConversationConnectionFactory = connectionFactory;
+ _this.privConversationIsDisposed = false;
+ return _this;
+ }
+ ConversationServiceAdapter.prototype.isDisposed = function () {
+ return this.privConversationIsDisposed;
+ };
+ ConversationServiceAdapter.prototype.dispose = function (reason) {
+ this.privConversationIsDisposed = true;
+ if (this.privConnectionConfigPromise) {
+ this.privConnectionConfigPromise.onSuccessContinueWith(function (connection) {
+ connection.dispose(reason);
+ });
+ }
+ };
+ ConversationServiceAdapter.prototype.sendMessage = function (message) {
+ this.fetchConversationConnection().onSuccessContinueWith(function (connection) {
+ connection.send(new ConversationConnectionMessage_1.ConversationConnectionMessage(Exports_1.MessageType.Text, message));
+ });
+ };
+ ConversationServiceAdapter.prototype.privDisconnect = function () {
+ if (this.terminateMessageLoop) {
+ return;
+ }
+ this.cancelRecognition(this.privConversationRequestSession.sessionId, this.privConversationRequestSession.requestId, Exports_2.CancellationReason.Error, Exports_2.CancellationErrorCode.NoError, "Disconnecting");
+ this.terminateMessageLoop = true;
+ if (this.privConversationConnectionPromise.result().isCompleted) {
+ if (!this.privConversationConnectionPromise.result().isError) {
+ this.privConversationConnectionPromise.result().result.dispose();
+ this.privConversationConnectionPromise = null;
+ }
+ }
+ else {
+ this.privConversationConnectionPromise.onSuccessContinueWith(function (connection) {
+ connection.dispose();
+ });
+ }
+ };
+ ConversationServiceAdapter.prototype.processTypeSpecificMessages = function (connectionMessage, successCallback, errorCallBack) {
+ return true;
+ };
+ // Cancels recognition.
+ ConversationServiceAdapter.prototype.cancelRecognition = function (sessionId, requestId, cancellationReason, errorCode, error) {
+ this.terminateMessageLoop = true;
+ var cancelEvent = new Exports_2.ConversationTranslationCanceledEventArgs(cancellationReason, error, errorCode, undefined, sessionId);
+ try {
+ if (!!this.privConversationServiceConnector.canceled) {
+ this.privConversationServiceConnector.canceled(this.privConversationServiceConnector, cancelEvent);
+ }
+ }
+ catch (_a) {
+ // continue on error
+ }
+ };
+ /**
+ * Establishes a websocket connection to the end point.
+ * @param isUnAuthorized
+ */
+ ConversationServiceAdapter.prototype.conversationConnectImpl = function (isUnAuthorized) {
+ var _this = this;
+ if (isUnAuthorized === void 0) { isUnAuthorized = false; }
+ if (this.privConversationConnectionPromise) {
+ if (this.privConversationConnectionPromise.result().isCompleted &&
+ (this.privConversationConnectionPromise.result().isError
+ || this.privConversationConnectionPromise.result().result.state() === Exports_1.ConnectionState.Disconnected)) {
+ this.privConnectionId = null;
+ this.privConversationConnectionPromise = null;
+ this.terminateMessageLoop = true;
+ return this.conversationConnectImpl();
+ }
+ else {
+ return this.privConversationConnectionPromise;
+ }
+ }
+ this.privConversationAuthFetchEventId = Exports_1.createNoDashGuid();
+ // keep the connectionId for reconnect events
+ if (this.privConnectionId === undefined) {
+ this.privConnectionId = Exports_1.createNoDashGuid();
+ }
+ this.privConversationRequestSession.onPreConnectionStart(this.privConversationAuthFetchEventId, this.privConnectionId);
+ var authPromise = isUnAuthorized ? this.privConversationAuthentication.fetchOnExpiry(this.privConversationAuthFetchEventId) : this.privConversationAuthentication.fetch(this.privConversationAuthFetchEventId);
+ this.privConversationConnectionPromise = authPromise
+ .continueWithPromise(function (result) {
+ if (result.isError) {
+ _this.privConversationRequestSession.onAuthCompleted(true, result.error);
+ throw new Error(result.error);
+ }
+ else {
+ _this.privConversationRequestSession.onAuthCompleted(false);
+ }
+ var connection = _this.privConversationConnectionFactory.create(_this.privRecognizerConfig, result.result, _this.privConnectionId);
+ // Attach to the underlying event. No need to hold onto the detach pointers as in the event the connection goes away,
+ // it'll stop sending events.
+ connection.events.attach(function (event) {
+ _this.connectionEvents.onEvent(event);
+ });
+ return connection.open().onSuccessContinueWithPromise(function (response) {
+ if (response.statusCode === 200) {
+ _this.privConversationRequestSession.onPreConnectionStart(_this.privConversationAuthFetchEventId, _this.privConnectionId);
+ _this.privConversationRequestSession.onConnectionEstablishCompleted(response.statusCode);
+ var sessionStartEventArgs = new Exports_2.SessionEventArgs(_this.privConversationRequestSession.sessionId);
+ if (!!_this.privConversationServiceConnector.connectionOpened) {
+ _this.privConversationServiceConnector.connectionOpened(_this.privConversationServiceConnector, sessionStartEventArgs);
+ }
+ return Exports_1.PromiseHelper.fromResult(connection);
+ }
+ else if (response.statusCode === 403 && !isUnAuthorized) {
+ return _this.conversationConnectImpl(true);
+ }
+ else {
+ _this.privConversationRequestSession.onConnectionEstablishCompleted(response.statusCode, response.reason);
+ return Exports_1.PromiseHelper.fromError("Unable to contact server. StatusCode: " + response.statusCode + ", " + _this.privRecognizerConfig.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Endpoint) + " Reason: " + response.reason);
+ }
+ });
+ });
+ this.privConnectionLoop = this.startMessageLoop();
+ return this.privConversationConnectionPromise;
+ };
+ ConversationServiceAdapter.prototype.startMessageLoop = function () {
+ var _this = this;
+ this.terminateMessageLoop = false;
+ var messageRetrievalPromise = this.receiveConversationMessageOverride();
+ return messageRetrievalPromise.on(function (r) {
+ return true;
+ }, function (error) {
+ _this.cancelRecognition(_this.privRequestSession ? _this.privRequestSession.sessionId : "", _this.privRequestSession ? _this.privRequestSession.requestId : "", Exports_2.CancellationReason.Error, Exports_2.CancellationErrorCode.RuntimeError, error);
+ });
+ };
+ // Takes an established websocket connection to the endpoint
+ ConversationServiceAdapter.prototype.configConnection = function () {
+ if (this.privConnectionConfigPromise) {
+ if (this.privConnectionConfigPromise.result().isCompleted &&
+ (this.privConnectionConfigPromise.result().isError
+ || this.privConnectionConfigPromise.result().result.state() === Exports_1.ConnectionState.Disconnected)) {
+ this.privConnectionConfigPromise = null;
+ return this.configConnection();
+ }
+ else {
+ return this.privConnectionConfigPromise;
+ }
+ }
+ if (this.terminateMessageLoop) {
+ return Exports_1.PromiseHelper.fromResult(undefined);
+ }
+ this.privConnectionConfigPromise = this.conversationConnectImpl()
+ .onSuccessContinueWith(function (connection) {
+ return connection;
+ });
+ return this.privConnectionConfigPromise;
+ };
+ ConversationServiceAdapter.prototype.getTranslations = function (serviceResultTranslations) {
+ var translations;
+ if (undefined !== serviceResultTranslations) {
+ translations = new Exports_2.Translations();
+ for (var _i = 0, serviceResultTranslations_1 = serviceResultTranslations; _i < serviceResultTranslations_1.length; _i++) {
+ var translation = serviceResultTranslations_1[_i];
+ translations.set(translation.lang, translation.translation);
+ }
+ }
+ return translations;
+ };
+ return ConversationServiceAdapter;
+}(Exports_3.ServiceRecognizerBase));
+exports.ConversationServiceAdapter = ConversationServiceAdapter;
+
+
+
+/***/ }),
+/* 166 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+/**
+ * Placeholder class for the Conversation Request Session. Based off RequestSession.
+ * TODO: define what telemetry is required.
+ */
+var ConversationRequestSession = /** @class */ (function () {
+ function ConversationRequestSession(sessionId) {
+ var _this = this;
+ this.privIsDisposed = false;
+ this.privDetachables = new Array();
+ this.onPreConnectionStart = function (authFetchEventId, connectionId) {
+ _this.privSessionId = connectionId;
+ };
+ this.onAuthCompleted = function (isError, error) {
+ if (isError) {
+ _this.onComplete();
+ }
+ };
+ this.onConnectionEstablishCompleted = function (statusCode, reason) {
+ if (statusCode === 200) {
+ return;
+ }
+ else if (statusCode === 403) {
+ _this.onComplete();
+ }
+ };
+ this.onServiceTurnEndResponse = function (continuousRecognition) {
+ if (!continuousRecognition) {
+ _this.onComplete();
+ }
+ else {
+ _this.privRequestId = Exports_1.createNoDashGuid();
+ }
+ };
+ this.dispose = function (error) {
+ if (!_this.privIsDisposed) {
+ // we should have completed by now. If we did not its an unknown error.
+ _this.privIsDisposed = true;
+ for (var _i = 0, _a = _this.privDetachables; _i < _a.length; _i++) {
+ var detachable = _a[_i];
+ detachable.detach();
+ }
+ }
+ };
+ this.onComplete = function () {
+ //
+ };
+ this.privSessionId = sessionId;
+ this.privRequestId = Exports_1.createNoDashGuid();
+ this.privRequestCompletionDeferral = new Exports_1.Deferred();
+ }
+ Object.defineProperty(ConversationRequestSession.prototype, "sessionId", {
+ get: function () {
+ return this.privSessionId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationRequestSession.prototype, "requestId", {
+ get: function () {
+ return this.privRequestId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationRequestSession.prototype, "completionPromise", {
+ get: function () {
+ return this.privRequestCompletionDeferral.promise();
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConversationRequestSession;
+}());
+exports.ConversationRequestSession = ConversationRequestSession;
+
+
+
+/***/ }),
+/* 167 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var Exports_1 = __webpack_require__(31);
+var MuteAllEventArgs = /** @class */ (function (_super) {
+ __extends(MuteAllEventArgs, _super);
+ function MuteAllEventArgs(isMuted, sessionId) {
+ var _this = _super.call(this, sessionId) || this;
+ _this.privIsMuted = isMuted;
+ return _this;
+ }
+ Object.defineProperty(MuteAllEventArgs.prototype, "isMuted", {
+ get: function () {
+ return this.privIsMuted;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return MuteAllEventArgs;
+}(Exports_1.SessionEventArgs));
+exports.MuteAllEventArgs = MuteAllEventArgs;
+// tslint:disable-next-line: max-classes-per-file
+var LockRoomEventArgs = /** @class */ (function (_super) {
+ __extends(LockRoomEventArgs, _super);
+ function LockRoomEventArgs(isLocked, sessionId) {
+ var _this = _super.call(this, sessionId) || this;
+ _this.privIsLocked = isLocked;
+ return _this;
+ }
+ Object.defineProperty(LockRoomEventArgs.prototype, "isMuted", {
+ get: function () {
+ return this.privIsLocked;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return LockRoomEventArgs;
+}(Exports_1.SessionEventArgs));
+exports.LockRoomEventArgs = LockRoomEventArgs;
+// tslint:disable-next-line: max-classes-per-file
+var ParticipantEventArgs = /** @class */ (function (_super) {
+ __extends(ParticipantEventArgs, _super);
+ function ParticipantEventArgs(participant, sessionId) {
+ var _this = _super.call(this, sessionId) || this;
+ _this.privParticipant = participant;
+ return _this;
+ }
+ Object.defineProperty(ParticipantEventArgs.prototype, "participant", {
+ get: function () {
+ return this.privParticipant;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ParticipantEventArgs;
+}(Exports_1.SessionEventArgs));
+exports.ParticipantEventArgs = ParticipantEventArgs;
+// tslint:disable-next-line: max-classes-per-file
+var ParticipantAttributeEventArgs = /** @class */ (function (_super) {
+ __extends(ParticipantAttributeEventArgs, _super);
+ function ParticipantAttributeEventArgs(participantId, key, value, sessionId) {
+ var _this = _super.call(this, sessionId) || this;
+ _this.privKey = key;
+ _this.privValue = value;
+ _this.privParticipantId = participantId;
+ return _this;
+ }
+ Object.defineProperty(ParticipantAttributeEventArgs.prototype, "value", {
+ get: function () {
+ return this.privValue;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantAttributeEventArgs.prototype, "key", {
+ get: function () {
+ return this.privKey;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantAttributeEventArgs.prototype, "id", {
+ get: function () {
+ return this.privParticipantId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ParticipantAttributeEventArgs;
+}(Exports_1.SessionEventArgs));
+exports.ParticipantAttributeEventArgs = ParticipantAttributeEventArgs;
+// tslint:disable-next-line: max-classes-per-file
+var ParticipantsListEventArgs = /** @class */ (function (_super) {
+ __extends(ParticipantsListEventArgs, _super);
+ function ParticipantsListEventArgs(conversationId, token, translateTo, profanityFilter, roomProfanityFilter, isRoomLocked, isMuteAll, participants, sessionId) {
+ var _this = _super.call(this, sessionId) || this;
+ _this.privRoomId = conversationId;
+ _this.privSessionToken = token;
+ _this.privTranslateTo = translateTo;
+ _this.privProfanityFilter = profanityFilter;
+ _this.privRoomProfanityFilter = roomProfanityFilter;
+ _this.privIsRoomLocked = isRoomLocked;
+ _this.privIsRoomLocked = isMuteAll;
+ _this.privParticipants = participants;
+ return _this;
+ }
+ Object.defineProperty(ParticipantsListEventArgs.prototype, "sessionToken", {
+ get: function () {
+ return this.privSessionToken;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListEventArgs.prototype, "conversationId", {
+ get: function () {
+ return this.privRoomId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListEventArgs.prototype, "translateTo", {
+ get: function () {
+ return this.privTranslateTo;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListEventArgs.prototype, "profanityFilter", {
+ get: function () {
+ return this.privProfanityFilter;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListEventArgs.prototype, "roomProfanityFilter", {
+ get: function () {
+ return this.privRoomProfanityFilter;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListEventArgs.prototype, "isRoomLocked", {
+ get: function () {
+ return this.privIsRoomLocked;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListEventArgs.prototype, "isMuteAll", {
+ get: function () {
+ return this.privIsMuteAll;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListEventArgs.prototype, "participants", {
+ get: function () {
+ return this.privParticipants;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ParticipantsListEventArgs;
+}(Exports_1.SessionEventArgs));
+exports.ParticipantsListEventArgs = ParticipantsListEventArgs;
+// tslint:disable-next-line: max-classes-per-file
+var ConversationReceivedTranslationEventArgs = /** @class */ (function () {
+ function ConversationReceivedTranslationEventArgs(command, payload, sessionId) {
+ this.privPayload = payload;
+ this.privCommand = command;
+ this.privSessionId = sessionId;
+ }
+ Object.defineProperty(ConversationReceivedTranslationEventArgs.prototype, "payload", {
+ get: function () {
+ return this.privPayload;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationReceivedTranslationEventArgs.prototype, "command", {
+ get: function () {
+ return this.privCommand;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ConversationReceivedTranslationEventArgs.prototype, "sessionId", {
+ get: function () {
+ return this.privSessionId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConversationReceivedTranslationEventArgs;
+}());
+exports.ConversationReceivedTranslationEventArgs = ConversationReceivedTranslationEventArgs;
+
+
+
+/***/ }),
+/* 168 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/** Users participating in the conversation */
+var InternalParticipants = /** @class */ (function () {
+ function InternalParticipants(participants, meId) {
+ if (participants === void 0) { participants = []; }
+ this.participants = participants;
+ this.meId = meId;
+ }
+ /**
+ * Add or update a participant
+ * @param value
+ */
+ InternalParticipants.prototype.addOrUpdateParticipant = function (value) {
+ if (value === undefined) {
+ return;
+ }
+ var exists = this.getParticipantIndex(value.id);
+ if (exists > -1) {
+ this.participants.splice(exists, 1, value);
+ }
+ else {
+ this.participants.push(value);
+ }
+ // ensure it was added ok
+ return this.getParticipant(value.id);
+ };
+ /**
+ * Find the participant's position in the participants list.
+ * @param id
+ */
+ InternalParticipants.prototype.getParticipantIndex = function (id) {
+ return this.participants.findIndex(function (p) { return p.id === id; });
+ };
+ /**
+ * Find the participant by id.
+ * @param id
+ */
+ InternalParticipants.prototype.getParticipant = function (id) {
+ return this.participants.find(function (p) { return p.id === id; });
+ };
+ /***
+ * Remove a participant from the participants list.
+ */
+ InternalParticipants.prototype.deleteParticipant = function (id) {
+ this.participants = this.participants.filter(function (p) { return p.id !== id; });
+ };
+ Object.defineProperty(InternalParticipants.prototype, "host", {
+ /***
+ * Helper to return the conversation host.
+ */
+ get: function () {
+ return this.participants.find(function (p) { return p.isHost === true; });
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(InternalParticipants.prototype, "me", {
+ /**
+ * Helper to return the current user.
+ */
+ get: function () {
+ return this.getParticipant(this.meId);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return InternalParticipants;
+}());
+exports.InternalParticipants = InternalParticipants;
+/**
+ * List of command message types
+ */
+exports.ConversationTranslatorMessageTypes = {
+ command: "command",
+ final: "final",
+ info: "info",
+ instantMessage: "instant_message",
+ partial: "partial",
+ participantCommand: "participant_command",
+ translatedMessage: "translated_message"
+};
+/**
+ * List of command types
+ */
+exports.ConversationTranslatorCommandTypes = {
+ changeNickname: "ChangeNickname",
+ disconnectSession: "DisconnectSession",
+ ejectParticipant: "EjectParticipant",
+ instant_message: "instant_message",
+ joinSession: "JoinSession",
+ leaveSession: "LeaveSession",
+ participantList: "ParticipantList",
+ roomExpirationWarning: "RoomExpirationWarning",
+ setLockState: "SetLockState",
+ setMute: "SetMute",
+ setMuteAll: "SetMuteAll",
+ setProfanityFiltering: "SetProfanityFiltering",
+ setTranslateToLanguages: "SetTranslateToLanguages",
+ setUseTTS: "SetUseTTS"
+};
+
+
+
+/***/ }),
+/* 169 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", { value: true });
+var CommandResponsePayload_1 = __webpack_require__(170);
+exports.CommandResponsePayload = CommandResponsePayload_1.CommandResponsePayload;
+var ParticipantResponsePayload_1 = __webpack_require__(171);
+exports.ParticipantsListPayloadResponse = ParticipantResponsePayload_1.ParticipantsListPayloadResponse;
+exports.ParticipantPayloadResponse = ParticipantResponsePayload_1.ParticipantPayloadResponse;
+var TranslationResponsePayload_1 = __webpack_require__(172);
+exports.SpeechResponsePayload = TranslationResponsePayload_1.SpeechResponsePayload;
+exports.TextResponsePayload = TranslationResponsePayload_1.TextResponsePayload;
+
+
+
+/***/ }),
+/* 170 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var CommandResponsePayload = /** @class */ (function () {
+ function CommandResponsePayload(json) {
+ this.privCommandResponse = JSON.parse(json);
+ }
+ CommandResponsePayload.fromJSON = function (json) {
+ return new CommandResponsePayload(json);
+ };
+ Object.defineProperty(CommandResponsePayload.prototype, "type", {
+ get: function () {
+ return this.privCommandResponse.type;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CommandResponsePayload.prototype, "command", {
+ get: function () {
+ return this.privCommandResponse.command;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CommandResponsePayload.prototype, "id", {
+ get: function () {
+ return this.privCommandResponse.id;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CommandResponsePayload.prototype, "nickname", {
+ get: function () {
+ return this.privCommandResponse.nickname;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CommandResponsePayload.prototype, "participantId", {
+ get: function () {
+ return this.privCommandResponse.participantId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CommandResponsePayload.prototype, "roomid", {
+ get: function () {
+ return this.privCommandResponse.roomid;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(CommandResponsePayload.prototype, "value", {
+ get: function () {
+ return this.privCommandResponse.value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return CommandResponsePayload;
+}());
+exports.CommandResponsePayload = CommandResponsePayload;
+
+
+
+/***/ }),
+/* 171 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var ParticipantsListPayloadResponse = /** @class */ (function () {
+ function ParticipantsListPayloadResponse(json) {
+ this.privParticipantsPayloadResponse = JSON.parse(json);
+ }
+ ParticipantsListPayloadResponse.fromJSON = function (json) {
+ return new ParticipantsListPayloadResponse(json);
+ };
+ Object.defineProperty(ParticipantsListPayloadResponse.prototype, "roomid", {
+ get: function () {
+ return this.privParticipantsPayloadResponse.roomid;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListPayloadResponse.prototype, "id", {
+ get: function () {
+ return this.privParticipantsPayloadResponse.id;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListPayloadResponse.prototype, "command", {
+ get: function () {
+ return this.privParticipantsPayloadResponse.command;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListPayloadResponse.prototype, "participants", {
+ get: function () {
+ return this.privParticipantsPayloadResponse.participants;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListPayloadResponse.prototype, "token", {
+ get: function () {
+ return this.privParticipantsPayloadResponse.token;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListPayloadResponse.prototype, "translateTo", {
+ get: function () {
+ return this.privParticipantsPayloadResponse.translateTo;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListPayloadResponse.prototype, "profanityFilter", {
+ get: function () {
+ return this.privParticipantsPayloadResponse.profanityFilter;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListPayloadResponse.prototype, "roomProfanityFilter", {
+ get: function () {
+ return this.privParticipantsPayloadResponse.roomProfanityFilter;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListPayloadResponse.prototype, "roomLocked", {
+ get: function () {
+ return this.privParticipantsPayloadResponse.roomLocked;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListPayloadResponse.prototype, "muteAll", {
+ get: function () {
+ return this.privParticipantsPayloadResponse.muteAll;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantsListPayloadResponse.prototype, "type", {
+ get: function () {
+ return this.privParticipantsPayloadResponse.type;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ParticipantsListPayloadResponse;
+}());
+exports.ParticipantsListPayloadResponse = ParticipantsListPayloadResponse;
+// tslint:disable-next-line: max-classes-per-file
+var ParticipantPayloadResponse = /** @class */ (function () {
+ function ParticipantPayloadResponse(json) {
+ this.privParticipantPayloadResponse = JSON.parse(json);
+ }
+ ParticipantPayloadResponse.fromJSON = function (json) {
+ return new ParticipantPayloadResponse(json);
+ };
+ Object.defineProperty(ParticipantPayloadResponse.prototype, "nickname", {
+ get: function () {
+ return this.privParticipantPayloadResponse.nickname;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantPayloadResponse.prototype, "locale", {
+ get: function () {
+ return this.privParticipantPayloadResponse.locale;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantPayloadResponse.prototype, "usetts", {
+ get: function () {
+ return this.privParticipantPayloadResponse.usetts;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantPayloadResponse.prototype, "ismuted", {
+ get: function () {
+ return this.privParticipantPayloadResponse.ismuted;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantPayloadResponse.prototype, "ishost", {
+ get: function () {
+ return this.privParticipantPayloadResponse.ishost;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantPayloadResponse.prototype, "participantId", {
+ get: function () {
+ return this.privParticipantPayloadResponse.participantId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ParticipantPayloadResponse.prototype, "avatar", {
+ get: function () {
+ return this.privParticipantPayloadResponse.avatar;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ParticipantPayloadResponse;
+}());
+exports.ParticipantPayloadResponse = ParticipantPayloadResponse;
+
+
+
+/***/ }),
+/* 172 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var SpeechResponsePayload = /** @class */ (function () {
+ function SpeechResponsePayload(json) {
+ this.privSpeechResponse = JSON.parse(json);
+ }
+ SpeechResponsePayload.fromJSON = function (json) {
+ return new SpeechResponsePayload(json);
+ };
+ Object.defineProperty(SpeechResponsePayload.prototype, "recognition", {
+ get: function () {
+ return this.privSpeechResponse.recognition;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechResponsePayload.prototype, "translations", {
+ get: function () {
+ return this.privSpeechResponse.translations;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechResponsePayload.prototype, "id", {
+ get: function () {
+ return this.privSpeechResponse.id;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechResponsePayload.prototype, "language", {
+ get: function () {
+ return this.privSpeechResponse.language;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechResponsePayload.prototype, "nickname", {
+ get: function () {
+ return this.privSpeechResponse.nickname;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechResponsePayload.prototype, "participantId", {
+ get: function () {
+ return this.privSpeechResponse.participantId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechResponsePayload.prototype, "roomid", {
+ get: function () {
+ return this.privSpeechResponse.roomid;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechResponsePayload.prototype, "timestamp", {
+ get: function () {
+ return this.privSpeechResponse.timestamp;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechResponsePayload.prototype, "type", {
+ get: function () {
+ return this.privSpeechResponse.type;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeechResponsePayload.prototype, "isFinal", {
+ get: function () {
+ return this.privSpeechResponse.type === "final";
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeechResponsePayload;
+}());
+exports.SpeechResponsePayload = SpeechResponsePayload;
+// tslint:disable-next-line: max-classes-per-file
+var TextResponsePayload = /** @class */ (function () {
+ function TextResponsePayload(json) {
+ this.privTextResponse = JSON.parse(json);
+ }
+ TextResponsePayload.fromJSON = function (json) {
+ return new TextResponsePayload(json);
+ };
+ Object.defineProperty(TextResponsePayload.prototype, "originalText", {
+ get: function () {
+ return this.privTextResponse.originalText;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TextResponsePayload.prototype, "translations", {
+ get: function () {
+ return this.privTextResponse.translations;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TextResponsePayload.prototype, "id", {
+ get: function () {
+ return this.privTextResponse.id;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TextResponsePayload.prototype, "language", {
+ get: function () {
+ return this.privTextResponse.language;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TextResponsePayload.prototype, "nickname", {
+ get: function () {
+ return this.privTextResponse.nickname;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TextResponsePayload.prototype, "participantId", {
+ get: function () {
+ return this.privTextResponse.participantId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TextResponsePayload.prototype, "roomid", {
+ get: function () {
+ return this.privTextResponse.roomid;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TextResponsePayload.prototype, "timestamp", {
+ get: function () {
+ return this.privTextResponse.timestamp;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(TextResponsePayload.prototype, "type", {
+ get: function () {
+ return this.privTextResponse.type;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return TextResponsePayload;
+}());
+exports.TextResponsePayload = TextResponsePayload;
+
+
+
+/***/ }),
+/* 173 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var SynthesisAudioMetadata = /** @class */ (function () {
+ function SynthesisAudioMetadata(json) {
+ this.privSynthesisAudioMetadata = JSON.parse(json);
+ }
+ SynthesisAudioMetadata.fromJSON = function (json) {
+ return new SynthesisAudioMetadata(json);
+ };
+ Object.defineProperty(SynthesisAudioMetadata.prototype, "Metadata", {
+ get: function () {
+ return this.privSynthesisAudioMetadata.Metadata;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SynthesisAudioMetadata;
+}());
+exports.SynthesisAudioMetadata = SynthesisAudioMetadata;
+
+
+
+/***/ }),
+/* 174 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var AudioOutputStream_1 = __webpack_require__(43);
+var SynthesisAdapterBase_1 = __webpack_require__(175);
+var SynthesisEvents_1 = __webpack_require__(176);
+var SynthesisTurn = /** @class */ (function () {
+ function SynthesisTurn() {
+ var _this = this;
+ this.privIsDisposed = false;
+ this.privIsSynthesizing = false;
+ this.privIsSynthesisEnded = false;
+ this.privBytesReceived = 0;
+ this.privTextOffset = 0;
+ this.privNextSearchTextIndex = 0;
+ this.onPreConnectionStart = function (authFetchEventId, connectionId) {
+ _this.privAuthFetchEventId = authFetchEventId;
+ _this.onEvent(new SynthesisEvents_1.ConnectingToSynthesisServiceEvent(_this.privRequestId, _this.privAuthFetchEventId));
+ };
+ this.onAuthCompleted = function (isError, error) {
+ if (isError) {
+ _this.onComplete();
+ }
+ };
+ this.onConnectionEstablishCompleted = function (statusCode, reason) {
+ if (statusCode === 200) {
+ _this.onEvent(new SynthesisEvents_1.SynthesisStartedEvent(_this.requestId, _this.privAuthFetchEventId));
+ _this.privBytesReceived = 0;
+ return;
+ }
+ else if (statusCode === 403) {
+ _this.onComplete();
+ }
+ };
+ this.onServiceResponseMessage = function (responseJson) {
+ var response = JSON.parse(responseJson);
+ _this.streamId = response.audio.streamId;
+ };
+ this.onServiceTurnEndResponse = function () {
+ _this.privTurnDeferral.resolve(true);
+ _this.onComplete();
+ };
+ this.onServiceTurnStartResponse = function () {
+ if (_this.privTurnDeferral.state() === Exports_1.PromiseState.None) {
+ // What? How are we starting a turn with another not done?
+ _this.privTurnDeferral.reject("Another turn started before current completed.");
+ }
+ _this.privTurnDeferral = new Exports_1.Deferred();
+ };
+ this.dispose = function (error) {
+ if (!_this.privIsDisposed) {
+ // we should have completed by now. If we did not its an unknown error.
+ _this.privIsDisposed = true;
+ }
+ };
+ this.onEvent = function (event) {
+ Exports_1.Events.instance.onEvent(event);
+ };
+ this.onComplete = function () {
+ if (_this.privIsSynthesizing) {
+ _this.privIsSynthesizing = false;
+ _this.privIsSynthesisEnded = true;
+ _this.privAudioOutputStream.close();
+ if (_this.privTurnAudioDestination !== undefined) {
+ _this.privTurnAudioDestination.close();
+ _this.privTurnAudioDestination = undefined;
+ }
+ }
+ };
+ this.privRequestId = Exports_1.createNoDashGuid();
+ this.privTurnDeferral = new Exports_1.Deferred();
+ // We're not in a turn, so resolve.
+ this.privTurnDeferral.resolve(true);
+ }
+ Object.defineProperty(SynthesisTurn.prototype, "requestId", {
+ get: function () {
+ return this.privRequestId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesisTurn.prototype, "streamId", {
+ get: function () {
+ return this.privStreamId;
+ },
+ set: function (value) {
+ this.privStreamId = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesisTurn.prototype, "audioOutputFormat", {
+ get: function () {
+ return this.privAudioOutputFormat;
+ },
+ set: function (format) {
+ this.privAudioOutputFormat = format;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesisTurn.prototype, "turnCompletionPromise", {
+ get: function () {
+ return this.privTurnDeferral.promise();
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesisTurn.prototype, "isSynthesisEnded", {
+ get: function () {
+ return this.privIsSynthesisEnded;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesisTurn.prototype, "isSynthesizing", {
+ get: function () {
+ return this.privIsSynthesizing;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesisTurn.prototype, "currentTextOffset", {
+ get: function () {
+ return this.privTextOffset;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesisTurn.prototype, "bytesReceived", {
+ // The number of bytes received for current turn
+ get: function () {
+ return this.privBytesReceived;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesisTurn.prototype, "allReceivedAudio", {
+ get: function () {
+ if (!!this.privReceivedAudio) {
+ return this.privReceivedAudio;
+ }
+ if (!this.privIsSynthesisEnded) {
+ return null;
+ }
+ this.readAllAudioFromStream();
+ return this.allReceivedAudio;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesisTurn.prototype, "allReceivedAudioWithHeader", {
+ get: function () {
+ if (!!this.privReceivedAudioWithHeader) {
+ return this.privReceivedAudioWithHeader;
+ }
+ if (!this.privIsSynthesisEnded) {
+ return null;
+ }
+ if (this.audioOutputFormat.hasHeader) {
+ this.privReceivedAudioWithHeader = SynthesisAdapterBase_1.SynthesisAdapterBase.addHeader(this.allReceivedAudio, this.audioOutputFormat);
+ return this.allReceivedAudioWithHeader;
+ }
+ else {
+ return this.allReceivedAudio;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ SynthesisTurn.prototype.startNewSynthesis = function (requestId, rawText, isSSML, audioDestination) {
+ this.privIsSynthesisEnded = false;
+ this.privIsSynthesizing = true;
+ this.privRequestId = requestId;
+ this.privRawText = rawText;
+ this.privIsSSML = isSSML;
+ this.privAudioOutputStream = new AudioOutputStream_1.PullAudioOutputStreamImpl();
+ this.privAudioOutputStream.format = this.privAudioOutputFormat;
+ this.privReceivedAudio = null;
+ this.privReceivedAudioWithHeader = null;
+ this.privBytesReceived = 0;
+ this.privTextOffset = 0;
+ this.privNextSearchTextIndex = 0;
+ if (audioDestination !== undefined) {
+ this.privTurnAudioDestination = audioDestination;
+ this.privTurnAudioDestination.format = this.privAudioOutputFormat;
+ }
+ this.onEvent(new SynthesisEvents_1.SynthesisTriggeredEvent(this.requestId, undefined, audioDestination === undefined ? undefined : audioDestination.id()));
+ };
+ SynthesisTurn.prototype.onAudioChunkReceived = function (data) {
+ if (this.isSynthesizing) {
+ this.privAudioOutputStream.write(data);
+ this.privBytesReceived += data.byteLength;
+ if (this.privTurnAudioDestination !== undefined) {
+ this.privTurnAudioDestination.write(data);
+ }
+ }
+ };
+ SynthesisTurn.prototype.onWordBoundaryEvent = function (text) {
+ this.updateTextOffset(text);
+ };
+ SynthesisTurn.prototype.onStopSynthesizing = function () {
+ this.onComplete();
+ };
+ SynthesisTurn.prototype.updateTextOffset = function (text) {
+ if (this.privTextOffset >= 0) {
+ this.privTextOffset = this.privRawText.indexOf(text, this.privNextSearchTextIndex);
+ if (this.privTextOffset >= 0) {
+ this.privNextSearchTextIndex = this.privTextOffset + text.length;
+ }
+ if (this.privIsSSML) {
+ if (this.privRawText.indexOf("<", this.privTextOffset + 1) > this.privRawText.indexOf(">", this.privTextOffset + 1)) {
+ this.updateTextOffset(text);
+ }
+ }
+ }
+ };
+ SynthesisTurn.prototype.readAllAudioFromStream = function () {
+ if (this.privIsSynthesisEnded) {
+ this.privReceivedAudio = new ArrayBuffer(this.bytesReceived);
+ try {
+ this.privAudioOutputStream.read(this.privReceivedAudio);
+ }
+ catch (e) {
+ this.privReceivedAudio = new ArrayBuffer(0);
+ }
+ }
+ };
+ return SynthesisTurn;
+}());
+exports.SynthesisTurn = SynthesisTurn;
+
+
+
+/***/ }),
+/* 175 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var Exports_2 = __webpack_require__(31);
+var Exports_3 = __webpack_require__(26);
+var SpeechConnectionMessage_Internal_1 = __webpack_require__(128);
+var SynthesisAdapterBase = /** @class */ (function () {
+ function SynthesisAdapterBase(authentication, connectionFactory, synthesizerConfig, speechSynthesizer, audioDestination) {
+ var _this = this;
+ this.speakOverride = undefined;
+ this.receiveMessageOverride = undefined;
+ this.connectImplOverride = undefined;
+ this.configConnectionOverride = undefined;
+ this.fetchConnectionOverride = undefined;
+ this.receiveMessage = function () {
+ return _this.fetchConnection().on(function (connection) {
+ return connection.read()
+ .onSuccessContinueWithPromise(function (message) {
+ if (_this.receiveMessageOverride !== undefined) {
+ return _this.receiveMessageOverride();
+ }
+ if (_this.privIsDisposed) {
+ // We're done.
+ return Exports_1.PromiseHelper.fromResult(undefined);
+ }
+ // indicates we are draining the queue and it came with no message;
+ if (!message) {
+ if (!_this.privSynthesisTurn.isSynthesizing) {
+ return Exports_1.PromiseHelper.fromResult(true);
+ }
+ else {
+ return _this.receiveMessage();
+ }
+ }
+ _this.privServiceHasSentMessage = true;
+ var connectionMessage = SpeechConnectionMessage_Internal_1.SpeechConnectionMessage.fromConnectionMessage(message);
+ if (connectionMessage.requestId.toLowerCase() === _this.privSynthesisTurn.requestId.toLowerCase()) {
+ switch (connectionMessage.path.toLowerCase()) {
+ case "turn.start":
+ _this.privSynthesisTurn.onServiceTurnStartResponse();
+ break;
+ case "response":
+ _this.privSynthesisTurn.onServiceResponseMessage(connectionMessage.textBody);
+ break;
+ case "audio":
+ if (_this.privSynthesisTurn.streamId.toLowerCase() === connectionMessage.streamId.toLowerCase()
+ && !!connectionMessage.binaryBody) {
+ _this.privSynthesisTurn.onAudioChunkReceived(connectionMessage.binaryBody);
+ if (!!_this.privSpeechSynthesizer.synthesizing) {
+ try {
+ var audioWithHeader = SynthesisAdapterBase.addHeader(connectionMessage.binaryBody, _this.privSynthesisTurn.audioOutputFormat);
+ var ev = new Exports_2.SpeechSynthesisEventArgs(new Exports_2.SpeechSynthesisResult(_this.privSynthesisTurn.requestId, Exports_2.ResultReason.SynthesizingAudio, audioWithHeader));
+ _this.privSpeechSynthesizer.synthesizing(_this.privSpeechSynthesizer, ev);
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ if (_this.privSessionAudioDestination !== undefined) {
+ _this.privSessionAudioDestination.write(connectionMessage.binaryBody);
+ }
+ }
+ break;
+ case "audio.metadata":
+ var metadataList = Exports_3.SynthesisAudioMetadata.fromJSON(connectionMessage.textBody).Metadata;
+ for (var _i = 0, metadataList_1 = metadataList; _i < metadataList_1.length; _i++) {
+ var metadata = metadataList_1[_i];
+ if (metadata.Type.toLowerCase() === "WordBoundary".toLowerCase()) {
+ _this.privSynthesisTurn.onWordBoundaryEvent(metadata.Data.text.Text);
+ var ev = new Exports_2.SpeechSynthesisWordBoundaryEventArgs(metadata.Data.Offset, metadata.Data.text.Text, metadata.Data.text.Length, _this.privSynthesisTurn.currentTextOffset);
+ if (!!_this.privSpeechSynthesizer.wordBoundary) {
+ try {
+ _this.privSpeechSynthesizer.wordBoundary(_this.privSpeechSynthesizer, ev);
+ }
+ catch (error) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ }
+ }
+ break;
+ case "turn.end":
+ _this.privSynthesisTurn.onServiceTurnEndResponse();
+ var result = void 0;
+ try {
+ result = new Exports_2.SpeechSynthesisResult(_this.privSynthesisTurn.requestId, Exports_2.ResultReason.SynthesizingAudioCompleted, _this.privSynthesisTurn.allReceivedAudioWithHeader);
+ if (!!_this.privSuccessCallback) {
+ _this.privSuccessCallback(result);
+ }
+ }
+ catch (error) {
+ if (!!_this.privErrorCallback) {
+ _this.privErrorCallback(error);
+ }
+ }
+ if (_this.privSpeechSynthesizer.synthesisCompleted) {
+ try {
+ _this.privSpeechSynthesizer.synthesisCompleted(_this.privSpeechSynthesizer, new Exports_2.SpeechSynthesisEventArgs(result));
+ }
+ catch (e) {
+ // Not going to let errors in the event handler
+ // trip things up.
+ }
+ }
+ break;
+ default:
+ if (!_this.processTypeSpecificMessages(connectionMessage)) {
+ // here are some messages that the derived class has not processed, dispatch them to connect class
+ if (!!_this.privServiceEvents) {
+ _this.serviceEvents.onEvent(new Exports_1.ServiceEvent(connectionMessage.path.toLowerCase(), connectionMessage.textBody));
+ }
+ }
+ }
+ }
+ return _this.receiveMessage();
+ });
+ }, function (error) {
+ });
+ };
+ this.sendSynthesisContext = function (connection) {
+ var synthesisContextJson = _this.synthesisContext.toJSON();
+ if (synthesisContextJson) {
+ return connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(Exports_1.MessageType.Text, "synthesis.context", _this.privSynthesisTurn.requestId, "application/json", synthesisContextJson));
+ }
+ return Exports_1.PromiseHelper.fromResult(true);
+ };
+ this.sendSpeechServiceConfig = function (connection, SpeechServiceConfigJson) {
+ if (SpeechServiceConfigJson) {
+ return connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(Exports_1.MessageType.Text, "speech.config", _this.privSynthesisTurn.requestId, "application/json", SpeechServiceConfigJson));
+ }
+ return Exports_1.PromiseHelper.fromResult(true);
+ };
+ this.sendSsmlMessage = function (connection, ssml, requestId) {
+ return connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(Exports_1.MessageType.Text, "ssml", requestId, "application/ssml+xml", ssml));
+ };
+ this.fetchConnection = function () {
+ if (_this.fetchConnectionOverride !== undefined) {
+ return _this.fetchConnectionOverride();
+ }
+ return _this.configureConnection();
+ };
+ if (!authentication) {
+ throw new Exports_1.ArgumentNullError("authentication");
+ }
+ if (!connectionFactory) {
+ throw new Exports_1.ArgumentNullError("connectionFactory");
+ }
+ if (!synthesizerConfig) {
+ throw new Exports_1.ArgumentNullError("synthesizerConfig");
+ }
+ this.privAuthentication = authentication;
+ this.privConnectionFactory = connectionFactory;
+ this.privSynthesizerConfig = synthesizerConfig;
+ this.privIsDisposed = false;
+ this.privSpeechSynthesizer = speechSynthesizer;
+ this.privSessionAudioDestination = audioDestination;
+ this.privSynthesisTurn = new Exports_3.SynthesisTurn();
+ this.privConnectionEvents = new Exports_1.EventSource();
+ this.privServiceEvents = new Exports_1.EventSource();
+ this.privSynthesisContext = new Exports_3.SynthesisContext(this.privSpeechSynthesizer);
+ this.privAgentConfig = new Exports_3.AgentConfig();
+ this.connectionEvents.attach(function (connectionEvent) {
+ if (connectionEvent.name === "ConnectionClosedEvent") {
+ var connectionClosedEvent = connectionEvent;
+ _this.cancelSynthesisLocal(Exports_2.CancellationReason.Error, connectionClosedEvent.statusCode === 1007 ? Exports_2.CancellationErrorCode.BadRequestParameters : Exports_2.CancellationErrorCode.ConnectionFailure, connectionClosedEvent.reason + " websocket error code: " + connectionClosedEvent.statusCode);
+ }
+ });
+ }
+ Object.defineProperty(SynthesisAdapterBase.prototype, "synthesisContext", {
+ get: function () {
+ return this.privSynthesisContext;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesisAdapterBase.prototype, "agentConfig", {
+ get: function () {
+ return this.privAgentConfig;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesisAdapterBase.prototype, "connectionEvents", {
+ get: function () {
+ return this.privConnectionEvents;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesisAdapterBase.prototype, "serviceEvents", {
+ get: function () {
+ return this.privServiceEvents;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesisAdapterBase.prototype, "activityTemplate", {
+ get: function () { return this.privActivityTemplate; },
+ set: function (messagePayload) { this.privActivityTemplate = messagePayload; },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesisAdapterBase.prototype, "audioOutputFormat", {
+ set: function (format) {
+ this.privAudioOutputFormat = format;
+ this.privSynthesisTurn.audioOutputFormat = format;
+ if (this.privSessionAudioDestination !== undefined) {
+ this.privSessionAudioDestination.format = format;
+ }
+ if (this.synthesisContext !== undefined) {
+ this.synthesisContext.audioOutputFormat = format;
+ }
+ },
+ enumerable: true,
+ configurable: true
+ });
+ SynthesisAdapterBase.addHeader = function (audio, format) {
+ if (!format.hasHeader) {
+ return audio;
+ }
+ format.updateHeader(audio.byteLength);
+ var tmp = new Uint8Array(audio.byteLength + format.header.byteLength);
+ tmp.set(new Uint8Array(format.header), 0);
+ tmp.set(new Uint8Array(audio), format.header.byteLength);
+ return tmp.buffer;
+ };
+ SynthesisAdapterBase.prototype.isDisposed = function () {
+ return this.privIsDisposed;
+ };
+ SynthesisAdapterBase.prototype.dispose = function (reason) {
+ this.privIsDisposed = true;
+ if (this.privSessionAudioDestination !== undefined) {
+ this.privSessionAudioDestination.close();
+ }
+ if (this.privConnectionConfigurationPromise) {
+ this.privConnectionConfigurationPromise.onSuccessContinueWith(function (connection) {
+ connection.dispose(reason);
+ });
+ }
+ };
+ SynthesisAdapterBase.prototype.connect = function () {
+ this.connectImpl().result();
+ };
+ SynthesisAdapterBase.prototype.connectAsync = function (cb, err) {
+ this.connectImpl().continueWith(function (promiseResult) {
+ try {
+ if (promiseResult.isError) {
+ if (!!err) {
+ err(promiseResult.error);
+ }
+ }
+ else if (promiseResult.isCompleted) {
+ if (!!cb) {
+ cb();
+ }
+ }
+ }
+ catch (e) {
+ if (!!err) {
+ err(e);
+ }
+ }
+ });
+ };
+ SynthesisAdapterBase.prototype.sendNetworkMessage = function (path, payload, success, err) {
+ var _this = this;
+ var type = typeof payload === "string" ? Exports_1.MessageType.Text : Exports_1.MessageType.Binary;
+ var contentType = typeof payload === "string" ? "application/json" : "";
+ this.fetchConnection().on(function (connection) {
+ connection.send(new SpeechConnectionMessage_Internal_1.SpeechConnectionMessage(type, path, _this.privSynthesisTurn.requestId, contentType, payload)).on(function () {
+ if (!!success) {
+ success();
+ }
+ }, function (error) {
+ if (!!err) {
+ err(error);
+ }
+ });
+ }, function (error) {
+ if (!!err) {
+ err(error);
+ }
+ });
+ };
+ SynthesisAdapterBase.prototype.Speak = function (text, isSSML, requestId, successCallback, errorCallBack, audioDestination) {
+ var _this = this;
+ var ssml;
+ if (isSSML) {
+ ssml = text;
+ }
+ else {
+ ssml = this.privSpeechSynthesizer.buildSsml(text);
+ }
+ if (this.speakOverride !== undefined) {
+ return this.speakOverride(ssml, requestId, successCallback, errorCallBack);
+ }
+ this.privSuccessCallback = successCallback;
+ this.privErrorCallback = errorCallBack;
+ this.privSynthesisTurn.startNewSynthesis(requestId, text, isSSML, audioDestination);
+ return this.fetchConnection().continueWithPromise(function (connection) {
+ if (connection.isError) {
+ _this.cancelSynthesisLocal(Exports_2.CancellationReason.Error, Exports_2.CancellationErrorCode.ConnectionFailure, connection.error);
+ return Exports_1.PromiseHelper.fromError(connection.error);
+ }
+ return _this.sendSynthesisContext(connection.result).continueWithPromise(function (result) {
+ if (result.isError) {
+ _this.cancelSynthesisLocal(Exports_2.CancellationReason.Error, Exports_2.CancellationErrorCode.ConnectionFailure, result.error);
+ return Exports_1.PromiseHelper.fromError(result.error);
+ }
+ return _this.sendSsmlMessage(connection.result, ssml, requestId).continueWithPromise(function (result) {
+ if (result.isError) {
+ _this.cancelSynthesisLocal(Exports_2.CancellationReason.Error, Exports_2.CancellationErrorCode.ConnectionFailure, result.error);
+ return Exports_1.PromiseHelper.fromError(result.error);
+ }
+ var synthesisStartEventArgs = new Exports_2.SpeechSynthesisEventArgs(new Exports_2.SpeechSynthesisResult(requestId, Exports_2.ResultReason.SynthesizingAudioStarted));
+ if (!!_this.privSpeechSynthesizer.synthesisStarted) {
+ _this.privSpeechSynthesizer.synthesisStarted(_this.privSpeechSynthesizer, synthesisStartEventArgs);
+ }
+ var messageRetrievalPromise = _this.receiveMessage();
+ return Exports_1.PromiseHelper.fromResult(true);
+ });
+ });
+ });
+ };
+ // Cancels synthesis.
+ SynthesisAdapterBase.prototype.cancelSynthesis = function (requestId, cancellationReason, errorCode, error) {
+ var properties = new Exports_2.PropertyCollection();
+ properties.setProperty(Exports_3.CancellationErrorCodePropertyName, Exports_2.CancellationErrorCode[errorCode]);
+ var result = new Exports_2.SpeechSynthesisResult(requestId, Exports_2.ResultReason.Canceled, undefined, error, properties);
+ if (!!this.privSpeechSynthesizer.SynthesisCanceled) {
+ var cancelEvent = new Exports_2.SpeechSynthesisEventArgs(result);
+ try {
+ this.privSpeechSynthesizer.SynthesisCanceled(this.privSpeechSynthesizer, cancelEvent);
+ /* tslint:disable:no-empty */
+ }
+ catch (_a) { }
+ }
+ if (!!this.privSuccessCallback) {
+ try {
+ this.privSuccessCallback(result);
+ /* tslint:disable:no-empty */
+ }
+ catch (_b) { }
+ }
+ };
+ // Cancels synthesis.
+ SynthesisAdapterBase.prototype.cancelSynthesisLocal = function (cancellationReason, errorCode, error) {
+ if (!!this.privSynthesisTurn.isSynthesizing) {
+ this.privSynthesisTurn.onStopSynthesizing();
+ this.cancelSynthesis(this.privSynthesisTurn.requestId, cancellationReason, errorCode, error);
+ }
+ };
+ SynthesisAdapterBase.prototype.processTypeSpecificMessages = function (connectionMessage, successCallback, errorCallBack) {
+ return true;
+ };
+ // Establishes a websocket connection to the end point.
+ SynthesisAdapterBase.prototype.connectImpl = function (isUnAuthorized) {
+ var _this = this;
+ if (isUnAuthorized === void 0) { isUnAuthorized = false; }
+ if (this.connectImplOverride !== undefined) {
+ return this.connectImplOverride(isUnAuthorized);
+ }
+ if (this.privConnectionPromise) {
+ if (this.privConnectionPromise.result().isCompleted &&
+ (this.privConnectionPromise.result().isError
+ || this.privConnectionPromise.result().result.state() === Exports_1.ConnectionState.Disconnected) &&
+ this.privServiceHasSentMessage === true) {
+ this.privConnectionId = null;
+ this.privConnectionPromise = null;
+ this.privServiceHasSentMessage = false;
+ return this.connectImpl();
+ }
+ else {
+ return this.privConnectionPromise;
+ }
+ }
+ this.privAuthFetchEventId = Exports_1.createNoDashGuid();
+ this.privConnectionId = Exports_1.createNoDashGuid();
+ this.privSynthesisTurn.onPreConnectionStart(this.privAuthFetchEventId, this.privConnectionId);
+ var authPromise = isUnAuthorized ? this.privAuthentication.fetchOnExpiry(this.privAuthFetchEventId) : this.privAuthentication.fetch(this.privAuthFetchEventId);
+ this.privConnectionPromise = authPromise
+ .continueWithPromise(function (result) {
+ if (result.isError) {
+ _this.privSynthesisTurn.onAuthCompleted(true, result.error);
+ throw new Error(result.error);
+ }
+ else {
+ _this.privSynthesisTurn.onAuthCompleted(false);
+ }
+ var connection = _this.privConnectionFactory.create(_this.privSynthesizerConfig, result.result, _this.privConnectionId);
+ // Attach to the underlying event. No need to hold onto the detach pointers as in the event the connection goes away,
+ // it'll stop sending events.
+ connection.events.attach(function (event) {
+ _this.connectionEvents.onEvent(event);
+ });
+ return connection.open().onSuccessContinueWithPromise(function (response) {
+ if (response.statusCode === 200) {
+ _this.privSynthesisTurn.onPreConnectionStart(_this.privAuthFetchEventId, _this.privConnectionId);
+ _this.privSynthesisTurn.onConnectionEstablishCompleted(response.statusCode);
+ return Exports_1.PromiseHelper.fromResult(connection);
+ }
+ else if (response.statusCode === 403 && !isUnAuthorized) {
+ return _this.connectImpl(true);
+ }
+ else {
+ _this.privSynthesisTurn.onConnectionEstablishCompleted(response.statusCode, response.reason);
+ return Exports_1.PromiseHelper.fromError("Unable to contact server. StatusCode: " + response.statusCode + ", " + _this.privSynthesizerConfig.parameters.getProperty(Exports_2.PropertyId.SpeechServiceConnection_Endpoint) + " Reason: " + response.reason);
+ }
+ });
+ });
+ return this.privConnectionPromise;
+ };
+ // Takes an established websocket connection to the endpoint and sends speech configuration information.
+ SynthesisAdapterBase.prototype.configureConnection = function () {
+ var _this = this;
+ if (this.configConnectionOverride !== undefined) {
+ return this.configConnectionOverride();
+ }
+ if (this.privConnectionConfigurationPromise) {
+ if (this.privConnectionConfigurationPromise.result().isCompleted &&
+ (this.privConnectionConfigurationPromise.result().isError
+ || this.privConnectionConfigurationPromise.result().result.state() === Exports_1.ConnectionState.Disconnected)) {
+ this.privConnectionConfigurationPromise = null;
+ return this.configureConnection();
+ }
+ else {
+ return this.privConnectionConfigurationPromise;
+ }
+ }
+ this.privConnectionConfigurationPromise = this.connectImpl().onSuccessContinueWithPromise(function (connection) {
+ return _this.sendSpeechServiceConfig(connection, _this.privSynthesizerConfig.SpeechServiceConfig.serialize())
+ .onSuccessContinueWith(function (_) {
+ return connection;
+ });
+ });
+ return this.privConnectionConfigurationPromise;
+ };
+ SynthesisAdapterBase.telemetryDataEnabled = true;
+ return SynthesisAdapterBase;
+}());
+exports.SynthesisAdapterBase = SynthesisAdapterBase;
+
+
+
+/***/ }),
+/* 176 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ };
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var SpeechSynthesisEvent = /** @class */ (function (_super) {
+ __extends(SpeechSynthesisEvent, _super);
+ function SpeechSynthesisEvent(eventName, requestId, eventType) {
+ if (eventType === void 0) { eventType = Exports_1.EventType.Info; }
+ var _this = _super.call(this, eventName, eventType) || this;
+ _this.privRequestId = requestId;
+ return _this;
+ }
+ Object.defineProperty(SpeechSynthesisEvent.prototype, "requestId", {
+ get: function () {
+ return this.privRequestId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeechSynthesisEvent;
+}(Exports_1.PlatformEvent));
+exports.SpeechSynthesisEvent = SpeechSynthesisEvent;
+// tslint:disable-next-line:max-classes-per-file
+var SynthesisTriggeredEvent = /** @class */ (function (_super) {
+ __extends(SynthesisTriggeredEvent, _super);
+ function SynthesisTriggeredEvent(requestId, sessionAudioDestinationId, turnAudioDestinationId) {
+ var _this = _super.call(this, "SynthesisTriggeredEvent", requestId) || this;
+ _this.privSessionAudioDestinationId = sessionAudioDestinationId;
+ _this.privTurnAudioDestinationId = turnAudioDestinationId;
+ return _this;
+ }
+ Object.defineProperty(SynthesisTriggeredEvent.prototype, "audioSessionDestinationId", {
+ get: function () {
+ return this.privSessionAudioDestinationId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesisTriggeredEvent.prototype, "audioTurnDestinationId", {
+ get: function () {
+ return this.privTurnAudioDestinationId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SynthesisTriggeredEvent;
+}(SpeechSynthesisEvent));
+exports.SynthesisTriggeredEvent = SynthesisTriggeredEvent;
+// tslint:disable-next-line:max-classes-per-file
+var ConnectingToSynthesisServiceEvent = /** @class */ (function (_super) {
+ __extends(ConnectingToSynthesisServiceEvent, _super);
+ function ConnectingToSynthesisServiceEvent(requestId, authFetchEventId) {
+ var _this = _super.call(this, "ConnectingToSynthesisServiceEvent", requestId) || this;
+ _this.privAuthFetchEventId = authFetchEventId;
+ return _this;
+ }
+ Object.defineProperty(ConnectingToSynthesisServiceEvent.prototype, "authFetchEventId", {
+ get: function () {
+ return this.privAuthFetchEventId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ConnectingToSynthesisServiceEvent;
+}(SpeechSynthesisEvent));
+exports.ConnectingToSynthesisServiceEvent = ConnectingToSynthesisServiceEvent;
+// tslint:disable-next-line:max-classes-per-file
+var SynthesisStartedEvent = /** @class */ (function (_super) {
+ __extends(SynthesisStartedEvent, _super);
+ function SynthesisStartedEvent(requestId, authFetchEventId) {
+ var _this = _super.call(this, "SynthesisStartedEvent", requestId) || this;
+ _this.privAuthFetchEventId = authFetchEventId;
+ return _this;
+ }
+ Object.defineProperty(SynthesisStartedEvent.prototype, "authFetchEventId", {
+ get: function () {
+ return this.privAuthFetchEventId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SynthesisStartedEvent;
+}(SpeechSynthesisEvent));
+exports.SynthesisStartedEvent = SynthesisStartedEvent;
+
+
+
+/***/ }),
+/* 177 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var SynthesisServiceType;
+(function (SynthesisServiceType) {
+ SynthesisServiceType[SynthesisServiceType["Standard"] = 0] = "Standard";
+ SynthesisServiceType[SynthesisServiceType["Custom"] = 1] = "Custom";
+})(SynthesisServiceType = exports.SynthesisServiceType || (exports.SynthesisServiceType = {}));
+var SynthesizerConfig = /** @class */ (function () {
+ function SynthesizerConfig(speechServiceConfig, parameters) {
+ this.privSynthesisServiceType = SynthesisServiceType.Standard;
+ this.privSpeechServiceConfig = speechServiceConfig ? speechServiceConfig : new Exports_1.SpeechServiceConfig(new Exports_1.Context(null));
+ this.privParameters = parameters;
+ }
+ Object.defineProperty(SynthesizerConfig.prototype, "parameters", {
+ get: function () {
+ return this.privParameters;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesizerConfig.prototype, "synthesisServiceType", {
+ get: function () {
+ return this.privSynthesisServiceType;
+ },
+ set: function (value) {
+ this.privSynthesisServiceType = value;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SynthesizerConfig.prototype, "SpeechServiceConfig", {
+ get: function () {
+ return this.privSpeechServiceConfig;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SynthesizerConfig;
+}());
+exports.SynthesizerConfig = SynthesizerConfig;
+
+
+
+/***/ }),
+/* 178 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Represents the JSON used in the synthesis.context message sent to the speech service.
+ * The dynamic grammar is always refreshed from the encapsulated dynamic grammar object.
+ */
+var SynthesisContext = /** @class */ (function () {
+ function SynthesisContext(speechSynthesizer) {
+ this.privContext = {};
+ this.privSpeechSynthesizer = speechSynthesizer;
+ }
+ /**
+ * Adds a section to the synthesis.context object.
+ * @param sectionName Name of the section to add.
+ * @param value JSON serializable object that represents the value.
+ */
+ SynthesisContext.prototype.setSection = function (sectionName, value) {
+ this.privContext[sectionName] = value;
+ };
+ Object.defineProperty(SynthesisContext.prototype, "audioOutputFormat", {
+ /**
+ * Sets the audio output format for synthesis context generation.
+ * @param format {AudioOutputFormatImpl} the output format
+ */
+ set: function (format) {
+ this.privAudioOutputFormat = format;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ SynthesisContext.prototype.toJSON = function () {
+ var synthesisSection = this.buildSynthesisContext();
+ this.setSection("synthesis", synthesisSection);
+ return JSON.stringify(this.privContext);
+ };
+ SynthesisContext.prototype.buildSynthesisContext = function () {
+ return {
+ audio: {
+ metadataOptions: {
+ sentenceBoundaryEnabled: false,
+ wordBoundaryEnabled: (!!this.privSpeechSynthesizer.wordBoundary),
+ },
+ outputFormat: this.privAudioOutputFormat.requestAudioFormatString,
+ },
+ language: {
+ autoDetection: this.privSpeechSynthesizer.autoDetectSourceLanguage
+ }
+ };
+ };
+ return SynthesisContext;
+}());
+exports.SynthesisContext = SynthesisContext;
+
+
+
+/***/ }),
+/* 179 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var SpeakerRecognitionConfig = /** @class */ (function () {
+ function SpeakerRecognitionConfig(context, parameters) {
+ this.privContext = context ? context : new Exports_1.Context(null);
+ this.privParameters = parameters;
+ }
+ Object.defineProperty(SpeakerRecognitionConfig.prototype, "parameters", {
+ get: function () {
+ return this.privParameters;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(SpeakerRecognitionConfig.prototype, "Context", {
+ get: function () {
+ return this.privContext;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return SpeakerRecognitionConfig;
+}());
+exports.SpeakerRecognitionConfig = SpeakerRecognitionConfig;
+
+
+
+/***/ }),
+/* 180 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(2);
+var Exports_2 = __webpack_require__(4);
+var Exports_3 = __webpack_require__(31);
+/**
+ * Implements methods for speaker recognition classes, sending requests to endpoint
+ * and parsing response into expected format
+ * @class SpeakerIdMessageAdapter
+ */
+var SpeakerIdMessageAdapter = /** @class */ (function () {
+ function SpeakerIdMessageAdapter(config) {
+ var endpoint = config.parameters.getProperty(Exports_3.PropertyId.SpeechServiceConnection_Endpoint, undefined);
+ if (!endpoint) {
+ var region = config.parameters.getProperty(Exports_3.PropertyId.SpeechServiceConnection_Region, "westus");
+ var hostSuffix = (region && region.toLowerCase().startsWith("china")) ? ".azure.cn" : ".microsoft.com";
+ var host = config.parameters.getProperty(Exports_3.PropertyId.SpeechServiceConnection_Host, "https://" + region + ".api.cognitive" + hostSuffix + "/speaker/{mode}/v2.0/{dependency}");
+ endpoint = host + "/profiles";
+ }
+ this.privUri = endpoint;
+ var options = Exports_1.RestConfigBase.requestOptions;
+ options.headers[Exports_1.RestConfigBase.configParams.subscriptionKey] = config.parameters.getProperty(Exports_3.PropertyId.SpeechServiceConnection_Key, undefined);
+ this.privRestAdapter = new Exports_1.RestMessageAdapter(options);
+ }
+ /**
+ * Sends create profile request to endpoint.
+ * @function
+ * @param {VoiceProfileType} profileType - type of voice profile to create.
+ * @param {string} lang - language/locale of voice profile
+ * @public
+ * @returns {Promise} promised rest response containing id of created profile.
+ */
+ SpeakerIdMessageAdapter.prototype.createProfile = function (profileType, lang) {
+ var uri = this.getOperationUri(profileType);
+ this.privRestAdapter.setHeaders(Exports_1.RestConfigBase.configParams.contentTypeKey, "application/json");
+ return this.privRestAdapter.request(Exports_1.RestRequestType.Post, uri, {}, { locale: lang });
+ };
+ /**
+ * Sends create enrollment request to endpoint.
+ * @function
+ * @param {VoiceProfile} profileType - voice profile for which to create new enrollment.
+ * @param {IAudioSource} audioSource - audioSource from which to pull data to send
+ * @public
+ * @returns {Promise} rest response to enrollment request.
+ */
+ SpeakerIdMessageAdapter.prototype.createEnrollment = function (profile, audioSource) {
+ var _this = this;
+ this.privRestAdapter.setHeaders(Exports_1.RestConfigBase.configParams.contentTypeKey, "multipart/form-data");
+ var uri = this.getOperationUri(profile.profileType) + "/" + profile.profileId + "/enrollments";
+ return audioSource.blob.onSuccessContinueWithPromise(function (result) {
+ return _this.privRestAdapter.request(Exports_1.RestRequestType.File, uri, { ignoreMinLength: "true" }, null, result);
+ });
+ };
+ /**
+ * Sends verification request to endpoint.
+ * @function
+ * @param {SpeakerVerificationModel} model - voice model to verify against.
+ * @param {IAudioSource} audioSource - audioSource from which to pull data to send
+ * @public
+ * @returns {Promise} rest response to enrollment request.
+ */
+ SpeakerIdMessageAdapter.prototype.verifySpeaker = function (model, audioSource) {
+ var _this = this;
+ this.privRestAdapter.setHeaders(Exports_1.RestConfigBase.configParams.contentTypeKey, "multipart/form-data");
+ var uri = this.getOperationUri(model.voiceProfile.profileType) + "/" + model.voiceProfile.profileId + "/verify";
+ return audioSource.blob.continueWithPromise(function (result) {
+ if (result.isError) {
+ var response = new Exports_2.Deferred();
+ response.resolve({ data: result.error });
+ return response.promise();
+ }
+ return _this.privRestAdapter.request(Exports_1.RestRequestType.File, uri, { ignoreMinLength: "true" }, null, result.result);
+ });
+ };
+ /**
+ * Sends identification request to endpoint.
+ * @function
+ * @param {SpeakerIdentificationModel} model - voice profiles against which to identify.
+ * @param {IAudioSource} audioSource - audioSource from which to pull data to send
+ * @public
+ * @returns {Promise} rest response to enrollment request.
+ */
+ SpeakerIdMessageAdapter.prototype.identifySpeaker = function (model, audioSource) {
+ var _this = this;
+ this.privRestAdapter.setHeaders(Exports_1.RestConfigBase.configParams.contentTypeKey, "multipart/form-data");
+ var uri = this.getOperationUri(Exports_3.VoiceProfileType.TextIndependentIdentification) + "/identifySingleSpeaker";
+ return audioSource.blob.continueWithPromise(function (result) {
+ if (result.isError) {
+ var response = new Exports_2.Deferred();
+ response.resolve({ data: result.error });
+ return response.promise();
+ }
+ return _this.privRestAdapter.request(Exports_1.RestRequestType.File, uri, { profileIds: model.voiceProfileIds, ignoreMinLength: "true" }, null, result.result);
+ });
+ };
+ /**
+ * Sends delete profile request to endpoint.
+ * @function
+ * @param {VoiceProfile} profile - voice profile to delete.
+ * @public
+ * @returns {Promise} rest response to deletion request
+ */
+ SpeakerIdMessageAdapter.prototype.deleteProfile = function (profile) {
+ var uri = this.getOperationUri(profile.profileType) + "/" + profile.profileId;
+ return this.privRestAdapter.request(Exports_1.RestRequestType.Delete, uri, {});
+ };
+ /**
+ * Sends reset profile request to endpoint.
+ * @function
+ * @param {VoiceProfile} profile - voice profile to reset enrollments for.
+ * @public
+ * @returns {Promise} rest response to reset request
+ */
+ SpeakerIdMessageAdapter.prototype.resetProfile = function (profile) {
+ var uri = this.getOperationUri(profile.profileType) + "/" + profile.profileId + "/reset";
+ return this.privRestAdapter.request(Exports_1.RestRequestType.Post, uri, {});
+ };
+ SpeakerIdMessageAdapter.prototype.getOperationUri = function (profileType) {
+ var mode = profileType === Exports_3.VoiceProfileType.TextIndependentIdentification ? "identification" : "verification";
+ var dependency = profileType === Exports_3.VoiceProfileType.TextDependentVerification ? "text-dependent" : "text-independent";
+ return this.privUri.replace("{mode}", mode).replace("{dependency}", dependency);
+ };
+ return SpeakerIdMessageAdapter;
+}());
+exports.SpeakerIdMessageAdapter = SpeakerIdMessageAdapter;
+
+
+
+/***/ }),
+/* 181 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(26);
+var Exports_2 = __webpack_require__(4);
+var AudioStreamFormat_1 = __webpack_require__(42);
+var FileAudioSource = /** @class */ (function () {
+ function FileAudioSource(file, audioSourceId) {
+ var _this = this;
+ this.privStreams = {};
+ this.turnOn = function () {
+ if (typeof FileReader === "undefined") {
+ var errorMsg = "Browser does not support FileReader.";
+ _this.onEvent(new Exports_2.AudioSourceErrorEvent(errorMsg, "")); // initialization error - no streamid at this point
+ return Exports_2.PromiseHelper.fromError(errorMsg);
+ }
+ else if (_this.privFile.name.lastIndexOf(".wav") !== _this.privFile.name.length - 4) {
+ var errorMsg = _this.privFile.name + " is not supported. Only WAVE files are allowed at the moment.";
+ _this.onEvent(new Exports_2.AudioSourceErrorEvent(errorMsg, ""));
+ return Exports_2.PromiseHelper.fromError(errorMsg);
+ }
+ _this.onEvent(new Exports_2.AudioSourceInitializingEvent(_this.privId)); // no stream id
+ _this.onEvent(new Exports_2.AudioSourceReadyEvent(_this.privId));
+ return Exports_2.PromiseHelper.fromResult(true);
+ };
+ this.id = function () {
+ return _this.privId;
+ };
+ this.attach = function (audioNodeId) {
+ _this.onEvent(new Exports_2.AudioStreamNodeAttachingEvent(_this.privId, audioNodeId));
+ return _this.upload(audioNodeId).onSuccessContinueWith(function (stream) {
+ _this.onEvent(new Exports_2.AudioStreamNodeAttachedEvent(_this.privId, audioNodeId));
+ return {
+ detach: function () {
+ stream.readEnded();
+ delete _this.privStreams[audioNodeId];
+ _this.onEvent(new Exports_2.AudioStreamNodeDetachedEvent(_this.privId, audioNodeId));
+ _this.turnOff();
+ },
+ id: function () {
+ return audioNodeId;
+ },
+ read: function () {
+ return stream.read();
+ },
+ };
+ });
+ };
+ this.detach = function (audioNodeId) {
+ if (audioNodeId && _this.privStreams[audioNodeId]) {
+ _this.privStreams[audioNodeId].close();
+ delete _this.privStreams[audioNodeId];
+ _this.onEvent(new Exports_2.AudioStreamNodeDetachedEvent(_this.privId, audioNodeId));
+ }
+ };
+ this.turnOff = function () {
+ for (var streamId in _this.privStreams) {
+ if (streamId) {
+ var stream = _this.privStreams[streamId];
+ if (stream && !stream.isClosed) {
+ stream.close();
+ }
+ }
+ }
+ _this.onEvent(new Exports_2.AudioSourceOffEvent(_this.privId)); // no stream now
+ return Exports_2.PromiseHelper.fromResult(true);
+ };
+ this.readHeader = function () {
+ // Read the wave header.
+ var header = _this.privFile.slice(0, 44);
+ var headerReader = new FileReader();
+ var headerResult = new Exports_2.Deferred();
+ var processHeader = function (event) {
+ var header = event.target.result;
+ var view = new DataView(header);
+ // RIFF 4 bytes.
+ var riff = String.fromCharCode(view.getUint8(0), view.getUint8(1), view.getUint8(2), view.getUint8(3));
+ if ("RIFF" !== riff) {
+ headerResult.reject("Invalid WAV header in file, RIFF was not found");
+ }
+ // length, 4 bytes
+ // RIFF Type & fmt 8 bytes
+ var type = String.fromCharCode(view.getUint8(8), view.getUint8(9), view.getUint8(10), view.getUint8(11), view.getUint8(12), view.getUint8(13), view.getUint8(14));
+ if ("WAVEfmt" !== type) {
+ headerResult.reject("Invalid WAV header in file, WAVEfmt was not found");
+ }
+ var channelCount = view.getUint16(22, true);
+ var sampleRate = view.getUint32(24, true);
+ var bitsPerSample = view.getUint16(34, true);
+ headerResult.resolve(AudioStreamFormat_1.AudioStreamFormat.getWaveFormatPCM(sampleRate, bitsPerSample, channelCount));
+ };
+ headerReader.onload = processHeader;
+ headerReader.readAsArrayBuffer(header);
+ return headerResult.promise();
+ };
+ this.upload = function (audioNodeId) {
+ return _this.turnOn()
+ .onSuccessContinueWithPromise(function (_) {
+ return _this.privAudioFormatPromise.onSuccessContinueWith(function (format) {
+ var fileStream = new Exports_2.ChunkedArrayBufferStream(3200);
+ var reader = new FileReader();
+ var stream = new Exports_2.ChunkedArrayBufferStream(format.avgBytesPerSec / 10, audioNodeId);
+ _this.privStreams[audioNodeId] = stream;
+ var processFile = function (event) {
+ if (stream.isClosed) {
+ return; // output stream was closed (somebody called TurnOff). We're done here.
+ }
+ stream.writeStreamChunk({
+ buffer: reader.result,
+ isEnd: false,
+ timeReceived: Date.now(),
+ });
+ stream.close();
+ };
+ reader.onload = processFile;
+ reader.onerror = function (event) {
+ var errorMsg = "Error occurred while processing '" + _this.privFile.name + "'. " + event;
+ _this.onEvent(new Exports_2.AudioStreamNodeErrorEvent(_this.privId, audioNodeId, errorMsg));
+ throw new Error(errorMsg);
+ };
+ var chunk = _this.privFile.slice(44);
+ reader.readAsArrayBuffer(chunk);
+ return stream;
+ });
+ });
+ };
+ this.onEvent = function (event) {
+ _this.privEvents.onEvent(event);
+ Exports_2.Events.instance.onEvent(event);
+ };
+ this.privId = audioSourceId ? audioSourceId : Exports_2.createNoDashGuid();
+ this.privEvents = new Exports_2.EventSource();
+ this.privFile = file;
+ // Read the header.
+ this.privAudioFormatPromise = this.readHeader();
+ }
+ Object.defineProperty(FileAudioSource.prototype, "format", {
+ get: function () {
+ return this.privAudioFormatPromise;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(FileAudioSource.prototype, "blob", {
+ get: function () {
+ return Exports_2.PromiseHelper.fromResult(this.privFile);
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(FileAudioSource.prototype, "events", {
+ get: function () {
+ return this.privEvents;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(FileAudioSource.prototype, "deviceInfo", {
+ get: function () {
+ return this.privAudioFormatPromise.onSuccessContinueWithPromise(function (result) {
+ return Exports_2.PromiseHelper.fromResult({
+ bitspersample: result.bitsPerSample,
+ channelcount: result.channels,
+ connectivity: Exports_1.connectivity.Unknown,
+ manufacturer: "Speech SDK",
+ model: "File",
+ samplerate: result.samplesPerSec,
+ type: Exports_1.type.File,
+ });
+ });
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return FileAudioSource;
+}());
+exports.FileAudioSource = FileAudioSource;
+
+
+
+/***/ }),
+/* 182 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var PcmRecorder = /** @class */ (function () {
+ function PcmRecorder() {
+ var _this = this;
+ this.record = function (context, mediaStream, outputStream) {
+ var desiredSampleRate = 16000;
+ var scriptNode = (function () {
+ var bufferSize = 0;
+ try {
+ return context.createScriptProcessor(bufferSize, 1, 1);
+ }
+ catch (error) {
+ // Webkit (<= version 31) requires a valid bufferSize.
+ bufferSize = 2048;
+ var audioSampleRate = context.sampleRate;
+ while (bufferSize < 16384 && audioSampleRate >= (2 * desiredSampleRate)) {
+ bufferSize <<= 1;
+ audioSampleRate >>= 1;
+ }
+ return context.createScriptProcessor(bufferSize, 1, 1);
+ }
+ })();
+ var waveStreamEncoder = new Exports_1.RiffPcmEncoder(context.sampleRate, desiredSampleRate);
+ var needHeader = true;
+ var that = _this;
+ scriptNode.onaudioprocess = function (event) {
+ var inputFrame = event.inputBuffer.getChannelData(0);
+ if (outputStream && !outputStream.isClosed) {
+ var waveFrame = waveStreamEncoder.encode(inputFrame);
+ if (!!waveFrame) {
+ outputStream.writeStreamChunk({
+ buffer: waveFrame,
+ isEnd: false,
+ timeReceived: Date.now(),
+ });
+ needHeader = false;
+ }
+ }
+ };
+ var micInput = context.createMediaStreamSource(mediaStream);
+ // https://webaudio.github.io/web-audio-api/#audioworklet
+ // Using AudioWorklet to improve audio quality and avoid audio glitches due to blocking the UI thread
+ if (!!_this.privSpeechProcessorScript && !!context.audioWorklet) {
+ context.audioWorklet
+ .addModule(_this.privSpeechProcessorScript)
+ .then(function () {
+ var workletNode = new AudioWorkletNode(context, "speech-processor");
+ workletNode.port.onmessage = function (ev) {
+ var inputFrame = ev.data;
+ if (outputStream && !outputStream.isClosed) {
+ var waveFrame = waveStreamEncoder.encode(inputFrame);
+ if (!!waveFrame) {
+ outputStream.writeStreamChunk({
+ buffer: waveFrame,
+ isEnd: false,
+ timeReceived: Date.now(),
+ });
+ needHeader = false;
+ }
+ }
+ };
+ micInput.connect(workletNode);
+ workletNode.connect(context.destination);
+ _this.privMediaResources = {
+ scriptProcessorNode: workletNode,
+ source: micInput,
+ stream: mediaStream,
+ };
+ })
+ .catch(function () {
+ micInput.connect(scriptNode);
+ scriptNode.connect(context.destination);
+ _this.privMediaResources = {
+ scriptProcessorNode: scriptNode,
+ source: micInput,
+ stream: mediaStream,
+ };
+ });
+ }
+ else {
+ micInput.connect(scriptNode);
+ scriptNode.connect(context.destination);
+ _this.privMediaResources = {
+ scriptProcessorNode: scriptNode,
+ source: micInput,
+ stream: mediaStream,
+ };
+ }
+ };
+ this.releaseMediaResources = function (context) {
+ if (_this.privMediaResources) {
+ if (_this.privMediaResources.scriptProcessorNode) {
+ _this.privMediaResources.scriptProcessorNode.disconnect(context.destination);
+ _this.privMediaResources.scriptProcessorNode = null;
+ }
+ if (_this.privMediaResources.source) {
+ _this.privMediaResources.source.disconnect();
+ _this.privMediaResources.stream.getTracks().forEach(function (track) { return track.stop(); });
+ _this.privMediaResources.source = null;
+ }
+ }
+ };
+ }
+ PcmRecorder.prototype.setWorkletUrl = function (url) {
+ this.privSpeechProcessorScript = url;
+ };
+ return PcmRecorder;
+}());
+exports.PcmRecorder = PcmRecorder;
+
+
+
+/***/ }),
+/* 183 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var WebsocketMessageAdapter_1 = __webpack_require__(184);
+var WebsocketConnection = /** @class */ (function () {
+ function WebsocketConnection(uri, queryParameters, headers, messageFormatter, proxyInfo, connectionId) {
+ var _this = this;
+ this.privIsDisposed = false;
+ this.dispose = function () {
+ _this.privIsDisposed = true;
+ if (_this.privConnectionMessageAdapter) {
+ _this.privConnectionMessageAdapter.close();
+ }
+ };
+ this.isDisposed = function () {
+ return _this.privIsDisposed;
+ };
+ this.state = function () {
+ return _this.privConnectionMessageAdapter.state;
+ };
+ this.open = function () {
+ return _this.privConnectionMessageAdapter.open();
+ };
+ this.send = function (message) {
+ return _this.privConnectionMessageAdapter.send(message);
+ };
+ this.read = function () {
+ return _this.privConnectionMessageAdapter.read();
+ };
+ if (!uri) {
+ throw new Exports_1.ArgumentNullError("uri");
+ }
+ if (!messageFormatter) {
+ throw new Exports_1.ArgumentNullError("messageFormatter");
+ }
+ this.privMessageFormatter = messageFormatter;
+ var queryParams = "";
+ var i = 0;
+ if (queryParameters) {
+ for (var paramName in queryParameters) {
+ if (paramName) {
+ queryParams += ((i === 0) && (uri.indexOf("?") === -1)) ? "?" : "&";
+ var val = encodeURIComponent(queryParameters[paramName]);
+ queryParams += paramName + "=" + val;
+ i++;
+ }
+ }
+ }
+ if (headers) {
+ for (var headerName in headers) {
+ if (headerName) {
+ queryParams += ((i === 0) && (uri.indexOf("?") === -1)) ? "?" : "&";
+ var val = encodeURIComponent(headers[headerName]);
+ queryParams += headerName + "=" + val;
+ i++;
+ }
+ }
+ }
+ this.privUri = uri + queryParams;
+ this.privId = connectionId ? connectionId : Exports_1.createNoDashGuid();
+ this.privConnectionMessageAdapter = new WebsocketMessageAdapter_1.WebsocketMessageAdapter(this.privUri, this.id, this.privMessageFormatter, proxyInfo, headers);
+ }
+ Object.defineProperty(WebsocketConnection.prototype, "id", {
+ get: function () {
+ return this.privId;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(WebsocketConnection.prototype, "events", {
+ get: function () {
+ return this.privConnectionMessageAdapter.events;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return WebsocketConnection;
+}());
+exports.WebsocketConnection = WebsocketConnection;
+
+
+
+/***/ }),
+/* 184 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+// Node.JS specific web socket / browser support.
+var ws_1 = __importDefault(__webpack_require__(185));
+var CertChecks_1 = __webpack_require__(186);
+var WebsocketMessageAdapter = /** @class */ (function () {
+ function WebsocketMessageAdapter(uri, connectionId, messageFormatter, proxyInfo, headers) {
+ var _this = this;
+ this.open = function () {
+ if (_this.privConnectionState === Exports_1.ConnectionState.Disconnected) {
+ return Exports_1.PromiseHelper.fromError("Cannot open a connection that is in " + _this.privConnectionState + " state");
+ }
+ if (_this.privConnectionEstablishDeferral) {
+ return _this.privConnectionEstablishDeferral.promise();
+ }
+ _this.privConnectionEstablishDeferral = new Exports_1.Deferred();
+ _this.privCertificateValidatedDeferral = new Exports_1.Deferred();
+ _this.privConnectionState = Exports_1.ConnectionState.Connecting;
+ try {
+ if (typeof WebSocket !== "undefined" && !WebsocketMessageAdapter.forceNpmWebSocket) {
+ // Browser handles cert checks.
+ _this.privCertificateValidatedDeferral.resolve(true);
+ _this.privWebsocketClient = new WebSocket(_this.privUri);
+ }
+ else {
+ var options = { headers: _this.privHeaders };
+ // The ocsp library will handle validation for us and fail the connection if needed.
+ _this.privCertificateValidatedDeferral.resolve(true);
+ var checkAgent = new CertChecks_1.CertCheckAgent(_this.proxyInfo);
+ options.agent = checkAgent.GetAgent();
+ _this.privWebsocketClient = new ws_1.default(_this.privUri, options);
+ }
+ _this.privWebsocketClient.binaryType = "arraybuffer";
+ _this.privReceivingMessageQueue = new Exports_1.Queue();
+ _this.privDisconnectDeferral = new Exports_1.Deferred();
+ _this.privSendMessageQueue = new Exports_1.Queue();
+ _this.processSendQueue();
+ }
+ catch (error) {
+ _this.privConnectionEstablishDeferral.resolve(new Exports_1.ConnectionOpenResponse(500, error));
+ return _this.privConnectionEstablishDeferral.promise();
+ }
+ _this.onEvent(new Exports_1.ConnectionStartEvent(_this.privConnectionId, _this.privUri));
+ _this.privWebsocketClient.onopen = function (e) {
+ _this.privCertificateValidatedDeferral.promise().on(function () {
+ _this.privConnectionState = Exports_1.ConnectionState.Connected;
+ _this.onEvent(new Exports_1.ConnectionEstablishedEvent(_this.privConnectionId));
+ _this.privConnectionEstablishDeferral.resolve(new Exports_1.ConnectionOpenResponse(200, ""));
+ }, function (error) {
+ _this.privConnectionEstablishDeferral.reject(error);
+ });
+ };
+ _this.privWebsocketClient.onerror = function (e) {
+ _this.onEvent(new Exports_1.ConnectionErrorEvent(_this.privConnectionId, e.message, e.type));
+ _this.privLastErrorReceived = e.message;
+ };
+ _this.privWebsocketClient.onclose = function (e) {
+ if (_this.privConnectionState === Exports_1.ConnectionState.Connecting) {
+ _this.privConnectionState = Exports_1.ConnectionState.Disconnected;
+ // this.onEvent(new ConnectionEstablishErrorEvent(this.connectionId, e.code, e.reason));
+ _this.privConnectionEstablishDeferral.resolve(new Exports_1.ConnectionOpenResponse(e.code, e.reason + " " + _this.privLastErrorReceived));
+ }
+ else {
+ _this.privConnectionState = Exports_1.ConnectionState.Disconnected;
+ _this.onEvent(new Exports_1.ConnectionClosedEvent(_this.privConnectionId, e.code, e.reason));
+ }
+ _this.onClose(e.code, e.reason);
+ };
+ _this.privWebsocketClient.onmessage = function (e) {
+ var networkReceivedTime = new Date().toISOString();
+ if (_this.privConnectionState === Exports_1.ConnectionState.Connected) {
+ var deferred_1 = new Exports_1.Deferred();
+ // let id = ++this.idCounter;
+ _this.privReceivingMessageQueue.enqueueFromPromise(deferred_1.promise());
+ if (e.data instanceof ArrayBuffer) {
+ var rawMessage = new Exports_1.RawWebsocketMessage(Exports_1.MessageType.Binary, e.data);
+ _this.privMessageFormatter
+ .toConnectionMessage(rawMessage)
+ .on(function (connectionMessage) {
+ _this.onEvent(new Exports_1.ConnectionMessageReceivedEvent(_this.privConnectionId, networkReceivedTime, connectionMessage));
+ deferred_1.resolve(connectionMessage);
+ }, function (error) {
+ // TODO: Events for these ?
+ deferred_1.reject("Invalid binary message format. Error: " + error);
+ });
+ }
+ else {
+ var rawMessage = new Exports_1.RawWebsocketMessage(Exports_1.MessageType.Text, e.data);
+ _this.privMessageFormatter
+ .toConnectionMessage(rawMessage)
+ .on(function (connectionMessage) {
+ _this.onEvent(new Exports_1.ConnectionMessageReceivedEvent(_this.privConnectionId, networkReceivedTime, connectionMessage));
+ deferred_1.resolve(connectionMessage);
+ }, function (error) {
+ // TODO: Events for these ?
+ deferred_1.reject("Invalid text message format. Error: " + error);
+ });
+ }
+ }
+ };
+ return _this.privConnectionEstablishDeferral.promise();
+ };
+ this.send = function (message) {
+ if (_this.privConnectionState !== Exports_1.ConnectionState.Connected) {
+ return Exports_1.PromiseHelper.fromError("Cannot send on connection that is in " + _this.privConnectionState + " state");
+ }
+ var messageSendStatusDeferral = new Exports_1.Deferred();
+ var messageSendDeferral = new Exports_1.Deferred();
+ _this.privSendMessageQueue.enqueueFromPromise(messageSendDeferral.promise());
+ _this.privMessageFormatter
+ .fromConnectionMessage(message)
+ .on(function (rawMessage) {
+ messageSendDeferral.resolve({
+ Message: message,
+ RawWebsocketMessage: rawMessage,
+ sendStatusDeferral: messageSendStatusDeferral,
+ });
+ }, function (error) {
+ messageSendDeferral.reject("Error formatting the message. " + error);
+ });
+ return messageSendStatusDeferral.promise();
+ };
+ this.read = function () {
+ if (_this.privConnectionState !== Exports_1.ConnectionState.Connected) {
+ return Exports_1.PromiseHelper.fromError("Cannot read on connection that is in " + _this.privConnectionState + " state");
+ }
+ return _this.privReceivingMessageQueue.dequeue();
+ };
+ this.close = function (reason) {
+ if (_this.privWebsocketClient) {
+ if (_this.privConnectionState !== Exports_1.ConnectionState.Disconnected) {
+ _this.privWebsocketClient.close(1000, reason ? reason : "Normal closure by client");
+ }
+ }
+ else {
+ var deferral = new Exports_1.Deferred();
+ deferral.resolve(true);
+ return deferral.promise();
+ }
+ return _this.privDisconnectDeferral.promise();
+ };
+ this.sendRawMessage = function (sendItem) {
+ try {
+ // indicates we are draining the queue and it came with no message;
+ if (!sendItem) {
+ return Exports_1.PromiseHelper.fromResult(true);
+ }
+ _this.onEvent(new Exports_1.ConnectionMessageSentEvent(_this.privConnectionId, new Date().toISOString(), sendItem.Message));
+ // add a check for the ws readystate in order to stop the red console error 'WebSocket is already in CLOSING or CLOSED state' appearing
+ if (_this.isWebsocketOpen) {
+ _this.privWebsocketClient.send(sendItem.RawWebsocketMessage.payload);
+ }
+ else {
+ return Exports_1.PromiseHelper.fromError("websocket send error: Websocket not ready");
+ }
+ return Exports_1.PromiseHelper.fromResult(true);
+ }
+ catch (e) {
+ return Exports_1.PromiseHelper.fromError("websocket send error: " + e);
+ }
+ };
+ this.onClose = function (code, reason) {
+ var closeReason = "Connection closed. " + code + ": " + reason;
+ _this.privConnectionState = Exports_1.ConnectionState.Disconnected;
+ _this.privDisconnectDeferral.resolve(true);
+ _this.privReceivingMessageQueue.dispose(reason);
+ _this.privReceivingMessageQueue.drainAndDispose(function (pendingReceiveItem) {
+ // TODO: Events for these ?
+ // Logger.instance.onEvent(new LoggingEvent(LogType.Warning, null, `Failed to process received message. Reason: ${closeReason}, Message: ${JSON.stringify(pendingReceiveItem)}`));
+ }, closeReason);
+ _this.privSendMessageQueue.drainAndDispose(function (pendingSendItem) {
+ pendingSendItem.sendStatusDeferral.reject(closeReason);
+ }, closeReason);
+ };
+ this.processSendQueue = function () {
+ _this.privSendMessageQueue
+ .dequeue()
+ .on(function (sendItem) {
+ // indicates we are draining the queue and it came with no message;
+ if (!sendItem) {
+ return;
+ }
+ _this.sendRawMessage(sendItem)
+ .on(function (result) {
+ sendItem.sendStatusDeferral.resolve(result);
+ _this.processSendQueue();
+ }, function (sendError) {
+ sendItem.sendStatusDeferral.reject(sendError);
+ _this.processSendQueue();
+ });
+ }, function (error) {
+ // do nothing
+ });
+ };
+ this.onEvent = function (event) {
+ _this.privConnectionEvents.onEvent(event);
+ Exports_1.Events.instance.onEvent(event);
+ };
+ if (!uri) {
+ throw new Exports_1.ArgumentNullError("uri");
+ }
+ if (!messageFormatter) {
+ throw new Exports_1.ArgumentNullError("messageFormatter");
+ }
+ this.proxyInfo = proxyInfo;
+ this.privConnectionEvents = new Exports_1.EventSource();
+ this.privConnectionId = connectionId;
+ this.privMessageFormatter = messageFormatter;
+ this.privConnectionState = Exports_1.ConnectionState.None;
+ this.privUri = uri;
+ this.privHeaders = headers;
+ // Add the connection ID to the headers
+ this.privHeaders["X-ConnectionId"] = this.privConnectionId;
+ this.privLastErrorReceived = "";
+ }
+ Object.defineProperty(WebsocketMessageAdapter.prototype, "state", {
+ get: function () {
+ return this.privConnectionState;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(WebsocketMessageAdapter.prototype, "events", {
+ get: function () {
+ return this.privConnectionEvents;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(WebsocketMessageAdapter.prototype, "isWebsocketOpen", {
+ get: function () {
+ return this.privWebsocketClient && this.privWebsocketClient.readyState === this.privWebsocketClient.OPEN;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ WebsocketMessageAdapter.forceNpmWebSocket = false;
+ return WebsocketMessageAdapter;
+}());
+exports.WebsocketMessageAdapter = WebsocketMessageAdapter;
+
+
+
+/***/ }),
+/* 185 */
+/***/ (function(module, exports) {
+
+/* (ignored) */
+
+/***/ }),
+/* 186 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+/* WEBPACK VAR INJECTION */(function(process, Buffer) {
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __assign = (this && this.__assign) || function () {
+ __assign = Object.assign || function(t) {
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
+ s = arguments[i];
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
+ t[p] = s[p];
+ }
+ return t;
+ };
+ return __assign.apply(this, arguments);
+};
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+var __generator = (this && this.__generator) || function (thisArg, body) {
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
+ function verb(n) { return function (v) { return step([n, v]); }; }
+ function step(op) {
+ if (f) throw new TypeError("Generator is already executing.");
+ while (_) try {
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
+ if (y = 0, t) op = [op[0] & 2, t.value];
+ switch (op[0]) {
+ case 0: case 1: t = op; break;
+ case 4: _.label++; return { value: op[1], done: false };
+ case 5: _.label++; y = op[1]; op = [0]; continue;
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
+ default:
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
+ if (t[2]) _.ops.pop();
+ _.trys.pop(); continue;
+ }
+ op = body.call(thisArg, _);
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
+ }
+};
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
+ result["default"] = mod;
+ return result;
+};
+var __importDefault = (this && this.__importDefault) || function (mod) {
+ return (mod && mod.__esModule) ? mod : { "default": mod };
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var tls = __importStar(__webpack_require__(188));
+var url = __importStar(__webpack_require__(189));
+var ocsp = __importStar(__webpack_require__(196));
+var Exports_1 = __webpack_require__(4);
+var agent_base_1 = __importDefault(__webpack_require__(197));
+// @ts-ignore
+var async_disk_cache_1 = __importDefault(__webpack_require__(198));
+var https_proxy_agent_1 = __importDefault(__webpack_require__(199));
+var OCSPEvents_1 = __webpack_require__(24);
+var CertCheckAgent = /** @class */ (function () {
+ function CertCheckAgent(proxyInfo) {
+ if (!!proxyInfo) {
+ this.privProxyInfo = proxyInfo;
+ }
+ // Initialize this here to allow tests to set the env variable before the cache is constructed.
+ if (!CertCheckAgent.privDiskCache) {
+ CertCheckAgent.privDiskCache = new async_disk_cache_1.default("microsoft-cognitiveservices-speech-sdk-cache", { supportBuffer: true, location: (typeof process !== "undefined" && !!process.env.SPEECH_OCSP_CACHE_ROOT) ? process.env.SPEECH_OCSP_CACHE_ROOT : undefined });
+ }
+ }
+ // Test hook to force the disk cache to be recreated.
+ CertCheckAgent.forceReinitDiskCache = function () {
+ CertCheckAgent.privDiskCache = undefined;
+ CertCheckAgent.privMemCache = {};
+ };
+ CertCheckAgent.prototype.GetAgent = function (disableStapling) {
+ var agent = new agent_base_1.default.Agent(this.CreateConnection);
+ if (this.privProxyInfo !== undefined &&
+ this.privProxyInfo.HostName !== undefined &&
+ this.privProxyInfo.Port > 0) {
+ var proxyName = "privProxyInfo";
+ agent[proxyName] = this.privProxyInfo;
+ }
+ return agent;
+ };
+ CertCheckAgent.GetProxyAgent = function (proxyInfo) {
+ var httpProxyOptions = {
+ host: proxyInfo.HostName,
+ port: proxyInfo.Port,
+ };
+ if (!!proxyInfo.UserName) {
+ httpProxyOptions.headers = {
+ "Proxy-Authentication": "Basic " + new Buffer(proxyInfo.UserName + ":" + (proxyInfo.Password === undefined) ? "" : proxyInfo.Password).toString("base64"),
+ };
+ }
+ else {
+ httpProxyOptions.headers = {};
+ }
+ httpProxyOptions.headers.requestOCSP = "true";
+ var httpProxyAgent = new https_proxy_agent_1.default(httpProxyOptions);
+ return httpProxyAgent;
+ };
+ CertCheckAgent.OCSPCheck = function (socketPromise, proxyInfo) {
+ return __awaiter(this, void 0, void 0, function () {
+ var ocspRequest, stapling, resolved, socket, tlsSocket;
+ var _this = this;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ resolved = false;
+ return [4 /*yield*/, socketPromise];
+ case 1:
+ socket = _a.sent();
+ socket.cork();
+ tlsSocket = socket;
+ return [2 /*return*/, new Promise(function (resolve, reject) {
+ socket.on("OCSPResponse", function (data) {
+ if (!!data) {
+ _this.onEvent(new Exports_1.OCSPStapleReceivedEvent());
+ stapling = data;
+ }
+ });
+ socket.on("error", function (error) {
+ if (!resolved) {
+ resolved = true;
+ socket.destroy();
+ reject(error);
+ }
+ });
+ tlsSocket.on("secure", function () { return __awaiter(_this, void 0, void 0, function () {
+ var peer, issuer, sig, cacheEntry, e_1;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ peer = tlsSocket.getPeerCertificate(true);
+ _a.label = 1;
+ case 1:
+ _a.trys.push([1, 6, , 7]);
+ return [4 /*yield*/, this.GetIssuer(peer)];
+ case 2:
+ issuer = _a.sent();
+ // We always need a request to verify the response.
+ ocspRequest = ocsp.request.generate(peer.raw, issuer.raw);
+ sig = ocspRequest.id.toString("hex");
+ if (!!stapling) return [3 /*break*/, 4];
+ return [4 /*yield*/, CertCheckAgent.GetResponseFromCache(sig, ocspRequest, proxyInfo)];
+ case 3:
+ cacheEntry = _a.sent();
+ stapling = cacheEntry;
+ _a.label = 4;
+ case 4: return [4 /*yield*/, this.VerifyOCSPResponse(stapling, ocspRequest, proxyInfo)];
+ case 5:
+ _a.sent();
+ socket.uncork();
+ resolved = true;
+ resolve(socket);
+ return [3 /*break*/, 7];
+ case 6:
+ e_1 = _a.sent();
+ socket.destroy();
+ resolved = true;
+ reject(e_1);
+ return [3 /*break*/, 7];
+ case 7: return [2 /*return*/];
+ }
+ });
+ }); });
+ })];
+ }
+ });
+ });
+ };
+ CertCheckAgent.GetIssuer = function (peer) {
+ if (peer.issuerCertificate) {
+ return Promise.resolve(peer.issuerCertificate);
+ }
+ return new Promise(function (resolve, reject) {
+ var ocspAgent = new ocsp.Agent({});
+ ocspAgent.fetchIssuer(peer, null, function (error, value) {
+ if (!!error) {
+ reject(error);
+ return;
+ }
+ resolve(value);
+ });
+ });
+ };
+ CertCheckAgent.GetResponseFromCache = function (signature, ocspRequest, proxyInfo) {
+ return __awaiter(this, void 0, void 0, function () {
+ var cachedResponse, diskCacheResponse, error_1, cachedOcspResponse, tbsData, cachedStartTime, cachedNextTime, minUpdate;
+ var _this = this;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ cachedResponse = CertCheckAgent.privMemCache[signature];
+ if (!!cachedResponse) {
+ this.onEvent(new Exports_1.OCSPMemoryCacheHitEvent(signature));
+ }
+ if (!!cachedResponse) return [3 /*break*/, 4];
+ _a.label = 1;
+ case 1:
+ _a.trys.push([1, 3, , 4]);
+ return [4 /*yield*/, CertCheckAgent.privDiskCache.get(signature)];
+ case 2:
+ diskCacheResponse = _a.sent();
+ if (!!diskCacheResponse.isCached) {
+ CertCheckAgent.onEvent(new Exports_1.OCSPDiskCacheHitEvent(signature));
+ CertCheckAgent.StoreMemoryCacheEntry(signature, diskCacheResponse.value);
+ cachedResponse = diskCacheResponse.value;
+ }
+ return [3 /*break*/, 4];
+ case 3:
+ error_1 = _a.sent();
+ cachedResponse = null;
+ return [3 /*break*/, 4];
+ case 4:
+ if (!cachedResponse) {
+ return [2 /*return*/, cachedResponse];
+ }
+ try {
+ cachedOcspResponse = ocsp.utils.parseResponse(cachedResponse);
+ tbsData = cachedOcspResponse.value.tbsResponseData;
+ if (tbsData.responses.length < 1) {
+ this.onEvent(new Exports_1.OCSPCacheFetchErrorEvent(signature, "Not enough data in cached response"));
+ return [2 /*return*/];
+ }
+ cachedStartTime = tbsData.responses[0].thisUpdate;
+ cachedNextTime = tbsData.responses[0].nextUpdate;
+ if (cachedNextTime < (Date.now() + this.testTimeOffset - 60000)) {
+ // Cached entry has expired.
+ this.onEvent(new Exports_1.OCSPCacheEntryExpiredEvent(signature, cachedNextTime));
+ cachedResponse = null;
+ }
+ else {
+ minUpdate = Math.min(24 * 60 * 60 * 1000, (cachedNextTime - cachedStartTime) / 2);
+ if ((cachedNextTime - (Date.now() + this.testTimeOffset)) < minUpdate) {
+ this.onEvent(new Exports_1.OCSPCacheEntryNeedsRefreshEvent(signature, cachedStartTime, cachedNextTime));
+ this.UpdateCache(ocspRequest, proxyInfo).catch(function (error) {
+ // Well, not much we can do here.
+ _this.onEvent(new OCSPEvents_1.OCSPCacheUpdateErrorEvent(signature, error.toString()));
+ });
+ }
+ else {
+ this.onEvent(new Exports_1.OCSPCacheHitEvent(signature, cachedStartTime, cachedNextTime));
+ }
+ }
+ }
+ catch (error) {
+ this.onEvent(new Exports_1.OCSPCacheFetchErrorEvent(signature, error));
+ cachedResponse = null;
+ }
+ if (!cachedResponse) {
+ this.onEvent(new Exports_1.OCSPCacheMissEvent(signature));
+ }
+ return [2 /*return*/, cachedResponse];
+ }
+ });
+ });
+ };
+ CertCheckAgent.VerifyOCSPResponse = function (cacheValue, ocspRequest, proxyInfo) {
+ return __awaiter(this, void 0, void 0, function () {
+ var ocspResponse, sig;
+ var _this = this;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ ocspResponse = cacheValue;
+ sig = ocspRequest.certID.toString("hex");
+ if (!!ocspResponse) return [3 /*break*/, 2];
+ return [4 /*yield*/, CertCheckAgent.GetOCSPResponse(ocspRequest, proxyInfo)];
+ case 1:
+ ocspResponse = _a.sent();
+ _a.label = 2;
+ case 2: return [2 /*return*/, new Promise(function (resolve, reject) {
+ ocsp.verify({ request: ocspRequest, response: ocspResponse }, function (error, result) {
+ if (!!error) {
+ CertCheckAgent.onEvent(new Exports_1.OCSPVerificationFailedEvent(ocspRequest.id.toString("hex"), error));
+ // Bad Cached Value? One more try without the cache.
+ if (!!cacheValue) {
+ _this.VerifyOCSPResponse(null, ocspRequest, proxyInfo).then(function () {
+ resolve();
+ }, function (error) {
+ reject(error);
+ });
+ }
+ else {
+ reject(error);
+ }
+ }
+ else {
+ if (!cacheValue) {
+ CertCheckAgent.StoreCacheEntry(ocspRequest.id.toString("hex"), ocspResponse);
+ }
+ resolve();
+ }
+ });
+ })];
+ }
+ });
+ });
+ };
+ CertCheckAgent.UpdateCache = function (req, proxyInfo) {
+ return __awaiter(this, void 0, void 0, function () {
+ var signature, rawResponse;
+ return __generator(this, function (_a) {
+ switch (_a.label) {
+ case 0:
+ signature = req.id.toString("hex");
+ this.onEvent(new Exports_1.OCSPCacheUpdateNeededEvent(signature));
+ return [4 /*yield*/, this.GetOCSPResponse(req, proxyInfo)];
+ case 1:
+ rawResponse = _a.sent();
+ this.StoreCacheEntry(signature, rawResponse);
+ this.onEvent(new Exports_1.OCSPCacheUpdatehCompleteEvent(req.id.toString("hex")));
+ return [2 /*return*/];
+ }
+ });
+ });
+ };
+ CertCheckAgent.StoreCacheEntry = function (sig, rawResponse) {
+ this.StoreMemoryCacheEntry(sig, rawResponse);
+ this.StoreDiskCacheEntry(sig, rawResponse);
+ };
+ CertCheckAgent.StoreMemoryCacheEntry = function (sig, rawResponse) {
+ this.privMemCache[sig] = rawResponse;
+ this.onEvent(new Exports_1.OCSPMemoryCacheStoreEvent(sig));
+ };
+ CertCheckAgent.StoreDiskCacheEntry = function (sig, rawResponse) {
+ var _this = this;
+ this.privDiskCache.set(sig, rawResponse).then(function () {
+ _this.onEvent(new Exports_1.OCSPDiskCacheStoreEvent(sig));
+ });
+ };
+ CertCheckAgent.GetOCSPResponse = function (req, proxyInfo) {
+ var _this = this;
+ var ocspMethod = "1.3.6.1.5.5.7.48.1";
+ var options = {};
+ if (!!proxyInfo) {
+ var agent = CertCheckAgent.GetProxyAgent(proxyInfo);
+ options.agent = agent;
+ }
+ return new Promise(function (resolve, reject) {
+ ocsp.utils.getAuthorityInfo(req.cert, ocspMethod, function (error, uri) {
+ if (error) {
+ reject(error);
+ return;
+ }
+ var parsedUri = url.parse(uri);
+ options = __assign(__assign({}, options), parsedUri);
+ ocsp.utils.getResponse(options, req.data, function (error, raw) {
+ if (error) {
+ reject(error);
+ return;
+ }
+ _this.onEvent(new Exports_1.OCSPResponseRetrievedEvent(req.certID.toString("hex")));
+ resolve(raw);
+ });
+ });
+ });
+ };
+ CertCheckAgent.prototype.CreateConnection = function (request, options) {
+ var enableOCSP = (typeof process !== "undefined" && process.env.NODE_TLS_REJECT_UNAUTHORIZED !== "0" && process.env.SPEECH_CONDUCT_OCSP_CHECK !== "0") && options.secureEndpoint;
+ var socketPromise;
+ options = __assign(__assign({}, options), {
+ requestOCSP: !CertCheckAgent.forceDisableOCSPStapling,
+ servername: options.host
+ });
+ if (!!this.privProxyInfo) {
+ var httpProxyAgent = CertCheckAgent.GetProxyAgent(this.privProxyInfo);
+ var baseAgent_1 = httpProxyAgent;
+ socketPromise = new Promise(function (resolve, reject) {
+ baseAgent_1.callback(request, options, function (error, socket) {
+ if (!!error) {
+ reject(error);
+ }
+ else {
+ resolve(socket);
+ }
+ });
+ });
+ }
+ else {
+ socketPromise = Promise.resolve(tls.connect(options));
+ }
+ if (!!enableOCSP) {
+ return CertCheckAgent.OCSPCheck(socketPromise, this.privProxyInfo);
+ }
+ else {
+ return socketPromise;
+ }
+ };
+ // Test hook to enable forcing expiration / refresh to happen.
+ CertCheckAgent.testTimeOffset = 0;
+ // Test hook to disable stapling for cache testing.
+ CertCheckAgent.forceDisableOCSPStapling = false;
+ // An in memory cache for recived responses.
+ CertCheckAgent.privMemCache = {};
+ CertCheckAgent.onEvent = function (event) {
+ Exports_1.Events.instance.onEvent(event);
+ };
+ return CertCheckAgent;
+}());
+exports.CertCheckAgent = CertCheckAgent;
+
+
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(187), __webpack_require__(37).Buffer))
+
+/***/ }),
+/* 187 */
+/***/ (function(module, exports) {
+
+// shim for using process in browser
+var process = module.exports = {};
+
+// cached from whatever global is present so that test runners that stub it
+// don't break things. But we need to wrap it in a try catch in case it is
+// wrapped in strict mode code which doesn't define any globals. It's inside a
+// function because try/catches deoptimize in certain engines.
+
+var cachedSetTimeout;
+var cachedClearTimeout;
+
+function defaultSetTimout() {
+ throw new Error('setTimeout has not been defined');
+}
+function defaultClearTimeout () {
+ throw new Error('clearTimeout has not been defined');
+}
+(function () {
+ try {
+ if (typeof setTimeout === 'function') {
+ cachedSetTimeout = setTimeout;
+ } else {
+ cachedSetTimeout = defaultSetTimout;
+ }
+ } catch (e) {
+ cachedSetTimeout = defaultSetTimout;
+ }
+ try {
+ if (typeof clearTimeout === 'function') {
+ cachedClearTimeout = clearTimeout;
+ } else {
+ cachedClearTimeout = defaultClearTimeout;
+ }
+ } catch (e) {
+ cachedClearTimeout = defaultClearTimeout;
+ }
+} ())
+function runTimeout(fun) {
+ if (cachedSetTimeout === setTimeout) {
+ //normal enviroments in sane situations
+ return setTimeout(fun, 0);
+ }
+ // if setTimeout wasn't available but was latter defined
+ if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
+ cachedSetTimeout = setTimeout;
+ return setTimeout(fun, 0);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedSetTimeout(fun, 0);
+ } catch(e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedSetTimeout.call(null, fun, 0);
+ } catch(e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
+ return cachedSetTimeout.call(this, fun, 0);
+ }
+ }
+
+
+}
+function runClearTimeout(marker) {
+ if (cachedClearTimeout === clearTimeout) {
+ //normal enviroments in sane situations
+ return clearTimeout(marker);
+ }
+ // if clearTimeout wasn't available but was latter defined
+ if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
+ cachedClearTimeout = clearTimeout;
+ return clearTimeout(marker);
+ }
+ try {
+ // when when somebody has screwed with setTimeout but no I.E. maddness
+ return cachedClearTimeout(marker);
+ } catch (e){
+ try {
+ // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
+ return cachedClearTimeout.call(null, marker);
+ } catch (e){
+ // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
+ // Some versions of I.E. have different rules for clearTimeout vs setTimeout
+ return cachedClearTimeout.call(this, marker);
+ }
+ }
+
+
+
+}
+var queue = [];
+var draining = false;
+var currentQueue;
+var queueIndex = -1;
+
+function cleanUpNextTick() {
+ if (!draining || !currentQueue) {
+ return;
+ }
+ draining = false;
+ if (currentQueue.length) {
+ queue = currentQueue.concat(queue);
+ } else {
+ queueIndex = -1;
+ }
+ if (queue.length) {
+ drainQueue();
+ }
+}
+
+function drainQueue() {
+ if (draining) {
+ return;
+ }
+ var timeout = runTimeout(cleanUpNextTick);
+ draining = true;
+
+ var len = queue.length;
+ while(len) {
+ currentQueue = queue;
+ queue = [];
+ while (++queueIndex < len) {
+ if (currentQueue) {
+ currentQueue[queueIndex].run();
+ }
+ }
+ queueIndex = -1;
+ len = queue.length;
+ }
+ currentQueue = null;
+ draining = false;
+ runClearTimeout(timeout);
+}
+
+process.nextTick = function (fun) {
+ var args = new Array(arguments.length - 1);
+ if (arguments.length > 1) {
+ for (var i = 1; i < arguments.length; i++) {
+ args[i - 1] = arguments[i];
+ }
+ }
+ queue.push(new Item(fun, args));
+ if (queue.length === 1 && !draining) {
+ runTimeout(drainQueue);
+ }
+};
+
+// v8 likes predictible objects
+function Item(fun, array) {
+ this.fun = fun;
+ this.array = array;
+}
+Item.prototype.run = function () {
+ this.fun.apply(null, this.array);
+};
+process.title = 'browser';
+process.browser = true;
+process.env = {};
+process.argv = [];
+process.version = ''; // empty string to avoid regexp issues
+process.versions = {};
+
+function noop() {}
+
+process.on = noop;
+process.addListener = noop;
+process.once = noop;
+process.off = noop;
+process.removeListener = noop;
+process.removeAllListeners = noop;
+process.emit = noop;
+process.prependListener = noop;
+process.prependOnceListener = noop;
+
+process.listeners = function (name) { return [] }
+
+process.binding = function (name) {
+ throw new Error('process.binding is not supported');
+};
+
+process.cwd = function () { return '/' };
+process.chdir = function (dir) {
+ throw new Error('process.chdir is not supported');
+};
+process.umask = function() { return 0; };
+
+
+/***/ }),
+/* 188 */
+/***/ (function(module, exports) {
+
+/* (ignored) */
+
+/***/ }),
+/* 189 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+
+var punycode = __webpack_require__(190);
+var util = __webpack_require__(192);
+
+exports.parse = urlParse;
+exports.resolve = urlResolve;
+exports.resolveObject = urlResolveObject;
+exports.format = urlFormat;
+
+exports.Url = Url;
+
+function Url() {
+ this.protocol = null;
+ this.slashes = null;
+ this.auth = null;
+ this.host = null;
+ this.port = null;
+ this.hostname = null;
+ this.hash = null;
+ this.search = null;
+ this.query = null;
+ this.pathname = null;
+ this.path = null;
+ this.href = null;
+}
+
+// Reference: RFC 3986, RFC 1808, RFC 2396
+
+// define these here so at least they only have to be
+// compiled once on the first module load.
+var protocolPattern = /^([a-z0-9.+-]+:)/i,
+ portPattern = /:[0-9]*$/,
+
+ // Special case for a simple path URL
+ simplePathPattern = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,
+
+ // RFC 2396: characters reserved for delimiting URLs.
+ // We actually just auto-escape these.
+ delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'],
+
+ // RFC 2396: characters not allowed for various reasons.
+ unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims),
+
+ // Allowed by RFCs, but cause of XSS attacks. Always escape these.
+ autoEscape = ['\''].concat(unwise),
+ // Characters that are never ever allowed in a hostname.
+ // Note that any invalid chars are also handled, but these
+ // are the ones that are *expected* to be seen, so we fast-path
+ // them.
+ nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),
+ hostEndingChars = ['/', '?', '#'],
+ hostnameMaxLen = 255,
+ hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,
+ hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,
+ // protocols that can allow "unsafe" and "unwise" chars.
+ unsafeProtocol = {
+ 'javascript': true,
+ 'javascript:': true
+ },
+ // protocols that never have a hostname.
+ hostlessProtocol = {
+ 'javascript': true,
+ 'javascript:': true
+ },
+ // protocols that always contain a // bit.
+ slashedProtocol = {
+ 'http': true,
+ 'https': true,
+ 'ftp': true,
+ 'gopher': true,
+ 'file': true,
+ 'http:': true,
+ 'https:': true,
+ 'ftp:': true,
+ 'gopher:': true,
+ 'file:': true
+ },
+ querystring = __webpack_require__(193);
+
+function urlParse(url, parseQueryString, slashesDenoteHost) {
+ if (url && util.isObject(url) && url instanceof Url) return url;
+
+ var u = new Url;
+ u.parse(url, parseQueryString, slashesDenoteHost);
+ return u;
+}
+
+Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {
+ if (!util.isString(url)) {
+ throw new TypeError("Parameter 'url' must be a string, not " + typeof url);
+ }
+
+ // Copy chrome, IE, opera backslash-handling behavior.
+ // Back slashes before the query string get converted to forward slashes
+ // See: https://code.google.com/p/chromium/issues/detail?id=25916
+ var queryIndex = url.indexOf('?'),
+ splitter =
+ (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',
+ uSplit = url.split(splitter),
+ slashRegex = /\\/g;
+ uSplit[0] = uSplit[0].replace(slashRegex, '/');
+ url = uSplit.join(splitter);
+
+ var rest = url;
+
+ // trim before proceeding.
+ // This is to support parse stuff like " http://foo.com \n"
+ rest = rest.trim();
+
+ if (!slashesDenoteHost && url.split('#').length === 1) {
+ // Try fast path regexp
+ var simplePath = simplePathPattern.exec(rest);
+ if (simplePath) {
+ this.path = rest;
+ this.href = rest;
+ this.pathname = simplePath[1];
+ if (simplePath[2]) {
+ this.search = simplePath[2];
+ if (parseQueryString) {
+ this.query = querystring.parse(this.search.substr(1));
+ } else {
+ this.query = this.search.substr(1);
+ }
+ } else if (parseQueryString) {
+ this.search = '';
+ this.query = {};
+ }
+ return this;
+ }
+ }
+
+ var proto = protocolPattern.exec(rest);
+ if (proto) {
+ proto = proto[0];
+ var lowerProto = proto.toLowerCase();
+ this.protocol = lowerProto;
+ rest = rest.substr(proto.length);
+ }
+
+ // figure out if it's got a host
+ // user@server is *always* interpreted as a hostname, and url
+ // resolution will treat //foo/bar as host=foo,path=bar because that's
+ // how the browser resolves relative URLs.
+ if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) {
+ var slashes = rest.substr(0, 2) === '//';
+ if (slashes && !(proto && hostlessProtocol[proto])) {
+ rest = rest.substr(2);
+ this.slashes = true;
+ }
+ }
+
+ if (!hostlessProtocol[proto] &&
+ (slashes || (proto && !slashedProtocol[proto]))) {
+
+ // there's a hostname.
+ // the first instance of /, ?, ;, or # ends the host.
+ //
+ // If there is an @ in the hostname, then non-host chars *are* allowed
+ // to the left of the last @ sign, unless some host-ending character
+ // comes *before* the @-sign.
+ // URLs are obnoxious.
+ //
+ // ex:
+ // http://a@b@c/ => user:a@b host:c
+ // http://a@b?@c => user:a host:c path:/?@c
+
+ // v0.12 TODO(isaacs): This is not quite how Chrome does things.
+ // Review our test case against browsers more comprehensively.
+
+ // find the first instance of any hostEndingChars
+ var hostEnd = -1;
+ for (var i = 0; i < hostEndingChars.length; i++) {
+ var hec = rest.indexOf(hostEndingChars[i]);
+ if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))
+ hostEnd = hec;
+ }
+
+ // at this point, either we have an explicit point where the
+ // auth portion cannot go past, or the last @ char is the decider.
+ var auth, atSign;
+ if (hostEnd === -1) {
+ // atSign can be anywhere.
+ atSign = rest.lastIndexOf('@');
+ } else {
+ // atSign must be in auth portion.
+ // http://a@b/c@d => host:b auth:a path:/c@d
+ atSign = rest.lastIndexOf('@', hostEnd);
+ }
+
+ // Now we have a portion which is definitely the auth.
+ // Pull that off.
+ if (atSign !== -1) {
+ auth = rest.slice(0, atSign);
+ rest = rest.slice(atSign + 1);
+ this.auth = decodeURIComponent(auth);
+ }
+
+ // the host is the remaining to the left of the first non-host char
+ hostEnd = -1;
+ for (var i = 0; i < nonHostChars.length; i++) {
+ var hec = rest.indexOf(nonHostChars[i]);
+ if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))
+ hostEnd = hec;
+ }
+ // if we still have not hit it, then the entire thing is a host.
+ if (hostEnd === -1)
+ hostEnd = rest.length;
+
+ this.host = rest.slice(0, hostEnd);
+ rest = rest.slice(hostEnd);
+
+ // pull out port.
+ this.parseHost();
+
+ // we've indicated that there is a hostname,
+ // so even if it's empty, it has to be present.
+ this.hostname = this.hostname || '';
+
+ // if hostname begins with [ and ends with ]
+ // assume that it's an IPv6 address.
+ var ipv6Hostname = this.hostname[0] === '[' &&
+ this.hostname[this.hostname.length - 1] === ']';
+
+ // validate a little.
+ if (!ipv6Hostname) {
+ var hostparts = this.hostname.split(/\./);
+ for (var i = 0, l = hostparts.length; i < l; i++) {
+ var part = hostparts[i];
+ if (!part) continue;
+ if (!part.match(hostnamePartPattern)) {
+ var newpart = '';
+ for (var j = 0, k = part.length; j < k; j++) {
+ if (part.charCodeAt(j) > 127) {
+ // we replace non-ASCII char with a temporary placeholder
+ // we need this to make sure size of hostname is not
+ // broken by replacing non-ASCII by nothing
+ newpart += 'x';
+ } else {
+ newpart += part[j];
+ }
+ }
+ // we test again with ASCII char only
+ if (!newpart.match(hostnamePartPattern)) {
+ var validParts = hostparts.slice(0, i);
+ var notHost = hostparts.slice(i + 1);
+ var bit = part.match(hostnamePartStart);
+ if (bit) {
+ validParts.push(bit[1]);
+ notHost.unshift(bit[2]);
+ }
+ if (notHost.length) {
+ rest = '/' + notHost.join('.') + rest;
+ }
+ this.hostname = validParts.join('.');
+ break;
+ }
+ }
+ }
+ }
+
+ if (this.hostname.length > hostnameMaxLen) {
+ this.hostname = '';
+ } else {
+ // hostnames are always lower case.
+ this.hostname = this.hostname.toLowerCase();
+ }
+
+ if (!ipv6Hostname) {
+ // IDNA Support: Returns a punycoded representation of "domain".
+ // It only converts parts of the domain name that
+ // have non-ASCII characters, i.e. it doesn't matter if
+ // you call it with a domain that already is ASCII-only.
+ this.hostname = punycode.toASCII(this.hostname);
+ }
+
+ var p = this.port ? ':' + this.port : '';
+ var h = this.hostname || '';
+ this.host = h + p;
+ this.href += this.host;
+
+ // strip [ and ] from the hostname
+ // the host field still retains them, though
+ if (ipv6Hostname) {
+ this.hostname = this.hostname.substr(1, this.hostname.length - 2);
+ if (rest[0] !== '/') {
+ rest = '/' + rest;
+ }
+ }
+ }
+
+ // now rest is set to the post-host stuff.
+ // chop off any delim chars.
+ if (!unsafeProtocol[lowerProto]) {
+
+ // First, make 100% sure that any "autoEscape" chars get
+ // escaped, even if encodeURIComponent doesn't think they
+ // need to be.
+ for (var i = 0, l = autoEscape.length; i < l; i++) {
+ var ae = autoEscape[i];
+ if (rest.indexOf(ae) === -1)
+ continue;
+ var esc = encodeURIComponent(ae);
+ if (esc === ae) {
+ esc = escape(ae);
+ }
+ rest = rest.split(ae).join(esc);
+ }
+ }
+
+
+ // chop off from the tail first.
+ var hash = rest.indexOf('#');
+ if (hash !== -1) {
+ // got a fragment string.
+ this.hash = rest.substr(hash);
+ rest = rest.slice(0, hash);
+ }
+ var qm = rest.indexOf('?');
+ if (qm !== -1) {
+ this.search = rest.substr(qm);
+ this.query = rest.substr(qm + 1);
+ if (parseQueryString) {
+ this.query = querystring.parse(this.query);
+ }
+ rest = rest.slice(0, qm);
+ } else if (parseQueryString) {
+ // no query string, but parseQueryString still requested
+ this.search = '';
+ this.query = {};
+ }
+ if (rest) this.pathname = rest;
+ if (slashedProtocol[lowerProto] &&
+ this.hostname && !this.pathname) {
+ this.pathname = '/';
+ }
+
+ //to support http.request
+ if (this.pathname || this.search) {
+ var p = this.pathname || '';
+ var s = this.search || '';
+ this.path = p + s;
+ }
+
+ // finally, reconstruct the href based on what has been validated.
+ this.href = this.format();
+ return this;
+};
+
+// format a parsed object into a url string
+function urlFormat(obj) {
+ // ensure it's an object, and not a string url.
+ // If it's an obj, this is a no-op.
+ // this way, you can call url_format() on strings
+ // to clean up potentially wonky urls.
+ if (util.isString(obj)) obj = urlParse(obj);
+ if (!(obj instanceof Url)) return Url.prototype.format.call(obj);
+ return obj.format();
+}
+
+Url.prototype.format = function() {
+ var auth = this.auth || '';
+ if (auth) {
+ auth = encodeURIComponent(auth);
+ auth = auth.replace(/%3A/i, ':');
+ auth += '@';
+ }
+
+ var protocol = this.protocol || '',
+ pathname = this.pathname || '',
+ hash = this.hash || '',
+ host = false,
+ query = '';
+
+ if (this.host) {
+ host = auth + this.host;
+ } else if (this.hostname) {
+ host = auth + (this.hostname.indexOf(':') === -1 ?
+ this.hostname :
+ '[' + this.hostname + ']');
+ if (this.port) {
+ host += ':' + this.port;
+ }
+ }
+
+ if (this.query &&
+ util.isObject(this.query) &&
+ Object.keys(this.query).length) {
+ query = querystring.stringify(this.query);
+ }
+
+ var search = this.search || (query && ('?' + query)) || '';
+
+ if (protocol && protocol.substr(-1) !== ':') protocol += ':';
+
+ // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.
+ // unless they had them to begin with.
+ if (this.slashes ||
+ (!protocol || slashedProtocol[protocol]) && host !== false) {
+ host = '//' + (host || '');
+ if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;
+ } else if (!host) {
+ host = '';
+ }
+
+ if (hash && hash.charAt(0) !== '#') hash = '#' + hash;
+ if (search && search.charAt(0) !== '?') search = '?' + search;
+
+ pathname = pathname.replace(/[?#]/g, function(match) {
+ return encodeURIComponent(match);
+ });
+ search = search.replace('#', '%23');
+
+ return protocol + host + pathname + search + hash;
+};
+
+function urlResolve(source, relative) {
+ return urlParse(source, false, true).resolve(relative);
+}
+
+Url.prototype.resolve = function(relative) {
+ return this.resolveObject(urlParse(relative, false, true)).format();
+};
+
+function urlResolveObject(source, relative) {
+ if (!source) return relative;
+ return urlParse(source, false, true).resolveObject(relative);
+}
+
+Url.prototype.resolveObject = function(relative) {
+ if (util.isString(relative)) {
+ var rel = new Url();
+ rel.parse(relative, false, true);
+ relative = rel;
+ }
+
+ var result = new Url();
+ var tkeys = Object.keys(this);
+ for (var tk = 0; tk < tkeys.length; tk++) {
+ var tkey = tkeys[tk];
+ result[tkey] = this[tkey];
+ }
+
+ // hash is always overridden, no matter what.
+ // even href="" will remove it.
+ result.hash = relative.hash;
+
+ // if the relative url is empty, then there's nothing left to do here.
+ if (relative.href === '') {
+ result.href = result.format();
+ return result;
+ }
+
+ // hrefs like //foo/bar always cut to the protocol.
+ if (relative.slashes && !relative.protocol) {
+ // take everything except the protocol from relative
+ var rkeys = Object.keys(relative);
+ for (var rk = 0; rk < rkeys.length; rk++) {
+ var rkey = rkeys[rk];
+ if (rkey !== 'protocol')
+ result[rkey] = relative[rkey];
+ }
+
+ //urlParse appends trailing / to urls like http://www.example.com
+ if (slashedProtocol[result.protocol] &&
+ result.hostname && !result.pathname) {
+ result.path = result.pathname = '/';
+ }
+
+ result.href = result.format();
+ return result;
+ }
+
+ if (relative.protocol && relative.protocol !== result.protocol) {
+ // if it's a known url protocol, then changing
+ // the protocol does weird things
+ // first, if it's not file:, then we MUST have a host,
+ // and if there was a path
+ // to begin with, then we MUST have a path.
+ // if it is file:, then the host is dropped,
+ // because that's known to be hostless.
+ // anything else is assumed to be absolute.
+ if (!slashedProtocol[relative.protocol]) {
+ var keys = Object.keys(relative);
+ for (var v = 0; v < keys.length; v++) {
+ var k = keys[v];
+ result[k] = relative[k];
+ }
+ result.href = result.format();
+ return result;
+ }
+
+ result.protocol = relative.protocol;
+ if (!relative.host && !hostlessProtocol[relative.protocol]) {
+ var relPath = (relative.pathname || '').split('/');
+ while (relPath.length && !(relative.host = relPath.shift()));
+ if (!relative.host) relative.host = '';
+ if (!relative.hostname) relative.hostname = '';
+ if (relPath[0] !== '') relPath.unshift('');
+ if (relPath.length < 2) relPath.unshift('');
+ result.pathname = relPath.join('/');
+ } else {
+ result.pathname = relative.pathname;
+ }
+ result.search = relative.search;
+ result.query = relative.query;
+ result.host = relative.host || '';
+ result.auth = relative.auth;
+ result.hostname = relative.hostname || relative.host;
+ result.port = relative.port;
+ // to support http.request
+ if (result.pathname || result.search) {
+ var p = result.pathname || '';
+ var s = result.search || '';
+ result.path = p + s;
+ }
+ result.slashes = result.slashes || relative.slashes;
+ result.href = result.format();
+ return result;
+ }
+
+ var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),
+ isRelAbs = (
+ relative.host ||
+ relative.pathname && relative.pathname.charAt(0) === '/'
+ ),
+ mustEndAbs = (isRelAbs || isSourceAbs ||
+ (result.host && relative.pathname)),
+ removeAllDots = mustEndAbs,
+ srcPath = result.pathname && result.pathname.split('/') || [],
+ relPath = relative.pathname && relative.pathname.split('/') || [],
+ psychotic = result.protocol && !slashedProtocol[result.protocol];
+
+ // if the url is a non-slashed url, then relative
+ // links like ../.. should be able
+ // to crawl up to the hostname, as well. This is strange.
+ // result.protocol has already been set by now.
+ // Later on, put the first path part into the host field.
+ if (psychotic) {
+ result.hostname = '';
+ result.port = null;
+ if (result.host) {
+ if (srcPath[0] === '') srcPath[0] = result.host;
+ else srcPath.unshift(result.host);
+ }
+ result.host = '';
+ if (relative.protocol) {
+ relative.hostname = null;
+ relative.port = null;
+ if (relative.host) {
+ if (relPath[0] === '') relPath[0] = relative.host;
+ else relPath.unshift(relative.host);
+ }
+ relative.host = null;
+ }
+ mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');
+ }
+
+ if (isRelAbs) {
+ // it's absolute.
+ result.host = (relative.host || relative.host === '') ?
+ relative.host : result.host;
+ result.hostname = (relative.hostname || relative.hostname === '') ?
+ relative.hostname : result.hostname;
+ result.search = relative.search;
+ result.query = relative.query;
+ srcPath = relPath;
+ // fall through to the dot-handling below.
+ } else if (relPath.length) {
+ // it's relative
+ // throw away the existing file, and take the new path instead.
+ if (!srcPath) srcPath = [];
+ srcPath.pop();
+ srcPath = srcPath.concat(relPath);
+ result.search = relative.search;
+ result.query = relative.query;
+ } else if (!util.isNullOrUndefined(relative.search)) {
+ // just pull out the search.
+ // like href='?foo'.
+ // Put this after the other two cases because it simplifies the booleans
+ if (psychotic) {
+ result.hostname = result.host = srcPath.shift();
+ //occationaly the auth can get stuck only in host
+ //this especially happens in cases like
+ //url.resolveObject('mailto:local1@domain1', 'local2@domain2')
+ var authInHost = result.host && result.host.indexOf('@') > 0 ?
+ result.host.split('@') : false;
+ if (authInHost) {
+ result.auth = authInHost.shift();
+ result.host = result.hostname = authInHost.shift();
+ }
+ }
+ result.search = relative.search;
+ result.query = relative.query;
+ //to support http.request
+ if (!util.isNull(result.pathname) || !util.isNull(result.search)) {
+ result.path = (result.pathname ? result.pathname : '') +
+ (result.search ? result.search : '');
+ }
+ result.href = result.format();
+ return result;
+ }
+
+ if (!srcPath.length) {
+ // no path at all. easy.
+ // we've already handled the other stuff above.
+ result.pathname = null;
+ //to support http.request
+ if (result.search) {
+ result.path = '/' + result.search;
+ } else {
+ result.path = null;
+ }
+ result.href = result.format();
+ return result;
+ }
+
+ // if a url ENDs in . or .., then it must get a trailing slash.
+ // however, if it ends in anything else non-slashy,
+ // then it must NOT get a trailing slash.
+ var last = srcPath.slice(-1)[0];
+ var hasTrailingSlash = (
+ (result.host || relative.host || srcPath.length > 1) &&
+ (last === '.' || last === '..') || last === '');
+
+ // strip single dots, resolve double dots to parent dir
+ // if the path tries to go above the root, `up` ends up > 0
+ var up = 0;
+ for (var i = srcPath.length; i >= 0; i--) {
+ last = srcPath[i];
+ if (last === '.') {
+ srcPath.splice(i, 1);
+ } else if (last === '..') {
+ srcPath.splice(i, 1);
+ up++;
+ } else if (up) {
+ srcPath.splice(i, 1);
+ up--;
+ }
+ }
+
+ // if the path is allowed to go above the root, restore leading ..s
+ if (!mustEndAbs && !removeAllDots) {
+ for (; up--; up) {
+ srcPath.unshift('..');
+ }
+ }
+
+ if (mustEndAbs && srcPath[0] !== '' &&
+ (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {
+ srcPath.unshift('');
+ }
+
+ if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {
+ srcPath.push('');
+ }
+
+ var isAbsolute = srcPath[0] === '' ||
+ (srcPath[0] && srcPath[0].charAt(0) === '/');
+
+ // put the host back
+ if (psychotic) {
+ result.hostname = result.host = isAbsolute ? '' :
+ srcPath.length ? srcPath.shift() : '';
+ //occationaly the auth can get stuck only in host
+ //this especially happens in cases like
+ //url.resolveObject('mailto:local1@domain1', 'local2@domain2')
+ var authInHost = result.host && result.host.indexOf('@') > 0 ?
+ result.host.split('@') : false;
+ if (authInHost) {
+ result.auth = authInHost.shift();
+ result.host = result.hostname = authInHost.shift();
+ }
+ }
+
+ mustEndAbs = mustEndAbs || (result.host && srcPath.length);
+
+ if (mustEndAbs && !isAbsolute) {
+ srcPath.unshift('');
+ }
+
+ if (!srcPath.length) {
+ result.pathname = null;
+ result.path = null;
+ } else {
+ result.pathname = srcPath.join('/');
+ }
+
+ //to support request.http
+ if (!util.isNull(result.pathname) || !util.isNull(result.search)) {
+ result.path = (result.pathname ? result.pathname : '') +
+ (result.search ? result.search : '');
+ }
+ result.auth = relative.auth || result.auth;
+ result.slashes = result.slashes || relative.slashes;
+ result.href = result.format();
+ return result;
+};
+
+Url.prototype.parseHost = function() {
+ var host = this.host;
+ var port = portPattern.exec(host);
+ if (port) {
+ port = port[0];
+ if (port !== ':') {
+ this.port = port.substr(1);
+ }
+ host = host.substr(0, host.length - port.length);
+ }
+ if (host) this.hostname = host;
+};
+
+
+/***/ }),
+/* 190 */
+/***/ (function(module, exports, __webpack_require__) {
+
+/* WEBPACK VAR INJECTION */(function(module, global) {var __WEBPACK_AMD_DEFINE_RESULT__;/*! https://mths.be/punycode v1.4.1 by @mathias */
+;(function(root) {
+
+ /** Detect free variables */
+ var freeExports = true && exports &&
+ !exports.nodeType && exports;
+ var freeModule = true && module &&
+ !module.nodeType && module;
+ var freeGlobal = typeof global == 'object' && global;
+ if (
+ freeGlobal.global === freeGlobal ||
+ freeGlobal.window === freeGlobal ||
+ freeGlobal.self === freeGlobal
+ ) {
+ root = freeGlobal;
+ }
+
+ /**
+ * The `punycode` object.
+ * @name punycode
+ * @type Object
+ */
+ var punycode,
+
+ /** Highest positive signed 32-bit float value */
+ maxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1
+
+ /** Bootstring parameters */
+ base = 36,
+ tMin = 1,
+ tMax = 26,
+ skew = 38,
+ damp = 700,
+ initialBias = 72,
+ initialN = 128, // 0x80
+ delimiter = '-', // '\x2D'
+
+ /** Regular expressions */
+ regexPunycode = /^xn--/,
+ regexNonASCII = /[^\x20-\x7E]/, // unprintable ASCII chars + non-ASCII chars
+ regexSeparators = /[\x2E\u3002\uFF0E\uFF61]/g, // RFC 3490 separators
+
+ /** Error messages */
+ errors = {
+ 'overflow': 'Overflow: input needs wider integers to process',
+ 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',
+ 'invalid-input': 'Invalid input'
+ },
+
+ /** Convenience shortcuts */
+ baseMinusTMin = base - tMin,
+ floor = Math.floor,
+ stringFromCharCode = String.fromCharCode,
+
+ /** Temporary variable */
+ key;
+
+ /*--------------------------------------------------------------------------*/
+
+ /**
+ * A generic error utility function.
+ * @private
+ * @param {String} type The error type.
+ * @returns {Error} Throws a `RangeError` with the applicable error message.
+ */
+ function error(type) {
+ throw new RangeError(errors[type]);
+ }
+
+ /**
+ * A generic `Array#map` utility function.
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} callback The function that gets called for every array
+ * item.
+ * @returns {Array} A new array of values returned by the callback function.
+ */
+ function map(array, fn) {
+ var length = array.length;
+ var result = [];
+ while (length--) {
+ result[length] = fn(array[length]);
+ }
+ return result;
+ }
+
+ /**
+ * A simple `Array#map`-like wrapper to work with domain name strings or email
+ * addresses.
+ * @private
+ * @param {String} domain The domain name or email address.
+ * @param {Function} callback The function that gets called for every
+ * character.
+ * @returns {Array} A new string of characters returned by the callback
+ * function.
+ */
+ function mapDomain(string, fn) {
+ var parts = string.split('@');
+ var result = '';
+ if (parts.length > 1) {
+ // In email addresses, only the domain name should be punycoded. Leave
+ // the local part (i.e. everything up to `@`) intact.
+ result = parts[0] + '@';
+ string = parts[1];
+ }
+ // Avoid `split(regex)` for IE8 compatibility. See #17.
+ string = string.replace(regexSeparators, '\x2E');
+ var labels = string.split('.');
+ var encoded = map(labels, fn).join('.');
+ return result + encoded;
+ }
+
+ /**
+ * Creates an array containing the numeric code points of each Unicode
+ * character in the string. While JavaScript uses UCS-2 internally,
+ * this function will convert a pair of surrogate halves (each of which
+ * UCS-2 exposes as separate characters) into a single code point,
+ * matching UTF-16.
+ * @see `punycode.ucs2.encode`
+ * @see
+ * @memberOf punycode.ucs2
+ * @name decode
+ * @param {String} string The Unicode input string (UCS-2).
+ * @returns {Array} The new array of code points.
+ */
+ function ucs2decode(string) {
+ var output = [],
+ counter = 0,
+ length = string.length,
+ value,
+ extra;
+ while (counter < length) {
+ value = string.charCodeAt(counter++);
+ if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
+ // high surrogate, and there is a next character
+ extra = string.charCodeAt(counter++);
+ if ((extra & 0xFC00) == 0xDC00) { // low surrogate
+ output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
+ } else {
+ // unmatched surrogate; only append this code unit, in case the next
+ // code unit is the high surrogate of a surrogate pair
+ output.push(value);
+ counter--;
+ }
+ } else {
+ output.push(value);
+ }
+ }
+ return output;
+ }
+
+ /**
+ * Creates a string based on an array of numeric code points.
+ * @see `punycode.ucs2.decode`
+ * @memberOf punycode.ucs2
+ * @name encode
+ * @param {Array} codePoints The array of numeric code points.
+ * @returns {String} The new Unicode string (UCS-2).
+ */
+ function ucs2encode(array) {
+ return map(array, function(value) {
+ var output = '';
+ if (value > 0xFFFF) {
+ value -= 0x10000;
+ output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);
+ value = 0xDC00 | value & 0x3FF;
+ }
+ output += stringFromCharCode(value);
+ return output;
+ }).join('');
+ }
+
+ /**
+ * Converts a basic code point into a digit/integer.
+ * @see `digitToBasic()`
+ * @private
+ * @param {Number} codePoint The basic numeric code point value.
+ * @returns {Number} The numeric value of a basic code point (for use in
+ * representing integers) in the range `0` to `base - 1`, or `base` if
+ * the code point does not represent a value.
+ */
+ function basicToDigit(codePoint) {
+ if (codePoint - 48 < 10) {
+ return codePoint - 22;
+ }
+ if (codePoint - 65 < 26) {
+ return codePoint - 65;
+ }
+ if (codePoint - 97 < 26) {
+ return codePoint - 97;
+ }
+ return base;
+ }
+
+ /**
+ * Converts a digit/integer into a basic code point.
+ * @see `basicToDigit()`
+ * @private
+ * @param {Number} digit The numeric value of a basic code point.
+ * @returns {Number} The basic code point whose value (when used for
+ * representing integers) is `digit`, which needs to be in the range
+ * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is
+ * used; else, the lowercase form is used. The behavior is undefined
+ * if `flag` is non-zero and `digit` has no uppercase form.
+ */
+ function digitToBasic(digit, flag) {
+ // 0..25 map to ASCII a..z or A..Z
+ // 26..35 map to ASCII 0..9
+ return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);
+ }
+
+ /**
+ * Bias adaptation function as per section 3.4 of RFC 3492.
+ * https://tools.ietf.org/html/rfc3492#section-3.4
+ * @private
+ */
+ function adapt(delta, numPoints, firstTime) {
+ var k = 0;
+ delta = firstTime ? floor(delta / damp) : delta >> 1;
+ delta += floor(delta / numPoints);
+ for (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {
+ delta = floor(delta / baseMinusTMin);
+ }
+ return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
+ }
+
+ /**
+ * Converts a Punycode string of ASCII-only symbols to a string of Unicode
+ * symbols.
+ * @memberOf punycode
+ * @param {String} input The Punycode string of ASCII-only symbols.
+ * @returns {String} The resulting string of Unicode symbols.
+ */
+ function decode(input) {
+ // Don't use UCS-2
+ var output = [],
+ inputLength = input.length,
+ out,
+ i = 0,
+ n = initialN,
+ bias = initialBias,
+ basic,
+ j,
+ index,
+ oldi,
+ w,
+ k,
+ digit,
+ t,
+ /** Cached calculation results */
+ baseMinusT;
+
+ // Handle the basic code points: let `basic` be the number of input code
+ // points before the last delimiter, or `0` if there is none, then copy
+ // the first basic code points to the output.
+
+ basic = input.lastIndexOf(delimiter);
+ if (basic < 0) {
+ basic = 0;
+ }
+
+ for (j = 0; j < basic; ++j) {
+ // if it's not a basic code point
+ if (input.charCodeAt(j) >= 0x80) {
+ error('not-basic');
+ }
+ output.push(input.charCodeAt(j));
+ }
+
+ // Main decoding loop: start just after the last delimiter if any basic code
+ // points were copied; start at the beginning otherwise.
+
+ for (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {
+
+ // `index` is the index of the next character to be consumed.
+ // Decode a generalized variable-length integer into `delta`,
+ // which gets added to `i`. The overflow checking is easier
+ // if we increase `i` as we go, then subtract off its starting
+ // value at the end to obtain `delta`.
+ for (oldi = i, w = 1, k = base; /* no condition */; k += base) {
+
+ if (index >= inputLength) {
+ error('invalid-input');
+ }
+
+ digit = basicToDigit(input.charCodeAt(index++));
+
+ if (digit >= base || digit > floor((maxInt - i) / w)) {
+ error('overflow');
+ }
+
+ i += digit * w;
+ t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
+
+ if (digit < t) {
+ break;
+ }
+
+ baseMinusT = base - t;
+ if (w > floor(maxInt / baseMinusT)) {
+ error('overflow');
+ }
+
+ w *= baseMinusT;
+
+ }
+
+ out = output.length + 1;
+ bias = adapt(i - oldi, out, oldi == 0);
+
+ // `i` was supposed to wrap around from `out` to `0`,
+ // incrementing `n` each time, so we'll fix that now:
+ if (floor(i / out) > maxInt - n) {
+ error('overflow');
+ }
+
+ n += floor(i / out);
+ i %= out;
+
+ // Insert `n` at position `i` of the output
+ output.splice(i++, 0, n);
+
+ }
+
+ return ucs2encode(output);
+ }
+
+ /**
+ * Converts a string of Unicode symbols (e.g. a domain name label) to a
+ * Punycode string of ASCII-only symbols.
+ * @memberOf punycode
+ * @param {String} input The string of Unicode symbols.
+ * @returns {String} The resulting Punycode string of ASCII-only symbols.
+ */
+ function encode(input) {
+ var n,
+ delta,
+ handledCPCount,
+ basicLength,
+ bias,
+ j,
+ m,
+ q,
+ k,
+ t,
+ currentValue,
+ output = [],
+ /** `inputLength` will hold the number of code points in `input`. */
+ inputLength,
+ /** Cached calculation results */
+ handledCPCountPlusOne,
+ baseMinusT,
+ qMinusT;
+
+ // Convert the input in UCS-2 to Unicode
+ input = ucs2decode(input);
+
+ // Cache the length
+ inputLength = input.length;
+
+ // Initialize the state
+ n = initialN;
+ delta = 0;
+ bias = initialBias;
+
+ // Handle the basic code points
+ for (j = 0; j < inputLength; ++j) {
+ currentValue = input[j];
+ if (currentValue < 0x80) {
+ output.push(stringFromCharCode(currentValue));
+ }
+ }
+
+ handledCPCount = basicLength = output.length;
+
+ // `handledCPCount` is the number of code points that have been handled;
+ // `basicLength` is the number of basic code points.
+
+ // Finish the basic string - if it is not empty - with a delimiter
+ if (basicLength) {
+ output.push(delimiter);
+ }
+
+ // Main encoding loop:
+ while (handledCPCount < inputLength) {
+
+ // All non-basic code points < n have been handled already. Find the next
+ // larger one:
+ for (m = maxInt, j = 0; j < inputLength; ++j) {
+ currentValue = input[j];
+ if (currentValue >= n && currentValue < m) {
+ m = currentValue;
+ }
+ }
+
+ // Increase `delta` enough to advance the decoder's state to ,
+ // but guard against overflow
+ handledCPCountPlusOne = handledCPCount + 1;
+ if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
+ error('overflow');
+ }
+
+ delta += (m - n) * handledCPCountPlusOne;
+ n = m;
+
+ for (j = 0; j < inputLength; ++j) {
+ currentValue = input[j];
+
+ if (currentValue < n && ++delta > maxInt) {
+ error('overflow');
+ }
+
+ if (currentValue == n) {
+ // Represent delta as a generalized variable-length integer
+ for (q = delta, k = base; /* no condition */; k += base) {
+ t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);
+ if (q < t) {
+ break;
+ }
+ qMinusT = q - t;
+ baseMinusT = base - t;
+ output.push(
+ stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))
+ );
+ q = floor(qMinusT / baseMinusT);
+ }
+
+ output.push(stringFromCharCode(digitToBasic(q, 0)));
+ bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
+ delta = 0;
+ ++handledCPCount;
+ }
+ }
+
+ ++delta;
+ ++n;
+
+ }
+ return output.join('');
+ }
+
+ /**
+ * Converts a Punycode string representing a domain name or an email address
+ * to Unicode. Only the Punycoded parts of the input will be converted, i.e.
+ * it doesn't matter if you call it on a string that has already been
+ * converted to Unicode.
+ * @memberOf punycode
+ * @param {String} input The Punycoded domain name or email address to
+ * convert to Unicode.
+ * @returns {String} The Unicode representation of the given Punycode
+ * string.
+ */
+ function toUnicode(input) {
+ return mapDomain(input, function(string) {
+ return regexPunycode.test(string)
+ ? decode(string.slice(4).toLowerCase())
+ : string;
+ });
+ }
+
+ /**
+ * Converts a Unicode string representing a domain name or an email address to
+ * Punycode. Only the non-ASCII parts of the domain name will be converted,
+ * i.e. it doesn't matter if you call it with a domain that's already in
+ * ASCII.
+ * @memberOf punycode
+ * @param {String} input The domain name or email address to convert, as a
+ * Unicode string.
+ * @returns {String} The Punycode representation of the given domain name or
+ * email address.
+ */
+ function toASCII(input) {
+ return mapDomain(input, function(string) {
+ return regexNonASCII.test(string)
+ ? 'xn--' + encode(string)
+ : string;
+ });
+ }
+
+ /*--------------------------------------------------------------------------*/
+
+ /** Define the public API */
+ punycode = {
+ /**
+ * A string representing the current Punycode.js version number.
+ * @memberOf punycode
+ * @type String
+ */
+ 'version': '1.4.1',
+ /**
+ * An object of methods to convert from JavaScript's internal character
+ * representation (UCS-2) to Unicode code points, and back.
+ * @see
+ * @memberOf punycode
+ * @type Object
+ */
+ 'ucs2': {
+ 'decode': ucs2decode,
+ 'encode': ucs2encode
+ },
+ 'decode': decode,
+ 'encode': encode,
+ 'toASCII': toASCII,
+ 'toUnicode': toUnicode
+ };
+
+ /** Expose `punycode` */
+ // Some AMD build optimizers, like r.js, check for specific condition patterns
+ // like the following:
+ if (
+ true
+ ) {
+ !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {
+ return punycode;
+ }).call(exports, __webpack_require__, exports, module),
+ __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
+ } else {}
+
+}(this));
+
+/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(191)(module), __webpack_require__(38)))
+
+/***/ }),
+/* 191 */
+/***/ (function(module, exports) {
+
+module.exports = function(module) {
+ if (!module.webpackPolyfill) {
+ module.deprecate = function() {};
+ module.paths = [];
+ // module.parent = undefined by default
+ if (!module.children) module.children = [];
+ Object.defineProperty(module, "loaded", {
+ enumerable: true,
+ get: function() {
+ return module.l;
+ }
+ });
+ Object.defineProperty(module, "id", {
+ enumerable: true,
+ get: function() {
+ return module.i;
+ }
+ });
+ module.webpackPolyfill = 1;
+ }
+ return module;
+};
+
+
+/***/ }),
+/* 192 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+module.exports = {
+ isString: function(arg) {
+ return typeof(arg) === 'string';
+ },
+ isObject: function(arg) {
+ return typeof(arg) === 'object' && arg !== null;
+ },
+ isNull: function(arg) {
+ return arg === null;
+ },
+ isNullOrUndefined: function(arg) {
+ return arg == null;
+ }
+};
+
+
+/***/ }),
+/* 193 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+
+exports.decode = exports.parse = __webpack_require__(194);
+exports.encode = exports.stringify = __webpack_require__(195);
+
+
+/***/ }),
+/* 194 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+
+// If obj.hasOwnProperty has been overridden, then calling
+// obj.hasOwnProperty(prop) will break.
+// See: https://github.com/joyent/node/issues/1707
+function hasOwnProperty(obj, prop) {
+ return Object.prototype.hasOwnProperty.call(obj, prop);
+}
+
+module.exports = function(qs, sep, eq, options) {
+ sep = sep || '&';
+ eq = eq || '=';
+ var obj = {};
+
+ if (typeof qs !== 'string' || qs.length === 0) {
+ return obj;
+ }
+
+ var regexp = /\+/g;
+ qs = qs.split(sep);
+
+ var maxKeys = 1000;
+ if (options && typeof options.maxKeys === 'number') {
+ maxKeys = options.maxKeys;
+ }
+
+ var len = qs.length;
+ // maxKeys <= 0 means that we should not limit keys count
+ if (maxKeys > 0 && len > maxKeys) {
+ len = maxKeys;
+ }
+
+ for (var i = 0; i < len; ++i) {
+ var x = qs[i].replace(regexp, '%20'),
+ idx = x.indexOf(eq),
+ kstr, vstr, k, v;
+
+ if (idx >= 0) {
+ kstr = x.substr(0, idx);
+ vstr = x.substr(idx + 1);
+ } else {
+ kstr = x;
+ vstr = '';
+ }
+
+ k = decodeURIComponent(kstr);
+ v = decodeURIComponent(vstr);
+
+ if (!hasOwnProperty(obj, k)) {
+ obj[k] = v;
+ } else if (isArray(obj[k])) {
+ obj[k].push(v);
+ } else {
+ obj[k] = [obj[k], v];
+ }
+ }
+
+ return obj;
+};
+
+var isArray = Array.isArray || function (xs) {
+ return Object.prototype.toString.call(xs) === '[object Array]';
+};
+
+
+/***/ }),
+/* 195 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+// Copyright Joyent, Inc. and other Node contributors.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to permit
+// persons to whom the Software is furnished to do so, subject to the
+// following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
+// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
+// USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+
+var stringifyPrimitive = function(v) {
+ switch (typeof v) {
+ case 'string':
+ return v;
+
+ case 'boolean':
+ return v ? 'true' : 'false';
+
+ case 'number':
+ return isFinite(v) ? v : '';
+
+ default:
+ return '';
+ }
+};
+
+module.exports = function(obj, sep, eq, name) {
+ sep = sep || '&';
+ eq = eq || '=';
+ if (obj === null) {
+ obj = undefined;
+ }
+
+ if (typeof obj === 'object') {
+ return map(objectKeys(obj), function(k) {
+ var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;
+ if (isArray(obj[k])) {
+ return map(obj[k], function(v) {
+ return ks + encodeURIComponent(stringifyPrimitive(v));
+ }).join(sep);
+ } else {
+ return ks + encodeURIComponent(stringifyPrimitive(obj[k]));
+ }
+ }).join(sep);
+
+ }
+
+ if (!name) return '';
+ return encodeURIComponent(stringifyPrimitive(name)) + eq +
+ encodeURIComponent(stringifyPrimitive(obj));
+};
+
+var isArray = Array.isArray || function (xs) {
+ return Object.prototype.toString.call(xs) === '[object Array]';
+};
+
+function map (xs, f) {
+ if (xs.map) return xs.map(f);
+ var res = [];
+ for (var i = 0; i < xs.length; i++) {
+ res.push(f(xs[i], i));
+ }
+ return res;
+}
+
+var objectKeys = Object.keys || function (obj) {
+ var res = [];
+ for (var key in obj) {
+ if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);
+ }
+ return res;
+};
+
+
+/***/ }),
+/* 196 */
+/***/ (function(module, exports) {
+
+/* (ignored) */
+
+/***/ }),
+/* 197 */
+/***/ (function(module, exports) {
+
+/* (ignored) */
+
+/***/ }),
+/* 198 */
+/***/ (function(module, exports) {
+
+/* (ignored) */
+
+/***/ }),
+/* 199 */
+/***/ (function(module, exports) {
+
+/* (ignored) */
+
+/***/ }),
+/* 200 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+var ReplayableAudioNode = /** @class */ (function () {
+ function ReplayableAudioNode(audioSource, bytesPerSecond) {
+ var _this = this;
+ this.privBuffers = [];
+ this.privReplayOffset = 0;
+ this.privLastShrinkOffset = 0;
+ this.privBufferStartOffset = 0;
+ this.privBufferSerial = 0;
+ this.privBufferedBytes = 0;
+ this.privReplay = false;
+ this.privLastChunkAcquiredTime = 0;
+ this.id = function () {
+ return _this.privAudioNode.id();
+ };
+ this.privAudioNode = audioSource;
+ this.privBytesPerSecond = bytesPerSecond;
+ }
+ // Reads and returns the next chunk of audio buffer.
+ // If replay of existing buffers are needed, read() will first seek and replay
+ // existing content, and upoin completion it will read new content from the underlying
+ // audio node, saving that content into the replayable buffers.
+ ReplayableAudioNode.prototype.read = function () {
+ var _this = this;
+ // if there is a replay request to honor.
+ if (!!this.privReplay && this.privBuffers.length !== 0) {
+ // Find the start point in the buffers.
+ // Offsets are in 100ns increments.
+ // So how many bytes do we need to seek to get the right offset?
+ var offsetToSeek = this.privReplayOffset - this.privBufferStartOffset;
+ var bytesToSeek = Math.round(offsetToSeek * this.privBytesPerSecond * 1e-7);
+ if (0 !== (bytesToSeek % 2)) {
+ bytesToSeek++;
+ }
+ var i = 0;
+ while (i < this.privBuffers.length && bytesToSeek >= this.privBuffers[i].chunk.buffer.byteLength) {
+ bytesToSeek -= this.privBuffers[i++].chunk.buffer.byteLength;
+ }
+ var retVal = this.privBuffers[i].chunk.buffer.slice(bytesToSeek);
+ this.privReplayOffset += (retVal.byteLength / this.privBytesPerSecond) * 1e+7;
+ // If we've reached the end of the buffers, stop replaying.
+ if (i === this.privBuffers.length - 1) {
+ this.privReplay = false;
+ }
+ return Exports_1.PromiseHelper.fromResult({
+ buffer: retVal,
+ isEnd: false,
+ timeReceived: this.privBuffers[i].chunk.timeReceived,
+ });
+ }
+ return this.privAudioNode.read()
+ .onSuccessContinueWith(function (result) {
+ if (result && result.buffer) {
+ _this.privBuffers.push(new BufferEntry(result, _this.privBufferSerial++, _this.privBufferedBytes));
+ _this.privBufferedBytes += result.buffer.byteLength;
+ }
+ return result;
+ });
+ };
+ ReplayableAudioNode.prototype.detach = function () {
+ this.privAudioNode.detach();
+ this.privBuffers = undefined;
+ };
+ ReplayableAudioNode.prototype.replay = function () {
+ if (this.privBuffers && 0 !== this.privBuffers.length) {
+ this.privReplay = true;
+ this.privReplayOffset = this.privLastShrinkOffset;
+ }
+ };
+ // Shrinks the existing audio buffers to start at the new offset, or at the
+ // beginning of the buffer closest to the requested offset.
+ // A replay request will start from the last shrink point.
+ ReplayableAudioNode.prototype.shrinkBuffers = function (offset) {
+ if (this.privBuffers === undefined) {
+ return;
+ }
+ this.privLastShrinkOffset = offset;
+ // Find the start point in the buffers.
+ // Offsets are in 100ns increments.
+ // So how many bytes do we need to seek to get the right offset?
+ var offsetToSeek = offset - this.privBufferStartOffset;
+ var bytesToSeek = Math.round(offsetToSeek * this.privBytesPerSecond * 1e-7);
+ var i = 0;
+ while (i < this.privBuffers.length && bytesToSeek >= this.privBuffers[i].chunk.buffer.byteLength) {
+ bytesToSeek -= this.privBuffers[i++].chunk.buffer.byteLength;
+ }
+ this.privBufferStartOffset = Math.round(offset - ((bytesToSeek / this.privBytesPerSecond) * 1e+7));
+ this.privBuffers = this.privBuffers.slice(i);
+ };
+ // Finds the time a buffer of audio was first seen by offset.
+ ReplayableAudioNode.prototype.findTimeAtOffset = function (offset) {
+ if (offset < this.privBufferStartOffset || this.privBuffers === undefined) {
+ return 0;
+ }
+ for (var _i = 0, _a = this.privBuffers; _i < _a.length; _i++) {
+ var value = _a[_i];
+ var startOffset = (value.byteOffset / this.privBytesPerSecond) * 1e7;
+ var endOffset = startOffset + ((value.chunk.buffer.byteLength / this.privBytesPerSecond) * 1e7);
+ if (offset >= startOffset && offset <= endOffset) {
+ return value.chunk.timeReceived;
+ }
+ }
+ return 0;
+ };
+ return ReplayableAudioNode;
+}());
+exports.ReplayableAudioNode = ReplayableAudioNode;
+// Primary use of this class is to help debugging problems with the replay
+// code. If the memory cost of alloc / dealloc gets too much, drop it and just use
+// the ArrayBuffer directly.
+// tslint:disable-next-line:max-classes-per-file
+var BufferEntry = /** @class */ (function () {
+ function BufferEntry(chunk, serial, byteOffset) {
+ this.chunk = chunk;
+ this.serial = serial;
+ this.byteOffset = byteOffset;
+ }
+ return BufferEntry;
+}());
+
+
+
+/***/ }),
+/* 201 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(31);
+var ProxyInfo = /** @class */ (function () {
+ function ProxyInfo(proxyHostName, proxyPort, proxyUserName, proxyPassword) {
+ this.privProxyHostName = proxyHostName;
+ this.privProxyPort = proxyPort;
+ this.privProxyUserName = proxyUserName;
+ this.privProxyPassword = proxyPassword;
+ }
+ ProxyInfo.fromParameters = function (parameters) {
+ return new ProxyInfo(parameters.getProperty(Exports_1.PropertyId.SpeechServiceConnection_ProxyHostName), parseInt(parameters.getProperty(Exports_1.PropertyId.SpeechServiceConnection_ProxyPort), 10), parameters.getProperty(Exports_1.PropertyId.SpeechServiceConnection_ProxyUserName), parameters.getProperty(Exports_1.PropertyId.SpeechServiceConnection_ProxyPassword));
+ };
+ ProxyInfo.fromRecognizerConfig = function (config) {
+ return this.fromParameters(config.parameters);
+ };
+ Object.defineProperty(ProxyInfo.prototype, "HostName", {
+ get: function () {
+ return this.privProxyHostName;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ProxyInfo.prototype, "Port", {
+ get: function () {
+ return this.privProxyPort;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ProxyInfo.prototype, "UserName", {
+ get: function () {
+ return this.privProxyUserName;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ Object.defineProperty(ProxyInfo.prototype, "Password", {
+ get: function () {
+ return this.privProxyPassword;
+ },
+ enumerable: true,
+ configurable: true
+ });
+ return ProxyInfo;
+}());
+exports.ProxyInfo = ProxyInfo;
+
+
+
+/***/ }),
+/* 202 */
+/***/ (function(module, exports, __webpack_require__) {
+
+"use strict";
+
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license.
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];
+ result["default"] = mod;
+ return result;
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+var Exports_1 = __webpack_require__(4);
+// Node.JS specific xmlhttprequest / browser support.
+var XHR = __importStar(__webpack_require__(203));
+var RestRequestType;
+(function (RestRequestType) {
+ RestRequestType["Get"] = "get";
+ RestRequestType["Post"] = "post";
+ RestRequestType["Delete"] = "delete";
+ RestRequestType["File"] = "file";
+})(RestRequestType = exports.RestRequestType || (exports.RestRequestType = {}));
+// accept rest operations via request method and return abstracted objects from server response
+var RestMessageAdapter = /** @class */ (function () {
+ function RestMessageAdapter(configParams, connectionId) {
+ if (!configParams) {
+ throw new Exports_1.ArgumentNullError("configParams");
+ }
+ this.privHeaders = configParams.headers;
+ this.privTimeout = configParams.timeout;
+ this.privIgnoreCache = configParams.ignoreCache;
+ }
+ RestMessageAdapter.prototype.setHeaders = function (key, value) {
+ this.privHeaders[key] = value;
+ };
+ RestMessageAdapter.prototype.request = function (method, uri, queryParams, body, binaryBody) {
+ var _this = this;
+ if (queryParams === void 0) { queryParams = {}; }
+ if (body === void 0) { body = null; }
+ if (binaryBody === void 0) { binaryBody = null; }
+ var responseReceivedDeferral = new Exports_1.Deferred();
+ var xhr;
+ if (typeof (XMLHttpRequest) === "undefined") {
+ xhr = new XHR.XMLHttpRequest();
+ }
+ else {
+ xhr = new XMLHttpRequest();
+ }
+ var requestCommand = method === RestRequestType.File ? "post" : method;
+ xhr.open(requestCommand, this.withQuery(uri, queryParams), true);
+ if (this.privHeaders) {
+ Object.keys(this.privHeaders).forEach(function (key) { return xhr.setRequestHeader(key, _this.privHeaders[key]); });
+ }
+ if (this.privIgnoreCache) {
+ xhr.setRequestHeader("Cache-Control", "no-cache");
+ }
+ xhr.timeout = this.privTimeout;
+ xhr.onload = function () {
+ responseReceivedDeferral.resolve(_this.parseXHRResult(xhr));
+ };
+ xhr.onerror = function () {
+ responseReceivedDeferral.resolve(_this.errorResponse(xhr, "Failed to make request."));
+ };
+ xhr.ontimeout = function () {
+ responseReceivedDeferral.resolve(_this.errorResponse(xhr, "Request took longer than expected."));
+ };
+ if (method === RestRequestType.File && binaryBody) {
+ xhr.setRequestHeader("Content-Type", "multipart/form-data");
+ xhr.send(binaryBody);
+ }
+ else if (method === RestRequestType.Post && body) {
+ xhr.setRequestHeader("Content-Type", "application/json");
+ xhr.send(JSON.stringify(body));
+ }
+ else {
+ xhr.send();
+ }
+ return responseReceivedDeferral.promise();
+ };
+ RestMessageAdapter.prototype.parseXHRResult = function (xhr) {
+ return {
+ data: xhr.responseText,
+ headers: xhr.getAllResponseHeaders(),
+ json: function () { return JSON.parse(xhr.responseText); },
+ ok: xhr.status >= 200 && xhr.status < 300,
+ status: xhr.status,
+ statusText: xhr.statusText,
+ };
+ };
+ RestMessageAdapter.prototype.errorResponse = function (xhr, message) {
+ if (message === void 0) { message = null; }
+ return {
+ data: message || xhr.statusText,
+ headers: xhr.getAllResponseHeaders(),
+ json: function () { return JSON.parse(message || ("\"" + xhr.statusText + "\"")); },
+ ok: false,
+ status: xhr.status,
+ statusText: xhr.statusText,
+ };
+ };
+ RestMessageAdapter.prototype.withQuery = function (url, params) {
+ if (params === void 0) { params = {}; }
+ var queryString = this.queryParams(params);
+ return queryString ? url + (url.indexOf("?") === -1 ? "?" : "&") + queryString : url;
+ };
+ RestMessageAdapter.prototype.queryParams = function (params) {
+ if (params === void 0) { params = {}; }
+ return Object.keys(params)
+ .map(function (k) { return encodeURIComponent(k) + "=" + encodeURIComponent(params[k]); })
+ .join("&");
+ };
+ return RestMessageAdapter;
+}());
+exports.RestMessageAdapter = RestMessageAdapter;
+
+
+
+/***/ }),
+/* 203 */
+/***/ (function(module, exports) {
+
+/* (ignored) */
+
+/***/ })
+/******/ ]);
+//# sourceMappingURL=microsoft.cognitiveservices.speech.sdk.bundle.js.map
\ No newline at end of file
diff --git a/microsoft.cognitiveservices.speech.sdk.bundle.js.map b/microsoft.cognitiveservices.speech.sdk.bundle.js.map
new file mode 100644
index 0000000..e5ef313
--- /dev/null
+++ b/microsoft.cognitiveservices.speech.sdk.bundle.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./bundleApp.js","webpack:///microsoft.cognitiveservices.speech.sdk.ts","webpack:///src/common.browser/Exports.ts","webpack:///src/common.browser/ConsoleLoggingListener.ts","webpack:///src/common/Exports.ts","webpack:///src/common/AudioSourceEvents.ts","webpack:///src/common/PlatformEvent.ts","webpack:///src/common/Guid.ts","webpack:///src/common/ConnectionEvents.ts","webpack:///src/common/ConnectionMessage.ts","webpack:///src/common/Error.ts","webpack:///src/common/ConnectionOpenResponse.ts","webpack:///src/common/Events.ts","webpack:///src/common/EventSource.ts","webpack:///src/common/IConnection.ts","webpack:///src/common/List.ts","webpack:///src/common/Promise.ts","webpack:///src/common/Queue.ts","webpack:///src/common/RawWebsocketMessage.ts","webpack:///src/common/RiffPcmEncoder.ts","webpack:///src/common/Stream.ts","webpack:///src/common.speech/TranslationStatus.ts","webpack:///src/common/ChunkedArrayBufferStream.ts","webpack:///src/common/Timeout.ts","webpack:///src/common/OCSPEvents.ts","webpack:///src/common.browser/MicAudioSource.ts","webpack:///src/common.speech/Exports.ts","webpack:///src/common.speech/CognitiveSubscriptionKeyAuthentication.ts","webpack:///src/common.speech/IAuthentication.ts","webpack:///src/common.speech/CognitiveTokenAuthentication.ts","webpack:///src/common.speech/IntentConnectionFactory.ts","webpack:///src/sdk/Exports.ts","webpack:///src/sdk/Audio/AudioConfig.ts","webpack:///src/sdk/Contracts.ts","webpack:///src/sdk/Audio/AudioFileWriter.ts","webpack:///fs (ignored)","webpack:///src/sdk/Audio/AudioInputStream.ts","webpack:///./node_modules/buffer/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/isarray/index.js","webpack:///src/sdk/Audio/AudioStreamFormat.ts","webpack:///src/sdk/Audio/AudioOutputStream.ts","webpack:///src/sdk/Audio/AudioOutputFormat.ts","webpack:///src/sdk/SpeechSynthesisOutputFormat.ts","webpack:///src/sdk/CancellationReason.ts","webpack:///src/sdk/Audio/PullAudioInputStreamCallback.ts","webpack:///src/sdk/Audio/PushAudioOutputStreamCallback.ts","webpack:///src/sdk/KeywordRecognitionModel.ts","webpack:///src/sdk/SessionEventArgs.ts","webpack:///src/sdk/RecognitionEventArgs.ts","webpack:///src/sdk/OutputFormat.ts","webpack:///src/sdk/IntentRecognitionEventArgs.ts","webpack:///src/sdk/RecognitionResult.ts","webpack:///src/sdk/SpeechRecognitionResult.ts","webpack:///src/sdk/IntentRecognitionResult.ts","webpack:///src/sdk/LanguageUnderstandingModel.ts","webpack:///src/sdk/SpeechRecognitionEventArgs.ts","webpack:///src/sdk/SpeechRecognitionCanceledEventArgs.ts","webpack:///src/sdk/TranslationRecognitionEventArgs.ts","webpack:///src/sdk/TranslationSynthesisEventArgs.ts","webpack:///src/sdk/TranslationRecognitionResult.ts","webpack:///src/sdk/TranslationSynthesisResult.ts","webpack:///src/sdk/ResultReason.ts","webpack:///src/sdk/SpeechConfig.ts","webpack:///src/sdk/SpeechTranslationConfig.ts","webpack:///src/sdk/PropertyCollection.ts","webpack:///src/sdk/PropertyId.ts","webpack:///src/sdk/Recognizer.ts","webpack:///src/sdk/SpeechRecognizer.ts","webpack:///src/common.speech/SpeechConnectionFactory.ts","webpack:///src/common.speech/ConnectionFactoryBase.ts","webpack:///src/common.speech/QueryParameterNames.ts","webpack:///src/sdk/IntentRecognizer.ts","webpack:///src/sdk/VoiceProfileType.ts","webpack:///src/sdk/TranslationRecognizer.ts","webpack:///src/sdk/Translations.ts","webpack:///src/sdk/NoMatchReason.ts","webpack:///src/sdk/NoMatchDetails.ts","webpack:///src/sdk/TranslationRecognitionCanceledEventArgs.ts","webpack:///src/sdk/IntentRecognitionCanceledEventArgs.ts","webpack:///src/sdk/CancellationDetailsBase.ts","webpack:///src/sdk/CancellationDetails.ts","webpack:///src/sdk/CancellationErrorCodes.ts","webpack:///src/sdk/ConnectionEventArgs.ts","webpack:///src/sdk/ServiceEventArgs.ts","webpack:///src/sdk/Connection.ts","webpack:///src/sdk/ConnectionMessage.ts","webpack:///src/sdk/PhraseListGrammar.ts","webpack:///src/sdk/DialogServiceConfig.ts","webpack:///src/sdk/BotFrameworkConfig.ts","webpack:///src/sdk/CustomCommandsConfig.ts","webpack:///src/sdk/DialogServiceConnector.ts","webpack:///src/common.speech/DialogConnectorFactory.ts","webpack:///src/sdk/ActivityReceivedEventArgs.ts","webpack:///src/sdk/ServicePropertyChannel.ts","webpack:///src/sdk/ProfanityOption.ts","webpack:///src/sdk/Audio/BaseAudioPlayer.ts","webpack:///src/sdk/ConnectionMessageEventArgs.ts","webpack:///src/sdk/VoiceProfile.ts","webpack:///src/sdk/VoiceProfileEnrollmentResult.ts","webpack:///src/sdk/VoiceProfileResult.ts","webpack:///src/sdk/VoiceProfileClient.ts","webpack:///src/sdk/SpeakerRecognizer.ts","webpack:///src/sdk/SpeakerIdentificationModel.ts","webpack:///src/sdk/SpeakerVerificationModel.ts","webpack:///src/sdk/AutoDetectSourceLanguageConfig.ts","webpack:///src/sdk/AutoDetectSourceLanguageResult.ts","webpack:///src/sdk/SourceLanguageConfig.ts","webpack:///src/sdk/SpeakerRecognitionResult.ts","webpack:///src/sdk/Transcription/Exports.ts","webpack:///src/sdk/Transcription/Conversation.ts","webpack:///src/sdk/Transcription/ConversationExpirationEventArgs.ts","webpack:///src/sdk/Transcription/ConversationParticipantsChangedEventArgs.ts","webpack:///src/sdk/Transcription/ConversationTranslationCanceledEventArgs.ts","webpack:///src/sdk/Transcription/ConversationTranslationEventArgs.ts","webpack:///src/sdk/Transcription/ConversationTranslationResult.ts","webpack:///src/sdk/Transcription/ConversationTranslator.ts","webpack:///src/sdk/Transcription/IParticipant.ts","webpack:///src/sdk/Transcription/ParticipantChangedReason.ts","webpack:///src/sdk/SpeechSynthesizer.ts","webpack:///src/sdk/SpeechSynthesisResult.ts","webpack:///src/sdk/SpeechSynthesisEventArgs.ts","webpack:///src/sdk/SpeechSynthesisWordBoundaryEventArgs.ts","webpack:///src/sdk/Audio/SpeakerAudioDestination.ts","webpack:///src/common.speech/RecognitionEvents.ts","webpack:///src/common.speech/ServiceRecognizerBase.ts","webpack:///src/common.speech/SpeechConnectionMessage.Internal.ts","webpack:///src/common.speech/RecognizerConfig.ts","webpack:///src/common.speech/WebsocketMessageFormatter.ts","webpack:///src/common.speech/TranslationConnectionFactory.ts","webpack:///src/common.speech/SpeechSynthesisConnectionFactory.ts","webpack:///src/common.speech/EnumTranslation.ts","webpack:///src/common.speech/ServiceMessages/Enums.ts","webpack:///src/common.speech/ServiceMessages/TranslationSynthesisEnd.ts","webpack:///src/common.speech/ServiceMessages/TranslationHypothesis.ts","webpack:///src/common.speech/ServiceMessages/TranslationPhrase.ts","webpack:///src/common.speech/TranslationServiceRecognizer.ts","webpack:///src/common.speech/ServiceMessages/SpeechDetected.ts","webpack:///src/common.speech/ServiceMessages/SpeechHypothesis.ts","webpack:///src/common.speech/SpeechServiceRecognizer.ts","webpack:///src/common.speech/ServiceMessages/DetailedSpeechPhrase.ts","webpack:///src/common.speech/ServiceMessages/SimpleSpeechPhrase.ts","webpack:///src/common.speech/AddedLmIntent.ts","webpack:///src/common.speech/IntentServiceRecognizer.ts","webpack:///src/common.speech/ServiceMessages/IntentResponse.ts","webpack:///src/common.speech/RequestSession.ts","webpack:///src/common.speech/ServiceTelemetryListener.Internal.ts","webpack:///src/common.speech/SpeechContext.ts","webpack:///src/common.speech/DynamicGrammarBuilder.ts","webpack:///src/common.speech/DialogServiceAdapter.ts","webpack:///src/common.speech/DialogServiceTurnStateManager.ts","webpack:///src/common.speech/DialogServiceTurnState.ts","webpack:///src/common.speech/ServiceMessages/ActivityResponsePayload.ts","webpack:///src/common.speech/AgentConfig.ts","webpack:///src/common.speech/Transcription/Exports.ts","webpack:///src/common.speech/Transcription/ConversationManager.ts","webpack:///src/common.speech/Transcription/ConversationConnectionConfig.ts","webpack:///src/common.browser/RestConfigBase.ts","webpack:///src/common.speech/Transcription/ConversationUtils.ts","webpack:///src/common.speech/Transcription/ConversationTranslatorRecognizer.ts","webpack:///src/common.speech/Transcription/ConversationConnectionFactory.ts","webpack:///src/common.speech/Transcription/ConversationWebsocketMessageFormatter.ts","webpack:///src/common.speech/Transcription/ConversationConnectionMessage.ts","webpack:///src/common.speech/Transcription/ConversationServiceAdapter.ts","webpack:///src/common.speech/Transcription/ConversationRequestSession.ts","webpack:///src/common.speech/Transcription/ConversationTranslatorEventArgs.ts","webpack:///src/common.speech/Transcription/ConversationTranslatorInterfaces.ts","webpack:///src/common.speech/Transcription/ServiceMessages/Exports.ts","webpack:///src/common.speech/Transcription/ServiceMessages/CommandResponsePayload.ts","webpack:///src/common.speech/Transcription/ServiceMessages/ParticipantResponsePayload.ts","webpack:///src/common.speech/Transcription/ServiceMessages/TranslationResponsePayload.ts","webpack:///src/common.speech/ServiceMessages/SynthesisAudioMetadata.ts","webpack:///src/common.speech/SynthesisTurn.ts","webpack:///src/common.speech/SynthesisAdapterBase.ts","webpack:///src/common.speech/SynthesisEvents.ts","webpack:///src/common.speech/SynthesizerConfig.ts","webpack:///src/common.speech/SynthesisContext.ts","webpack:///src/common.speech/SpeakerRecognitionConfig.ts","webpack:///src/common.speech/SpeakerIdMessageAdapter.ts","webpack:///src/common.browser/FileAudioSource.ts","webpack:///src/common.browser/PCMRecorder.ts","webpack:///src/common.browser/WebsocketConnection.ts","webpack:///src/common.browser/WebsocketMessageAdapter.ts","webpack:///ws (ignored)","webpack:///src/common.browser/CertChecks.ts","webpack:///./node_modules/process/browser.js","webpack:///tls (ignored)","webpack:///./node_modules/url/url.js","webpack:///./node_modules/node-libs-browser/node_modules/punycode/punycode.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/url/util.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/querystring-es3/decode.js","webpack:///./node_modules/querystring-es3/encode.js","webpack:///../../external/ocsp/ocsp (ignored)","webpack:///agent-base (ignored)","webpack:///async-disk-cache (ignored)","webpack:///https-proxy-agent (ignored)","webpack:///src/common.browser/ReplayableAudioNode.ts","webpack:///src/common.browser/ProxyInfo.ts","webpack:///src/common.browser/RestMessageAdapter.ts","webpack:///xmlhttprequest-ts (ignored)"],"names":[],"mappings":"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CtC,YAAY,EAAE,sBAAY,CAAC,OAAO;gBAClC,YAAY,EAAE,YAAY;gBAC1B,KAAK,EAAE,YAAY;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa;gBACzC,IAAI,EAAE,cAAI,CAAC,MAAM;aACpB,CAAC,CAAC;QACP,CAAC;;;OAAA;IAML,+BAAC;AAAD,CAAC,CApJ6C,oBAAoB,GAoJjE;AApJY,4DAAwB;;;;;;;;;;AC1UrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,EAAW;AAChC,cAAc,mBAAO,CAAC,EAAS;AAC/B,cAAc,mBAAO,CAAC,EAAS;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;AC5vDA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;ACnBY;;AAEZ;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,SAAS;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,UAAU;A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zD;QAED,IAAI,CAAC,CAAC,UAAU,EAAE;YACd,OAAO,cAAc,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SACtE;aAAM;YACH,OAAO,aAAa,CAAC;SACxB;IACL,CAAC;IAhVD,8DAA8D;IAChD,6BAAc,GAAW,CAAC,CAAC;IAEzC,mDAAmD;IACrC,uCAAwB,GAAY,KAAK,CAAC;IAExD,4CAA4C;IAC7B,2BAAY,GAA8B,EAAE,CAAC;IAmS7C,sBAAO,GAAG,UAAC,KAAgB;QACtC,gBAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAqCL,qBAAC;CAAA;AAnVY,wCAAc;;;;;;;;;ACrC3B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;ACvLtC,e;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,eAAe,mBAAO,CAAC,GAAU;AACjC,WAAW,mBAAO,CAAC,GAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,KAAK;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,2CAA2C,KAAK;AAChD,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kBAAkB,mBAAO,CAAC,GAAa;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;AC3tBA;AACA,CAAC;;AAED;AACA,mBAAmB,KAA0B;AAC7C;AACA,kBAAkB,KAAyB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,MAAM;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,MAAM;AAClB,YAAY,SAAS;AACrB;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,YAAY,SAAS;AACrB;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA,KAAK;AACL,4BAA4B;AAC5B;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,MAAM;AAClB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,aAAa,WAAW;AACxB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;;AAExB,yCAAyC,qBAAqB;;AAE9D;AACA;AACA;AACA;AACA;AACA,kCAAkC,oBAAoB;;AAEtD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,0BAA0B,iBAAiB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc,iBAAiB;AAC/B;;AAEA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAE,IAEU;AACZ;AACA,EAAE,mCAAmB;AACrB;AACA,GAAG;AAAA,oGAAC;AACJ,EAAE,MAAM,EAaN;;AAEF,CAAC;;;;;;;;ACphBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;ACrBa;;AAEb;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;ACfa;;AAEb,iCAAiC,mBAAO,CAAC,GAAU;AACnD,qCAAqC,mBAAO,CAAC,GAAU;;;;;;;;ACHvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA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","file":"microsoft.cognitiveservices.speech.sdk.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nwindow.SpeechSDK = require('./distrib/lib/microsoft.cognitiveservices.speech.sdk.js');\r\n\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\nimport { ConsoleLoggingListener } from \"./src/common.browser/Exports\";\r\nimport { Events } from \"./src/common/Exports\";\r\n\r\n// Common.Storage.SetLocalStorage(new Common.Browser.LocalStorage());\r\n// Common.Storage.SetSessionStorage(new Common.Browser.SessionStorage());\r\nEvents.instance.attachListener(new ConsoleLoggingListener());\r\n\r\n// Speech SDK API\r\nexport * from \"./src/sdk/Exports\";\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nexport * from \"./ConsoleLoggingListener\";\r\nexport * from \"./IRecorder\";\r\nexport * from \"./MicAudioSource\";\r\nexport * from \"./FileAudioSource\";\r\nexport * from \"./PCMRecorder\";\r\nexport * from \"./WebsocketConnection\";\r\nexport * from \"./WebsocketMessageAdapter\";\r\nexport * from \"./ReplayableAudioNode\";\r\nexport * from \"./ProxyInfo\";\r\nexport * from \"./RestMessageAdapter\";\r\nexport * from \"./RestConfigBase\";\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { EventType, IEventListener, PlatformEvent } from \"../common/Exports\";\r\n\r\nexport class ConsoleLoggingListener implements IEventListener {\r\n private privLogLevelFilter: EventType;\r\n\r\n public constructor(logLevelFilter: EventType = EventType.Warning) {\r\n this.privLogLevelFilter = logLevelFilter;\r\n }\r\n\r\n public onEvent = (event: PlatformEvent): void => {\r\n if (event.eventType >= this.privLogLevelFilter) {\r\n const log = this.toString(event);\r\n\r\n switch (event.eventType) {\r\n case EventType.Debug:\r\n // tslint:disable-next-line:no-console\r\n console.debug(log);\r\n break;\r\n case EventType.Info:\r\n // tslint:disable-next-line:no-console\r\n console.info(log);\r\n break;\r\n case EventType.Warning:\r\n // tslint:disable-next-line:no-console\r\n console.warn(log);\r\n break;\r\n case EventType.Error:\r\n // tslint:disable-next-line:no-console\r\n console.error(log);\r\n break;\r\n default:\r\n // tslint:disable-next-line:no-console\r\n console.log(log);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private toString = (event: any): string => {\r\n const logFragments = [\r\n `${event.EventTime}`,\r\n `${event.Name}`,\r\n ];\r\n\r\n for (const prop in event) {\r\n if (prop && event.hasOwnProperty(prop) &&\r\n prop !== \"eventTime\" && prop !== \"eventType\" &&\r\n prop !== \"eventId\" && prop !== \"name\" &&\r\n prop !== \"constructor\") {\r\n const value = event[prop];\r\n let valueToLog = \"\";\r\n if (value !== undefined && value !== null) {\r\n if (typeof (value) === \"number\" || typeof (value) === \"string\") {\r\n valueToLog = value.toString();\r\n } else {\r\n valueToLog = JSON.stringify(value);\r\n }\r\n }\r\n\r\n logFragments.push(`${prop}: ${valueToLog}`);\r\n }\r\n\r\n }\r\n\r\n return logFragments.join(\" | \");\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nexport * from \"./AudioSourceEvents\";\r\nexport * from \"./ConnectionEvents\";\r\nexport * from \"./ConnectionMessage\";\r\nexport * from \"./ConnectionOpenResponse\";\r\nexport * from \"./Error\";\r\nexport * from \"./Events\";\r\nexport * from \"./EventSource\";\r\nexport * from \"./Guid\";\r\nexport * from \"./IAudioSource\";\r\nexport * from \"./IConnection\";\r\nexport * from \"./IDetachable\";\r\nexport * from \"./IDictionary\";\r\nexport * from \"./IDisposable\";\r\nexport * from \"./IEventSource\";\r\nexport * from \"./IErrorMessages\";\r\nexport * from \"./ITimer\";\r\nexport * from \"./IWebsocketMessageFormatter\";\r\nexport * from \"./List\";\r\nexport * from \"./PlatformEvent\";\r\nexport * from \"./Promise\";\r\nexport * from \"./Queue\";\r\nexport * from \"./RawWebsocketMessage\";\r\nexport * from \"./RiffPcmEncoder\";\r\nexport * from \"./Stream\";\r\nexport { TranslationStatus } from \"../common.speech/TranslationStatus\";\r\nexport * from \"./ChunkedArrayBufferStream\";\r\nexport * from \"./IAudioDestination\";\r\nexport * from \"./Timeout\";\r\nexport * from \"./OCSPEvents\";\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { EventType, PlatformEvent } from \"./PlatformEvent\";\r\n\r\nexport class AudioSourceEvent extends PlatformEvent {\r\n private privAudioSourceId: string;\r\n\r\n constructor(eventName: string, audioSourceId: string, eventType: EventType = EventType.Info) {\r\n super(eventName, eventType);\r\n this.privAudioSourceId = audioSourceId;\r\n }\r\n\r\n public get audioSourceId(): string {\r\n return this.privAudioSourceId;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class AudioSourceInitializingEvent extends AudioSourceEvent {\r\n constructor(audioSourceId: string) {\r\n super(\"AudioSourceInitializingEvent\", audioSourceId);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class AudioSourceReadyEvent extends AudioSourceEvent {\r\n constructor(audioSourceId: string) {\r\n super(\"AudioSourceReadyEvent\", audioSourceId);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class AudioSourceOffEvent extends AudioSourceEvent {\r\n constructor(audioSourceId: string) {\r\n super(\"AudioSourceOffEvent\", audioSourceId);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class AudioSourceErrorEvent extends AudioSourceEvent {\r\n private privError: string;\r\n\r\n constructor(audioSourceId: string, error: string) {\r\n super(\"AudioSourceErrorEvent\", audioSourceId, EventType.Error);\r\n this.privError = error;\r\n }\r\n\r\n public get error(): string {\r\n return this.privError;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class AudioStreamNodeEvent extends AudioSourceEvent {\r\n private privAudioNodeId: string;\r\n\r\n constructor(eventName: string, audioSourceId: string, audioNodeId: string) {\r\n super(eventName, audioSourceId);\r\n this.privAudioNodeId = audioNodeId;\r\n }\r\n\r\n public get audioNodeId(): string {\r\n return this.privAudioNodeId;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class AudioStreamNodeAttachingEvent extends AudioStreamNodeEvent {\r\n constructor(audioSourceId: string, audioNodeId: string) {\r\n super(\"AudioStreamNodeAttachingEvent\", audioSourceId, audioNodeId);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class AudioStreamNodeAttachedEvent extends AudioStreamNodeEvent {\r\n constructor(audioSourceId: string, audioNodeId: string) {\r\n super(\"AudioStreamNodeAttachedEvent\", audioSourceId, audioNodeId);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class AudioStreamNodeDetachedEvent extends AudioStreamNodeEvent {\r\n constructor(audioSourceId: string, audioNodeId: string) {\r\n super(\"AudioStreamNodeDetachedEvent\", audioSourceId, audioNodeId);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class AudioStreamNodeErrorEvent extends AudioStreamNodeEvent {\r\n private privError: string;\r\n\r\n constructor(audioSourceId: string, audioNodeId: string, error: string) {\r\n super(\"AudioStreamNodeErrorEvent\", audioSourceId, audioNodeId);\r\n this.privError = error;\r\n }\r\n\r\n public get error(): string {\r\n return this.privError;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { createNoDashGuid } from \"./Guid\";\r\nimport { IStringDictionary } from \"./IDictionary\";\r\n\r\nexport enum EventType {\r\n Debug,\r\n Info,\r\n Warning,\r\n Error,\r\n}\r\n\r\nexport class PlatformEvent {\r\n private privName: string;\r\n private privEventId: string;\r\n private privEventTime: string;\r\n private privEventType: EventType;\r\n private privMetadata: IStringDictionary;\r\n\r\n constructor(eventName: string, eventType: EventType) {\r\n this.privName = eventName;\r\n this.privEventId = createNoDashGuid();\r\n this.privEventTime = new Date().toISOString();\r\n this.privEventType = eventType;\r\n this.privMetadata = { };\r\n }\r\n\r\n public get name(): string {\r\n return this.privName;\r\n }\r\n\r\n public get eventId(): string {\r\n return this.privEventId;\r\n }\r\n\r\n public get eventTime(): string {\r\n return this.privEventTime;\r\n }\r\n\r\n public get eventType(): EventType {\r\n return this.privEventType;\r\n }\r\n\r\n public get metadata(): IStringDictionary {\r\n return this.privMetadata;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nconst createGuid: () => string = (): string => {\r\n let d = new Date().getTime();\r\n const guid = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c: string) => {\r\n const r = (d + Math.random() * 16) % 16 | 0;\r\n d = Math.floor(d / 16);\r\n return (c === \"x\" ? r : (r & 0x3 | 0x8)).toString(16);\r\n });\r\n\r\n return guid;\r\n};\r\n\r\nconst createNoDashGuid: () => string = (): string => {\r\n return createGuid().replace(new RegExp(\"-\", \"g\"), \"\").toUpperCase();\r\n};\r\n\r\nexport { createGuid, createNoDashGuid };\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { ConnectionMessage } from \"./ConnectionMessage\";\r\nimport { IStringDictionary } from \"./IDictionary\";\r\nimport { EventType, PlatformEvent } from \"./PlatformEvent\";\r\n\r\nexport class ServiceEvent extends PlatformEvent {\r\n private privJsonResult: string;\r\n\r\n constructor(eventName: string, jsonstring: string, eventType: EventType = EventType.Info) {\r\n super(eventName, eventType);\r\n this.privJsonResult = jsonstring;\r\n }\r\n\r\n public get jsonString(): string {\r\n return this.privJsonResult;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class ConnectionEvent extends PlatformEvent {\r\n private privConnectionId: string;\r\n\r\n constructor(eventName: string, connectionId: string, eventType: EventType = EventType.Info) {\r\n super(eventName, eventType);\r\n this.privConnectionId = connectionId;\r\n }\r\n\r\n public get connectionId(): string {\r\n return this.privConnectionId;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class ConnectionStartEvent extends ConnectionEvent {\r\n private privUri: string;\r\n private privHeaders: IStringDictionary;\r\n\r\n constructor(connectionId: string, uri: string, headers?: IStringDictionary) {\r\n super(\"ConnectionStartEvent\", connectionId);\r\n this.privUri = uri;\r\n this.privHeaders = headers;\r\n }\r\n\r\n public get uri(): string {\r\n return this.privUri;\r\n }\r\n\r\n public get headers(): IStringDictionary {\r\n return this.privHeaders;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class ConnectionEstablishedEvent extends ConnectionEvent {\r\n constructor(connectionId: string, metadata?: IStringDictionary) {\r\n super(\"ConnectionEstablishedEvent\", connectionId);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class ConnectionClosedEvent extends ConnectionEvent {\r\n private privRreason: string;\r\n private privStatusCode: number;\r\n\r\n constructor(connectionId: string, statusCode: number, reason: string) {\r\n super(\"ConnectionClosedEvent\", connectionId, EventType.Debug);\r\n this.privRreason = reason;\r\n this.privStatusCode = statusCode;\r\n }\r\n\r\n public get reason(): string {\r\n return this.privRreason;\r\n }\r\n\r\n public get statusCode(): number {\r\n return this.privStatusCode;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class ConnectionErrorEvent extends ConnectionEvent {\r\n private readonly privMessage: string;\r\n private readonly privType: string;\r\n\r\n constructor(connectionId: string, message: string, type: string) {\r\n super(\"ConnectionErrorEvent\", connectionId, EventType.Debug);\r\n this.privMessage = message;\r\n this.privType = type;\r\n }\r\n\r\n public get message(): string {\r\n return this.privMessage;\r\n }\r\n\r\n public get type(): string {\r\n return this.privType;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class ConnectionEstablishErrorEvent extends ConnectionEvent {\r\n private privStatusCode: number;\r\n private privReason: string;\r\n\r\n constructor(connectionId: string, statuscode: number, reason: string) {\r\n super(\"ConnectionEstablishErrorEvent\", connectionId, EventType.Error);\r\n this.privStatusCode = statuscode;\r\n this.privReason = reason;\r\n }\r\n\r\n public get reason(): string {\r\n return this.privReason;\r\n }\r\n\r\n public get statusCode(): number {\r\n return this.privStatusCode;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class ConnectionMessageReceivedEvent extends ConnectionEvent {\r\n private privNetworkReceivedTime: string;\r\n private privMessage: ConnectionMessage;\r\n\r\n constructor(connectionId: string, networkReceivedTimeISO: string, message: ConnectionMessage) {\r\n super(\"ConnectionMessageReceivedEvent\", connectionId);\r\n this.privNetworkReceivedTime = networkReceivedTimeISO;\r\n this.privMessage = message;\r\n }\r\n\r\n public get networkReceivedTime(): string {\r\n return this.privNetworkReceivedTime;\r\n }\r\n\r\n public get message(): ConnectionMessage {\r\n return this.privMessage;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class ConnectionMessageSentEvent extends ConnectionEvent {\r\n private privNetworkSentTime: string;\r\n private privMessage: ConnectionMessage;\r\n\r\n constructor(connectionId: string, networkSentTimeISO: string, message: ConnectionMessage) {\r\n super(\"ConnectionMessageSentEvent\", connectionId);\r\n this.privNetworkSentTime = networkSentTimeISO;\r\n this.privMessage = message;\r\n }\r\n\r\n public get networkSentTime(): string {\r\n return this.privNetworkSentTime;\r\n }\r\n\r\n public get message(): ConnectionMessage {\r\n return this.privMessage;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { InvalidOperationError } from \"./Error\";\r\nimport { createNoDashGuid } from \"./Guid\";\r\nimport { IStringDictionary } from \"./IDictionary\";\r\n\r\nexport enum MessageType {\r\n Text,\r\n Binary,\r\n}\r\n\r\nexport class ConnectionMessage {\r\n\r\n private privMessageType: MessageType;\r\n private privHeaders: IStringDictionary;\r\n private privBody: any = null;\r\n private privSize: number;\r\n\r\n private privId: string;\r\n\r\n public constructor(\r\n messageType: MessageType,\r\n body: any,\r\n headers?: IStringDictionary,\r\n id?: string) {\r\n\r\n if (messageType === MessageType.Text && body && !(typeof (body) === \"string\")) {\r\n throw new InvalidOperationError(\"Payload must be a string\");\r\n }\r\n\r\n if (messageType === MessageType.Binary && body && !(body instanceof ArrayBuffer)) {\r\n throw new InvalidOperationError(\"Payload must be ArrayBuffer\");\r\n }\r\n\r\n this.privMessageType = messageType;\r\n this.privBody = body;\r\n this.privHeaders = headers ? headers : {};\r\n this.privId = id ? id : createNoDashGuid();\r\n switch (this.messageType) {\r\n case MessageType.Binary:\r\n this.privSize = this.binaryBody !== null ? this.binaryBody.byteLength : 0;\r\n break;\r\n case MessageType.Text:\r\n this.privSize = this.textBody.length;\r\n }\r\n }\r\n\r\n public get messageType(): MessageType {\r\n return this.privMessageType;\r\n }\r\n\r\n public get headers(): IStringDictionary {\r\n return this.privHeaders;\r\n }\r\n\r\n public get body(): any {\r\n return this.privBody;\r\n }\r\n\r\n public get textBody(): string {\r\n if (this.privMessageType === MessageType.Binary) {\r\n throw new InvalidOperationError(\"Not supported for binary message\");\r\n }\r\n\r\n return this.privBody as string;\r\n }\r\n\r\n public get binaryBody(): ArrayBuffer {\r\n if (this.privMessageType === MessageType.Text) {\r\n throw new InvalidOperationError(\"Not supported for text message\");\r\n }\r\n\r\n return this.privBody;\r\n }\r\n\r\n public get id(): string {\r\n return this.privId;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\n/**\r\n * The error that is thrown when an argument passed in is null.\r\n *\r\n * @export\r\n * @class ArgumentNullError\r\n * @extends {Error}\r\n */\r\nexport class ArgumentNullError extends Error {\r\n\r\n /**\r\n * Creates an instance of ArgumentNullError.\r\n *\r\n * @param {string} argumentName - Name of the argument that is null\r\n *\r\n * @memberOf ArgumentNullError\r\n */\r\n public constructor(argumentName: string) {\r\n super(argumentName);\r\n this.name = \"ArgumentNull\";\r\n this.message = argumentName;\r\n }\r\n}\r\n\r\n/**\r\n * The error that is thrown when an invalid operation is performed in the code.\r\n *\r\n * @export\r\n * @class InvalidOperationError\r\n * @extends {Error}\r\n */\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class InvalidOperationError extends Error {\r\n\r\n /**\r\n * Creates an instance of InvalidOperationError.\r\n *\r\n * @param {string} error - The error\r\n *\r\n * @memberOf InvalidOperationError\r\n */\r\n public constructor(error: string) {\r\n super(error);\r\n this.name = \"InvalidOperation\";\r\n this.message = error;\r\n }\r\n}\r\n\r\n/**\r\n * The error that is thrown when an object is disposed.\r\n *\r\n * @export\r\n * @class ObjectDisposedError\r\n * @extends {Error}\r\n */\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class ObjectDisposedError extends Error {\r\n\r\n /**\r\n * Creates an instance of ObjectDisposedError.\r\n *\r\n * @param {string} objectName - The object that is disposed\r\n * @param {string} error - The error\r\n *\r\n * @memberOf ObjectDisposedError\r\n */\r\n public constructor(objectName: string, error?: string) {\r\n super(error);\r\n this.name = objectName + \"ObjectDisposed\";\r\n this.message = error;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nexport class ConnectionOpenResponse {\r\n private privStatusCode: number;\r\n private privReason: string;\r\n\r\n constructor(statusCode: number, reason: string) {\r\n this.privStatusCode = statusCode;\r\n this.privReason = reason;\r\n }\r\n\r\n public get statusCode(): number {\r\n return this.privStatusCode;\r\n }\r\n\r\n public get reason(): string {\r\n return this.privReason;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { ArgumentNullError } from \"./Error\";\r\nimport { EventSource } from \"./EventSource\";\r\nimport { IEventSource } from \"./IEventSource\";\r\nimport { PlatformEvent } from \"./PlatformEvent\";\r\n\r\nexport class Events {\r\n private static privInstance: IEventSource = new EventSource();\r\n\r\n public static setEventSource = (eventSource: IEventSource): void => {\r\n if (!eventSource) {\r\n throw new ArgumentNullError(\"eventSource\");\r\n }\r\n\r\n Events.privInstance = eventSource;\r\n }\r\n\r\n public static get instance(): IEventSource {\r\n return Events.privInstance;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { ObjectDisposedError } from \"./Error\";\r\nimport { createNoDashGuid } from \"./Guid\";\r\nimport { IDetachable } from \"./IDetachable\";\r\nimport { IStringDictionary } from \"./IDictionary\";\r\nimport { IEventListener, IEventSource } from \"./IEventSource\";\r\nimport { PlatformEvent } from \"./PlatformEvent\";\r\n\r\nexport class EventSource implements IEventSource {\r\n private privEventListeners: IStringDictionary<(event: TEvent) => void> = {};\r\n private privMetadata: IStringDictionary;\r\n private privIsDisposed: boolean = false;\r\n\r\n constructor(metadata?: IStringDictionary) {\r\n this.privMetadata = metadata;\r\n }\r\n\r\n public onEvent = (event: TEvent): void => {\r\n if (this.isDisposed()) {\r\n throw (new ObjectDisposedError(\"EventSource\"));\r\n }\r\n\r\n if (this.metadata) {\r\n for (const paramName in this.metadata) {\r\n if (paramName) {\r\n if (event.metadata) {\r\n if (!event.metadata[paramName]) {\r\n event.metadata[paramName] = this.metadata[paramName];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (const eventId in this.privEventListeners) {\r\n if (eventId && this.privEventListeners[eventId]) {\r\n this.privEventListeners[eventId](event);\r\n }\r\n }\r\n }\r\n\r\n public attach = (onEventCallback: (event: TEvent) => void): IDetachable => {\r\n const id = createNoDashGuid();\r\n this.privEventListeners[id] = onEventCallback;\r\n return {\r\n detach: () => {\r\n delete this.privEventListeners[id];\r\n },\r\n };\r\n }\r\n\r\n public attachListener = (listener: IEventListener): IDetachable => {\r\n return this.attach(listener.onEvent);\r\n }\r\n\r\n public isDisposed = (): boolean => {\r\n return this.privIsDisposed;\r\n }\r\n\r\n public dispose = (): void => {\r\n this.privEventListeners = null;\r\n this.privIsDisposed = true;\r\n }\r\n\r\n public get metadata(): IStringDictionary {\r\n return this.privMetadata;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { ConnectionEvent } from \"./ConnectionEvents\";\r\nimport { ConnectionMessage } from \"./ConnectionMessage\";\r\nimport { ConnectionOpenResponse } from \"./ConnectionOpenResponse\";\r\nimport { EventSource } from \"./EventSource\";\r\nimport { IDisposable } from \"./IDisposable\";\r\nimport { Promise } from \"./Promise\";\r\n\r\nexport enum ConnectionState {\r\n None,\r\n Connected,\r\n Connecting,\r\n Disconnected,\r\n}\r\n\r\nexport interface IConnection extends IDisposable {\r\n id: string;\r\n state(): ConnectionState;\r\n open(): Promise;\r\n send(message: ConnectionMessage): Promise;\r\n read(): Promise;\r\n events: EventSource;\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { ObjectDisposedError } from \"./Error\";\r\nimport { IDetachable } from \"./IDetachable\";\r\nimport { IStringDictionary } from \"./IDictionary\";\r\nimport { IDisposable } from \"./IDisposable\";\r\n\r\nexport interface IList extends IDisposable {\r\n get(itemIndex: number): TItem;\r\n first(): TItem;\r\n last(): TItem;\r\n\r\n add(item: TItem): void;\r\n insertAt(index: number, item: TItem): void;\r\n\r\n removeFirst(): TItem;\r\n removeLast(): TItem;\r\n removeAt(index: number): TItem;\r\n remove(index: number, count: number): TItem[];\r\n clear(): void;\r\n\r\n length(): number;\r\n\r\n onAdded(addedCallback: () => void): IDetachable;\r\n onRemoved(removedCallback: () => void): IDetachable;\r\n onDisposed(disposedCallback: () => void): IDetachable;\r\n\r\n join(seperator?: string): string;\r\n\r\n toArray(): TItem[];\r\n\r\n any(callback?: (item: TItem, index: number) => boolean): boolean;\r\n all(callback: (item: TItem) => boolean): boolean;\r\n forEach(callback: (item: TItem, index: number) => void): void;\r\n select(callback: (item: TItem, index: number) => T2): List;\r\n where(callback: (item: TItem, index: number) => boolean): List;\r\n orderBy(compareFn: (a: TItem, b: TItem) => number): List;\r\n orderByDesc(compareFn: (a: TItem, b: TItem) => number): List;\r\n clone(): List;\r\n concat(list: List): List;\r\n concatArray(array: TItem[]): List;\r\n}\r\n\r\nexport class List implements IList {\r\n private privList: TItem[];\r\n private privSubscriptionIdCounter: number = 0;\r\n private privAddSubscriptions: IStringDictionary<() => void> = {};\r\n private privRemoveSubscriptions: IStringDictionary<() => void> = {};\r\n private privDisposedSubscriptions: IStringDictionary<() => void> = {};\r\n private privDisposeReason: string = null;\r\n\r\n public constructor(list?: TItem[]) {\r\n this.privList = [];\r\n // copy the list rather than taking as is.\r\n if (list) {\r\n for (const item of list) {\r\n this.privList.push(item);\r\n }\r\n }\r\n }\r\n\r\n public get = (itemIndex: number): TItem => {\r\n this.throwIfDisposed();\r\n return this.privList[itemIndex];\r\n }\r\n\r\n public first = (): TItem => {\r\n return this.get(0);\r\n }\r\n\r\n public last = (): TItem => {\r\n return this.get(this.length() - 1);\r\n }\r\n\r\n public add = (item: TItem): void => {\r\n this.throwIfDisposed();\r\n this.insertAt(this.privList.length, item);\r\n }\r\n\r\n public insertAt = (index: number, item: TItem): void => {\r\n this.throwIfDisposed();\r\n if (index === 0) {\r\n this.privList.unshift(item);\r\n } else if (index === this.privList.length) {\r\n this.privList.push(item);\r\n } else {\r\n this.privList.splice(index, 0, item);\r\n }\r\n this.triggerSubscriptions(this.privAddSubscriptions);\r\n }\r\n\r\n public removeFirst = (): TItem => {\r\n this.throwIfDisposed();\r\n return this.removeAt(0);\r\n }\r\n\r\n public removeLast = (): TItem => {\r\n this.throwIfDisposed();\r\n return this.removeAt(this.length() - 1);\r\n }\r\n\r\n public removeAt = (index: number): TItem => {\r\n this.throwIfDisposed();\r\n return this.remove(index, 1)[0];\r\n }\r\n\r\n public remove = (index: number, count: number): TItem[] => {\r\n this.throwIfDisposed();\r\n const removedElements = this.privList.splice(index, count);\r\n this.triggerSubscriptions(this.privRemoveSubscriptions);\r\n return removedElements;\r\n }\r\n\r\n public clear = (): void => {\r\n this.throwIfDisposed();\r\n this.remove(0, this.length());\r\n }\r\n\r\n public length = (): number => {\r\n this.throwIfDisposed();\r\n return this.privList.length;\r\n }\r\n\r\n public onAdded = (addedCallback: () => void): IDetachable => {\r\n this.throwIfDisposed();\r\n const subscriptionId = this.privSubscriptionIdCounter++;\r\n\r\n this.privAddSubscriptions[subscriptionId] = addedCallback;\r\n\r\n return {\r\n detach: () => {\r\n delete this.privAddSubscriptions[subscriptionId];\r\n },\r\n };\r\n }\r\n\r\n public onRemoved = (removedCallback: () => void): IDetachable => {\r\n this.throwIfDisposed();\r\n const subscriptionId = this.privSubscriptionIdCounter++;\r\n\r\n this.privRemoveSubscriptions[subscriptionId] = removedCallback;\r\n\r\n return {\r\n detach: () => {\r\n delete this.privRemoveSubscriptions[subscriptionId];\r\n },\r\n };\r\n }\r\n\r\n public onDisposed = (disposedCallback: () => void): IDetachable => {\r\n this.throwIfDisposed();\r\n const subscriptionId = this.privSubscriptionIdCounter++;\r\n\r\n this.privDisposedSubscriptions[subscriptionId] = disposedCallback;\r\n\r\n return {\r\n detach: () => {\r\n delete this.privDisposedSubscriptions[subscriptionId];\r\n },\r\n };\r\n }\r\n\r\n public join = (seperator?: string): string => {\r\n this.throwIfDisposed();\r\n return this.privList.join(seperator);\r\n }\r\n\r\n public toArray = (): TItem[] => {\r\n const cloneCopy = Array();\r\n this.privList.forEach((val: TItem) => {\r\n cloneCopy.push(val);\r\n });\r\n return cloneCopy;\r\n }\r\n\r\n public any = (callback?: (item: TItem, index: number) => boolean): boolean => {\r\n this.throwIfDisposed();\r\n if (callback) {\r\n return this.where(callback).length() > 0;\r\n } else {\r\n return this.length() > 0;\r\n }\r\n }\r\n\r\n public all = (callback: (item: TItem) => boolean): boolean => {\r\n this.throwIfDisposed();\r\n return this.where(callback).length() === this.length();\r\n }\r\n\r\n public forEach = (callback: (item: TItem, index: number) => void): void => {\r\n this.throwIfDisposed();\r\n for (let i = 0; i < this.length(); i++) {\r\n callback(this.privList[i], i);\r\n }\r\n }\r\n\r\n public select = (callback: (item: TItem, index: number) => T2): List => {\r\n this.throwIfDisposed();\r\n const selectList: T2[] = [];\r\n for (let i = 0; i < this.privList.length; i++) {\r\n selectList.push(callback(this.privList[i], i));\r\n }\r\n\r\n return new List(selectList);\r\n }\r\n\r\n public where = (callback: (item: TItem, index: number) => boolean): List => {\r\n this.throwIfDisposed();\r\n const filteredList = new List();\r\n for (let i = 0; i < this.privList.length; i++) {\r\n if (callback(this.privList[i], i)) {\r\n filteredList.add(this.privList[i]);\r\n }\r\n }\r\n return filteredList;\r\n }\r\n\r\n public orderBy = (compareFn: (a: TItem, b: TItem) => number): List => {\r\n this.throwIfDisposed();\r\n const clonedArray = this.toArray();\r\n const orderedArray = clonedArray.sort(compareFn);\r\n return new List(orderedArray);\r\n }\r\n\r\n public orderByDesc = (compareFn: (a: TItem, b: TItem) => number): List => {\r\n this.throwIfDisposed();\r\n return this.orderBy((a: TItem, b: TItem) => compareFn(b, a));\r\n }\r\n\r\n public clone = (): List => {\r\n this.throwIfDisposed();\r\n return new List(this.toArray());\r\n }\r\n\r\n public concat = (list: List): List => {\r\n this.throwIfDisposed();\r\n return new List(this.privList.concat(list.toArray()));\r\n }\r\n\r\n public concatArray = (array: TItem[]): List => {\r\n this.throwIfDisposed();\r\n return new List(this.privList.concat(array));\r\n }\r\n\r\n public isDisposed = (): boolean => {\r\n return this.privList == null;\r\n }\r\n\r\n public dispose = (reason?: string): void => {\r\n if (!this.isDisposed()) {\r\n this.privDisposeReason = reason;\r\n this.privList = null;\r\n this.privAddSubscriptions = null;\r\n this.privRemoveSubscriptions = null;\r\n this.triggerSubscriptions(this.privDisposedSubscriptions);\r\n }\r\n }\r\n\r\n private throwIfDisposed = (): void => {\r\n if (this.isDisposed()) {\r\n throw new ObjectDisposedError(\"List\", this.privDisposeReason);\r\n }\r\n }\r\n\r\n private triggerSubscriptions = (subscriptions: IStringDictionary<() => void>): void => {\r\n if (subscriptions) {\r\n for (const subscriptionId in subscriptions) {\r\n if (subscriptionId) {\r\n subscriptions[subscriptionId]();\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { ArgumentNullError } from \"./Error\";\r\n\r\nexport enum PromiseState {\r\n None,\r\n Resolved,\r\n Rejected,\r\n}\r\n\r\nexport interface IPromise {\r\n result(): PromiseResult;\r\n\r\n continueWith(\r\n continuationCallback: (promiseResult: PromiseResult) => TContinuationResult): IPromise;\r\n\r\n continueWithPromise(\r\n continuationCallback: (promiseResult: PromiseResult) => IPromise): IPromise;\r\n\r\n onSuccessContinueWith(\r\n continuationCallback: (result: T) => TContinuationResult): IPromise;\r\n\r\n onSuccessContinueWithPromise(\r\n continuationCallback: (result: T) => IPromise): IPromise;\r\n\r\n on(successCallback: (result: T) => void, errorCallback: (error: string) => void): IPromise;\r\n\r\n finally(callback: () => void): IPromise;\r\n}\r\n\r\nexport interface IDeferred {\r\n state(): PromiseState;\r\n\r\n promise(): IPromise;\r\n\r\n resolve(result: T): IDeferred;\r\n\r\n reject(error: string): IDeferred;\r\n}\r\n\r\nexport class PromiseResult {\r\n protected privIsCompleted: boolean;\r\n protected privIsError: boolean;\r\n protected privError: string;\r\n protected privResult: T;\r\n\r\n public constructor(promiseResultEventSource: PromiseResultEventSource) {\r\n promiseResultEventSource.on((result: T) => {\r\n if (!this.privIsCompleted) {\r\n this.privIsCompleted = true;\r\n this.privIsError = false;\r\n this.privResult = result;\r\n }\r\n }, (error: string) => {\r\n if (!this.privIsCompleted) {\r\n this.privIsCompleted = true;\r\n this.privIsError = true;\r\n this.privError = error;\r\n }\r\n });\r\n }\r\n\r\n public get isCompleted(): boolean {\r\n return this.privIsCompleted;\r\n }\r\n\r\n public get isError(): boolean {\r\n return this.privIsError;\r\n }\r\n\r\n public get error(): string {\r\n return this.privError;\r\n }\r\n\r\n public get result(): T {\r\n return this.privResult;\r\n }\r\n\r\n public throwIfError = (): void => {\r\n if (this.isError) {\r\n throw this.error;\r\n }\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class PromiseResultEventSource {\r\n\r\n private privOnSetResult: (result: T) => void;\r\n private privOnSetError: (error: string) => void;\r\n\r\n public setResult = (result: T): void => {\r\n this.privOnSetResult(result);\r\n }\r\n\r\n public setError = (error: string): void => {\r\n this.privOnSetError(error);\r\n }\r\n\r\n public on = (onSetResult: (result: T) => void, onSetError: (error: string) => void): void => {\r\n this.privOnSetResult = onSetResult;\r\n this.privOnSetError = onSetError;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class PromiseHelper {\r\n public static whenAll = (promises: Array>): Promise => {\r\n if (!promises || promises.length === 0) {\r\n throw new ArgumentNullError(\"promises\");\r\n }\r\n\r\n const deferred = new Deferred();\r\n const errors: string[] = [];\r\n let completedPromises: number = 0;\r\n\r\n const checkForCompletion = () => {\r\n completedPromises++;\r\n if (completedPromises === promises.length) {\r\n if (errors.length === 0) {\r\n deferred.resolve(true);\r\n } else {\r\n deferred.reject(errors.join(\", \"));\r\n }\r\n }\r\n };\r\n\r\n for (const promise of promises) {\r\n promise.on((r: any) => {\r\n checkForCompletion();\r\n }, (e: string) => {\r\n errors.push(e);\r\n checkForCompletion();\r\n });\r\n }\r\n\r\n return deferred.promise();\r\n }\r\n\r\n public static fromResult = (result: TResult): Promise => {\r\n const deferred = new Deferred();\r\n deferred.resolve(result);\r\n return deferred.promise();\r\n }\r\n\r\n public static fromError = (error: string): Promise => {\r\n const deferred = new Deferred();\r\n deferred.reject(error);\r\n return deferred.promise();\r\n }\r\n}\r\n\r\n// TODO: replace with ES6 promises\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class Promise implements IPromise {\r\n private privSink: Sink;\r\n\r\n public constructor(sink: Sink) {\r\n this.privSink = sink;\r\n }\r\n\r\n public result = (): PromiseResult => {\r\n return this.privSink.result;\r\n }\r\n\r\n public continueWith = (\r\n continuationCallback: (promiseResult: PromiseResult) => TContinuationResult): Promise => {\r\n\r\n if (!continuationCallback) {\r\n throw new ArgumentNullError(\"continuationCallback\");\r\n }\r\n\r\n const continuationDeferral = new Deferred();\r\n\r\n this.privSink.on(\r\n (r: T) => {\r\n try {\r\n const continuationResult: TContinuationResult = continuationCallback(this.privSink.result);\r\n continuationDeferral.resolve(continuationResult);\r\n } catch (e) {\r\n continuationDeferral.reject(e);\r\n }\r\n },\r\n (error: string) => {\r\n try {\r\n const continuationResult: TContinuationResult = continuationCallback(this.privSink.result);\r\n continuationDeferral.resolve(continuationResult);\r\n } catch (e) {\r\n continuationDeferral.reject(`'Error handler for error ${error} threw error ${e}'`);\r\n }\r\n },\r\n );\r\n\r\n return continuationDeferral.promise();\r\n }\r\n\r\n public onSuccessContinueWith = (\r\n continuationCallback: (result: T) => TContinuationResult): Promise => {\r\n\r\n if (!continuationCallback) {\r\n throw new ArgumentNullError(\"continuationCallback\");\r\n }\r\n\r\n const continuationDeferral = new Deferred();\r\n\r\n this.privSink.on(\r\n (r: T) => {\r\n try {\r\n const continuationResult: TContinuationResult = continuationCallback(r);\r\n continuationDeferral.resolve(continuationResult);\r\n } catch (e) {\r\n continuationDeferral.reject(e);\r\n }\r\n },\r\n (error: string) => {\r\n continuationDeferral.reject(error);\r\n },\r\n );\r\n\r\n return continuationDeferral.promise();\r\n }\r\n\r\n public continueWithPromise = (\r\n continuationCallback: (promiseResult: PromiseResult) => Promise): Promise => {\r\n\r\n if (!continuationCallback) {\r\n throw new ArgumentNullError(\"continuationCallback\");\r\n }\r\n\r\n const continuationDeferral = new Deferred();\r\n\r\n this.privSink.on(\r\n (r: T) => {\r\n try {\r\n const continuationPromise: Promise = continuationCallback(this.privSink.result);\r\n if (!continuationPromise) {\r\n throw new Error(\"'Continuation callback did not return promise'\");\r\n }\r\n continuationPromise.on((continuationResult: TContinuationResult) => {\r\n continuationDeferral.resolve(continuationResult);\r\n }, (e: string) => {\r\n continuationDeferral.reject(e);\r\n });\r\n } catch (e) {\r\n continuationDeferral.reject(e);\r\n }\r\n },\r\n (error: string) => {\r\n try {\r\n const continuationPromise: Promise = continuationCallback(this.privSink.result);\r\n if (!continuationPromise) {\r\n throw new Error(\"Continuation callback did not return promise\");\r\n }\r\n continuationPromise.on((continuationResult: TContinuationResult) => {\r\n continuationDeferral.resolve(continuationResult);\r\n }, (e: string) => {\r\n continuationDeferral.reject(e);\r\n });\r\n } catch (e) {\r\n continuationDeferral.reject(`'Error handler for error ${error} threw error ${e}'`);\r\n }\r\n },\r\n );\r\n\r\n return continuationDeferral.promise();\r\n }\r\n\r\n public onSuccessContinueWithPromise = (\r\n continuationCallback: (result: T) => Promise): Promise => {\r\n\r\n if (!continuationCallback) {\r\n throw new ArgumentNullError(\"continuationCallback\");\r\n }\r\n\r\n const continuationDeferral = new Deferred();\r\n\r\n this.privSink.on(\r\n (r: T) => {\r\n try {\r\n const continuationPromise: Promise = continuationCallback(r);\r\n if (!continuationPromise) {\r\n throw new Error(\"Continuation callback did not return promise\");\r\n }\r\n continuationPromise.on((continuationResult: TContinuationResult) => {\r\n continuationDeferral.resolve(continuationResult);\r\n }, (e: string) => {\r\n continuationDeferral.reject(e);\r\n });\r\n } catch (e) {\r\n continuationDeferral.reject(e);\r\n }\r\n },\r\n (error: string) => {\r\n continuationDeferral.reject(error);\r\n },\r\n );\r\n\r\n return continuationDeferral.promise();\r\n }\r\n\r\n public on = (\r\n successCallback: (result: T) => void,\r\n errorCallback: (error: string) => void): Promise => {\r\n if (!successCallback) {\r\n throw new ArgumentNullError(\"successCallback\");\r\n }\r\n\r\n if (!errorCallback) {\r\n throw new ArgumentNullError(\"errorCallback\");\r\n }\r\n\r\n this.privSink.on(successCallback, errorCallback);\r\n return this;\r\n }\r\n\r\n public finally = (callback: () => void): Promise => {\r\n if (!callback) {\r\n throw new ArgumentNullError(\"callback\");\r\n }\r\n\r\n const callbackWrapper = (_: any) => {\r\n callback();\r\n };\r\n\r\n return this.on(callbackWrapper, callbackWrapper);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class Deferred implements IDeferred {\r\n private privPromise: Promise;\r\n private privSink: Sink;\r\n\r\n public constructor() {\r\n this.privSink = new Sink();\r\n this.privPromise = new Promise(this.privSink);\r\n }\r\n\r\n public state = (): PromiseState => {\r\n return this.privSink.state;\r\n }\r\n\r\n public promise = (): Promise => {\r\n return this.privPromise;\r\n }\r\n\r\n public resolve = (result: T): Deferred => {\r\n this.privSink.resolve(result);\r\n return this;\r\n }\r\n\r\n public reject = (error: string): Deferred => {\r\n this.privSink.reject(error);\r\n return this;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class Sink {\r\n private privState: PromiseState = PromiseState.None;\r\n private privPromiseResult: PromiseResult = null;\r\n private privPromiseResultEvents: PromiseResultEventSource = null;\r\n\r\n private privSuccessHandlers: Array<((result: T) => void)> = [];\r\n private privErrorHandlers: Array<(e: string) => void> = [];\r\n\r\n public constructor() {\r\n this.privPromiseResultEvents = new PromiseResultEventSource();\r\n this.privPromiseResult = new PromiseResult(this.privPromiseResultEvents);\r\n }\r\n\r\n public get state(): PromiseState {\r\n return this.privState;\r\n }\r\n\r\n public get result(): PromiseResult {\r\n return this.privPromiseResult;\r\n }\r\n\r\n public resolve = (result: T): void => {\r\n if (this.privState !== PromiseState.None) {\r\n throw new Error(\"'Cannot resolve a completed promise'\");\r\n }\r\n\r\n this.privState = PromiseState.Resolved;\r\n this.privPromiseResultEvents.setResult(result);\r\n\r\n for (let i = 0; i < this.privSuccessHandlers.length; i++) {\r\n this.executeSuccessCallback(result, this.privSuccessHandlers[i], this.privErrorHandlers[i]);\r\n }\r\n\r\n this.detachHandlers();\r\n }\r\n\r\n public reject = (error: string): void => {\r\n if (this.privState !== PromiseState.None) {\r\n throw new Error(\"'Cannot reject a completed promise'\");\r\n }\r\n\r\n this.privState = PromiseState.Rejected;\r\n this.privPromiseResultEvents.setError(error);\r\n\r\n for (const errorHandler of this.privErrorHandlers) {\r\n this.executeErrorCallback(error, errorHandler);\r\n }\r\n\r\n this.detachHandlers();\r\n }\r\n\r\n public on = (\r\n successCallback: (result: T) => void,\r\n errorCallback: (error: string) => void): void => {\r\n\r\n if (successCallback == null) {\r\n successCallback = (r: T) => { return; };\r\n }\r\n\r\n if (this.privState === PromiseState.None) {\r\n this.privSuccessHandlers.push(successCallback);\r\n this.privErrorHandlers.push(errorCallback);\r\n } else {\r\n if (this.privState === PromiseState.Resolved) {\r\n this.executeSuccessCallback(this.privPromiseResult.result, successCallback, errorCallback);\r\n } else if (this.privState === PromiseState.Rejected) {\r\n this.executeErrorCallback(this.privPromiseResult.error, errorCallback);\r\n }\r\n\r\n this.detachHandlers();\r\n }\r\n }\r\n\r\n private executeSuccessCallback = (result: T, successCallback: (result: T) => void, errorCallback: (error: string) => void): void => {\r\n try {\r\n successCallback(result);\r\n } catch (e) {\r\n this.executeErrorCallback(`'Unhandled callback error: ${e}'`, errorCallback);\r\n }\r\n }\r\n\r\n private executeErrorCallback = (error: string, errorCallback: (error: string) => void): void => {\r\n if (errorCallback) {\r\n try {\r\n errorCallback(error);\r\n } catch (e) {\r\n throw new Error(`'Unhandled callback error: ${e}. InnerError: ${error}'`);\r\n }\r\n } else {\r\n throw new Error(`'Unhandled error: ${error}'`);\r\n }\r\n }\r\n\r\n private detachHandlers = (): void => {\r\n this.privErrorHandlers = [];\r\n this.privSuccessHandlers = [];\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { InvalidOperationError, ObjectDisposedError } from \"./Error\";\r\nimport { IDetachable } from \"./IDetachable\";\r\nimport { IDisposable } from \"./IDisposable\";\r\nimport { List } from \"./List\";\r\nimport { Deferred, Promise, PromiseHelper } from \"./Promise\";\r\n\r\nexport interface IQueue extends IDisposable {\r\n enqueue(item: TItem): void;\r\n enqueueFromPromise(promise: Promise): void;\r\n dequeue(): Promise;\r\n peek(): Promise;\r\n length(): number;\r\n}\r\n\r\nenum SubscriberType {\r\n Dequeue,\r\n Peek,\r\n}\r\n\r\nexport class Queue implements IQueue {\r\n private privPromiseStore: List> = new List>();\r\n private privList: List;\r\n private privDetachables: IDetachable[];\r\n private privSubscribers: List<{ type: SubscriberType, deferral: Deferred }>;\r\n private privIsDrainInProgress: boolean = false;\r\n private privIsDisposing: boolean = false;\r\n private privDisposeReason: string = null;\r\n\r\n public constructor(list?: List) {\r\n this.privList = list ? list : new List();\r\n this.privDetachables = [];\r\n this.privSubscribers = new List<{ type: SubscriberType, deferral: Deferred }>();\r\n this.privDetachables.push(this.privList.onAdded(this.drain));\r\n }\r\n\r\n public enqueue = (item: TItem): void => {\r\n this.throwIfDispose();\r\n this.enqueueFromPromise(PromiseHelper.fromResult(item));\r\n }\r\n\r\n public enqueueFromPromise = (promise: Promise): void => {\r\n this.throwIfDispose();\r\n this.privPromiseStore.add(promise);\r\n promise.finally(() => {\r\n while (this.privPromiseStore.length() > 0) {\r\n if (!this.privPromiseStore.first().result().isCompleted) {\r\n break;\r\n } else {\r\n const p = this.privPromiseStore.removeFirst();\r\n if (!p.result().isError) {\r\n this.privList.add(p.result().result);\r\n } else {\r\n // TODO: Log as warning.\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public dequeue = (): Promise => {\r\n this.throwIfDispose();\r\n const deferredSubscriber = new Deferred();\r\n\r\n if (this.privSubscribers) {\r\n this.privSubscribers.add({ deferral: deferredSubscriber, type: SubscriberType.Dequeue });\r\n this.drain();\r\n }\r\n\r\n return deferredSubscriber.promise();\r\n }\r\n\r\n public peek = (): Promise => {\r\n this.throwIfDispose();\r\n const deferredSubscriber = new Deferred();\r\n\r\n const subs = this.privSubscribers;\r\n if (subs) {\r\n this.privSubscribers.add({ deferral: deferredSubscriber, type: SubscriberType.Peek });\r\n this.drain();\r\n }\r\n\r\n return deferredSubscriber.promise();\r\n }\r\n\r\n public length = (): number => {\r\n this.throwIfDispose();\r\n return this.privList.length();\r\n }\r\n\r\n public isDisposed = (): boolean => {\r\n return this.privSubscribers == null;\r\n }\r\n\r\n public drainAndDispose = (pendingItemProcessor: (pendingItemInQueue: TItem) => void, reason?: string): Promise => {\r\n if (!this.isDisposed() && !this.privIsDisposing) {\r\n this.privDisposeReason = reason;\r\n this.privIsDisposing = true;\r\n\r\n const subs = this.privSubscribers;\r\n if (subs) {\r\n while (subs.length() > 0) {\r\n const subscriber = subs.removeFirst();\r\n // TODO: this needs work (Resolve(null) instead?).\r\n subscriber.deferral.resolve(undefined);\r\n // subscriber.deferral.reject(\"Disposed\");\r\n }\r\n\r\n // note: this block assumes cooperative multitasking, i.e.,\r\n // between the if-statement and the assignment there are no\r\n // thread switches.\r\n // Reason is that between the initial const = this.; and this\r\n // point there is the derral.resolve() operation that might have\r\n // caused recursive calls to the Queue, especially, calling\r\n // Dispose() on the queue alredy (which would reset the var\r\n // here to null!).\r\n // That should generally hold true for javascript...\r\n if (this.privSubscribers === subs) {\r\n this.privSubscribers = subs;\r\n }\r\n }\r\n\r\n for (const detachable of this.privDetachables) {\r\n detachable.detach();\r\n }\r\n\r\n if (this.privPromiseStore.length() > 0 && pendingItemProcessor) {\r\n return PromiseHelper\r\n .whenAll(this.privPromiseStore.toArray())\r\n .continueWith(() => {\r\n this.privSubscribers = null;\r\n this.privList.forEach((item: TItem, index: number): void => {\r\n pendingItemProcessor(item);\r\n });\r\n this.privList = null;\r\n return true;\r\n });\r\n } else {\r\n this.privSubscribers = null;\r\n this.privList = null;\r\n }\r\n }\r\n\r\n return PromiseHelper.fromResult(true);\r\n }\r\n\r\n public dispose = (reason?: string): void => {\r\n this.drainAndDispose(null, reason);\r\n }\r\n\r\n private drain = (): void => {\r\n if (!this.privIsDrainInProgress && !this.privIsDisposing) {\r\n this.privIsDrainInProgress = true;\r\n\r\n const subs = this.privSubscribers;\r\n const lists = this.privList;\r\n if (subs && lists) {\r\n while (lists.length() > 0 && subs.length() > 0 && !this.privIsDisposing) {\r\n const subscriber = subs.removeFirst();\r\n if (subscriber.type === SubscriberType.Peek) {\r\n subscriber.deferral.resolve(lists.first());\r\n } else {\r\n const dequeuedItem = lists.removeFirst();\r\n subscriber.deferral.resolve(dequeuedItem);\r\n }\r\n }\r\n\r\n // note: this block assumes cooperative multitasking, i.e.,\r\n // between the if-statement and the assignment there are no\r\n // thread switches.\r\n // Reason is that between the initial const = this.; and this\r\n // point there is the derral.resolve() operation that might have\r\n // caused recursive calls to the Queue, especially, calling\r\n // Dispose() on the queue alredy (which would reset the var\r\n // here to null!).\r\n // That should generally hold true for javascript...\r\n if (this.privSubscribers === subs) {\r\n this.privSubscribers = subs;\r\n }\r\n\r\n // note: this block assumes cooperative multitasking, i.e.,\r\n // between the if-statement and the assignment there are no\r\n // thread switches.\r\n // Reason is that between the initial const = this.; and this\r\n // point there is the derral.resolve() operation that might have\r\n // caused recursive calls to the Queue, especially, calling\r\n // Dispose() on the queue alredy (which would reset the var\r\n // here to null!).\r\n // That should generally hold true for javascript...\r\n if (this.privList === lists) {\r\n this.privList = lists;\r\n }\r\n }\r\n\r\n this.privIsDrainInProgress = false;\r\n }\r\n }\r\n\r\n private throwIfDispose = (): void => {\r\n if (this.isDisposed()) {\r\n if (this.privDisposeReason) {\r\n throw new InvalidOperationError(this.privDisposeReason);\r\n }\r\n\r\n throw new ObjectDisposedError(\"Queue\");\r\n } else if (this.privIsDisposing) {\r\n throw new InvalidOperationError(\"Queue disposing\");\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { MessageType } from \"./ConnectionMessage\";\r\nimport { ArgumentNullError, InvalidOperationError } from \"./Error\";\r\nimport { createNoDashGuid } from \"./Guid\";\r\n\r\nexport class RawWebsocketMessage {\r\n private privMessageType: MessageType;\r\n private privPayload: any = null;\r\n private privId: string;\r\n\r\n public constructor(messageType: MessageType, payload: any, id?: string) {\r\n if (!payload) {\r\n throw new ArgumentNullError(\"payload\");\r\n }\r\n\r\n if (messageType === MessageType.Binary && !(payload instanceof ArrayBuffer)) {\r\n throw new InvalidOperationError(\"Payload must be ArrayBuffer\");\r\n }\r\n\r\n if (messageType === MessageType.Text && !(typeof (payload) === \"string\")) {\r\n throw new InvalidOperationError(\"Payload must be a string\");\r\n }\r\n\r\n this.privMessageType = messageType;\r\n this.privPayload = payload;\r\n this.privId = id ? id : createNoDashGuid();\r\n }\r\n\r\n public get messageType(): MessageType {\r\n return this.privMessageType;\r\n }\r\n\r\n public get payload(): any {\r\n return this.privPayload;\r\n }\r\n\r\n public get textContent(): string {\r\n if (this.privMessageType === MessageType.Binary) {\r\n throw new InvalidOperationError(\"Not supported for binary message\");\r\n }\r\n\r\n return this.privPayload as string;\r\n }\r\n\r\n public get binaryContent(): ArrayBuffer {\r\n if (this.privMessageType === MessageType.Text) {\r\n throw new InvalidOperationError(\"Not supported for text message\");\r\n }\r\n\r\n return this.privPayload;\r\n }\r\n\r\n public get id(): string {\r\n return this.privId;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nexport class RiffPcmEncoder {\r\n\r\n private privActualSampleRate: number;\r\n private privDesiredSampleRate: number;\r\n\r\n public constructor(actualSampleRate: number, desiredSampleRate: number) {\r\n this.privActualSampleRate = actualSampleRate;\r\n this.privDesiredSampleRate = desiredSampleRate;\r\n }\r\n\r\n public encode = (\r\n actualAudioFrame: Float32Array): ArrayBuffer => {\r\n\r\n const audioFrame = this.downSampleAudioFrame(actualAudioFrame, this.privActualSampleRate, this.privDesiredSampleRate);\r\n\r\n if (!audioFrame) {\r\n return null;\r\n }\r\n\r\n const audioLength = audioFrame.length * 2;\r\n\r\n const buffer = new ArrayBuffer(audioLength);\r\n const view = new DataView(buffer);\r\n this.floatTo16BitPCM(view, 0, audioFrame);\r\n\r\n return buffer;\r\n }\r\n\r\n private setString = (view: DataView, offset: number, str: string): void => {\r\n for (let i = 0; i < str.length; i++) {\r\n view.setUint8(offset + i, str.charCodeAt(i));\r\n }\r\n }\r\n\r\n private floatTo16BitPCM = (view: DataView, offset: number, input: Float32Array): void => {\r\n for (let i = 0; i < input.length; i++ , offset += 2) {\r\n const s = Math.max(-1, Math.min(1, input[i]));\r\n view.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7FFF, true);\r\n }\r\n }\r\n\r\n private downSampleAudioFrame = (\r\n srcFrame: Float32Array,\r\n srcRate: number,\r\n dstRate: number): Float32Array => {\r\n\r\n if (dstRate === srcRate || dstRate > srcRate) {\r\n return srcFrame;\r\n }\r\n\r\n const ratio = srcRate / dstRate;\r\n const dstLength = Math.round(srcFrame.length / ratio);\r\n const dstFrame = new Float32Array(dstLength);\r\n let srcOffset = 0;\r\n let dstOffset = 0;\r\n while (dstOffset < dstLength) {\r\n const nextSrcOffset = Math.round((dstOffset + 1) * ratio);\r\n let accum = 0;\r\n let count = 0;\r\n while (srcOffset < nextSrcOffset && srcOffset < srcFrame.length) {\r\n accum += srcFrame[srcOffset++];\r\n count++;\r\n }\r\n dstFrame[dstOffset++] = accum / count;\r\n }\r\n\r\n return dstFrame;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { InvalidOperationError } from \"./Error\";\r\nimport { createNoDashGuid } from \"./Guid\";\r\nimport { Promise } from \"./Promise\";\r\nimport { Queue } from \"./Queue\";\r\n\r\nexport interface IStreamChunk {\r\n isEnd: boolean;\r\n buffer: TBuffer;\r\n timeReceived: number;\r\n}\r\n\r\nexport class Stream {\r\n private privId: string;\r\n private privIsWriteEnded: boolean = false;\r\n private privIsReadEnded: boolean = false;\r\n private privReaderQueue: Queue>;\r\n\r\n public constructor(streamId?: string) {\r\n this.privId = streamId ? streamId : createNoDashGuid();\r\n this.privReaderQueue = new Queue>();\r\n }\r\n\r\n public get isClosed(): boolean {\r\n return this.privIsWriteEnded;\r\n }\r\n\r\n public get isReadEnded(): boolean {\r\n return this.privIsReadEnded;\r\n }\r\n\r\n public get id(): string {\r\n return this.privId;\r\n }\r\n\r\n public close(): void {\r\n if (!this.privIsWriteEnded) {\r\n this.writeStreamChunk({\r\n buffer: null,\r\n isEnd: true,\r\n timeReceived: Date.now(),\r\n });\r\n this.privIsWriteEnded = true;\r\n }\r\n }\r\n\r\n public writeStreamChunk(streamChunk: IStreamChunk): void {\r\n this.throwIfClosed();\r\n if (!this.privReaderQueue.isDisposed()) {\r\n try {\r\n this.privReaderQueue.enqueue(streamChunk);\r\n } catch (e) {\r\n // Do nothing\r\n }\r\n }\r\n }\r\n\r\n public read = (): Promise> => {\r\n if (this.privIsReadEnded) {\r\n throw new InvalidOperationError(\"Stream read has already finished\");\r\n }\r\n\r\n return this.privReaderQueue\r\n .dequeue()\r\n .onSuccessContinueWith((streamChunk: IStreamChunk) => {\r\n if (streamChunk === undefined || streamChunk.isEnd) {\r\n this.privReaderQueue.dispose(\"End of stream reached\");\r\n }\r\n\r\n return streamChunk;\r\n });\r\n }\r\n\r\n public readEnded = (): void => {\r\n if (!this.privIsReadEnded) {\r\n this.privIsReadEnded = true;\r\n this.privReaderQueue = new Queue>();\r\n }\r\n }\r\n\r\n private throwIfClosed = (): void => {\r\n if (this.privIsWriteEnded) {\r\n throw new InvalidOperationError(\"Stream closed\");\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\n/**\r\n * Defines translation status.\r\n * @class TranslationStatus\r\n */\r\nexport enum TranslationStatus {\r\n /**\r\n * @member TranslationStatus.Success\r\n */\r\n Success = 0,\r\n\r\n /**\r\n * @member TranslationStatus.Error\r\n */\r\n Error,\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { IStreamChunk, Stream } from \"./Exports\";\r\n\r\nexport class ChunkedArrayBufferStream extends Stream {\r\n private privTargetChunkSize: number;\r\n private privNextBufferToWrite: ArrayBuffer;\r\n private privNextBufferStartTime: number;\r\n private privNextBufferReadyBytes: number;\r\n\r\n constructor(targetChunkSize: number, streamId?: string) {\r\n super(streamId);\r\n this.privTargetChunkSize = targetChunkSize;\r\n this.privNextBufferReadyBytes = 0;\r\n }\r\n\r\n public writeStreamChunk(chunk: IStreamChunk): void {\r\n // No pending write, and the buffer is the right size so write it.\r\n if (chunk.isEnd ||\r\n (0 === this.privNextBufferReadyBytes && chunk.buffer.byteLength === this.privTargetChunkSize)) {\r\n super.writeStreamChunk(chunk);\r\n return;\r\n }\r\n\r\n let bytesCopiedFromBuffer: number = 0;\r\n\r\n while (bytesCopiedFromBuffer < chunk.buffer.byteLength) {\r\n // Fill the next buffer.\r\n if (undefined === this.privNextBufferToWrite) {\r\n this.privNextBufferToWrite = new ArrayBuffer(this.privTargetChunkSize);\r\n this.privNextBufferStartTime = chunk.timeReceived;\r\n }\r\n\r\n // Find out how many bytes we can copy into the read buffer.\r\n const bytesToCopy: number = Math.min(chunk.buffer.byteLength - bytesCopiedFromBuffer, this.privTargetChunkSize - this.privNextBufferReadyBytes);\r\n const targetView: Uint8Array = new Uint8Array(this.privNextBufferToWrite);\r\n const sourceView: Uint8Array = new Uint8Array(chunk.buffer.slice(bytesCopiedFromBuffer, bytesToCopy + bytesCopiedFromBuffer));\r\n\r\n targetView.set(sourceView, this.privNextBufferReadyBytes);\r\n this.privNextBufferReadyBytes += bytesToCopy;\r\n bytesCopiedFromBuffer += bytesToCopy;\r\n\r\n // Are we ready to write?\r\n if (this.privNextBufferReadyBytes === this.privTargetChunkSize) {\r\n super.writeStreamChunk({\r\n buffer: this.privNextBufferToWrite,\r\n isEnd: false,\r\n timeReceived: this.privNextBufferStartTime,\r\n });\r\n this.privNextBufferReadyBytes = 0;\r\n this.privNextBufferToWrite = undefined;\r\n }\r\n }\r\n }\r\n\r\n public close(): void {\r\n // Send whatever is pending, then close the base class.\r\n if (0 !== this.privNextBufferReadyBytes && !this.isClosed) {\r\n super.writeStreamChunk({\r\n buffer: this.privNextBufferToWrite.slice(0, this.privNextBufferReadyBytes),\r\n isEnd: false,\r\n timeReceived: this.privNextBufferStartTime,\r\n });\r\n }\r\n\r\n super.close();\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\ntype TWorkerMessage = ICallNotification | IClearResponse | IErrorNotification | IErrorResponse;\r\n\r\ninterface IClearResponse {\r\n error: null;\r\n id: number;\r\n}\r\n\r\ninterface IErrorNotification {\r\n error: {\r\n message: string;\r\n };\r\n id: null;\r\n result: null;\r\n}\r\n\r\ninterface IErrorResponse {\r\n error: {\r\n message: string;\r\n };\r\n id: number;\r\n result: null;\r\n}\r\n\r\ninterface ICallNotification {\r\n id: null;\r\n method: \"call\";\r\n params: {\r\n timerId: number;\r\n };\r\n}\r\n\r\ninterface ISetNotification {\r\n id: null;\r\n method: \"set\";\r\n params: {\r\n delay: number;\r\n now: number;\r\n timerId: number;\r\n };\r\n}\r\n\r\ninterface IClearRequest {\r\n id: number;\r\n method: \"clear\";\r\n params: {\r\n timerId: number;\r\n };\r\n}\r\n\r\ninterface IWorkerEvent extends Event {\r\n data: TWorkerMessage;\r\n}\r\n\r\ninterface IWorkerTimers {\r\n clearTimeout: (timerId: number) => void;\r\n setTimeout: (func: () => any, delay: number) => number;\r\n}\r\n\r\ndeclare type Func = () => any;\r\n\r\nexport class Timeout {\r\n\r\n private static workerTimers: null | IWorkerTimers = null;\r\n\r\n public static clearTimeout: IWorkerTimers[\"clearTimeout\"] = (timerId) => Timeout.timers().clearTimeout(timerId);\r\n\r\n public static setTimeout: IWorkerTimers[\"setTimeout\"] = (func, delay) => Timeout.timers().setTimeout(func, delay);\r\n\r\n public static load = (url: string) => {\r\n // Prefilling the Maps with a function indexed by zero is necessary to be compliant with the specification.\r\n const scheduledTimeoutFunctions: Map = new Map([[0, () => { }]]); // tslint:disable-line no-empty\r\n const unhandledRequests: Map = new Map();\r\n\r\n const worker = new Worker(url);\r\n\r\n worker.addEventListener(\"message\", ({ data }: IWorkerEvent) => {\r\n if (Timeout.isCallNotification(data)) {\r\n const {\r\n params: { timerId }\r\n } = data;\r\n\r\n const idOrFunc = scheduledTimeoutFunctions.get(timerId);\r\n\r\n if (typeof idOrFunc === \"number\") {\r\n const unhandledTimerId = unhandledRequests.get(idOrFunc);\r\n\r\n if (\r\n unhandledTimerId === undefined ||\r\n unhandledTimerId !== timerId\r\n ) {\r\n throw new Error(\"The timer is in an undefined state.\");\r\n }\r\n } else if (typeof idOrFunc !== \"undefined\") {\r\n idOrFunc();\r\n\r\n // A timeout can be safely deleted because it is only called once.\r\n scheduledTimeoutFunctions.delete(timerId);\r\n } else {\r\n throw new Error(\"The timer is in an undefined state.\");\r\n }\r\n } else if (Timeout.isClearResponse(data)) {\r\n const { id } = data;\r\n\r\n const unhandledTimerId = unhandledRequests.get(id);\r\n\r\n if (unhandledTimerId === undefined) {\r\n throw new Error(\"The timer is in an undefined state.\");\r\n }\r\n\r\n unhandledRequests.delete(id);\r\n\r\n scheduledTimeoutFunctions.delete(unhandledTimerId);\r\n } else {\r\n const {\r\n error: { message }\r\n } = data;\r\n\r\n throw new Error(message);\r\n }\r\n });\r\n\r\n const clearTimeout = (timerId: number) => {\r\n const id = Math.random();\r\n\r\n unhandledRequests.set(id, timerId);\r\n scheduledTimeoutFunctions.set(timerId, id);\r\n\r\n worker.postMessage({\r\n id,\r\n method: \"clear\",\r\n params: { timerId }\r\n } as IClearRequest);\r\n };\r\n\r\n const setTimeout = (func: () => void, delay: number) => {\r\n const timerId = Math.random();\r\n\r\n scheduledTimeoutFunctions.set(timerId, func);\r\n\r\n worker.postMessage({\r\n id: null,\r\n method: \"set\",\r\n params: {\r\n delay,\r\n now: performance.now(),\r\n timerId\r\n }\r\n } as ISetNotification);\r\n\r\n return timerId;\r\n };\r\n\r\n return {\r\n clearTimeout,\r\n setTimeout\r\n };\r\n }\r\n\r\n private static loadWorkerTimers = () => {\r\n const worker = `!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=14)}([function(e,t,n){\"use strict\";n.d(t,\"a\",(function(){return i})),n.d(t,\"b\",(function(){return u})),n.d(t,\"c\",(function(){return a})),n.d(t,\"d\",(function(){return d}));const r=new Map,o=new Map,i=e=>{const t=r.get(e);if(void 0===t)throw new Error('There is no interval scheduled with the given id \"'.concat(e,'\".'));clearTimeout(t),r.delete(e)},u=e=>{const t=o.get(e);if(void 0===t)throw new Error('There is no timeout scheduled with the given id \"'.concat(e,'\".'));clearTimeout(t),o.delete(e)},f=(e,t)=>{let n,r;if(\"performance\"in self){const o=performance.now();n=o,r=e-Math.max(0,o-t)}else n=Date.now(),r=e;return{expected:n+r,remainingDelay:r}},c=(e,t,n,r)=>{const o=\"performance\"in self?performance.now():Date.now();o>n?postMessage({id:null,method:\"call\",params:{timerId:t}}):e.set(t,setTimeout(c,n-o,e,t,n))},a=(e,t,n)=>{const{expected:o,remainingDelay:i}=f(e,n);r.set(t,setTimeout(c,i,r,t,o))},d=(e,t,n)=>{const{expected:r,remainingDelay:i}=f(e,n);o.set(t,setTimeout(c,i,o,t,r))}},function(e,t,n){\"use strict\";n.r(t);var r=n(2);for(var o in r)\"default\"!==o&&function(e){n.d(t,e,(function(){return r[e]}))}(o);var i=n(3);for(var o in i)\"default\"!==o&&function(e){n.d(t,e,(function(){return i[e]}))}(o);var u=n(4);for(var o in u)\"default\"!==o&&function(e){n.d(t,e,(function(){return u[e]}))}(o);var f=n(5);for(var o in f)\"default\"!==o&&function(e){n.d(t,e,(function(){return f[e]}))}(o);var c=n(6);for(var o in c)\"default\"!==o&&function(e){n.d(t,e,(function(){return c[e]}))}(o);var a=n(7);for(var o in a)\"default\"!==o&&function(e){n.d(t,e,(function(){return a[e]}))}(o);var d=n(8);for(var o in d)\"default\"!==o&&function(e){n.d(t,e,(function(){return d[e]}))}(o);var s=n(9);for(var o in s)\"default\"!==o&&function(e){n.d(t,e,(function(){return s[e]}))}(o)},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t){},function(e,t,n){\"use strict\";n.r(t);var r=n(11);for(var o in r)\"default\"!==o&&function(e){n.d(t,e,(function(){return r[e]}))}(o);var i=n(12);for(var o in i)\"default\"!==o&&function(e){n.d(t,e,(function(){return i[e]}))}(o);var u=n(13);for(var o in u)\"default\"!==o&&function(e){n.d(t,e,(function(){return u[e]}))}(o)},function(e,t){},function(e,t){},function(e,t){},function(e,t,n){\"use strict\";n.r(t);var r=n(0),o=n(1);for(var i in o)\"default\"!==i&&function(e){n.d(t,e,(function(){return o[e]}))}(i);var u=n(10);for(var i in u)\"default\"!==i&&function(e){n.d(t,e,(function(){return u[e]}))}(i);addEventListener(\"message\",({data:e})=>{try{if(\"clear\"===e.method){const{id:t,params:{timerId:n}}=e;Object(r.b)(n),postMessage({error:null,id:t})}else{if(\"set\"!==e.method)throw new Error('The given method \"'.concat(e.method,'\" is not supported'));{const{params:{delay:t,now:n,timerId:o}}=e;Object(r.d)(t,o,n)}}}catch(t){postMessage({error:{message:t.message},id:e.id,result:null})}})}]);`; // tslint:disable-line:max-line-length\r\n return () => {\r\n if (Timeout.workerTimers !== null) {\r\n return Timeout.workerTimers;\r\n }\r\n\r\n const blob = new Blob([worker], { type: \"application/javascript; charset=utf-8\" });\r\n const url = URL.createObjectURL(blob);\r\n\r\n Timeout.workerTimers = Timeout.load(url);\r\n\r\n // Edge doesn't like the URL to be revoked directly.\r\n Timeout.workerTimers.setTimeout(() => URL.revokeObjectURL(url), 0);\r\n\r\n return Timeout.workerTimers as IWorkerTimers;\r\n };\r\n }\r\n\r\n public static timers: () => IWorkerTimers = Timeout.loadWorkerTimers();\r\n\r\n private static isCallNotification = (message: TWorkerMessage): message is ICallNotification => {\r\n return (message as ICallNotification).method !== undefined && (message as ICallNotification).method === \"call\";\r\n }\r\n\r\n private static isClearResponse = (message: TWorkerMessage): message is IClearResponse => {\r\n return (message as IClearResponse).error === null && typeof message.id === \"number\";\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { EventType, PlatformEvent } from \"./PlatformEvent\";\r\n\r\nexport class OCSPEvent extends PlatformEvent {\r\n private privSignature: string;\r\n\r\n constructor(eventName: string, eventType: EventType, signature: string) {\r\n super(eventName, eventType);\r\n\r\n this.privSignature = signature;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPMemoryCacheHitEvent extends OCSPEvent {\r\n constructor(signature: string) {\r\n super(\"OCSPMemoryCacheHitEvent\", EventType.Debug, signature);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPCacheMissEvent extends OCSPEvent {\r\n constructor(signature: string) {\r\n super(\"OCSPCacheMissEvent\", EventType.Debug, signature);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPDiskCacheHitEvent extends OCSPEvent {\r\n constructor(signature: string) {\r\n super(\"OCSPDiskCacheHitEvent\", EventType.Debug, signature);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPCacheUpdateNeededEvent extends OCSPEvent {\r\n constructor(signature: string) {\r\n super(\"OCSPCacheUpdateNeededEvent\", EventType.Debug, signature);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPMemoryCacheStoreEvent extends OCSPEvent {\r\n constructor(signature: string) {\r\n super(\"OCSPMemoryCacheStoreEvent\", EventType.Debug, signature);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPDiskCacheStoreEvent extends OCSPEvent {\r\n constructor(signature: string) {\r\n super(\"OCSPDiskCacheStoreEvent\", EventType.Debug, signature);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPCacheUpdatehCompleteEvent extends OCSPEvent {\r\n constructor(signature: string) {\r\n super(\"OCSPCacheUpdatehCompleteEvent\", EventType.Debug, signature);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPStapleReceivedEvent extends OCSPEvent {\r\n constructor() {\r\n super(\"OCSPStapleReceivedEvent\", EventType.Debug, \"\");\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPWSUpgradeStartedEvent extends OCSPEvent {\r\n constructor(serialNumber: string) {\r\n super(\"OCSPWSUpgradeStartedEvent\", EventType.Debug, serialNumber);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPCacheEntryExpiredEvent extends OCSPEvent {\r\n private privExpireTime: number;\r\n\r\n constructor(serialNumber: string, expireTime: number) {\r\n super(\"OCSPCacheEntryExpiredEvent\", EventType.Debug, serialNumber);\r\n this.privExpireTime = expireTime;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPCacheEntryNeedsRefreshEvent extends OCSPEvent {\r\n private privExpireTime: number;\r\n private privStartTime: number;\r\n\r\n constructor(serialNumber: string, startTime: number, expireTime: number) {\r\n super(\"OCSPCacheEntryNeedsRefreshEvent\", EventType.Debug, serialNumber);\r\n this.privExpireTime = expireTime;\r\n this.privStartTime = startTime;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPCacheHitEvent extends OCSPEvent {\r\n private privExpireTime: number;\r\n private privStartTime: number;\r\n private privExpireTimeString: string;\r\n private privStartTimeString: string;\r\n\r\n constructor(serialNumber: string, startTime: number, expireTime: number) {\r\n super(\"OCSPCacheHitEvent\", EventType.Debug, serialNumber);\r\n this.privExpireTime = expireTime;\r\n this.privExpireTimeString = new Date(expireTime).toLocaleDateString();\r\n this.privStartTime = startTime;\r\n this.privStartTimeString = new Date(startTime).toLocaleTimeString();\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPVerificationFailedEvent extends OCSPEvent {\r\n private privError: string;\r\n\r\n constructor(serialNumber: string, error: string) {\r\n super(\"OCSPVerificationFailedEvent\", EventType.Debug, serialNumber);\r\n this.privError = error;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPCacheFetchErrorEvent extends OCSPEvent {\r\n private privError: string;\r\n\r\n constructor(serialNumber: string, error: string) {\r\n super(\"OCSPCacheFetchErrorEvent\", EventType.Debug, serialNumber);\r\n this.privError = error;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPResponseRetrievedEvent extends OCSPEvent {\r\n constructor(serialNumber: string) {\r\n super(\"OCSPResponseRetrievedEvent\", EventType.Debug, serialNumber);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OCSPCacheUpdateErrorEvent extends OCSPEvent {\r\n private privError: string;\r\n\r\n constructor(serialNumber: string, error: string) {\r\n super(\"OCSPCacheUpdateErrorEvent\", EventType.Debug, serialNumber);\r\n this.privError = error;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport {\r\n connectivity,\r\n ISpeechConfigAudioDevice,\r\n type\r\n} from \"../common.speech/Exports\";\r\nimport {\r\n AudioSourceErrorEvent,\r\n AudioSourceEvent,\r\n AudioSourceInitializingEvent,\r\n AudioSourceOffEvent,\r\n AudioSourceReadyEvent,\r\n AudioStreamNodeAttachedEvent,\r\n AudioStreamNodeAttachingEvent,\r\n AudioStreamNodeDetachedEvent,\r\n AudioStreamNodeErrorEvent,\r\n ChunkedArrayBufferStream,\r\n createNoDashGuid,\r\n Deferred,\r\n Events,\r\n EventSource,\r\n IAudioSource,\r\n IAudioStreamNode,\r\n IStringDictionary,\r\n Promise,\r\n PromiseHelper,\r\n Stream,\r\n} from \"../common/Exports\";\r\nimport {\r\n AudioStreamFormat,\r\n AudioStreamFormatImpl,\r\n} from \"../sdk/Audio/AudioStreamFormat\";\r\nimport { IRecorder } from \"./IRecorder\";\r\n\r\n// Extending the default definition with browser specific definitions for backward compatibility\r\ninterface INavigator extends Navigator {\r\n webkitGetUserMedia?: (constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback) => void;\r\n mozGetUserMedia?: (constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback) => void;\r\n msGetUserMedia?: (constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback) => void;\r\n}\r\n\r\nexport const AudioWorkletSourceURLPropertyName = \"MICROPHONE-WorkletSourceUrl\";\r\n\r\nexport class MicAudioSource implements IAudioSource {\r\n\r\n private static readonly AUDIOFORMAT: AudioStreamFormatImpl = AudioStreamFormat.getDefaultInputFormat() as AudioStreamFormatImpl;\r\n\r\n private privStreams: IStringDictionary> = {};\r\n\r\n private privId: string;\r\n\r\n private privEvents: EventSource;\r\n\r\n private privInitializeDeferral: Deferred;\r\n\r\n private privMediaStream: MediaStream;\r\n\r\n private privContext: AudioContext;\r\n\r\n private privMicrophoneLabel: string;\r\n\r\n private privOutputChunkSize: number;\r\n\r\n public constructor(\r\n private readonly privRecorder: IRecorder,\r\n private readonly deviceId?: string,\r\n audioSourceId?: string) {\r\n\r\n this.privOutputChunkSize = MicAudioSource.AUDIOFORMAT.avgBytesPerSec / 10;\r\n this.privId = audioSourceId ? audioSourceId : createNoDashGuid();\r\n this.privEvents = new EventSource();\r\n }\r\n\r\n public get format(): Promise {\r\n return PromiseHelper.fromResult(MicAudioSource.AUDIOFORMAT);\r\n }\r\n\r\n public get blob(): Promise {\r\n return PromiseHelper.fromError(\"Not implemented for Mic input\");\r\n }\r\n\r\n public turnOn = (): Promise => {\r\n if (this.privInitializeDeferral) {\r\n return this.privInitializeDeferral.promise();\r\n }\r\n\r\n this.privInitializeDeferral = new Deferred();\r\n\r\n try {\r\n this.createAudioContext();\r\n } catch (error) {\r\n if (error instanceof Error) {\r\n const typedError: Error = error as Error;\r\n this.privInitializeDeferral.reject(typedError.name + \": \" + typedError.message);\r\n } else {\r\n this.privInitializeDeferral.reject(error);\r\n }\r\n return this.privInitializeDeferral.promise();\r\n }\r\n\r\n const nav = window.navigator as INavigator;\r\n\r\n let getUserMedia = (\r\n nav.getUserMedia ||\r\n nav.webkitGetUserMedia ||\r\n nav.mozGetUserMedia ||\r\n nav.msGetUserMedia\r\n );\r\n\r\n if (!!nav.mediaDevices) {\r\n getUserMedia = (constraints: MediaStreamConstraints, successCallback: NavigatorUserMediaSuccessCallback, errorCallback: NavigatorUserMediaErrorCallback): void => {\r\n nav.mediaDevices\r\n .getUserMedia(constraints)\r\n .then(successCallback)\r\n .catch(errorCallback);\r\n };\r\n }\r\n\r\n if (!getUserMedia) {\r\n const errorMsg = \"Browser does not support getUserMedia.\";\r\n this.privInitializeDeferral.reject(errorMsg);\r\n this.onEvent(new AudioSourceErrorEvent(errorMsg, \"\")); // mic initialized error - no streamid at this point\r\n } else {\r\n const next = () => {\r\n this.onEvent(new AudioSourceInitializingEvent(this.privId)); // no stream id\r\n getUserMedia(\r\n { audio: this.deviceId ? { deviceId: this.deviceId } : true, video: false },\r\n (mediaStream: MediaStream) => {\r\n this.privMediaStream = mediaStream;\r\n this.onEvent(new AudioSourceReadyEvent(this.privId));\r\n this.privInitializeDeferral.resolve(true);\r\n }, (error: MediaStreamError) => {\r\n const errorMsg = `Error occurred during microphone initialization: ${error}`;\r\n const tmp = this.privInitializeDeferral;\r\n // HACK: this should be handled through onError callbacks of all promises up the stack.\r\n // Unfortunately, the current implementation does not provide an easy way to reject promises\r\n // without a lot of code replication.\r\n // TODO: fix promise implementation, allow for a graceful reject chaining.\r\n this.privInitializeDeferral = null;\r\n tmp.reject(errorMsg); // this will bubble up through the whole chain of promises,\r\n // with each new level adding extra \"Unhandled callback error\" prefix to the error message.\r\n // The following line is not guaranteed to be executed.\r\n this.onEvent(new AudioSourceErrorEvent(this.privId, errorMsg));\r\n });\r\n };\r\n\r\n if (this.privContext.state === \"suspended\") {\r\n // NOTE: On iOS, the Web Audio API requires sounds to be triggered from an explicit user action.\r\n // https://github.com/WebAudio/web-audio-api/issues/790\r\n this.privContext.resume().then(next, (reason: any) => {\r\n this.privInitializeDeferral.reject(`Failed to initialize audio context: ${reason}`);\r\n });\r\n } else {\r\n next();\r\n }\r\n }\r\n\r\n return this.privInitializeDeferral.promise();\r\n }\r\n\r\n public id = (): string => {\r\n return this.privId;\r\n }\r\n\r\n public attach = (audioNodeId: string): Promise => {\r\n this.onEvent(new AudioStreamNodeAttachingEvent(this.privId, audioNodeId));\r\n\r\n return this.listen(audioNodeId).onSuccessContinueWith(\r\n (stream: Stream) => {\r\n this.onEvent(new AudioStreamNodeAttachedEvent(this.privId, audioNodeId));\r\n return {\r\n detach: () => {\r\n stream.readEnded();\r\n this.turnOff();\r\n delete this.privStreams[audioNodeId];\r\n this.onEvent(new AudioStreamNodeDetachedEvent(this.privId, audioNodeId));\r\n },\r\n id: () => {\r\n return audioNodeId;\r\n },\r\n read: () => {\r\n return stream.read();\r\n },\r\n };\r\n });\r\n }\r\n\r\n public detach = (audioNodeId: string): void => {\r\n if (audioNodeId && this.privStreams[audioNodeId]) {\r\n this.privStreams[audioNodeId].close();\r\n delete this.privStreams[audioNodeId];\r\n this.onEvent(new AudioStreamNodeDetachedEvent(this.privId, audioNodeId));\r\n }\r\n }\r\n\r\n public turnOff = (): Promise => {\r\n for (const streamId in this.privStreams) {\r\n if (streamId) {\r\n const stream = this.privStreams[streamId];\r\n if (stream) {\r\n stream.close();\r\n }\r\n }\r\n }\r\n\r\n this.onEvent(new AudioSourceOffEvent(this.privId)); // no stream now\r\n this.privInitializeDeferral = null;\r\n\r\n this.destroyAudioContext();\r\n\r\n return PromiseHelper.fromResult(true);\r\n }\r\n\r\n public get events(): EventSource {\r\n return this.privEvents;\r\n }\r\n\r\n public get deviceInfo(): Promise {\r\n return this.getMicrophoneLabel().onSuccessContinueWith((label: string) => {\r\n return {\r\n bitspersample: MicAudioSource.AUDIOFORMAT.bitsPerSample,\r\n channelcount: MicAudioSource.AUDIOFORMAT.channels,\r\n connectivity: connectivity.Unknown,\r\n manufacturer: \"Speech SDK\",\r\n model: label,\r\n samplerate: MicAudioSource.AUDIOFORMAT.samplesPerSec,\r\n type: type.Microphones,\r\n };\r\n });\r\n }\r\n\r\n public setProperty(name: string, value: string): void {\r\n if (name === AudioWorkletSourceURLPropertyName) {\r\n this.privRecorder.setWorkletUrl(value);\r\n } else {\r\n throw new Error(\"Property '\" + name + \"' is not supported on Microphone.\");\r\n }\r\n }\r\n\r\n private getMicrophoneLabel(): Promise {\r\n const defaultMicrophoneName: string = \"microphone\";\r\n\r\n // If we did this already, return the value.\r\n if (this.privMicrophoneLabel !== undefined) {\r\n return PromiseHelper.fromResult(this.privMicrophoneLabel);\r\n }\r\n\r\n // If the stream isn't currently running, we can't query devices because security.\r\n if (this.privMediaStream === undefined || !this.privMediaStream.active) {\r\n return PromiseHelper.fromResult(defaultMicrophoneName);\r\n }\r\n\r\n // Setup a default\r\n this.privMicrophoneLabel = defaultMicrophoneName;\r\n\r\n // Get the id of the device running the audio track.\r\n const microphoneDeviceId: string = this.privMediaStream.getTracks()[0].getSettings().deviceId;\r\n\r\n // If the browser doesn't support getting the device ID, set a default and return.\r\n if (undefined === microphoneDeviceId) {\r\n return PromiseHelper.fromResult(this.privMicrophoneLabel);\r\n }\r\n\r\n const deferred: Deferred = new Deferred();\r\n\r\n // Enumerate the media devices.\r\n navigator.mediaDevices.enumerateDevices().then((devices: MediaDeviceInfo[]) => {\r\n for (const device of devices) {\r\n if (device.deviceId === microphoneDeviceId) {\r\n // Found the device\r\n this.privMicrophoneLabel = device.label;\r\n break;\r\n }\r\n }\r\n deferred.resolve(this.privMicrophoneLabel);\r\n }, () => deferred.resolve(this.privMicrophoneLabel));\r\n\r\n return deferred.promise();\r\n }\r\n\r\n private listen = (audioNodeId: string): Promise> => {\r\n return this.turnOn()\r\n .onSuccessContinueWith>((_: boolean) => {\r\n const stream = new ChunkedArrayBufferStream(this.privOutputChunkSize, audioNodeId);\r\n this.privStreams[audioNodeId] = stream;\r\n\r\n try {\r\n this.privRecorder.record(this.privContext, this.privMediaStream, stream);\r\n } catch (error) {\r\n this.onEvent(new AudioStreamNodeErrorEvent(this.privId, audioNodeId, error));\r\n throw error;\r\n }\r\n\r\n return stream;\r\n });\r\n }\r\n\r\n private onEvent = (event: AudioSourceEvent): void => {\r\n this.privEvents.onEvent(event);\r\n Events.instance.onEvent(event);\r\n }\r\n\r\n private createAudioContext = (): void => {\r\n if (!!this.privContext) {\r\n return;\r\n }\r\n\r\n // https://developer.mozilla.org/en-US/docs/Web/API/AudioContext\r\n if (typeof (AudioContext) === \"undefined\") {\r\n throw new Error(\"Browser does not support Web Audio API (AudioContext is not available).\");\r\n }\r\n\r\n // Browsers without sampleRate constraint support can't connect nodes with different sample rates\r\n if (navigator.mediaDevices.getSupportedConstraints().sampleRate) {\r\n this.privContext = new AudioContext({ sampleRate: MicAudioSource.AUDIOFORMAT.samplesPerSec });\r\n } else {\r\n this.privContext = new AudioContext();\r\n }\r\n }\r\n\r\n private destroyAudioContext = (): void => {\r\n if (!this.privContext) {\r\n return;\r\n }\r\n\r\n this.privRecorder.releaseMediaResources(this.privContext);\r\n\r\n // This pattern brought to you by a bug in the TypeScript compiler where it\r\n // confuses the (\"close\" in this.privContext) with this.privContext always being null as the alternate.\r\n // https://github.com/Microsoft/TypeScript/issues/11498\r\n let hasClose: boolean = false;\r\n if (\"close\" in this.privContext) {\r\n hasClose = true;\r\n }\r\n\r\n if (hasClose) {\r\n this.privContext.close();\r\n this.privContext = null;\r\n } else if (null !== this.privContext && this.privContext.state === \"running\") {\r\n // Suspend actually takes a callback, but analogous to the\r\n // resume method, it'll be only fired if suspend is called\r\n // in a direct response to a user action. The later is not always\r\n // the case, as TurnOff is also called, when we receive an\r\n // end-of-speech message from the service. So, doing a best effort\r\n // fire-and-forget here.\r\n this.privContext.suspend();\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\n// Make sure not to export internal modules.\r\n//\r\nexport * from \"./CognitiveSubscriptionKeyAuthentication\";\r\nexport * from \"./CognitiveTokenAuthentication\";\r\nexport * from \"./IAuthentication\";\r\nexport * from \"./IConnectionFactory\";\r\nexport * from \"./ISynthesisConnectionFactory\";\r\nexport * from \"./IntentConnectionFactory\";\r\nexport * from \"./RecognitionEvents\";\r\nexport * from \"./ServiceRecognizerBase\";\r\nexport * from \"./RecognizerConfig\";\r\nexport * from \"./SpeechServiceInterfaces\";\r\nexport * from \"./WebsocketMessageFormatter\";\r\nexport * from \"./SpeechConnectionFactory\";\r\nexport * from \"./TranslationConnectionFactory\";\r\nexport * from \"./SpeechSynthesisConnectionFactory\";\r\nexport * from \"./EnumTranslation\";\r\nexport * from \"./ServiceMessages/Enums\";\r\nexport * from \"./ServiceMessages/TranslationSynthesisEnd\";\r\nexport * from \"./ServiceMessages/TranslationHypothesis\";\r\nexport * from \"./ServiceMessages/TranslationPhrase\";\r\nexport * from \"./TranslationServiceRecognizer\";\r\nexport * from \"./ServiceMessages/SpeechDetected\";\r\nexport * from \"./ServiceMessages/SpeechHypothesis\";\r\nexport * from \"./SpeechServiceRecognizer\";\r\nexport * from \"./ServiceMessages/DetailedSpeechPhrase\";\r\nexport * from \"./ServiceMessages/SimpleSpeechPhrase\";\r\nexport * from \"./AddedLmIntent\";\r\nexport * from \"./IntentServiceRecognizer\";\r\nexport * from \"./ServiceMessages/IntentResponse\";\r\nexport * from \"./RequestSession\";\r\nexport * from \"./SpeechContext\";\r\nexport * from \"./DynamicGrammarBuilder\";\r\nexport * from \"./DynamicGrammarInterfaces\";\r\nexport * from \"./DialogServiceAdapter\";\r\nexport * from \"./AgentConfig\";\r\nexport * from \"./Transcription/Exports\";\r\nexport * from \"./ServiceMessages/SynthesisAudioMetadata\";\r\nexport * from \"./SynthesisTurn\";\r\nexport * from \"./SynthesisAdapterBase\";\r\nexport * from \"./SynthesizerConfig\";\r\nexport * from \"./SynthesisContext\";\r\nexport * from \"./SpeakerRecognitionConfig\";\r\nexport * from \"./SpeakerIdMessageAdapter\";\r\n\r\nexport const OutputFormatPropertyName: string = \"OutputFormat\";\r\nexport const CancellationErrorCodePropertyName: string = \"CancellationErrorCode\";\r\nexport const ServicePropertiesPropertyName: string = \"ServiceProperties\";\r\nexport const ForceDictationPropertyName: string = \"ForceDication\";\r\nexport const AutoDetectSourceLanguagesOpenRangeOptionName: string = \"OpenRange\";\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { ArgumentNullError, Promise, PromiseHelper } from \"../common/Exports\";\r\nimport { AuthInfo, IAuthentication } from \"./IAuthentication\";\r\n\r\nconst AuthHeader: string = \"Ocp-Apim-Subscription-Key\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class CognitiveSubscriptionKeyAuthentication implements IAuthentication {\r\n private privAuthInfo: AuthInfo;\r\n\r\n /**\r\n * Creates and initializes an instance of the CognitiveSubscriptionKeyAuthentication class.\r\n * @constructor\r\n * @param {string} subscriptionKey - The subscription key\r\n */\r\n constructor(subscriptionKey: string) {\r\n if (!subscriptionKey) {\r\n throw new ArgumentNullError(\"subscriptionKey\");\r\n }\r\n\r\n this.privAuthInfo = new AuthInfo(AuthHeader, subscriptionKey);\r\n }\r\n\r\n /**\r\n * Fetches the subscription key.\r\n * @member\r\n * @function\r\n * @public\r\n * @param {string} authFetchEventId - The id to fetch.\r\n */\r\n public fetch = (authFetchEventId: string): Promise => {\r\n return PromiseHelper.fromResult(this.privAuthInfo);\r\n }\r\n\r\n /**\r\n * Fetches the subscription key.\r\n * @member\r\n * @function\r\n * @public\r\n * @param {string} authFetchEventId - The id to fetch.\r\n */\r\n public fetchOnExpiry = (authFetchEventId: string): Promise => {\r\n return PromiseHelper.fromResult(this.privAuthInfo);\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { Promise } from \"../common/Exports\";\r\n\r\nexport interface IAuthentication {\r\n fetch(authFetchEventId: string): Promise;\r\n fetchOnExpiry(authFetchEventId: string): Promise;\r\n}\r\n\r\nexport class AuthInfo {\r\n private privHeaderName: string;\r\n private privToken: string;\r\n\r\n public constructor(headerName: string, token: string) {\r\n this.privHeaderName = headerName;\r\n this.privToken = token;\r\n }\r\n\r\n public get headerName(): string {\r\n return this.privHeaderName;\r\n }\r\n\r\n public get token(): string {\r\n return this.privToken;\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { ArgumentNullError, Promise } from \"../common/Exports\";\r\nimport { AuthInfo, IAuthentication } from \"./IAuthentication\";\r\n\r\nconst AuthHeader: string = \"Authorization\";\r\n\r\nexport class CognitiveTokenAuthentication implements IAuthentication {\r\n private privFetchCallback: (authFetchEventId: string) => Promise;\r\n private privFetchOnExpiryCallback: (authFetchEventId: string) => Promise;\r\n\r\n constructor(fetchCallback: (authFetchEventId: string) => Promise, fetchOnExpiryCallback: (authFetchEventId: string) => Promise) {\r\n if (!fetchCallback) {\r\n throw new ArgumentNullError(\"fetchCallback\");\r\n }\r\n\r\n if (!fetchOnExpiryCallback) {\r\n throw new ArgumentNullError(\"fetchOnExpiryCallback\");\r\n }\r\n\r\n this.privFetchCallback = fetchCallback;\r\n this.privFetchOnExpiryCallback = fetchOnExpiryCallback;\r\n }\r\n\r\n public fetch = (authFetchEventId: string): Promise => {\r\n return this.privFetchCallback(authFetchEventId).onSuccessContinueWith((token: string) => new AuthInfo(AuthHeader, token));\r\n }\r\n\r\n public fetchOnExpiry = (authFetchEventId: string): Promise => {\r\n return this.privFetchOnExpiryCallback(authFetchEventId).onSuccessContinueWith((token: string) => new AuthInfo(AuthHeader, token));\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport {\r\n ProxyInfo,\r\n WebsocketConnection,\r\n} from \"../common.browser/Exports\";\r\nimport {\r\n IConnection,\r\n IStringDictionary\r\n} from \"../common/Exports\";\r\nimport {\r\n PropertyId\r\n} from \"../sdk/Exports\";\r\nimport {\r\n ConnectionFactoryBase\r\n} from \"./ConnectionFactoryBase\";\r\nimport {\r\n AuthInfo,\r\n IConnectionFactory,\r\n RecognizerConfig,\r\n WebsocketMessageFormatter,\r\n} from \"./Exports\";\r\n\r\nconst TestHooksParamName: string = \"testhooks\";\r\nconst ConnectionIdHeader: string = \"X-ConnectionId\";\r\n\r\nexport class IntentConnectionFactory extends ConnectionFactoryBase {\r\n\r\n public create = (\r\n config: RecognizerConfig,\r\n authInfo: AuthInfo,\r\n connectionId?: string): IConnection => {\r\n\r\n let endpoint: string = config.parameters.getProperty(PropertyId.SpeechServiceConnection_Endpoint);\r\n if (!endpoint) {\r\n const region: string = config.parameters.getProperty(PropertyId.SpeechServiceConnection_IntentRegion);\r\n const hostSuffix = (region && region.toLowerCase().startsWith(\"china\")) ? \".azure.cn\" : \".microsoft.com\";\r\n const host: string = config.parameters.getProperty(PropertyId.SpeechServiceConnection_Host, \"wss://\" + region + \".sr.speech\" + hostSuffix);\r\n endpoint = host + \"/speech/recognition/interactive/cognitiveservices/v1\";\r\n }\r\n\r\n const queryParams: IStringDictionary = {\r\n format: \"simple\",\r\n language: config.parameters.getProperty(PropertyId.SpeechServiceConnection_RecoLanguage),\r\n };\r\n\r\n this.setCommonUrlParams(config, queryParams, endpoint);\r\n\r\n const headers: IStringDictionary = {};\r\n if (authInfo.token !== undefined && authInfo.token !== \"\") {\r\n headers[authInfo.headerName] = authInfo.token;\r\n }\r\n headers[ConnectionIdHeader] = connectionId;\r\n\r\n config.parameters.setProperty(PropertyId.SpeechServiceConnection_Url, endpoint);\r\n\r\n return new WebsocketConnection(endpoint, queryParams, headers, new WebsocketMessageFormatter(), ProxyInfo.fromRecognizerConfig(config), connectionId);\r\n }\r\n\r\n private getSpeechRegionFromIntentRegion(intentRegion: string): string {\r\n switch (intentRegion) {\r\n case \"West US\":\r\n case \"US West\":\r\n case \"westus\":\r\n return \"uswest\";\r\n case \"West US 2\":\r\n case \"US West 2\":\r\n case \"westus2\":\r\n return \"uswest2\";\r\n case \"South Central US\":\r\n case \"US South Central\":\r\n case \"southcentralus\":\r\n return \"ussouthcentral\";\r\n case \"West Central US\":\r\n case \"US West Central\":\r\n case \"westcentralus\":\r\n return \"uswestcentral\";\r\n case \"East US\":\r\n case \"US East\":\r\n case \"eastus\":\r\n return \"useast\";\r\n case \"East US 2\":\r\n case \"US East 2\":\r\n case \"eastus2\":\r\n return \"useast2\";\r\n case \"West Europe\":\r\n case \"Europe West\":\r\n case \"westeurope\":\r\n return \"europewest\";\r\n case \"North Europe\":\r\n case \"Europe North\":\r\n case \"northeurope\":\r\n return \"europenorth\";\r\n case \"Brazil South\":\r\n case \"South Brazil\":\r\n case \"southbrazil\":\r\n return \"brazilsouth\";\r\n case \"Australia East\":\r\n case \"East Australia\":\r\n case \"eastaustralia\":\r\n return \"australiaeast\";\r\n case \"Southeast Asia\":\r\n case \"Asia Southeast\":\r\n case \"southeastasia\":\r\n return \"asiasoutheast\";\r\n case \"East Asia\":\r\n case \"Asia East\":\r\n case \"eastasia\":\r\n return \"asiaeast\";\r\n default:\r\n return intentRegion;\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nexport { AudioConfig } from \"./Audio/AudioConfig\";\r\nexport { AudioStreamFormat } from \"./Audio/AudioStreamFormat\";\r\nexport { AudioInputStream, PullAudioInputStream, PushAudioInputStream } from \"./Audio/AudioInputStream\";\r\nexport { AudioOutputStream, PullAudioOutputStream, PushAudioOutputStream} from \"./Audio/AudioOutputStream\";\r\nexport { CancellationReason } from \"./CancellationReason\";\r\nexport { PullAudioInputStreamCallback } from \"./Audio/PullAudioInputStreamCallback\";\r\nexport { PushAudioOutputStreamCallback } from \"./Audio/PushAudioOutputStreamCallback\";\r\nexport { KeywordRecognitionModel } from \"./KeywordRecognitionModel\";\r\nexport { SessionEventArgs } from \"./SessionEventArgs\";\r\nexport { RecognitionEventArgs } from \"./RecognitionEventArgs\";\r\nexport { OutputFormat } from \"./OutputFormat\";\r\nexport { IntentRecognitionEventArgs } from \"./IntentRecognitionEventArgs\";\r\nexport { RecognitionResult } from \"./RecognitionResult\";\r\nexport { SpeechRecognitionResult } from \"./SpeechRecognitionResult\";\r\nexport { IntentRecognitionResult } from \"./IntentRecognitionResult\";\r\nexport { LanguageUnderstandingModel } from \"./LanguageUnderstandingModel\";\r\nexport { SpeechRecognitionEventArgs } from \"./SpeechRecognitionEventArgs\";\r\nexport { SpeechRecognitionCanceledEventArgs } from \"./SpeechRecognitionCanceledEventArgs\";\r\nexport { TranslationRecognitionEventArgs } from \"./TranslationRecognitionEventArgs\";\r\nexport { TranslationSynthesisEventArgs } from \"./TranslationSynthesisEventArgs\";\r\nexport { TranslationRecognitionResult } from \"./TranslationRecognitionResult\";\r\nexport { TranslationSynthesisResult } from \"./TranslationSynthesisResult\";\r\nexport { ResultReason } from \"./ResultReason\";\r\nexport { SpeechConfig, SpeechConfigImpl } from \"./SpeechConfig\";\r\nexport { SpeechTranslationConfig } from \"./SpeechTranslationConfig\";\r\nexport { PropertyCollection } from \"./PropertyCollection\";\r\nexport { PropertyId } from \"./PropertyId\";\r\nexport { Recognizer } from \"./Recognizer\";\r\nexport { SpeechRecognizer } from \"./SpeechRecognizer\";\r\nexport { IntentRecognizer } from \"./IntentRecognizer\";\r\nexport { VoiceProfileType } from \"./VoiceProfileType\";\r\nexport { TranslationRecognizer } from \"./TranslationRecognizer\";\r\nexport { Translations } from \"./Translations\";\r\nexport { NoMatchReason } from \"./NoMatchReason\";\r\nexport { NoMatchDetails } from \"./NoMatchDetails\";\r\nexport { TranslationRecognitionCanceledEventArgs } from \"./TranslationRecognitionCanceledEventArgs\";\r\nexport { IntentRecognitionCanceledEventArgs } from \"./IntentRecognitionCanceledEventArgs\";\r\nexport { CancellationDetailsBase } from \"./CancellationDetailsBase\";\r\nexport { CancellationDetails } from \"./CancellationDetails\";\r\nexport { CancellationErrorCode } from \"./CancellationErrorCodes\";\r\nexport { ConnectionEventArgs } from \"./ConnectionEventArgs\";\r\nexport { ServiceEventArgs } from \"./ServiceEventArgs\";\r\nexport { Connection } from \"./Connection\";\r\nexport { PhraseListGrammar } from \"./PhraseListGrammar\";\r\nexport { DialogServiceConfig } from \"./DialogServiceConfig\";\r\nexport { BotFrameworkConfig } from \"./BotFrameworkConfig\";\r\nexport { CustomCommandsConfig } from \"./CustomCommandsConfig\";\r\nexport { DialogServiceConnector } from \"./DialogServiceConnector\";\r\nexport { ActivityReceivedEventArgs } from \"./ActivityReceivedEventArgs\";\r\nexport { ServicePropertyChannel } from \"./ServicePropertyChannel\";\r\nexport { ProfanityOption } from \"./ProfanityOption\";\r\nexport { BaseAudioPlayer } from \"./Audio/BaseAudioPlayer\";\r\nexport { ConnectionMessageEventArgs } from \"./ConnectionMessageEventArgs\";\r\nexport { ConnectionMessage } from \"./ConnectionMessage\";\r\nexport { VoiceProfile } from \"./VoiceProfile\";\r\nexport { VoiceProfileEnrollmentResult, VoiceProfileEnrollmentCancellationDetails } from \"./VoiceProfileEnrollmentResult\";\r\nexport { VoiceProfileResult, VoiceProfileCancellationDetails } from \"./VoiceProfileResult\";\r\nexport { VoiceProfileClient } from \"./VoiceProfileClient\";\r\nexport { SpeakerRecognizer } from \"./SpeakerRecognizer\";\r\nexport { SpeakerIdentificationModel } from \"./SpeakerIdentificationModel\";\r\nexport { SpeakerVerificationModel } from \"./SpeakerVerificationModel\";\r\nexport { AutoDetectSourceLanguageConfig } from \"./AutoDetectSourceLanguageConfig\";\r\nexport { AutoDetectSourceLanguageResult } from \"./AutoDetectSourceLanguageResult\";\r\nexport { SourceLanguageConfig } from \"./SourceLanguageConfig\";\r\nexport { SpeakerRecognitionResult, SpeakerRecognitionResultType, SpeakerRecognitionCancellationDetails } from \"./SpeakerRecognitionResult\";\r\nexport { Conversation,\r\n ConversationExpirationEventArgs,\r\n ConversationParticipantsChangedEventArgs,\r\n ConversationTranslationCanceledEventArgs,\r\n ConversationTranslationEventArgs,\r\n ConversationTranslationResult,\r\n ConversationTranslator,\r\n Participant,\r\n ParticipantChangedReason,\r\n User\r\n } from \"./Transcription/Exports\";\r\nexport { SpeechSynthesisOutputFormat } from \"./SpeechSynthesisOutputFormat\";\r\nexport { SpeechSynthesizer } from \"./SpeechSynthesizer\";\r\nexport { SpeechSynthesisResult } from \"./SpeechSynthesisResult\";\r\nexport { SpeechSynthesisEventArgs } from \"./SpeechSynthesisEventArgs\";\r\nexport { SpeechSynthesisWordBoundaryEventArgs} from \"./SpeechSynthesisWordBoundaryEventArgs\";\r\nexport { IPlayer } from \"./Audio/IPlayer\";\r\nexport { SpeakerAudioDestination } from \"./Audio/SpeakerAudioDestination\";\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport { PathLike } from \"fs\";\r\nimport {\r\n FileAudioSource,\r\n MicAudioSource,\r\n PcmRecorder,\r\n} from \"../../common.browser/Exports\";\r\nimport { ISpeechConfigAudioDevice } from \"../../common.speech/Exports\";\r\nimport {\r\n AudioSourceEvent,\r\n Deferred,\r\n EventSource,\r\n IAudioDestination,\r\n IAudioSource,\r\n IAudioStreamNode,\r\n Promise\r\n} from \"../../common/Exports\";\r\nimport { Contracts } from \"../Contracts\";\r\nimport {\r\n AudioInputStream,\r\n AudioOutputStream,\r\n AudioStreamFormat,\r\n IPlayer,\r\n PropertyCollection,\r\n PropertyId,\r\n PullAudioInputStreamCallback,\r\n PullAudioOutputStream,\r\n PushAudioOutputStream,\r\n PushAudioOutputStreamCallback,\r\n SpeakerAudioDestination\r\n} from \"../Exports\";\r\nimport { AudioFileWriter } from \"./AudioFileWriter\";\r\nimport { PullAudioInputStreamImpl, PushAudioInputStreamImpl } from \"./AudioInputStream\";\r\nimport { PullAudioOutputStreamImpl, PushAudioOutputStreamImpl } from \"./AudioOutputStream\";\r\nimport { AudioStreamFormatImpl } from \"./AudioStreamFormat\";\r\n\r\n/**\r\n * Represents audio input configuration used for specifying what type of input to use (microphone, file, stream).\r\n * @class AudioConfig\r\n * Updated in version 1.11.0\r\n */\r\nexport abstract class AudioConfig {\r\n /**\r\n * Creates an AudioConfig object representing the default microphone on the system.\r\n * @member AudioConfig.fromDefaultMicrophoneInput\r\n * @function\r\n * @public\r\n * @returns {AudioConfig} The audio input configuration being created.\r\n */\r\n public static fromDefaultMicrophoneInput(): AudioConfig {\r\n const pcmRecorder = new PcmRecorder();\r\n return new AudioConfigImpl(new MicAudioSource(pcmRecorder));\r\n }\r\n\r\n /**\r\n * Creates an AudioConfig object representing a microphone with the specified device ID.\r\n * @member AudioConfig.fromMicrophoneInput\r\n * @function\r\n * @public\r\n * @param {string | undefined} deviceId - Specifies the device ID of the microphone to be used.\r\n * Default microphone is used the value is omitted.\r\n * @returns {AudioConfig} The audio input configuration being created.\r\n */\r\n public static fromMicrophoneInput(deviceId?: string): AudioConfig {\r\n const pcmRecorder = new PcmRecorder();\r\n return new AudioConfigImpl(new MicAudioSource(pcmRecorder, deviceId));\r\n }\r\n\r\n /**\r\n * Creates an AudioConfig object representing the specified file.\r\n * @member AudioConfig.fromWavFileInput\r\n * @function\r\n * @public\r\n * @param {File} fileName - Specifies the audio input file. Currently, only WAV / PCM is supported.\r\n * @returns {AudioConfig} The audio input configuration being created.\r\n */\r\n public static fromWavFileInput(file: File): AudioConfig {\r\n return new AudioConfigImpl(new FileAudioSource(file));\r\n }\r\n\r\n /**\r\n * Creates an AudioConfig object representing the specified stream.\r\n * @member AudioConfig.fromStreamInput\r\n * @function\r\n * @public\r\n * @param {AudioInputStream | PullAudioInputStreamCallback} audioStream - Specifies the custom audio input\r\n * stream. Currently, only WAV / PCM is supported.\r\n * @returns {AudioConfig} The audio input configuration being created.\r\n */\r\n public static fromStreamInput(audioStream: AudioInputStream | PullAudioInputStreamCallback): AudioConfig {\r\n if (audioStream instanceof PullAudioInputStreamCallback) {\r\n return new AudioConfigImpl(new PullAudioInputStreamImpl(audioStream as PullAudioInputStreamCallback));\r\n }\r\n\r\n if (audioStream instanceof AudioInputStream) {\r\n return new AudioConfigImpl(audioStream as PushAudioInputStreamImpl);\r\n }\r\n\r\n throw new Error(\"Not Supported Type\");\r\n }\r\n\r\n /**\r\n * Creates an AudioConfig object representing the default speaker.\r\n * @member AudioConfig.fromDefaultSpeakerOutput\r\n * @function\r\n * @public\r\n * @returns {AudioConfig} The audio output configuration being created.\r\n * Added in version 1.11.0\r\n */\r\n public static fromDefaultSpeakerOutput(): AudioConfig {\r\n return new AudioOutputConfigImpl(new SpeakerAudioDestination());\r\n }\r\n\r\n /**\r\n * Creates an AudioConfig object representing the custom IPlayer object.\r\n * You can use the IPlayer object to control pause, resume, etc.\r\n * @member AudioConfig.fromSpeakerOutput\r\n * @function\r\n * @public\r\n * @param {IPlayer} player - the IPlayer object for playback.\r\n * @returns {AudioConfig} The audio output configuration being created.\r\n * Added in version 1.12.0\r\n */\r\n public static fromSpeakerOutput(player?: IPlayer): AudioConfig {\r\n if (player === undefined) {\r\n return AudioConfig.fromDefaultSpeakerOutput();\r\n }\r\n if (player instanceof SpeakerAudioDestination) {\r\n return new AudioOutputConfigImpl(player as SpeakerAudioDestination);\r\n }\r\n\r\n throw new Error(\"Not Supported Type\");\r\n }\r\n\r\n /**\r\n * Creates an AudioConfig object representing a specified output audio file\r\n * @member AudioConfig.fromAudioFileOutput\r\n * @function\r\n * @public\r\n * @param {PathLike} filename - the filename of the output audio file\r\n * @returns {AudioConfig} The audio output configuration being created.\r\n * Added in version 1.11.0\r\n */\r\n public static fromAudioFileOutput(filename: PathLike): AudioConfig {\r\n return new AudioOutputConfigImpl(new AudioFileWriter(filename));\r\n }\r\n\r\n /**\r\n * Creates an AudioConfig object representing a specified audio output stream\r\n * @member AudioConfig.fromStreamOutput\r\n * @function\r\n * @public\r\n * @param {AudioOutputStream | PushAudioOutputStreamCallback} audioStream - Specifies the custom audio output\r\n * stream.\r\n * @returns {AudioConfig} The audio output configuration being created.\r\n * Added in version 1.11.0\r\n */\r\n public static fromStreamOutput(audioStream: AudioOutputStream | PushAudioOutputStreamCallback): AudioConfig {\r\n if (audioStream instanceof PushAudioOutputStreamCallback) {\r\n return new AudioOutputConfigImpl(new PushAudioOutputStreamImpl(audioStream as PushAudioOutputStreamCallback));\r\n }\r\n\r\n if (audioStream instanceof PushAudioOutputStream) {\r\n return new AudioOutputConfigImpl(audioStream as PushAudioOutputStreamImpl);\r\n }\r\n\r\n if (audioStream instanceof PullAudioOutputStream) {\r\n return new AudioOutputConfigImpl(audioStream as PullAudioOutputStreamImpl);\r\n }\r\n\r\n throw new Error(\"Not Supported Type\");\r\n }\r\n\r\n /**\r\n * Explicitly frees any external resource attached to the object\r\n * @member AudioConfig.prototype.close\r\n * @function\r\n * @public\r\n */\r\n public abstract close(): void;\r\n\r\n /**\r\n * Sets an arbitrary property.\r\n * @member SpeechConfig.prototype.setProperty\r\n * @function\r\n * @public\r\n * @param {string} name - The name of the property to set.\r\n * @param {string} value - The new value of the property.\r\n */\r\n public abstract setProperty(name: string, value: string): void;\r\n\r\n /**\r\n * Returns the current value of an arbitrary property.\r\n * @member SpeechConfig.prototype.getProperty\r\n * @function\r\n * @public\r\n * @param {string} name - The name of the property to query.\r\n * @param {string} def - The value to return in case the property is not known.\r\n * @returns {string} The current value, or provided default, of the given property.\r\n */\r\n public abstract getProperty(name: string, def?: string): string;\r\n\r\n}\r\n\r\n/**\r\n * Represents audio input stream used for custom audio input configurations.\r\n * @private\r\n * @class AudioConfigImpl\r\n */\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class AudioConfigImpl extends AudioConfig implements IAudioSource {\r\n private privSource: IAudioSource;\r\n\r\n /**\r\n * Creates and initializes an instance of this class.\r\n * @constructor\r\n * @param {IAudioSource} source - An audio source.\r\n */\r\n public constructor(source: IAudioSource) {\r\n super();\r\n this.privSource = source;\r\n }\r\n\r\n /**\r\n * Format information for the audio\r\n */\r\n public get format(): Promise {\r\n return this.privSource.format;\r\n }\r\n\r\n /**\r\n * @member AudioConfigImpl.prototype.close\r\n * @function\r\n * @public\r\n */\r\n public close(): void {\r\n this.privSource.turnOff();\r\n }\r\n\r\n /**\r\n * @member AudioConfigImpl.prototype.id\r\n * @function\r\n * @public\r\n */\r\n public id(): string {\r\n return this.privSource.id();\r\n }\r\n\r\n /**\r\n * @member AudioConfigImpl.prototype.blob\r\n * @function\r\n * @public\r\n */\r\n public get blob(): Promise {\r\n return this.privSource.blob;\r\n }\r\n\r\n /**\r\n * @member AudioConfigImpl.prototype.turnOn\r\n * @function\r\n * @public\r\n * @returns {Promise} A promise.\r\n */\r\n public turnOn(): Promise {\r\n return this.privSource.turnOn();\r\n }\r\n\r\n /**\r\n * @member AudioConfigImpl.prototype.attach\r\n * @function\r\n * @public\r\n * @param {string} audioNodeId - The audio node id.\r\n * @returns {Promise} A promise.\r\n */\r\n public attach(audioNodeId: string): Promise {\r\n return this.privSource.attach(audioNodeId);\r\n }\r\n\r\n /**\r\n * @member AudioConfigImpl.prototype.detach\r\n * @function\r\n * @public\r\n * @param {string} audioNodeId - The audio node id.\r\n */\r\n public detach(audioNodeId: string): void {\r\n return this.privSource.detach(audioNodeId);\r\n }\r\n\r\n /**\r\n * @member AudioConfigImpl.prototype.turnOff\r\n * @function\r\n * @public\r\n * @returns {Promise} A promise.\r\n */\r\n public turnOff(): Promise {\r\n return this.privSource.turnOff();\r\n }\r\n\r\n /**\r\n * @member AudioConfigImpl.prototype.events\r\n * @function\r\n * @public\r\n * @returns {EventSource} An event source for audio events.\r\n */\r\n public get events(): EventSource {\r\n return this.privSource.events;\r\n }\r\n\r\n public setProperty(name: string, value: string): void {\r\n Contracts.throwIfNull(value, \"value\");\r\n\r\n if (undefined !== this.privSource.setProperty) {\r\n this.privSource.setProperty(name, value);\r\n } else {\r\n throw new Error(\"This AudioConfig instance does not support setting properties.\");\r\n }\r\n\r\n }\r\n\r\n public getProperty(name: string, def?: string): string {\r\n if (undefined !== this.privSource.getProperty) {\r\n return this.privSource.getProperty(name, def);\r\n } else {\r\n throw new Error(\"This AudioConfig instance does not support getting properties.\");\r\n }\r\n\r\n return def;\r\n }\r\n\r\n public get deviceInfo(): Promise {\r\n return this.privSource.deviceInfo;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class AudioOutputConfigImpl extends AudioConfig implements IAudioDestination {\r\n private privDestination: IAudioDestination;\r\n\r\n /**\r\n * Creates and initializes an instance of this class.\r\n * @constructor\r\n * @param {IAudioDestination} destination - An audio destination.\r\n */\r\n public constructor(destination: IAudioDestination) {\r\n super();\r\n this.privDestination = destination;\r\n }\r\n\r\n public set format(format: AudioStreamFormat) {\r\n this.privDestination.format = format;\r\n }\r\n\r\n public write(buffer: ArrayBuffer): void {\r\n this.privDestination.write(buffer);\r\n }\r\n\r\n public close(): void {\r\n this.privDestination.close();\r\n }\r\n\r\n public id(): string {\r\n return this.privDestination.id();\r\n }\r\n\r\n public setProperty(name: string, value: string): void {\r\n throw new Error(\"This AudioConfig instance does not support setting properties.\");\r\n }\r\n\r\n public getProperty(name: string, def?: string): string {\r\n throw new Error(\"This AudioConfig instance does not support getting properties.\");\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\n/**\r\n * @class Contracts\r\n * @private\r\n */\r\nexport class Contracts {\r\n public static throwIfNullOrUndefined(param: any, name: string): void {\r\n if (param === undefined || param === null) {\r\n throw new Error(\"throwIfNullOrUndefined:\" + name);\r\n }\r\n }\r\n\r\n public static throwIfNull(param: any, name: string): void {\r\n if (param === null) {\r\n throw new Error(\"throwIfNull:\" + name);\r\n }\r\n }\r\n\r\n public static throwIfNullOrWhitespace(param: string, name: string): void {\r\n Contracts.throwIfNullOrUndefined(param, name);\r\n\r\n if ((\"\" + param).trim().length < 1) {\r\n throw new Error(\"throwIfNullOrWhitespace:\" + name);\r\n }\r\n }\r\n\r\n public static throwIfDisposed(isDisposed: boolean): void {\r\n if (isDisposed) {\r\n throw new Error(\"the object is already disposed\");\r\n }\r\n }\r\n\r\n public static throwIfArrayEmptyOrWhitespace(array: string[], name: string): void {\r\n Contracts.throwIfNullOrUndefined(array, name);\r\n\r\n if (array.length === 0) {\r\n throw new Error(\"throwIfArrayEmptyOrWhitespace:\" + name);\r\n }\r\n\r\n for (const item of array) {\r\n Contracts.throwIfNullOrWhitespace(item, name);\r\n }\r\n }\r\n\r\n public static throwIfFileDoesNotExist(param: any, name: string): void {\r\n Contracts.throwIfNullOrWhitespace(param, name);\r\n\r\n // TODO check for file existence.\r\n }\r\n\r\n public static throwIfNotUndefined(param: any, name: string): void {\r\n if (param !== undefined) {\r\n throw new Error(\"throwIfNotUndefined:\" + name);\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport * as fs from \"fs\";\r\nimport { IAudioDestination } from \"../../common/Exports\";\r\nimport { Contracts } from \"../Contracts\";\r\nimport { AudioStreamFormat } from \"../Exports\";\r\nimport { AudioOutputFormatImpl } from \"./AudioOutputFormat\";\r\n\r\nexport class AudioFileWriter implements IAudioDestination {\r\n private privAudioFormat: AudioOutputFormatImpl;\r\n private privFd: number;\r\n private privId: string;\r\n private privWriteStream: fs.WriteStream;\r\n\r\n public constructor(filename: fs.PathLike) {\r\n this.privFd = fs.openSync(filename, \"w\");\r\n }\r\n\r\n public set format(format: AudioStreamFormat) {\r\n Contracts.throwIfNotUndefined(this.privAudioFormat, \"format is already set\");\r\n this.privAudioFormat = format as AudioOutputFormatImpl;\r\n let headerOffset: number = 0;\r\n if (this.privAudioFormat.hasHeader) {\r\n headerOffset = this.privAudioFormat.header.byteLength;\r\n }\r\n if (this.privFd !== undefined) {\r\n this.privWriteStream = fs.createWriteStream(\"\", {fd: this.privFd, start: headerOffset, autoClose: false});\r\n }\r\n }\r\n\r\n public write(buffer: ArrayBuffer): void {\r\n Contracts.throwIfNullOrUndefined(this.privAudioFormat, \"must set format before writing.\");\r\n if (this.privWriteStream !== undefined) {\r\n this.privWriteStream.write(new Uint8Array(buffer.slice(0)));\r\n }\r\n }\r\n\r\n public close(): void {\r\n if (this.privFd !== undefined) {\r\n this.privWriteStream.on(\"finish\", () => {\r\n if (this.privAudioFormat.hasHeader) {\r\n this.privAudioFormat.updateHeader(this.privWriteStream.bytesWritten);\r\n fs.writeSync(this.privFd,\r\n new Int8Array(this.privAudioFormat.header),\r\n 0,\r\n this.privAudioFormat.header.byteLength,\r\n 0);\r\n }\r\n fs.closeSync(this.privFd);\r\n this.privFd = undefined;\r\n });\r\n this.privWriteStream.end();\r\n }\r\n }\r\n\r\n public id = (): string => {\r\n return this.privId;\r\n }\r\n}\r\n","/* (ignored) */","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport {\r\n connectivity,\r\n ISpeechConfigAudioDevice,\r\n type,\r\n} from \"../../common.speech/Exports\";\r\nimport {\r\n AudioSourceEvent,\r\n AudioSourceInitializingEvent,\r\n AudioSourceReadyEvent,\r\n AudioStreamNodeAttachedEvent,\r\n AudioStreamNodeAttachingEvent,\r\n AudioStreamNodeDetachedEvent,\r\n ChunkedArrayBufferStream,\r\n Deferred,\r\n Events,\r\n EventSource,\r\n IAudioSource,\r\n IAudioStreamNode,\r\n IStreamChunk,\r\n Promise,\r\n PromiseHelper,\r\n PromiseResult,\r\n Stream,\r\n} from \"../../common/Exports\";\r\nimport { createNoDashGuid } from \"../../common/Guid\";\r\nimport { AudioStreamFormat, PullAudioInputStreamCallback } from \"../Exports\";\r\nimport { AudioStreamFormatImpl } from \"./AudioStreamFormat\";\r\n\r\n/**\r\n * Represents audio input stream used for custom audio input configurations.\r\n * @class AudioInputStream\r\n */\r\nexport abstract class AudioInputStream {\r\n\r\n /**\r\n * Creates and initializes an instance.\r\n * @constructor\r\n */\r\n protected constructor() { }\r\n\r\n /**\r\n * Creates a memory backed PushAudioInputStream with the specified audio format.\r\n * @member AudioInputStream.createPushStream\r\n * @function\r\n * @public\r\n * @param {AudioStreamFormat} format - The audio data format in which audio will be\r\n * written to the push audio stream's write() method (Required if format is not 16 kHz 16bit mono PCM).\r\n * @returns {PushAudioInputStream} The audio input stream being created.\r\n */\r\n public static createPushStream(format?: AudioStreamFormat): PushAudioInputStream {\r\n return PushAudioInputStream.create(format);\r\n }\r\n\r\n /**\r\n * Creates a PullAudioInputStream that delegates to the specified callback interface for read()\r\n * and close() methods.\r\n * @member AudioInputStream.createPullStream\r\n * @function\r\n * @public\r\n * @param {PullAudioInputStreamCallback} callback - The custom audio input object, derived from\r\n * PullAudioInputStreamCallback\r\n * @param {AudioStreamFormat} format - The audio data format in which audio will be returned from\r\n * the callback's read() method (Required if format is not 16 kHz 16bit mono PCM).\r\n * @returns {PullAudioInputStream} The audio input stream being created.\r\n */\r\n public static createPullStream(callback: PullAudioInputStreamCallback, format?: AudioStreamFormat): PullAudioInputStream {\r\n return PullAudioInputStream.create(callback, format);\r\n // throw new Error(\"Oops\");\r\n }\r\n\r\n /**\r\n * Explicitly frees any external resource attached to the object\r\n * @member AudioInputStream.prototype.close\r\n * @function\r\n * @public\r\n */\r\n public abstract close(): void;\r\n}\r\n\r\n/**\r\n * Represents memory backed push audio input stream used for custom audio input configurations.\r\n * @class PushAudioInputStream\r\n */\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport abstract class PushAudioInputStream extends AudioInputStream {\r\n\r\n /**\r\n * Creates a memory backed PushAudioInputStream with the specified audio format.\r\n * @member PushAudioInputStream.create\r\n * @function\r\n * @public\r\n * @param {AudioStreamFormat} format - The audio data format in which audio will be written to the\r\n * push audio stream's write() method (Required if format is not 16 kHz 16bit mono PCM).\r\n * @returns {PushAudioInputStream} The push audio input stream being created.\r\n */\r\n public static create(format?: AudioStreamFormat): PushAudioInputStream {\r\n return new PushAudioInputStreamImpl(format);\r\n }\r\n\r\n /**\r\n * Writes the audio data specified by making an internal copy of the data.\r\n * @member PushAudioInputStream.prototype.write\r\n * @function\r\n * @public\r\n * @param {ArrayBuffer} dataBuffer - The audio buffer of which this function will make a copy.\r\n */\r\n public abstract write(dataBuffer: ArrayBuffer): void;\r\n\r\n /**\r\n * Closes the stream.\r\n * @member PushAudioInputStream.prototype.close\r\n * @function\r\n * @public\r\n */\r\n public abstract close(): void;\r\n}\r\n\r\n/**\r\n * Represents memory backed push audio input stream used for custom audio input configurations.\r\n * @private\r\n * @class PushAudioInputStreamImpl\r\n */\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class PushAudioInputStreamImpl extends PushAudioInputStream implements IAudioSource {\r\n\r\n private privFormat: AudioStreamFormatImpl;\r\n private privId: string;\r\n private privEvents: EventSource;\r\n private privStream: Stream;\r\n\r\n /**\r\n * Creates and initalizes an instance with the given values.\r\n * @constructor\r\n * @param {AudioStreamFormat} format - The audio stream format.\r\n */\r\n public constructor(format?: AudioStreamFormat) {\r\n super();\r\n if (format === undefined) {\r\n this.privFormat = AudioStreamFormatImpl.getDefaultInputFormat();\r\n } else {\r\n this.privFormat = format as AudioStreamFormatImpl;\r\n }\r\n this.privEvents = new EventSource();\r\n this.privId = createNoDashGuid();\r\n this.privStream = new ChunkedArrayBufferStream(this.privFormat.avgBytesPerSec / 10);\r\n }\r\n\r\n /**\r\n * Format information for the audio\r\n */\r\n public get format(): Promise {\r\n return PromiseHelper.fromResult(this.privFormat);\r\n }\r\n\r\n /**\r\n * Writes the audio data specified by making an internal copy of the data.\r\n * @member PushAudioInputStreamImpl.prototype.write\r\n * @function\r\n * @public\r\n * @param {ArrayBuffer} dataBuffer - The audio buffer of which this function will make a copy.\r\n */\r\n public write(dataBuffer: ArrayBuffer): void {\r\n this.privStream.writeStreamChunk({\r\n buffer: dataBuffer,\r\n isEnd: false,\r\n timeReceived: Date.now()\r\n });\r\n }\r\n\r\n /**\r\n * Closes the stream.\r\n * @member PushAudioInputStreamImpl.prototype.close\r\n * @function\r\n * @public\r\n */\r\n public close(): void {\r\n this.privStream.close();\r\n }\r\n\r\n public id(): string {\r\n return this.privId;\r\n }\r\n\r\n public get blob(): Promise {\r\n return this.attach(\"id\").onSuccessContinueWithPromise((audioNode: IAudioStreamNode) => {\r\n const data: ArrayBuffer[] = [];\r\n let bufferData = Buffer.from(\"\");\r\n const readCycle = (): Promise => {\r\n return audioNode.read().onSuccessContinueWithPromise((audioStreamChunk: IStreamChunk) => {\r\n if (!audioStreamChunk || audioStreamChunk.isEnd) {\r\n if (typeof (XMLHttpRequest) !== \"undefined\") {\r\n return PromiseHelper.fromResult(new Blob(data));\r\n } else {\r\n return PromiseHelper.fromResult(Buffer.from(bufferData));\r\n }\r\n } else {\r\n if (typeof (Blob) !== \"undefined\") {\r\n data.push(audioStreamChunk.buffer);\r\n } else {\r\n bufferData = Buffer.concat([bufferData, this.toBuffer(audioStreamChunk.buffer)]);\r\n }\r\n return readCycle();\r\n }\r\n });\r\n };\r\n return readCycle();\r\n });\r\n }\r\n\r\n public turnOn(): Promise {\r\n this.onEvent(new AudioSourceInitializingEvent(this.privId)); // no stream id\r\n this.onEvent(new AudioSourceReadyEvent(this.privId));\r\n return PromiseHelper.fromResult(true);\r\n }\r\n\r\n public attach(audioNodeId: string): Promise {\r\n this.onEvent(new AudioStreamNodeAttachingEvent(this.privId, audioNodeId));\r\n\r\n return this.turnOn()\r\n .onSuccessContinueWith>((_: boolean) => {\r\n // For now we support a single parallel reader of the pushed stream.\r\n // So we can simiply hand the stream to the recognizer and let it recognize.\r\n\r\n return this.privStream;\r\n })\r\n .onSuccessContinueWith((stream: Stream) => {\r\n this.onEvent(new AudioStreamNodeAttachedEvent(this.privId, audioNodeId));\r\n\r\n return {\r\n detach: () => {\r\n stream.readEnded();\r\n this.onEvent(new AudioStreamNodeDetachedEvent(this.privId, audioNodeId));\r\n this.turnOff();\r\n },\r\n id: () => {\r\n return audioNodeId;\r\n },\r\n read: () => {\r\n return stream.read();\r\n },\r\n };\r\n });\r\n }\r\n\r\n public detach(audioNodeId: string): void {\r\n this.onEvent(new AudioStreamNodeDetachedEvent(this.privId, audioNodeId));\r\n }\r\n\r\n public turnOff(): Promise {\r\n return PromiseHelper.fromResult(false);\r\n }\r\n\r\n public get events(): EventSource {\r\n return this.privEvents;\r\n }\r\n\r\n public get deviceInfo(): Promise {\r\n return PromiseHelper.fromResult({\r\n bitspersample: this.privFormat.bitsPerSample,\r\n channelcount: this.privFormat.channels,\r\n connectivity: connectivity.Unknown,\r\n manufacturer: \"Speech SDK\",\r\n model: \"PushStream\",\r\n samplerate: this.privFormat.samplesPerSec,\r\n type: type.Stream,\r\n });\r\n }\r\n\r\n private onEvent = (event: AudioSourceEvent): void => {\r\n this.privEvents.onEvent(event);\r\n Events.instance.onEvent(event);\r\n }\r\n\r\n private toBuffer(arrayBuffer: ArrayBuffer): Buffer {\r\n const buf: Buffer = Buffer.alloc(arrayBuffer.byteLength);\r\n const view: Uint8Array = new Uint8Array(arrayBuffer);\r\n for (let i = 0; i < buf.length; ++i) {\r\n buf[i] = view[i];\r\n }\r\n return buf;\r\n }\r\n}\r\n\r\n/*\r\n * Represents audio input stream used for custom audio input configurations.\r\n * @class PullAudioInputStream\r\n */\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport abstract class PullAudioInputStream extends AudioInputStream {\r\n /**\r\n * Creates and initializes and instance.\r\n * @constructor\r\n */\r\n protected constructor() { super(); }\r\n\r\n /**\r\n * Creates a PullAudioInputStream that delegates to the specified callback interface for\r\n * read() and close() methods, using the default format (16 kHz 16bit mono PCM).\r\n * @member PullAudioInputStream.create\r\n * @function\r\n * @public\r\n * @param {PullAudioInputStreamCallback} callback - The custom audio input object,\r\n * derived from PullAudioInputStreamCustomCallback\r\n * @param {AudioStreamFormat} format - The audio data format in which audio will be\r\n * returned from the callback's read() method (Required if format is not 16 kHz 16bit mono PCM).\r\n * @returns {PullAudioInputStream} The push audio input stream being created.\r\n */\r\n public static create(callback: PullAudioInputStreamCallback, format?: AudioStreamFormat): PullAudioInputStream {\r\n return new PullAudioInputStreamImpl(callback, format as AudioStreamFormatImpl);\r\n }\r\n\r\n /**\r\n * Explicitly frees any external resource attached to the object\r\n * @member PullAudioInputStream.prototype.close\r\n * @function\r\n * @public\r\n */\r\n public abstract close(): void;\r\n\r\n}\r\n\r\n/**\r\n * Represents audio input stream used for custom audio input configurations.\r\n * @private\r\n * @class PullAudioInputStreamImpl\r\n */\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class PullAudioInputStreamImpl extends PullAudioInputStream implements IAudioSource {\r\n\r\n private privCallback: PullAudioInputStreamCallback;\r\n private privFormat: AudioStreamFormatImpl;\r\n private privId: string;\r\n private privEvents: EventSource;\r\n private privIsClosed: boolean;\r\n private privBufferSize: number;\r\n\r\n /**\r\n * Creates a PullAudioInputStream that delegates to the specified callback interface for\r\n * read() and close() methods, using the default format (16 kHz 16bit mono PCM).\r\n * @constructor\r\n * @param {PullAudioInputStreamCallback} callback - The custom audio input object,\r\n * derived from PullAudioInputStreamCustomCallback\r\n * @param {AudioStreamFormat} format - The audio data format in which audio will be\r\n * returned from the callback's read() method (Required if format is not 16 kHz 16bit mono PCM).\r\n */\r\n public constructor(callback: PullAudioInputStreamCallback, format?: AudioStreamFormatImpl) {\r\n super();\r\n if (undefined === format) {\r\n this.privFormat = AudioStreamFormat.getDefaultInputFormat() as AudioStreamFormatImpl;\r\n } else {\r\n this.privFormat = format;\r\n }\r\n this.privEvents = new EventSource();\r\n this.privId = createNoDashGuid();\r\n this.privCallback = callback;\r\n this.privIsClosed = false;\r\n this.privBufferSize = this.privFormat.avgBytesPerSec / 10;\r\n }\r\n\r\n /**\r\n * Format information for the audio\r\n */\r\n public get format(): Promise {\r\n return PromiseHelper.fromResult(this.privFormat);\r\n }\r\n\r\n /**\r\n * Closes the stream.\r\n * @member PullAudioInputStreamImpl.prototype.close\r\n * @function\r\n * @public\r\n */\r\n public close(): void {\r\n this.privIsClosed = true;\r\n this.privCallback.close();\r\n }\r\n\r\n public id(): string {\r\n return this.privId;\r\n }\r\n\r\n public get blob(): Promise {\r\n return PromiseHelper.fromError(\"Not implemented\");\r\n }\r\n\r\n public turnOn(): Promise {\r\n this.onEvent(new AudioSourceInitializingEvent(this.privId)); // no stream id\r\n this.onEvent(new AudioSourceReadyEvent(this.privId));\r\n return PromiseHelper.fromResult(true);\r\n }\r\n\r\n public attach(audioNodeId: string): Promise {\r\n this.onEvent(new AudioStreamNodeAttachingEvent(this.privId, audioNodeId));\r\n\r\n return this.turnOn()\r\n .onSuccessContinueWith((result: boolean) => {\r\n this.onEvent(new AudioStreamNodeAttachedEvent(this.privId, audioNodeId));\r\n\r\n return {\r\n detach: () => {\r\n this.privCallback.close();\r\n this.onEvent(new AudioStreamNodeDetachedEvent(this.privId, audioNodeId));\r\n this.turnOff();\r\n },\r\n id: () => {\r\n return audioNodeId;\r\n },\r\n read: (): Promise> => {\r\n let totalBytes: number = 0;\r\n let transmitBuff: ArrayBuffer;\r\n\r\n // Until we have the minimum number of bytes to send in a transmission, keep asking for more.\r\n while (totalBytes < this.privBufferSize) {\r\n // Sizing the read buffer to the delta between the perfect size and what's left means we won't ever get too much\r\n // data back.\r\n const readBuff: ArrayBuffer = new ArrayBuffer(this.privBufferSize - totalBytes);\r\n const pulledBytes: number = this.privCallback.read(readBuff);\r\n\r\n // If there is no return buffer yet defined, set the return buffer to the that was just populated.\r\n // This was, if we have enough data there's no copy penalty, but if we don't we have a buffer that's the\r\n // preferred size allocated.\r\n if (undefined === transmitBuff) {\r\n transmitBuff = readBuff;\r\n } else {\r\n // Not the first bite at the apple, so fill the return buffer with the data we got back.\r\n const intView: Int8Array = new Int8Array(transmitBuff);\r\n intView.set(new Int8Array(readBuff), totalBytes);\r\n }\r\n\r\n // If there are no bytes to read, just break out and be done.\r\n if (0 === pulledBytes) {\r\n break;\r\n }\r\n\r\n totalBytes += pulledBytes;\r\n }\r\n\r\n return PromiseHelper.fromResult>({\r\n buffer: transmitBuff.slice(0, totalBytes),\r\n isEnd: this.privIsClosed || totalBytes === 0,\r\n timeReceived: Date.now(),\r\n });\r\n },\r\n };\r\n });\r\n }\r\n\r\n public detach(audioNodeId: string): void {\r\n this.onEvent(new AudioStreamNodeDetachedEvent(this.privId, audioNodeId));\r\n }\r\n\r\n public turnOff(): Promise {\r\n return PromiseHelper.fromResult(false);\r\n }\r\n\r\n public get events(): EventSource {\r\n return this.privEvents;\r\n }\r\n\r\n public get deviceInfo(): Promise {\r\n return PromiseHelper.fromResult({\r\n bitspersample: this.privFormat.bitsPerSample,\r\n channelcount: this.privFormat.channels,\r\n connectivity: connectivity.Unknown,\r\n manufacturer: \"Speech SDK\",\r\n model: \"PullStream\",\r\n samplerate: this.privFormat.samplesPerSec,\r\n type: type.Stream,\r\n });\r\n }\r\n\r\n private onEvent = (event: AudioSourceEvent): void => {\r\n this.privEvents.onEvent(event);\r\n Events.instance.onEvent(event);\r\n }\r\n}\r\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\n/**\r\n * Represents audio stream format used for custom audio input configurations.\r\n * @class AudioStreamFormat\r\n */\r\nexport abstract class AudioStreamFormat {\r\n /**\r\n * Creates an audio stream format object representing the default audio stream\r\n * format (16KHz 16bit mono PCM).\r\n * @member AudioStreamFormat.getDefaultInputFormat\r\n * @function\r\n * @public\r\n * @returns {AudioStreamFormat} The audio stream format being created.\r\n */\r\n public static getDefaultInputFormat(): AudioStreamFormat {\r\n return AudioStreamFormatImpl.getDefaultInputFormat();\r\n }\r\n\r\n /**\r\n * Creates an audio stream format object with the specified pcm waveformat characteristics.\r\n * @member AudioStreamFormat.getWaveFormatPCM\r\n * @function\r\n * @public\r\n * @param {number} samplesPerSecond - Sample rate, in samples per second (Hertz).\r\n * @param {number} bitsPerSample - Bits per sample, typically 16.\r\n * @param {number} channels - Number of channels in the waveform-audio data. Monaural data\r\n * uses one channel and stereo data uses two channels.\r\n * @returns {AudioStreamFormat} The audio stream format being created.\r\n */\r\n public static getWaveFormatPCM(samplesPerSecond: number, bitsPerSample: number, channels: number): AudioStreamFormat {\r\n return new AudioStreamFormatImpl(samplesPerSecond, bitsPerSample, channels);\r\n }\r\n\r\n /**\r\n * Explicitly frees any external resource attached to the object\r\n * @member AudioStreamFormat.prototype.close\r\n * @function\r\n * @public\r\n */\r\n public abstract close(): void;\r\n}\r\n\r\n/**\r\n * @private\r\n * @class AudioStreamFormatImpl\r\n */\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class AudioStreamFormatImpl extends AudioStreamFormat {\r\n protected privHeader: ArrayBuffer;\r\n\r\n /**\r\n * Creates an instance with the given values.\r\n * @constructor\r\n * @param {number} samplesPerSec - Samples per second.\r\n * @param {number} bitsPerSample - Bits per sample.\r\n * @param {number} channels - Number of channels.\r\n */\r\n public constructor(samplesPerSec: number = 16000, bitsPerSample: number = 16, channels: number = 1) {\r\n super();\r\n this.formatTag = 1;\r\n this.bitsPerSample = bitsPerSample;\r\n this.samplesPerSec = samplesPerSec;\r\n this.channels = channels;\r\n this.avgBytesPerSec = this.samplesPerSec * this.channels * (this.bitsPerSample / 8);\r\n this.blockAlign = this.channels * Math.max(this.bitsPerSample, 8);\r\n\r\n this.privHeader = new ArrayBuffer(44);\r\n\r\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView\r\n const view = new DataView(this.privHeader);\r\n\r\n /* RIFF identifier */\r\n this.setString(view, 0, \"RIFF\");\r\n /* file length */\r\n view.setUint32(4, 0, true);\r\n /* RIFF type & Format */\r\n this.setString(view, 8, \"WAVEfmt \");\r\n /* format chunk length */\r\n view.setUint32(16, 16, true);\r\n /* sample format (raw) */\r\n view.setUint16(20, 1, true);\r\n /* channel count */\r\n view.setUint16(22, this.channels, true);\r\n /* sample rate */\r\n view.setUint32(24, this.samplesPerSec, true);\r\n /* byte rate (sample rate * block align) */\r\n view.setUint32(28, this.avgBytesPerSec, true);\r\n /* block align (channel count * bytes per sample) */\r\n view.setUint16(32, this.channels * (this.bitsPerSample / 8), true);\r\n /* bits per sample */\r\n view.setUint16(34, this.bitsPerSample, true);\r\n /* data chunk identifier */\r\n this.setString(view, 36, \"data\");\r\n /* data chunk length */\r\n view.setUint32(40, 0, true);\r\n }\r\n\r\n /**\r\n * Retrieves the default input format.\r\n * @member AudioStreamFormatImpl.getDefaultInputFormat\r\n * @function\r\n * @public\r\n * @returns {AudioStreamFormatImpl} The default input format.\r\n */\r\n public static getDefaultInputFormat(): AudioStreamFormatImpl {\r\n return new AudioStreamFormatImpl();\r\n }\r\n\r\n /**\r\n * Closes the configuration object.\r\n * @member AudioStreamFormatImpl.prototype.close\r\n * @function\r\n * @public\r\n */\r\n public close(): void { return; }\r\n\r\n /**\r\n * The format of the audio, valid values: 1 (PCM)\r\n * @member AudioStreamFormatImpl.prototype.formatTag\r\n * @function\r\n * @public\r\n */\r\n public formatTag: number;\r\n\r\n /**\r\n * The number of channels, valid values: 1 (Mono).\r\n * @member AudioStreamFormatImpl.prototype.channels\r\n * @function\r\n * @public\r\n */\r\n public channels: number;\r\n\r\n /**\r\n * The sample rate, valid values: 16000.\r\n * @member AudioStreamFormatImpl.prototype.samplesPerSec\r\n * @function\r\n * @public\r\n */\r\n public samplesPerSec: number;\r\n\r\n /**\r\n * The bits per sample, valid values: 16\r\n * @member AudioStreamFormatImpl.prototype.b\r\n * @function\r\n * @public\r\n */\r\n public bitsPerSample: number;\r\n\r\n /**\r\n * Average bytes per second, usually calculated as nSamplesPerSec * nChannels * ceil(wBitsPerSample, 8).\r\n * @member AudioStreamFormatImpl.prototype.avgBytesPerSec\r\n * @function\r\n * @public\r\n */\r\n public avgBytesPerSec: number;\r\n\r\n /**\r\n * The size of a single frame, valid values: nChannels * ceil(wBitsPerSample, 8).\r\n * @member AudioStreamFormatImpl.prototype.blockAlign\r\n * @function\r\n * @public\r\n */\r\n public blockAlign: number;\r\n\r\n public get header(): ArrayBuffer {\r\n return this.privHeader;\r\n }\r\n\r\n protected setString = (view: DataView, offset: number, str: string): void => {\r\n for (let i = 0; i < str.length; i++) {\r\n view.setUint8(offset + i, str.charCodeAt(i));\r\n }\r\n }\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT license.\r\n\r\nimport {\r\n createNoDashGuid,\r\n Deferred,\r\n IAudioDestination,\r\n IStreamChunk,\r\n Promise,\r\n PromiseHelper,\r\n Stream,\r\n} from \"../../common/Exports\";\r\nimport {Contracts} from \"../Contracts\";\r\nimport {\r\n AudioStreamFormat,\r\n PushAudioOutputStreamCallback\r\n} from \"../Exports\";\r\nimport { AudioOutputFormatImpl } from \"./AudioOutputFormat\";\r\n\r\n/**\r\n * Represents audio output stream used for custom audio output configurations.\r\n * @class AudioOutputStream\r\n */\r\nexport abstract class AudioOutputStream {\r\n\r\n /**\r\n * Creates and initializes an instance.\r\n * @constructor\r\n */\r\n protected constructor() { }\r\n\r\n /**\r\n * Sets the format of the AudioOutputStream\r\n * Note: the format is set by the synthesizer before writing. Do not set it before passing it to AudioConfig\r\n * @member AudioOutputStream.prototype.format\r\n */\r\n public abstract set format(format: AudioStreamFormat);\r\n\r\n /**\r\n * Creates a memory backed PullAudioOutputStream with the specified audio format.\r\n * @member AudioOutputStream.createPullStream\r\n * @function\r\n * @public\r\n * @returns {PullAudioOutputStream} The audio output stream being created.\r\n */\r\n public static createPullStream(): PullAudioOutputStream {\r\n return PullAudioOutputStream.create();\r\n }\r\n\r\n /**\r\n * Explicitly frees any external resource attached to the object\r\n * @member AudioOutputStream.prototype.close\r\n * @function\r\n * @public\r\n */\r\n public abstract close(): void;\r\n}\r\n\r\n/**\r\n * Represents memory backed push audio output stream used for custom audio output configurations.\r\n * @class PullAudioOutputStream\r\n */\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport abstract class PullAudioOutputStream extends AudioOutputStream {\r\n\r\n /**\r\n * Creates a memory backed PullAudioOutputStream with the specified audio format.\r\n * @member PullAudioOutputStream.create\r\n * @function\r\n * @public\r\n * @returns {PullAudioOutputStream} The push audio output stream being created.\r\n */\r\n public static create(): PullAudioOutputStream {\r\n return new PullAudioOutputStreamImpl();\r\n }\r\n\r\n /**\r\n * Reads audio data from the internal buffer.\r\n * @member PullAudioOutputStream.prototype.read\r\n * @function\r\n * @public\r\n * @param {ArrayBuffer} dataBuffer - An ArrayBuffer to store the read data.\r\n * @returns {Promise} Audio buffer length has been read.\r\n */\r\n public abstract read(dataBuffer: ArrayBuffer): Promise;\r\n\r\n /**\r\n * Closes the stream.\r\n * @member PullAudioOutputStream.prototype.close\r\n * @function\r\n * @public\r\n */\r\n public abstract close(): void;\r\n}\r\n\r\n/**\r\n * Represents memory backed push audio output stream used for custom audio output configurations.\r\n * @private\r\n * @class PullAudioOutputStreamImpl\r\n */\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class PullAudioOutputStreamImpl extends PullAudioOutputStream implements IAudioDestination {\r\n private privFormat: AudioOutputFormatImpl;\r\n private privId: string;\r\n private privStream: Stream;\r\n private privLastChunkView: Int8Array;\r\n\r\n /**\r\n * Creates and initializes an instance with the given values.\r\n * @constructor\r\n */\r\n public constructor() {\r\n super();\r\n this.privId = createNoDashGuid();\r\n this.privStream = new Stream();\r\n }\r\n\r\n /**\r\n * Sets the format information to the stream. For internal use only.\r\n * @param {AudioStreamFormat} format - the format to be set.\r\n */\r\n public set format(format: AudioStreamFormat) {\r\n if (format === undefined || format === null) {\r\n this.privFormat = AudioOutputFormatImpl.getDefaultOutputFormat();\r\n }\r\n this.privFormat = format as AudioOutputFormatImpl;\r\n }\r\n\r\n /**\r\n * Format information for the audio\r\n */\r\n public get format(): AudioStreamFormat {\r\n return this.privFormat;\r\n }\r\n\r\n /**\r\n * Checks if the stream is closed\r\n * @member PullAudioOutputStreamImpl.prototype.isClosed\r\n * @property\r\n * @public\r\n */\r\n public get isClosed(): boolean {\r\n return this.privStream.isClosed;\r\n }\r\n\r\n /**\r\n * Gets the id of the stream\r\n * @member PullAudioOutputStreamImpl.prototype.id\r\n * @property\r\n * @public\r\n */\r\n public id(): string {\r\n return this.privId;\r\n }\r\n\r\n /**\r\n * Reads audio data from the internal buffer.\r\n * @member PullAudioOutputStreamImpl.prototype.read\r\n * @function\r\n * @public\r\n * @param {ArrayBuffer} dataBuffer - An ArrayBuffer to store the read data.\r\n * @returns {Promise} - Audio buffer length has been read.\r\n */\r\n public read(dataBuffer: ArrayBuffer): Promise {\r\n const intView: Int8Array = new Int8Array(dataBuffer);\r\n let totalBytes: number = 0;\r\n\r\n if (this.privLastChunkView !== undefined) {\r\n if (this.privLastChunkView.length > dataBuffer.byteLength) {\r\n intView.set(this.privLastChunkView.slice(0, dataBuffer.byteLength));\r\n this.privLastChunkView = this.privLastChunkView.slice(dataBuffer.byteLength);\r\n return PromiseHelper.fromResult(dataBuffer.byteLength);\r\n }\r\n intView.set(this.privLastChunkView);\r\n totalBytes = this.privLastChunkView.length;\r\n this.privLastChunkView = undefined;\r\n }\r\n\r\n const deffer: Deferred = new Deferred