{"version":3,"sources":["webpack:///webpack/bootstrap 187487215d620cc44a15","webpack:///../src/common/Exports.ts","webpack:///../src/common/Error.ts","webpack:///../src/common/Guid.ts","webpack:///../src/common.browser/Exports.ts","webpack:///../src/common/PlatformEvent.ts","webpack:///../src/sdk/speech/Exports.ts","webpack:///../src/sdk/speech/IAuthentication.ts","webpack:///../src/sdk/speech/RecognitionEvents.ts","webpack:///../src/common/ConnectionMessage.ts","webpack:///../src/common/EventSource.ts","webpack:///../src/common/InMemoryStorage.ts","webpack:///../src/common/List.ts","webpack:///../src/common/Promise.ts","webpack:///../src/common/Queue.ts","webpack:///../src/common.browser/WebsocketMessageAdapter.ts","webpack:///../src/sdk/speech/RecognizerConfig.ts","webpack:///../src/sdk/speech.browser/SpeechConnectionFactory.ts","webpack:///./samples/browser/sample_app.js","webpack:///../Speech.Browser.Sdk.ts","webpack:///../src/common.browser/ConsoleLoggingListener.ts","webpack:///../src/common/AudioSourceEvents.ts","webpack:///../src/common/ConnectionEvents.ts","webpack:///../src/common/ConnectionOpenResponse.ts","webpack:///../src/common/Events.ts","webpack:///../src/common/IConnection.ts","webpack:///../src/common/RawWebsocketMessage.ts","webpack:///../src/common/RiffPcmEncoder.ts","webpack:///../src/common/Storage.ts","webpack:///../src/common/Stream.ts","webpack:///../src/common.browser/LocalStorage.ts","webpack:///../src/common.browser/MicAudioSource.ts","webpack:///../src/common.browser/FileAudioSource.ts","webpack:///../src/common.browser/OpusRecorder.ts","webpack:///../src/common.browser/PCMRecorder.ts","webpack:///../src/common.browser/SessionStorage.ts","webpack:///../src/common.browser/Timer.ts","webpack:///../src/common.browser/WebsocketConnection.ts","webpack:///../src/sdk/speech/CognitiveSubscriptionKeyAuthentication.ts","webpack:///../src/sdk/speech/CognitiveTokenAuthentication.ts","webpack:///../src/sdk/speech/Recognizer.ts","webpack:///../src/sdk/speech/ServiceTelemetryListener.Internal.ts","webpack:///../src/sdk/speech/SpeechConnectionMessage.Internal.ts","webpack:///../src/sdk/speech/SpeechResults.ts","webpack:///../src/sdk/speech/WebsocketMessageFormatter.ts","webpack:///../src/sdk/speech.browser/Exports.ts","webpack:///../src/sdk/speech.browser/Recognizer.ts"],"names":[],"mappings":"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","file":"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, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\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 \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 17);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 187487215d620cc44a15","\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 \"./IKeyValueStorage\";\r\nexport * from \"./InMemoryStorage\";\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 \"./Storage\";\r\nexport * from \"./Stream\";\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common/Exports.ts","\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\n\n\n// WEBPACK FOOTER //\n// ../src/common/Error.ts","\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\n\n\n// WEBPACK FOOTER //\n// ../src/common/Guid.ts","\r\nexport * from \"./ConsoleLoggingListener\";\r\nexport * from \"./IRecorder\";\r\nexport * from \"./LocalStorage\";\r\nexport * from \"./MicAudioSource\";\r\nexport * from \"./FileAudioSource\";\r\nexport * from \"./OpusRecorder\";\r\nexport * from \"./PCMRecorder\";\r\nexport * from \"./SessionStorage\";\r\nexport * from \"./Timer\";\r\nexport * from \"./WebsocketConnection\";\r\nexport * from \"./WebsocketMessageAdapter\";\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common.browser/Exports.ts","import { 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 name: string;\r\n private eventId: string;\r\n private eventTime: string;\r\n private eventType: EventType;\r\n private metadata: IStringDictionary;\r\n\r\n constructor(eventName: string, eventType: EventType) {\r\n this.name = eventName;\r\n this.eventId = CreateNoDashGuid();\r\n this.eventTime = new Date().toISOString();\r\n this.eventType = eventType;\r\n this.metadata = { };\r\n }\r\n\r\n public get Name(): string {\r\n return this.name;\r\n }\r\n\r\n public get EventId(): string {\r\n return this.eventId;\r\n }\r\n\r\n public get EventTime(): string {\r\n return this.eventTime;\r\n }\r\n\r\n public get EventType(): EventType {\r\n return this.eventType;\r\n }\r\n\r\n public get Metadata(): IStringDictionary {\r\n return this.metadata;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common/PlatformEvent.ts","\r\n// IMPORTANT - Dont publish internal modules.\r\n\r\nexport * from \"./CognitiveSubscriptionKeyAuthentication\";\r\nexport * from \"./CognitiveTokenAuthentication\";\r\nexport * from \"./IAuthentication\";\r\nexport * from \"./IConnectionFactory\";\r\nexport * from \"./RecognitionEvents\";\r\nexport * from \"./Recognizer\";\r\nexport * from \"./RecognizerConfig\";\r\nexport * from \"./SpeechResults\";\r\nexport * from \"./WebsocketMessageFormatter\";\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/sdk/speech/Exports.ts","import { 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 headerName: string;\r\n private token: string;\r\n\r\n public constructor(headerName: string, token: string) {\r\n this.headerName = headerName;\r\n this.token = token;\r\n }\r\n\r\n public get HeaderName(): string {\r\n return this.headerName;\r\n }\r\n\r\n public get Token(): string {\r\n return this.token;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/sdk/speech/IAuthentication.ts","import { EventType, PlatformEvent } from \"../../common/Exports\";\r\nimport {\r\n IDetailedSpeechPhrase,\r\n ISimpleSpeechPhrase,\r\n ISpeechEndDetectedResult,\r\n ISpeechFragment,\r\n ISpeechStartDetectedResult,\r\n} from \"./SpeechResults\";\r\n\r\nexport class SpeechRecognitionEvent extends PlatformEvent {\r\n private requestId: string;\r\n\r\n constructor(eventName: string, requestId: string, eventType: EventType = EventType.Info) {\r\n super(eventName, eventType);\r\n\r\n this.requestId = requestId;\r\n }\r\n\r\n public get RequestId(): string {\r\n return this.requestId;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class SpeechRecognitionResultEvent extends SpeechRecognitionEvent {\r\n private result: TResult;\r\n\r\n constructor(eventName: string, requestId: string, result: TResult) {\r\n super(eventName, requestId);\r\n this.result = result;\r\n }\r\n\r\n public get Result(): TResult {\r\n return this.result;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class RecognitionTriggeredEvent extends SpeechRecognitionEvent {\r\n private audioSourceId: string;\r\n private audioNodeId: string;\r\n\r\n constructor(requestId: string, audioSourceId: string, audioNodeId: string) {\r\n super(\"RecognitionTriggeredEvent\", requestId);\r\n\r\n this.audioSourceId = audioSourceId;\r\n this.audioNodeId = audioNodeId;\r\n }\r\n\r\n public get AudioSourceId(): string {\r\n return this.audioSourceId;\r\n }\r\n\r\n public get AudioNodeId(): string {\r\n return this.audioNodeId;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class ListeningStartedEvent extends SpeechRecognitionEvent {\r\n private audioSourceId: string;\r\n private audioNodeId: string;\r\n\r\n constructor(requestId: string, audioSourceId: string, audioNodeId: string) {\r\n super(\"ListeningStartedEvent\", requestId);\r\n this.audioSourceId = audioSourceId;\r\n this.audioNodeId = audioNodeId;\r\n }\r\n\r\n public get AudioSourceId(): string {\r\n return this.audioSourceId;\r\n }\r\n\r\n public get AudioNodeId(): string {\r\n return this.audioNodeId;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class ConnectingToServiceEvent extends SpeechRecognitionEvent {\r\n private authFetchEventid: string;\r\n private connectionId: string;\r\n\r\n constructor(requestId: string, authFetchEventid: string, connectionId: string) {\r\n super(\"ConnectingToServiceEvent\", requestId);\r\n this.authFetchEventid = authFetchEventid;\r\n this.connectionId = connectionId;\r\n }\r\n\r\n public get AuthFetchEventid(): string {\r\n return this.authFetchEventid;\r\n }\r\n\r\n public get ConnectionId(): string {\r\n return this.connectionId;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class RecognitionStartedEvent extends SpeechRecognitionEvent {\r\n private audioSourceId: string;\r\n private audioNodeId: string;\r\n private authFetchEventId: string;\r\n private connectionId: string;\r\n\r\n constructor(requestId: string, audioSourceId: string, audioNodeId: string, authFetchEventId: string, connectionId: string) {\r\n super(\"RecognitionStartedEvent\", requestId);\r\n\r\n this.audioSourceId = audioSourceId;\r\n this.audioNodeId = audioNodeId;\r\n this.authFetchEventId = authFetchEventId;\r\n this.connectionId = connectionId;\r\n }\r\n\r\n public get AudioSourceId(): string {\r\n return this.audioSourceId;\r\n }\r\n\r\n public get AudioNodeId(): string {\r\n return this.audioNodeId;\r\n }\r\n\r\n public get AuthFetchEventId(): string {\r\n return this.authFetchEventId;\r\n }\r\n\r\n public get ConnectionId(): string {\r\n return this.connectionId;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class SpeechStartDetectedEvent extends SpeechRecognitionResultEvent {\r\n constructor(requestId: string, result: ISpeechStartDetectedResult) {\r\n super(\"SpeechStartDetectedEvent\", requestId, result);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class SpeechHypothesisEvent extends SpeechRecognitionResultEvent {\r\n constructor(requestId: string, result: ISpeechFragment) {\r\n super(\"SpeechHypothesisEvent\", requestId, result);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class SpeechFragmentEvent extends SpeechRecognitionResultEvent {\r\n constructor(requestId: string, result: ISpeechFragment) {\r\n super(\"SpeechFragmentEvent\", requestId, result);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class SpeechEndDetectedEvent extends SpeechRecognitionResultEvent {\r\n constructor(requestId: string, result: ISpeechEndDetectedResult) {\r\n super(\"SpeechEndDetectedEvent\", requestId, result);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class SpeechSimplePhraseEvent extends SpeechRecognitionResultEvent {\r\n constructor(requestId: string, result: ISimpleSpeechPhrase) {\r\n super(\"SpeechSimplePhraseEvent\", requestId, result);\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class SpeechDetailedPhraseEvent extends SpeechRecognitionResultEvent {\r\n constructor(requestId: string, result: IDetailedSpeechPhrase) {\r\n super(\"SpeechDetailedPhraseEvent\", requestId, result);\r\n }\r\n}\r\n\r\nexport enum RecognitionCompletionStatus {\r\n Success,\r\n AudioSourceError,\r\n AudioSourceTimeout,\r\n AuthTokenFetchError,\r\n AuthTokenFetchTimeout,\r\n UnAuthorized,\r\n ConnectTimeout,\r\n ConnectError,\r\n ClientRecognitionActivityTimeout,\r\n UnknownError,\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class RecognitionEndedEvent extends SpeechRecognitionEvent {\r\n private audioSourceId: string;\r\n private audioNodeId: string;\r\n private authFetchEventId: string;\r\n private connectionId: string;\r\n private serviceTag: string;\r\n private status: RecognitionCompletionStatus;\r\n private error: string;\r\n\r\n constructor(\r\n requestId: string,\r\n audioSourceId: string,\r\n audioNodeId: string,\r\n authFetchEventId: string,\r\n connectionId: string,\r\n serviceTag: string,\r\n status: RecognitionCompletionStatus,\r\n error: string) {\r\n\r\n super(\"RecognitionEndedEvent\", requestId, status === RecognitionCompletionStatus.Success ? EventType.Info : EventType.Error);\r\n\r\n this.audioSourceId = audioSourceId;\r\n this.audioNodeId = audioNodeId;\r\n this.connectionId = connectionId;\r\n this.authFetchEventId = authFetchEventId;\r\n this.status = status;\r\n this.error = error;\r\n this.serviceTag = serviceTag;\r\n }\r\n\r\n public get AudioSourceId(): string {\r\n return this.audioSourceId;\r\n }\r\n\r\n public get AudioNodeId(): string {\r\n return this.audioNodeId;\r\n }\r\n\r\n public get AuthFetchEventId(): string {\r\n return this.authFetchEventId;\r\n }\r\n\r\n public get ConnectionId(): string {\r\n return this.connectionId;\r\n }\r\n\r\n public get ServiceTag(): string {\r\n return this.serviceTag;\r\n }\r\n\r\n public get Status(): RecognitionCompletionStatus {\r\n return this.status;\r\n }\r\n\r\n public get Error(): string {\r\n return this.error;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/sdk/speech/RecognitionEvents.ts","import { 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 messageType: MessageType;\r\n private headers: IStringDictionary;\r\n private body: any = null;\r\n\r\n private id: 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.messageType = messageType;\r\n this.body = body;\r\n this.headers = headers ? headers : {};\r\n this.id = id ? id : CreateNoDashGuid();\r\n }\r\n\r\n public get MessageType(): MessageType {\r\n return this.messageType;\r\n }\r\n\r\n public get Headers(): any {\r\n return this.headers;\r\n }\r\n\r\n public get Body(): any {\r\n return this.body;\r\n }\r\n\r\n public get TextBody(): string {\r\n if (this.messageType === MessageType.Binary) {\r\n throw new InvalidOperationError(\"Not supported for binary message\");\r\n }\r\n\r\n return this.body as string;\r\n }\r\n\r\n public get BinaryBody(): ArrayBuffer {\r\n if (this.messageType === MessageType.Text) {\r\n throw new InvalidOperationError(\"Not supported for text message\");\r\n }\r\n\r\n return this.body;\r\n }\r\n\r\n public get Id(): string {\r\n return this.id;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common/ConnectionMessage.ts","import { 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 eventListeners: IStringDictionary<(event: TEvent) => void> = {};\r\n private metadata: IStringDictionary;\r\n private isDisposed: boolean = false;\r\n\r\n constructor(metadata?: IStringDictionary) {\r\n this.metadata = 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.eventListeners) {\r\n if (eventId && this.eventListeners[eventId]) {\r\n this.eventListeners[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.eventListeners[id] = onEventCallback;\r\n return {\r\n Detach: () => {\r\n delete this.eventListeners[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.isDisposed;\r\n }\r\n\r\n public Dispose = (): void => {\r\n this.eventListeners = null;\r\n this.isDisposed = true;\r\n }\r\n\r\n public get Metadata(): IStringDictionary {\r\n return this.metadata;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common/EventSource.ts","import { ArgumentNullError } from \"./Error\";\r\nimport { IStringDictionary } from \"./IDictionary\";\r\nimport { IKeyValueStorage } from \"./IKeyValueStorage\";\r\n\r\nexport class InMemoryStorage implements IKeyValueStorage {\r\n\r\n private store: IStringDictionary = {};\r\n\r\n public Get = (key: string): string => {\r\n if (!key) {\r\n throw new ArgumentNullError(\"key\");\r\n }\r\n\r\n return this.store[key];\r\n }\r\n\r\n public GetOrAdd = (key: string, valueToAdd: string): string => {\r\n if (!key) {\r\n throw new ArgumentNullError(\"key\");\r\n }\r\n\r\n if (this.store[key] === undefined) {\r\n this.store[key] = valueToAdd;\r\n }\r\n\r\n return this.store[key];\r\n }\r\n\r\n public Set = (key: string, value: string): void => {\r\n if (!key) {\r\n throw new ArgumentNullError(\"key\");\r\n }\r\n\r\n this.store[key] = value;\r\n }\r\n\r\n public Remove = (key: string): void => {\r\n if (!key) {\r\n throw new ArgumentNullError(\"key\");\r\n }\r\n\r\n if (this.store[key] !== undefined) {\r\n delete this.store[key];\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common/InMemoryStorage.ts","import { 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 list: TItem[];\r\n private subscriptionIdCounter: number = 0;\r\n private addSubscriptions: IStringDictionary<() => void> = {};\r\n private removeSubscriptions: IStringDictionary<() => void> = {};\r\n private disposedSubscriptions: IStringDictionary<() => void> = {};\r\n private disposeReason: string = null;\r\n\r\n public constructor(list?: TItem[]) {\r\n this.list = [];\r\n // copy the list rather than taking as is.\r\n if (list) {\r\n for (const item of list) {\r\n this.list.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.list[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.list.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.list.unshift(item);\r\n } else if (index === this.list.length) {\r\n this.list.push(item);\r\n } else {\r\n this.list.splice(index, 0, item);\r\n }\r\n this.TriggerSubscriptions(this.addSubscriptions);\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.list.splice(index, count);\r\n this.TriggerSubscriptions(this.removeSubscriptions);\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.list.length;\r\n }\r\n\r\n public OnAdded = (addedCallback: () => void): IDetachable => {\r\n this.ThrowIfDisposed();\r\n const subscriptionId = this.subscriptionIdCounter++;\r\n\r\n this.addSubscriptions[subscriptionId] = addedCallback;\r\n\r\n return {\r\n Detach: () => {\r\n delete this.addSubscriptions[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.subscriptionIdCounter++;\r\n\r\n this.removeSubscriptions[subscriptionId] = removedCallback;\r\n\r\n return {\r\n Detach: () => {\r\n delete this.removeSubscriptions[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.subscriptionIdCounter++;\r\n\r\n this.disposedSubscriptions[subscriptionId] = disposedCallback;\r\n\r\n return {\r\n Detach: () => {\r\n delete this.disposedSubscriptions[subscriptionId];\r\n },\r\n };\r\n }\r\n\r\n public Join = (seperator?: string): string => {\r\n this.ThrowIfDisposed();\r\n return this.list.join(seperator);\r\n }\r\n\r\n public ToArray = (): TItem[] => {\r\n const cloneCopy = Array();\r\n this.list.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.list[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.list.length; i++) {\r\n selectList.push(callback(this.list[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.list.length; i++) {\r\n if (callback(this.list[i], i)) {\r\n filteredList.Add(this.list[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.list.concat(list.ToArray()));\r\n }\r\n\r\n public ConcatArray = (array: TItem[]): List => {\r\n this.ThrowIfDisposed();\r\n return new List(this.list.concat(array));\r\n }\r\n\r\n public IsDisposed = (): boolean => {\r\n return this.list == null;\r\n }\r\n\r\n public Dispose = (reason?: string): void => {\r\n if (!this.IsDisposed()) {\r\n this.disposeReason = reason;\r\n this.list = null;\r\n this.addSubscriptions = null;\r\n this.removeSubscriptions = null;\r\n this.TriggerSubscriptions(this.disposedSubscriptions);\r\n }\r\n }\r\n\r\n private ThrowIfDisposed = (): void => {\r\n if (this.IsDisposed()) {\r\n throw new ObjectDisposedError(\"List\", this.disposeReason);\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\n\n\n// WEBPACK FOOTER //\n// ../src/common/List.ts","import { 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 isCompleted: boolean;\r\n protected isError: boolean;\r\n protected error: string;\r\n protected result: T;\r\n\r\n public constructor(promiseResultEventSource: PromiseResultEventSource) {\r\n promiseResultEventSource.On((result: T) => {\r\n if (!this.isCompleted) {\r\n this.isCompleted = true;\r\n this.isError = false;\r\n this.result = result;\r\n }\r\n }, (error: string) => {\r\n if (!this.isCompleted) {\r\n this.isCompleted = true;\r\n this.isError = true;\r\n this.error = error;\r\n }\r\n });\r\n }\r\n\r\n public get IsCompleted(): boolean {\r\n return this.isCompleted;\r\n }\r\n\r\n public get IsError(): boolean {\r\n return this.isError;\r\n }\r\n\r\n public get Error(): string {\r\n return this.error;\r\n }\r\n\r\n public get Result(): T {\r\n return this.result;\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 onSetResult: (result: T) => void;\r\n private onSetError: (error: string) => void;\r\n\r\n public SetResult = (result: T): void => {\r\n this.onSetResult(result);\r\n }\r\n\r\n public SetError = (error: string): void => {\r\n this.onSetError(error);\r\n }\r\n\r\n public On = (onSetResult: (result: T) => void, onSetError: (error: string) => void): void => {\r\n this.onSetResult = onSetResult;\r\n this.onSetError = 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\r\n private sink: Sink;\r\n\r\n public constructor(sink: Sink) {\r\n this.sink = sink;\r\n }\r\n\r\n public Result = (): PromiseResult => {\r\n return this.sink.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.sink.on(\r\n (r: T) => {\r\n try {\r\n const continuationResult: TContinuationResult = continuationCallback(this.sink.Result);\r\n continuationDeferral.Resolve(continuationResult);\r\n } catch (e) {\r\n continuationDeferral.Reject(`'Unhandled callback error: ${e}'`);\r\n }\r\n },\r\n (error: string) => {\r\n try {\r\n const continuationResult: TContinuationResult = continuationCallback(this.sink.Result);\r\n continuationDeferral.Resolve(continuationResult);\r\n } catch (e) {\r\n continuationDeferral.Reject(`'Unhandled callback error: ${e}. InnerError: ${error}'`);\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.sink.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(`'Unhandled callback error: ${e}'`);\r\n }\r\n },\r\n (error: string) => {\r\n continuationDeferral.Reject(`'Unhandled callback error: ${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.sink.on(\r\n (r: T) => {\r\n try {\r\n const continuationPromise: Promise = continuationCallback(this.sink.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(`'Unhandled callback error: ${e}'`);\r\n }\r\n },\r\n (error: string) => {\r\n try {\r\n const continuationPromise: Promise = continuationCallback(this.sink.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(`'Unhandled callback error: ${e}. InnerError: ${error}'`);\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.sink.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(`'Unhandled callback error: ${e}'`);\r\n }\r\n },\r\n (error: string) => {\r\n continuationDeferral.Reject(`'Unhandled callback error: ${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.sink.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\r\n private promise: Promise;\r\n private sink: Sink;\r\n\r\n public constructor() {\r\n this.sink = new Sink();\r\n this.promise = new Promise(this.sink);\r\n }\r\n\r\n public State = (): PromiseState => {\r\n return this.sink.State;\r\n }\r\n\r\n public Promise = (): Promise => {\r\n return this.promise;\r\n }\r\n\r\n public Resolve = (result: T): Deferred => {\r\n this.sink.Resolve(result);\r\n return this;\r\n }\r\n\r\n public Reject = (error: string): Deferred => {\r\n this.sink.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\r\n private state: PromiseState = PromiseState.None;\r\n private promiseResult: PromiseResult = null;\r\n private promiseResultEvents: PromiseResultEventSource = null;\r\n\r\n private successHandlers: Array<((result: T) => void)> = [];\r\n private errorHandlers: Array<(e: string) => void> = [];\r\n\r\n public constructor() {\r\n this.promiseResultEvents = new PromiseResultEventSource();\r\n this.promiseResult = new PromiseResult(this.promiseResultEvents);\r\n }\r\n\r\n public get State(): PromiseState {\r\n return this.state;\r\n }\r\n\r\n public get Result(): PromiseResult {\r\n return this.promiseResult;\r\n }\r\n\r\n public Resolve = (result: T): void => {\r\n if (this.state !== PromiseState.None) {\r\n throw new Error(\"'Cannot resolve a completed promise'\");\r\n }\r\n\r\n this.state = PromiseState.Resolved;\r\n this.promiseResultEvents.SetResult(result);\r\n\r\n for (let i = 0; i < this.successHandlers.length; i++) {\r\n this.ExecuteSuccessCallback(result, this.successHandlers[i], this.errorHandlers[i]);\r\n }\r\n\r\n this.DetachHandlers();\r\n }\r\n\r\n public Reject = (error: string): void => {\r\n if (this.state !== PromiseState.None) {\r\n throw new Error(\"'Cannot reject a completed promise'\");\r\n }\r\n\r\n this.state = PromiseState.Rejected;\r\n this.promiseResultEvents.SetError(error);\r\n\r\n for (const errorHandler of this.errorHandlers) {\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.state === PromiseState.None) {\r\n this.successHandlers.push(successCallback);\r\n this.errorHandlers.push(errorCallback);\r\n } else {\r\n if (this.state === PromiseState.Resolved) {\r\n this.ExecuteSuccessCallback(this.promiseResult.Result, successCallback, errorCallback);\r\n } else if (this.state === PromiseState.Rejected) {\r\n this.ExecuteErrorCallback(this.promiseResult.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.errorHandlers = [];\r\n this.successHandlers = [];\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common/Promise.ts","import { 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 promiseStore: List> = new List>();\r\n private list: List;\r\n private detachables: IDetachable[];\r\n private subscribers: List<{ type: SubscriberType, deferral: Deferred }>;\r\n private isDrainInProgress: boolean = false;\r\n private isDisposing: boolean = false;\r\n private disposeReason: string = null;\r\n\r\n public constructor(list?: List) {\r\n this.list = list ? list : new List();\r\n this.detachables = [];\r\n this.subscribers = new List<{ type: SubscriberType, deferral: Deferred }>();\r\n this.detachables.push(this.list.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.promiseStore.Add(promise);\r\n promise.Finally(() => {\r\n while (this.promiseStore.Length() > 0) {\r\n if (!this.promiseStore.First().Result().IsCompleted) {\r\n break;\r\n } else {\r\n const p = this.promiseStore.RemoveFirst();\r\n if (!p.Result().IsError) {\r\n this.list.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 this.subscribers.Add({ deferral: deferredSubscriber, type: SubscriberType.Dequeue });\r\n this.Drain();\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 this.subscribers.Add({ deferral: deferredSubscriber, type: SubscriberType.Peek });\r\n this.Drain();\r\n return deferredSubscriber.Promise();\r\n }\r\n\r\n public Length = (): number => {\r\n this.ThrowIfDispose();\r\n return this.list.Length();\r\n }\r\n\r\n public IsDisposed = (): boolean => {\r\n return this.subscribers == null;\r\n }\r\n\r\n public DrainAndDispose = (pendingItemProcessor: (pendingItemInQueue: TItem) => void, reason?: string): Promise => {\r\n if (!this.IsDisposed() && !this.isDisposing) {\r\n this.disposeReason = reason;\r\n this.isDisposing = true;\r\n while (this.subscribers.Length() > 0) {\r\n const subscriber = this.subscribers.RemoveFirst();\r\n // TODO: this needs work (Resolve(null) instead?).\r\n subscriber.deferral.Reject(\"Disposed\");\r\n }\r\n\r\n for (const detachable of this.detachables) {\r\n detachable.Detach();\r\n }\r\n\r\n if (this.promiseStore.Length() > 0 && pendingItemProcessor) {\r\n return PromiseHelper\r\n .WhenAll(this.promiseStore.ToArray())\r\n .ContinueWith(() => {\r\n this.subscribers = null;\r\n this.list.ForEach((item: TItem, index: number): void => {\r\n pendingItemProcessor(item);\r\n });\r\n this.list = null;\r\n return true;\r\n });\r\n } else {\r\n this.subscribers = null;\r\n this.list = 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.isDrainInProgress && !this.isDisposing) {\r\n this.isDrainInProgress = true;\r\n\r\n while (this.list.Length() > 0 && this.subscribers.Length() > 0 && !this.isDisposing) {\r\n const subscriber = this.subscribers.RemoveFirst();\r\n if (subscriber.type === SubscriberType.Peek) {\r\n subscriber.deferral.Resolve(this.list.First());\r\n } else {\r\n const dequeuedItem = this.list.RemoveFirst();\r\n subscriber.deferral.Resolve(dequeuedItem);\r\n }\r\n }\r\n\r\n this.isDrainInProgress = false;\r\n }\r\n }\r\n\r\n private ThrowIfDispose = (): void => {\r\n if (this.IsDisposed()) {\r\n if (this.disposeReason) {\r\n throw new InvalidOperationError(this.disposeReason);\r\n }\r\n\r\n throw new ObjectDisposedError(\"Queue\");\r\n } else if (this.isDisposing) {\r\n throw new InvalidOperationError(\"Queue disposing\");\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common/Queue.ts","import {\r\n ArgumentNullError,\r\n ConnectionClosedEvent,\r\n ConnectionEstablishedEvent,\r\n ConnectionEstablishErrorEvent,\r\n ConnectionEvent,\r\n ConnectionMessage,\r\n ConnectionMessageReceivedEvent,\r\n ConnectionMessageSentEvent,\r\n ConnectionOpenResponse,\r\n ConnectionStartEvent,\r\n ConnectionState,\r\n Deferred,\r\n Events,\r\n EventSource,\r\n IWebsocketMessageFormatter,\r\n MessageType,\r\n PlatformEvent,\r\n Promise,\r\n PromiseHelper,\r\n Queue,\r\n RawWebsocketMessage,\r\n} from \"../common/Exports\";\r\n\r\ninterface ISendItem {\r\n Message: ConnectionMessage;\r\n RawWebsocketMessage: RawWebsocketMessage;\r\n SendStatusDeferral: Deferred;\r\n}\r\n\r\nexport class WebsocketMessageAdapter {\r\n\r\n private connectionState: ConnectionState;\r\n private messageFormatter: IWebsocketMessageFormatter;\r\n private websocketClient: WebSocket;\r\n\r\n private sendMessageQueue: Queue;\r\n private receivingMessageQueue: Queue;\r\n private connectionEstablishDeferral: Deferred;\r\n private disconnectDeferral: Deferred;\r\n private connectionEvents: EventSource;\r\n private connectionId: string;\r\n private uri: string;\r\n\r\n public constructor(\r\n uri: string,\r\n connectionId: string,\r\n messageFormatter: IWebsocketMessageFormatter) {\r\n\r\n if (!uri) {\r\n throw new ArgumentNullError(\"uri\");\r\n }\r\n\r\n if (!messageFormatter) {\r\n throw new ArgumentNullError(\"messageFormatter\");\r\n }\r\n\r\n this.connectionEvents = new EventSource();\r\n this.connectionId = connectionId;\r\n this.messageFormatter = messageFormatter;\r\n this.connectionState = ConnectionState.None;\r\n this.uri = uri;\r\n }\r\n\r\n public get State(): ConnectionState {\r\n return this.connectionState;\r\n }\r\n\r\n public Open = (): Promise => {\r\n if (this.connectionState === ConnectionState.Disconnected) {\r\n return PromiseHelper.FromError(`Cannot open a connection that is in ${this.connectionState} state`);\r\n }\r\n\r\n if (this.connectionEstablishDeferral) {\r\n return this.connectionEstablishDeferral.Promise();\r\n }\r\n\r\n this.connectionEstablishDeferral = new Deferred();\r\n this.connectionState = ConnectionState.Connecting;\r\n\r\n this.websocketClient = new WebSocket(this.uri);\r\n this.websocketClient.binaryType = \"arraybuffer\";\r\n this.receivingMessageQueue = new Queue();\r\n this.disconnectDeferral = new Deferred();\r\n this.sendMessageQueue = new Queue();\r\n this.ProcessSendQueue();\r\n\r\n this.OnEvent(new ConnectionStartEvent(this.connectionId, this.uri));\r\n\r\n this.websocketClient.onopen = (e: Event) => {\r\n this.connectionState = ConnectionState.Connected;\r\n this.OnEvent(new ConnectionEstablishedEvent(this.connectionId));\r\n this.connectionEstablishDeferral.Resolve(new ConnectionOpenResponse(200, \"\"));\r\n };\r\n\r\n this.websocketClient.onerror = (e: Event) => {\r\n // TODO: Understand what this is error is. Will we still get onClose ?\r\n if (this.connectionState !== ConnectionState.Connecting) {\r\n // TODO: Is this required ?\r\n // this.OnEvent(new ConnectionErrorEvent(errorMsg, connectionId));\r\n }\r\n };\r\n\r\n this.websocketClient.onclose = (e: CloseEvent) => {\r\n if (this.connectionState === ConnectionState.Connecting) {\r\n this.connectionState = ConnectionState.Disconnected;\r\n this.OnEvent(new ConnectionEstablishErrorEvent(this.connectionId, e.code, e.reason));\r\n this.connectionEstablishDeferral.Resolve(new ConnectionOpenResponse(e.code, e.reason));\r\n } else {\r\n this.OnEvent(new ConnectionClosedEvent(this.connectionId, e.code, e.reason));\r\n }\r\n\r\n this.OnClose(e.code, e.reason);\r\n };\r\n\r\n this.websocketClient.onmessage = (e: MessageEvent) => {\r\n const networkReceivedTime = new Date().toISOString();\r\n if (this.connectionState === ConnectionState.Connected) {\r\n const deferred = new Deferred();\r\n // let id = ++this.idCounter;\r\n this.receivingMessageQueue.EnqueueFromPromise(deferred.Promise());\r\n if (e.data instanceof ArrayBuffer) {\r\n const rawMessage = new RawWebsocketMessage(MessageType.Binary, e.data);\r\n this.messageFormatter\r\n .ToConnectionMessage(rawMessage)\r\n .On((connectionMessage: ConnectionMessage) => {\r\n this.OnEvent(new ConnectionMessageReceivedEvent(this.connectionId, networkReceivedTime, connectionMessage));\r\n deferred.Resolve(connectionMessage);\r\n }, (error: string) => {\r\n // TODO: Events for these ?\r\n deferred.Reject(`Invalid binary message format. Error: ${error}`);\r\n });\r\n } else {\r\n const rawMessage = new RawWebsocketMessage(MessageType.Text, e.data);\r\n this.messageFormatter\r\n .ToConnectionMessage(rawMessage)\r\n .On((connectionMessage: ConnectionMessage) => {\r\n this.OnEvent(new ConnectionMessageReceivedEvent(this.connectionId, networkReceivedTime, connectionMessage));\r\n deferred.Resolve(connectionMessage);\r\n }, (error: string) => {\r\n // TODO: Events for these ?\r\n deferred.Reject(`Invalid text message format. Error: ${error}`);\r\n });\r\n }\r\n }\r\n };\r\n\r\n return this.connectionEstablishDeferral.Promise();\r\n }\r\n\r\n public Send = (message: ConnectionMessage): Promise => {\r\n if (this.connectionState !== ConnectionState.Connected) {\r\n return PromiseHelper.FromError(`Cannot send on connection that is in ${this.connectionState} state`);\r\n }\r\n\r\n const messageSendStatusDeferral = new Deferred();\r\n const messageSendDeferral = new Deferred();\r\n\r\n this.sendMessageQueue.EnqueueFromPromise(messageSendDeferral.Promise());\r\n\r\n this.messageFormatter\r\n .FromConnectionMessage(message)\r\n .On((rawMessage: RawWebsocketMessage) => {\r\n messageSendDeferral.Resolve({\r\n Message: message,\r\n RawWebsocketMessage: rawMessage,\r\n SendStatusDeferral: messageSendStatusDeferral,\r\n });\r\n }, (error: string) => {\r\n messageSendDeferral.Reject(`Error formatting the message. ${error}`);\r\n });\r\n\r\n return messageSendStatusDeferral.Promise();\r\n }\r\n\r\n public Read = (): Promise => {\r\n if (this.connectionState !== ConnectionState.Connected) {\r\n return PromiseHelper.FromError(`Cannot read on connection that is in ${this.connectionState} state`);\r\n }\r\n\r\n return this.receivingMessageQueue.Dequeue();\r\n }\r\n\r\n public Close = (reason?: string): Promise => {\r\n if (this.websocketClient) {\r\n if (this.connectionState !== ConnectionState.Connected) {\r\n this.websocketClient.close(1000, reason ? reason : \"Normal closure by client\");\r\n }\r\n } else {\r\n const deferral = new Deferred();\r\n deferral.Resolve(true);\r\n return deferral.Promise();\r\n }\r\n\r\n return this.disconnectDeferral.Promise();\r\n }\r\n\r\n public get Events(): EventSource {\r\n return this.connectionEvents;\r\n }\r\n\r\n private SendRawMessage = (sendItem: ISendItem): Promise => {\r\n try {\r\n this.OnEvent(new ConnectionMessageSentEvent(this.connectionId, new Date().toISOString(), sendItem.Message));\r\n this.websocketClient.send(sendItem.RawWebsocketMessage.Payload);\r\n return PromiseHelper.FromResult(true);\r\n } catch (e) {\r\n return PromiseHelper.FromError(`websocket send error: ${e}`);\r\n }\r\n }\r\n\r\n private OnClose = (code: number, reason: string): void => {\r\n const closeReason = `Connection closed. ${code}: ${reason}`;\r\n this.connectionState = ConnectionState.Disconnected;\r\n this.disconnectDeferral.Resolve(true);\r\n this.receivingMessageQueue.Dispose(reason);\r\n this.receivingMessageQueue.DrainAndDispose((pendingReceiveItem: ConnectionMessage) => {\r\n // TODO: Events for these ?\r\n // Logger.Instance.OnEvent(new LoggingEvent(LogType.Warning, null, `Failed to process received message. Reason: ${closeReason}, Message: ${JSON.stringify(pendingReceiveItem)}`));\r\n }, closeReason);\r\n\r\n this.sendMessageQueue.DrainAndDispose((pendingSendItem: ISendItem) => {\r\n pendingSendItem.SendStatusDeferral.Reject(closeReason);\r\n }, closeReason);\r\n }\r\n\r\n private ProcessSendQueue = (): void => {\r\n this.sendMessageQueue\r\n .Dequeue()\r\n .On((sendItem: ISendItem) => {\r\n this.SendRawMessage(sendItem)\r\n .On((result: boolean) => {\r\n sendItem.SendStatusDeferral.Resolve(result);\r\n this.ProcessSendQueue();\r\n }, (sendError: string) => {\r\n sendItem.SendStatusDeferral.Reject(sendError);\r\n this.ProcessSendQueue();\r\n });\r\n }, (error: string) => {\r\n // do nothing\r\n });\r\n }\r\n\r\n private OnEvent = (event: ConnectionEvent): void => {\r\n this.connectionEvents.OnEvent(event);\r\n Events.Instance.OnEvent(event);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common.browser/WebsocketMessageAdapter.ts","\r\nexport enum RecognitionMode {\r\n Interactive,\r\n Conversation,\r\n Dictation,\r\n}\r\n\r\nexport enum SpeechResultFormat {\r\n Simple,\r\n Detailed,\r\n}\r\n\r\nexport class RecognizerConfig {\r\n private recognitionMode: RecognitionMode = RecognitionMode.Interactive;\r\n private language: string;\r\n private format: SpeechResultFormat;\r\n private speechConfig: SpeechConfig;\r\n private recognitionActivityTimeout: number;\r\n\r\n constructor(\r\n platformConfig: SpeechConfig,\r\n recognitionMode: RecognitionMode = RecognitionMode.Interactive,\r\n language: string = \"en-us\",\r\n format: SpeechResultFormat = SpeechResultFormat.Simple) {\r\n this.speechConfig = platformConfig ? platformConfig : new SpeechConfig(new Context(null, null));\r\n this.recognitionMode = recognitionMode;\r\n this.language = language;\r\n this.format = format;\r\n this.recognitionActivityTimeout = recognitionMode === RecognitionMode.Interactive ? 8000 : 25000;\r\n }\r\n\r\n public get RecognitionMode(): RecognitionMode {\r\n return this.recognitionMode;\r\n }\r\n\r\n public get Language(): string {\r\n return this.language;\r\n }\r\n\r\n public get Format(): SpeechResultFormat {\r\n return this.format;\r\n }\r\n\r\n public get SpeechConfig(): SpeechConfig {\r\n return this.speechConfig;\r\n }\r\n\r\n public get RecognitionActivityTimeout(): number {\r\n return this.recognitionActivityTimeout;\r\n }\r\n\r\n public get IsContinuousRecognition(): boolean {\r\n return this.recognitionMode !== RecognitionMode.Interactive;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class SpeechConfig {\r\n private context: Context;\r\n\r\n constructor(context: Context) {\r\n this.context = context;\r\n }\r\n\r\n public Serialize = (): string => {\r\n return JSON.stringify(this, (key: any, value: any): any => {\r\n if (value && typeof value === \"object\") {\r\n const replacement: any = {};\r\n for (const k in value) {\r\n if (Object.hasOwnProperty.call(value, k)) {\r\n replacement[k && k.charAt(0).toLowerCase() + k.substring(1)] = value[k];\r\n }\r\n }\r\n return replacement;\r\n }\r\n return value;\r\n });\r\n }\r\n\r\n public get Context(): Context {\r\n return this.context;\r\n }\r\n\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class Context {\r\n private system: System;\r\n private os: OS;\r\n private device: Device;\r\n\r\n constructor(os: OS, device: Device) {\r\n this.system = new System();\r\n this.os = os;\r\n this.device = device;\r\n }\r\n\r\n public get System(): System {\r\n return this.system;\r\n }\r\n\r\n public get OS(): OS {\r\n return this.os;\r\n }\r\n\r\n public get Device(): Device {\r\n return this.device;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class System {\r\n private version: string;\r\n constructor() {\r\n // TODO: Tie this with the sdk Version somehow\r\n this.version = \"1.0.00000\";\r\n }\r\n public get Version(): string {\r\n // Controlled by sdk\r\n return this.version;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class OS {\r\n\r\n private platform: string;\r\n private name: string;\r\n private version: string;\r\n\r\n constructor(platform: string, name: string, version: string) {\r\n this.platform = platform;\r\n this.name = name;\r\n this.version = version;\r\n }\r\n\r\n public get Platform(): string {\r\n return this.platform;\r\n }\r\n\r\n public get Name(): string {\r\n return this.name;\r\n }\r\n\r\n public get Version(): string {\r\n return this.version;\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class Device {\r\n\r\n private manufacturer: string;\r\n private model: string;\r\n private version: string;\r\n\r\n constructor(manufacturer: string, model: string, version: string) {\r\n this.manufacturer = manufacturer;\r\n this.model = model;\r\n this.version = version;\r\n }\r\n\r\n public get Manufacturer(): string {\r\n return this.manufacturer;\r\n }\r\n\r\n public get Model(): string {\r\n return this.model;\r\n }\r\n\r\n public get Version(): string {\r\n return this.version;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/sdk/speech/RecognizerConfig.ts","import { WebsocketConnection } from \"../../common.browser/Exports\";\r\nimport {\r\n IConnection,\r\n IStringDictionary,\r\n Promise,\r\n Storage,\r\n} from \"../../common/Exports\";\r\nimport {\r\n AuthInfo,\r\n IAuthentication,\r\n IConnectionFactory,\r\n RecognitionMode,\r\n RecognizerConfig,\r\n SpeechResultFormat,\r\n WebsocketMessageFormatter,\r\n} from \"../speech/Exports\";\r\n\r\nconst TestHooksParamName: string = \"testhooks\";\r\nconst ConnectionIdHeader: string = \"X-ConnectionId\";\r\n\r\nexport class SpeechConnectionFactory implements IConnectionFactory {\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 = \"\";\r\n switch (config.RecognitionMode) {\r\n case RecognitionMode.Conversation:\r\n endpoint = this.Host + this.ConversationRelativeUri;\r\n break;\r\n case RecognitionMode.Dictation:\r\n endpoint = this.Host + this.DictationRelativeUri;\r\n break;\r\n default:\r\n endpoint = this.Host + this.InteractiveRelativeUri; // default is interactive\r\n break;\r\n }\r\n\r\n const queryParams: IStringDictionary = {\r\n format: SpeechResultFormat[config.Format].toString().toLowerCase(),\r\n language: config.Language,\r\n };\r\n\r\n if (this.IsDebugModeEnabled) {\r\n queryParams[TestHooksParamName] = \"1\";\r\n }\r\n\r\n const headers: IStringDictionary = {};\r\n headers[authInfo.HeaderName] = authInfo.Token;\r\n headers[ConnectionIdHeader] = connectionId;\r\n\r\n return new WebsocketConnection(endpoint, queryParams, headers, new WebsocketMessageFormatter(), connectionId);\r\n }\r\n\r\n private get Host(): string {\r\n return Storage.Local.GetOrAdd(\"Host\", \"wss://speech.platform.bing.com\");\r\n }\r\n\r\n private get InteractiveRelativeUri(): string {\r\n return Storage.Local.GetOrAdd(\"InteractiveRelativeUri\", \"/speech/recognition/interactive/cognitiveservices/v1\");\r\n }\r\n\r\n private get ConversationRelativeUri(): string {\r\n return Storage.Local.GetOrAdd(\"ConversationRelativeUri\", \"/speech/recognition/conversation/cognitiveservices/v1\");\r\n }\r\n\r\n private get DictationRelativeUri(): string {\r\n return Storage.Local.GetOrAdd(\"DictationRelativeUri\", \"/speech/recognition/dictation/cognitiveservices/v1\");\r\n }\r\n\r\n private get IsDebugModeEnabled(): boolean {\r\n const value = Storage.Local.GetOrAdd(\"IsDebugModeEnabled\", \"false\");\r\n return value.toLowerCase() === \"true\";\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/sdk/speech.browser/SpeechConnectionFactory.ts","window.SDK = require('../../distrib/Speech.Browser.Sdk.js')\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./samples/browser/sample_app.js\n// module id = 17\n// module chunks = 0","import { ConsoleLoggingListener, LocalStorage, SessionStorage } from \"./src/common.browser/Exports\";\r\nimport { Events, Storage } 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\nexport * from \"./src/common/Exports\";\r\nexport * from \"./src/common.browser/Exports\";\r\nexport * from \"./src/sdk/speech/Exports\";\r\nexport * from \"./src/sdk/speech.browser/Exports\";\r\n\n\n\n// WEBPACK FOOTER //\n// ../Speech.Browser.Sdk.ts","import { EventType, IEventListener, PlatformEvent } from \"../common/Exports\";\r\n\r\nexport class ConsoleLoggingListener implements IEventListener {\r\n private logLevelFilter: EventType;\r\n\r\n public constructor(logLevelFilter: EventType = EventType.Warning) {\r\n this.logLevelFilter = logLevelFilter;\r\n }\r\n\r\n public OnEvent = (event: PlatformEvent): void => {\r\n if (event.EventType >= this.logLevelFilter) {\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) && prop !== \"eventTime\" && prop !== \"eventType\" && prop !== \"eventId\" && prop !== \"name\" && 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\n\n\n// WEBPACK FOOTER //\n// ../src/common.browser/ConsoleLoggingListener.ts","import { EventType, PlatformEvent } from \"./PlatformEvent\";\r\n\r\nexport class AudioSourceEvent extends PlatformEvent {\r\n private audioSourceId: string;\r\n\r\n constructor(eventName: string, audioSourceId: string, eventType: EventType = EventType.Info) {\r\n super(eventName, eventType);\r\n this.audioSourceId = audioSourceId;\r\n }\r\n\r\n public get AudioSourceId(): string {\r\n return this.audioSourceId;\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 error: string;\r\n constructor(audioSourceId: string, error: string) {\r\n super(\"AudioSourceErrorEvent\", audioSourceId, EventType.Error);\r\n this.error = error;\r\n }\r\n\r\n public get Error(): string {\r\n return this.error;\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 audioNodeId: string;\r\n\r\n constructor(eventName: string, audioSourceId: string, audioNodeId: string) {\r\n super(eventName, audioSourceId);\r\n this.audioNodeId = audioNodeId;\r\n }\r\n\r\n public get AudioNodeId(): string {\r\n return this.audioNodeId;\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 error: string;\r\n\r\n constructor(audioSourceId: string, audioNodeId: string, error: string) {\r\n super(\"AudioStreamNodeErrorEvent\", audioSourceId, audioNodeId);\r\n this.error = error;\r\n }\r\n\r\n public get Error(): string {\r\n return this.error;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common/AudioSourceEvents.ts","import { ConnectionMessage } from \"./ConnectionMessage\";\r\nimport { IStringDictionary } from \"./IDictionary\";\r\nimport { EventType, PlatformEvent } from \"./PlatformEvent\";\r\n\r\nexport class ConnectionEvent extends PlatformEvent {\r\n private connectionId: string;\r\n\r\n constructor(eventName: string, connectionId: string, eventType: EventType = EventType.Info) {\r\n super(eventName, eventType);\r\n this.connectionId = connectionId;\r\n }\r\n\r\n public get ConnectionId(): string {\r\n return this.connectionId;\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 uri: string;\r\n private headers: IStringDictionary;\r\n\r\n constructor(connectionId: string, uri: string, headers?: IStringDictionary) {\r\n super(\"ConnectionStartEvent\", connectionId);\r\n this.uri = uri;\r\n this.headers = headers;\r\n }\r\n\r\n public get Uri(): string {\r\n return this.uri;\r\n }\r\n\r\n public get Headers(): IStringDictionary {\r\n return this.headers;\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 reason: string;\r\n private statusCode: number;\r\n\r\n constructor(connectionId: string, statusCode: number, reason: string) {\r\n super(\"ConnectionClosedEvent\", connectionId, EventType.Warning);\r\n this.reason = reason;\r\n this.statusCode = statusCode;\r\n }\r\n\r\n public get Reason(): string {\r\n return this.reason;\r\n }\r\n\r\n public get StatusCode(): number {\r\n return this.statusCode;\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 statusCode: number;\r\n private reason: string;\r\n\r\n constructor(connectionId: string, statuscode: number, reason: string) {\r\n super(\"ConnectionEstablishErrorEvent\", connectionId, EventType.Error);\r\n this.statusCode = statuscode;\r\n this.reason = reason;\r\n }\r\n\r\n public get Reason(): string {\r\n return this.reason;\r\n }\r\n\r\n public get StatusCode(): number {\r\n return this.statusCode;\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 networkReceivedTime: string;\r\n private message: ConnectionMessage;\r\n\r\n constructor(connectionId: string, networkReceivedTimeISO: string, message: ConnectionMessage) {\r\n super(\"ConnectionMessageReceivedEvent\", connectionId);\r\n this.networkReceivedTime = networkReceivedTimeISO;\r\n this.message = message;\r\n }\r\n\r\n public get NetworkReceivedTime(): string {\r\n return this.networkReceivedTime;\r\n }\r\n\r\n public get Message(): ConnectionMessage {\r\n return this.message;\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 networkSentTime: string;\r\n private message: ConnectionMessage;\r\n\r\n constructor(connectionId: string, networkSentTimeISO: string, message: ConnectionMessage) {\r\n super(\"ConnectionMessageSentEvent\", connectionId);\r\n this.networkSentTime = networkSentTimeISO;\r\n this.message = message;\r\n }\r\n\r\n public get NetworkSentTime(): string {\r\n return this.networkSentTime;\r\n }\r\n\r\n public get Message(): ConnectionMessage {\r\n return this.message;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common/ConnectionEvents.ts","\r\nexport class ConnectionOpenResponse {\r\n private statusCode: number;\r\n private reason: string;\r\n\r\n constructor(statusCode: number, reason: string) {\r\n this.statusCode = statusCode;\r\n this.reason = reason;\r\n }\r\n\r\n public get StatusCode(): number {\r\n return this.statusCode;\r\n }\r\n\r\n public get Reason(): string {\r\n return this.reason;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common/ConnectionOpenResponse.ts","import { 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 instance: 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.instance = eventSource;\r\n }\r\n\r\n public static get Instance(): IEventSource {\r\n return Events.instance;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common/Events.ts","import { 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\n\n\n// WEBPACK FOOTER //\n// ../src/common/IConnection.ts","import { MessageType } from \"./ConnectionMessage\";\r\nimport { ArgumentNullError, InvalidOperationError } from \"./Error\";\r\nimport { CreateNoDashGuid } from \"./Guid\";\r\n\r\nexport class RawWebsocketMessage {\r\n\r\n private messageType: MessageType;\r\n private payload: any = null;\r\n private id: 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.messageType = messageType;\r\n this.payload = payload;\r\n this.id = id ? id : CreateNoDashGuid();\r\n }\r\n\r\n public get MessageType(): MessageType {\r\n return this.messageType;\r\n }\r\n\r\n public get Payload(): any {\r\n return this.payload;\r\n }\r\n\r\n public get TextContent(): string {\r\n if (this.messageType === MessageType.Binary) {\r\n throw new InvalidOperationError(\"Not supported for binary message\");\r\n }\r\n\r\n return this.payload as string;\r\n }\r\n\r\n public get BinaryContent(): ArrayBuffer {\r\n if (this.messageType === MessageType.Text) {\r\n throw new InvalidOperationError(\"Not supported for text message\");\r\n }\r\n\r\n return this.payload;\r\n }\r\n\r\n public get Id(): string {\r\n return this.id;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common/RawWebsocketMessage.ts","\r\nexport class RiffPcmEncoder {\r\n\r\n private actualSampleRate: number;\r\n private desiredSampleRate: number;\r\n private channelCount: number = 1;\r\n\r\n public constructor(actualSampleRate: number, desiredSampleRate: number) {\r\n this.actualSampleRate = actualSampleRate;\r\n this.desiredSampleRate = desiredSampleRate;\r\n }\r\n\r\n public Encode = (\r\n needHeader: boolean,\r\n actualAudioFrame: Float32Array): ArrayBuffer => {\r\n\r\n const audioFrame = this.DownSampleAudioFrame(actualAudioFrame, this.actualSampleRate, this.desiredSampleRate);\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 if (!needHeader) {\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 const buffer = new ArrayBuffer(44 + audioLength);\r\n\r\n const bitsPerSample = 16;\r\n const bytesPerSample = bitsPerSample / 8;\r\n // We dont know ahead of time about the length of audio to stream. So set to 0.\r\n const fileLength = 0;\r\n\r\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView\r\n const view = new DataView(buffer);\r\n\r\n /* RIFF identifier */\r\n this.SetString(view, 0, \"RIFF\");\r\n /* file length */\r\n view.setUint32(4, fileLength, 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.channelCount, true);\r\n /* sample rate */\r\n view.setUint32(24, this.desiredSampleRate, true);\r\n /* byte rate (sample rate * block align) */\r\n view.setUint32(28, this.desiredSampleRate * this.channelCount * bytesPerSample, true);\r\n /* block align (channel count * bytes per sample) */\r\n view.setUint16(32, this.channelCount * bytesPerSample, true);\r\n /* bits per sample */\r\n view.setUint16(34, bitsPerSample, true);\r\n /* data chunk identifier */\r\n this.SetString(view, 36, \"data\");\r\n /* data chunk length */\r\n view.setUint32(40, fileLength, true);\r\n\r\n this.FloatTo16BitPCM(view, 44, 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\n\n\n// WEBPACK FOOTER //\n// ../src/common/RiffPcmEncoder.ts","import { ArgumentNullError } from \"./Error\";\r\nimport { IKeyValueStorage } from \"./IKeyValueStorage\";\r\nimport { InMemoryStorage } from \"./InMemoryStorage\";\r\n\r\nexport class Storage {\r\n private static sessionStorage: IKeyValueStorage = new InMemoryStorage();\r\n private static localStorage: IKeyValueStorage = new InMemoryStorage();\r\n\r\n public static SetSessionStorage = (sessionStorage: IKeyValueStorage): void => {\r\n if (!sessionStorage) {\r\n throw new ArgumentNullError(\"sessionStorage\");\r\n }\r\n\r\n Storage.sessionStorage = sessionStorage;\r\n }\r\n\r\n public static SetLocalStorage = (localStorage: IKeyValueStorage): void => {\r\n if (!localStorage) {\r\n throw new ArgumentNullError(\"localStorage\");\r\n }\r\n\r\n Storage.localStorage = localStorage;\r\n }\r\n\r\n public static get Session(): IKeyValueStorage {\r\n return Storage.sessionStorage;\r\n }\r\n\r\n public static get Local(): IKeyValueStorage {\r\n return Storage.localStorage;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common/Storage.ts","import { InvalidOperationError } from \"./Error\";\r\nimport { CreateNoDashGuid } from \"./Guid\";\r\nimport { IStringDictionary } from \"./IDictionary\";\r\nimport { Promise } from \"./Promise\";\r\nimport { Queue } from \"./Queue\";\r\nimport { IStreamChunk } from \"./Stream\";\r\n\r\nexport interface IStreamChunk {\r\n IsEnd: boolean;\r\n Buffer: TBuffer;\r\n}\r\n\r\nexport class Stream {\r\n private id: string;\r\n private readerIdCounter: number = 1;\r\n private streambuffer: Array>;\r\n private isEnded: boolean = false;\r\n private readerQueues: IStringDictionary>>;\r\n\r\n public constructor(streamId?: string) {\r\n this.id = streamId ? streamId : CreateNoDashGuid();\r\n this.streambuffer = [];\r\n this.readerQueues = {};\r\n }\r\n\r\n public get IsClosed(): boolean {\r\n return this.isEnded;\r\n }\r\n\r\n public get Id(): string {\r\n return this.id;\r\n }\r\n\r\n public Write = (buffer: TBuffer): void => {\r\n this.ThrowIfClosed();\r\n this.WriteStreamChunk({\r\n Buffer: buffer,\r\n IsEnd: false,\r\n });\r\n }\r\n\r\n public GetReader = (): StreamReader => {\r\n const readerId = this.readerIdCounter;\r\n this.readerIdCounter++;\r\n const readerQueue = new Queue>();\r\n const currentLength = this.streambuffer.length;\r\n this.readerQueues[readerId] = readerQueue;\r\n for (let i = 0; i < currentLength; i++) {\r\n readerQueue.Enqueue(this.streambuffer[i]);\r\n }\r\n return new StreamReader(\r\n this.id,\r\n readerQueue,\r\n () => {\r\n delete this.readerQueues[readerId];\r\n });\r\n }\r\n\r\n public Close = (): void => {\r\n if (!this.isEnded) {\r\n this.WriteStreamChunk({\r\n Buffer: null,\r\n IsEnd: true,\r\n });\r\n this.isEnded = true;\r\n }\r\n }\r\n\r\n private WriteStreamChunk = (streamChunk: IStreamChunk): void => {\r\n this.ThrowIfClosed();\r\n this.streambuffer.push(streamChunk);\r\n for (const readerId in this.readerQueues) {\r\n if (!this.readerQueues[readerId].IsDisposed()) {\r\n try {\r\n this.readerQueues[readerId].Enqueue(streamChunk);\r\n } catch (e) {\r\n // Do nothing\r\n }\r\n }\r\n }\r\n }\r\n\r\n private ThrowIfClosed = (): void => {\r\n if (this.isEnded) {\r\n throw new InvalidOperationError(\"Stream closed\");\r\n }\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class StreamReader {\r\n private readerQueue: Queue>;\r\n private onClose: () => void;\r\n private isClosed: boolean = false;\r\n private streamId: string;\r\n\r\n public constructor(streamId: string, readerQueue: Queue>, onClose: () => void) {\r\n this.readerQueue = readerQueue;\r\n this.onClose = onClose;\r\n this.streamId = streamId;\r\n }\r\n\r\n public get IsClosed(): boolean {\r\n return this.isClosed;\r\n }\r\n\r\n public get StreamId(): string {\r\n return this.streamId;\r\n }\r\n\r\n public Read = (): Promise> => {\r\n if (this.IsClosed) {\r\n throw new InvalidOperationError(\"StreamReader closed\");\r\n }\r\n\r\n return this.readerQueue\r\n .Dequeue()\r\n .OnSuccessContinueWith((streamChunk: IStreamChunk) => {\r\n if (streamChunk.IsEnd) {\r\n this.readerQueue.Dispose(\"End of stream reached\");\r\n }\r\n\r\n return streamChunk;\r\n });\r\n }\r\n\r\n public Close = (): void => {\r\n if (!this.isClosed) {\r\n this.isClosed = true;\r\n this.readerQueue.Dispose(\"StreamReader closed\");\r\n this.onClose();\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common/Stream.ts","import { ArgumentNullError, IKeyValueStorage } from \"../common/Exports\";\r\n\r\nexport class LocalStorage implements IKeyValueStorage {\r\n\r\n public Get = (key: string): string => {\r\n if (!key) {\r\n throw new ArgumentNullError(\"key\");\r\n }\r\n\r\n return localStorage.getItem(key);\r\n }\r\n\r\n public GetOrAdd = (key: string, valueToAdd: string): string => {\r\n if (!key) {\r\n throw new ArgumentNullError(\"key\");\r\n }\r\n\r\n const value = localStorage.getItem(key);\r\n if (value === null || value === undefined) {\r\n localStorage.setItem(key, valueToAdd);\r\n }\r\n\r\n return localStorage.getItem(key);\r\n }\r\n\r\n public Set = (key: string, value: string): void => {\r\n if (!key) {\r\n throw new ArgumentNullError(\"key\");\r\n }\r\n\r\n localStorage.setItem(key, value);\r\n }\r\n\r\n public Remove = (key: string): void => {\r\n if (!key) {\r\n throw new ArgumentNullError(\"key\");\r\n }\r\n\r\n localStorage.removeItem(key);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common.browser/LocalStorage.ts","import {\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 CreateNoDashGuid,\r\n Deferred,\r\n Events,\r\n EventSource,\r\n IAudioSource,\r\n IAudioStreamNode,\r\n IStringDictionary,\r\n PlatformEvent,\r\n Promise,\r\n PromiseHelper,\r\n Stream,\r\n StreamReader,\r\n} from \"../common/Exports\";\r\nimport { IRecorder } from \"./IRecorder\";\r\n\r\n// Extending the default definition with browser specific definitions for backward compatibility\r\ninterface INavigatorUserMedia extends NavigatorUserMedia {\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 class MicAudioSource implements IAudioSource {\r\n\r\n private streams: IStringDictionary> = {};\r\n\r\n private id: string;\r\n\r\n private events: EventSource;\r\n\r\n private initializeDeferral: Deferred;\r\n\r\n private recorder: IRecorder;\r\n\r\n private mediaStream: MediaStream;\r\n\r\n private context: AudioContext;\r\n\r\n public constructor(recorder: IRecorder, audioSourceId?: string) {\r\n this.id = audioSourceId ? audioSourceId : CreateNoDashGuid();\r\n this.events = new EventSource();\r\n this.recorder = recorder;\r\n }\r\n\r\n public TurnOn = (): Promise => {\r\n if (this.initializeDeferral) {\r\n return this.initializeDeferral.Promise();\r\n }\r\n\r\n this.initializeDeferral = new Deferred();\r\n\r\n this.CreateAudioContext();\r\n\r\n const nav = window.navigator as INavigatorUserMedia;\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.initializeDeferral.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.id)); // no stream id\r\n getUserMedia(\r\n { audio: true, video: false },\r\n (mediaStream: MediaStream) => {\r\n this.mediaStream = mediaStream;\r\n this.OnEvent(new AudioSourceReadyEvent(this.id));\r\n this.initializeDeferral.Resolve(true);\r\n }, (error: MediaStreamError) => {\r\n const errorMsg = `Error occurred during microphone initialization: ${error}`;\r\n const tmp = this.initializeDeferral;\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.initializeDeferral = 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.id, errorMsg));\r\n });\r\n };\r\n\r\n if (this.context.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.context.resume().then(next, (reason: any) => {\r\n this.initializeDeferral.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.initializeDeferral.Promise();\r\n }\r\n\r\n public Id = (): string => {\r\n return this.id;\r\n }\r\n\r\n public Attach = (audioNodeId: string): Promise => {\r\n this.OnEvent(new AudioStreamNodeAttachingEvent(this.id, audioNodeId));\r\n\r\n return this.Listen(audioNodeId).OnSuccessContinueWith(\r\n (streamReader: StreamReader) => {\r\n this.OnEvent(new AudioStreamNodeAttachedEvent(this.id, audioNodeId));\r\n return {\r\n Detach: () => {\r\n streamReader.Close();\r\n delete this.streams[audioNodeId];\r\n this.OnEvent(new AudioStreamNodeDetachedEvent(this.id, audioNodeId));\r\n this.TurnOff();\r\n },\r\n Id: () => {\r\n return audioNodeId;\r\n },\r\n Read: () => {\r\n return streamReader.Read();\r\n },\r\n };\r\n });\r\n }\r\n\r\n public Detach = (audioNodeId: string): void => {\r\n if (audioNodeId && this.streams[audioNodeId]) {\r\n this.streams[audioNodeId].Close();\r\n delete this.streams[audioNodeId];\r\n this.OnEvent(new AudioStreamNodeDetachedEvent(this.id, audioNodeId));\r\n }\r\n }\r\n\r\n public TurnOff = (): Promise => {\r\n for (const streamId in this.streams) {\r\n if (streamId) {\r\n const stream = this.streams[streamId];\r\n if (stream) {\r\n stream.Close();\r\n }\r\n }\r\n }\r\n\r\n this.OnEvent(new AudioSourceOffEvent(this.id)); // no stream now\r\n this.initializeDeferral = 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.events;\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 Stream(audioNodeId);\r\n this.streams[audioNodeId] = stream;\r\n\r\n try {\r\n this.recorder.Record(this.context, this.mediaStream, stream);\r\n } catch (error) {\r\n this.OnEvent(new AudioStreamNodeErrorEvent(this.id, audioNodeId, error));\r\n throw error;\r\n }\r\n\r\n return stream.GetReader();\r\n });\r\n }\r\n\r\n private OnEvent = (event: AudioSourceEvent): void => {\r\n this.events.OnEvent(event);\r\n Events.Instance.OnEvent(event);\r\n }\r\n\r\n private CreateAudioContext = (): void => {\r\n if (!!this.context) {\r\n return;\r\n }\r\n\r\n // https://developer.mozilla.org/en-US/docs/Web/API/AudioContext\r\n const AudioContext = ((window as any).AudioContext)\r\n || ((window as any).webkitAudioContext)\r\n || false;\r\n\r\n if (!AudioContext) {\r\n throw new Error(\"Browser does not support Web Audio API (AudioContext is not available).\");\r\n }\r\n\r\n this.context = new AudioContext();\r\n }\r\n\r\n private DestroyAudioContext = (): void => {\r\n if (!this.context) {\r\n return;\r\n }\r\n\r\n this.recorder.ReleaseMediaResources(this.context);\r\n\r\n if (\"close\" in this.context) {\r\n this.context.close();\r\n this.context = null;\r\n } else if (this.context.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.context.suspend();\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common.browser/MicAudioSource.ts","import {\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 CreateNoDashGuid,\r\n Events,\r\n EventSource,\r\n IAudioSource,\r\n IAudioStreamNode,\r\n IStringDictionary,\r\n PlatformEvent,\r\n Promise,\r\n PromiseHelper,\r\n Stream,\r\n StreamReader,\r\n} from \"../common/Exports\";\r\n\r\nimport { Timer } from \"../common.browser/Exports\";\r\n\r\nexport class FileAudioSource implements IAudioSource {\r\n\r\n // Recommended sample rate (bytes/second).\r\n private static readonly SAMPLE_RATE: number = 16000 * 2; // 16 kHz * 16 bits\r\n\r\n // We should stream audio at no faster than 2x real-time (i.e., send five chunks\r\n // per second, with the chunk size == sample rate in bytes per second * 2 / 5).\r\n private static readonly CHUNK_SIZE: number = FileAudioSource.SAMPLE_RATE * 2 / 5;\r\n\r\n private static readonly UPLOAD_INTERVAL: number = 200; // milliseconds\r\n\r\n // 10 seconds of audio in bytes =\r\n // sample rate (bytes/second) * 600 (seconds) + 44 (size of the wave header).\r\n private static readonly MAX_SIZE: number = FileAudioSource.SAMPLE_RATE * 600 + 44;\r\n\r\n private streams: IStringDictionary> = {};\r\n\r\n private id: string;\r\n\r\n private events: EventSource;\r\n\r\n private file: File;\r\n\r\n public constructor(file: File, audioSourceId?: string) {\r\n this.id = audioSourceId ? audioSourceId : CreateNoDashGuid();\r\n this.events = new EventSource();\r\n this.file = file;\r\n }\r\n\r\n public TurnOn = (): Promise => {\r\n if (typeof FileReader === \"undefined\") {\r\n const errorMsg = \"Browser does not support FileReader.\";\r\n this.OnEvent(new AudioSourceErrorEvent(errorMsg, \"\")); // initialization error - no streamid at this point\r\n return PromiseHelper.FromError(errorMsg);\r\n } else if (this.file.name.lastIndexOf(\".wav\") !== this.file.name.length - 4) {\r\n const errorMsg = this.file.name + \" is not supported. Only WAVE files are allowed at the moment.\";\r\n this.OnEvent(new AudioSourceErrorEvent(errorMsg, \"\"));\r\n return PromiseHelper.FromError(errorMsg);\r\n } else if (this.file.size > FileAudioSource.MAX_SIZE) {\r\n const errorMsg = this.file.name + \" exceeds the maximum allowed file size (\" + FileAudioSource.MAX_SIZE + \").\";\r\n this.OnEvent(new AudioSourceErrorEvent(errorMsg, \"\"));\r\n return PromiseHelper.FromError(errorMsg);\r\n }\r\n\r\n this.OnEvent(new AudioSourceInitializingEvent(this.id)); // no stream id\r\n this.OnEvent(new AudioSourceReadyEvent(this.id));\r\n return PromiseHelper.FromResult(true);\r\n }\r\n\r\n public Id = (): string => {\r\n return this.id;\r\n }\r\n\r\n public Attach = (audioNodeId: string): Promise => {\r\n this.OnEvent(new AudioStreamNodeAttachingEvent(this.id, audioNodeId));\r\n\r\n return this.Upload(audioNodeId).OnSuccessContinueWith(\r\n (streamReader: StreamReader) => {\r\n this.OnEvent(new AudioStreamNodeAttachedEvent(this.id, audioNodeId));\r\n return {\r\n Detach: () => {\r\n streamReader.Close();\r\n delete this.streams[audioNodeId];\r\n this.OnEvent(new AudioStreamNodeDetachedEvent(this.id, audioNodeId));\r\n this.TurnOff();\r\n },\r\n Id: () => {\r\n return audioNodeId;\r\n },\r\n Read: () => {\r\n return streamReader.Read();\r\n },\r\n };\r\n });\r\n }\r\n\r\n public Detach = (audioNodeId: string): void => {\r\n if (audioNodeId && this.streams[audioNodeId]) {\r\n this.streams[audioNodeId].Close();\r\n delete this.streams[audioNodeId];\r\n this.OnEvent(new AudioStreamNodeDetachedEvent(this.id, audioNodeId));\r\n }\r\n }\r\n\r\n public TurnOff = (): Promise => {\r\n for (const streamId in this.streams) {\r\n if (streamId) {\r\n const stream = this.streams[streamId];\r\n if (stream && !stream.IsClosed) {\r\n stream.Close();\r\n }\r\n }\r\n }\r\n\r\n this.OnEvent(new AudioSourceOffEvent(this.id)); // no stream now\r\n return PromiseHelper.FromResult(true);\r\n }\r\n\r\n public get Events(): EventSource {\r\n return this.events;\r\n }\r\n\r\n private Upload = (audioNodeId: string): Promise> => {\r\n return this.TurnOn()\r\n .OnSuccessContinueWith>((_: boolean) => {\r\n const stream = new Stream(audioNodeId);\r\n\r\n this.streams[audioNodeId] = stream;\r\n\r\n const reader: FileReader = new FileReader();\r\n\r\n let startOffset = 0;\r\n let endOffset = FileAudioSource.CHUNK_SIZE;\r\n let lastWriteTimestamp = 0;\r\n\r\n const processNextChunk = (event: Event): void => {\r\n if (stream.IsClosed) {\r\n return; // output stream was closed (somebody called TurnOff). We're done here.\r\n }\r\n\r\n if (lastWriteTimestamp !== 0) {\r\n const delay = Date.now() - lastWriteTimestamp;\r\n if (delay < FileAudioSource.UPLOAD_INTERVAL) {\r\n // It's been less than the \"upload interval\" since we've uploaded the\r\n // last chunk. Schedule the next upload to make sure that we're sending\r\n // upstream roughly one chunk per upload interval.\r\n new Timer(FileAudioSource.UPLOAD_INTERVAL - delay, processNextChunk).start();\r\n return;\r\n }\r\n }\r\n\r\n stream.Write(reader.result);\r\n lastWriteTimestamp = Date.now();\r\n\r\n if (endOffset < this.file.size) {\r\n startOffset = endOffset;\r\n endOffset = Math.min(endOffset + FileAudioSource.CHUNK_SIZE, this.file.size);\r\n const chunk = this.file.slice(startOffset, endOffset);\r\n reader.readAsArrayBuffer(chunk);\r\n } else {\r\n // we've written the entire file to the output stream, can close it now.\r\n stream.Close();\r\n }\r\n };\r\n\r\n reader.onload = processNextChunk;\r\n\r\n reader.onerror = (event: ErrorEvent) => {\r\n const errorMsg = `Error occurred while processing '${this.file.name}'. ${event.error}`;\r\n this.OnEvent(new AudioStreamNodeErrorEvent(this.id, audioNodeId, event.error));\r\n throw new Error(errorMsg);\r\n };\r\n\r\n const chunk = this.file.slice(startOffset, endOffset);\r\n reader.readAsArrayBuffer(chunk);\r\n\r\n return stream.GetReader();\r\n });\r\n }\r\n\r\n private OnEvent = (event: AudioSourceEvent): void => {\r\n this.events.OnEvent(event);\r\n Events.Instance.OnEvent(event);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common.browser/FileAudioSource.ts","import { Stream } from \"../common/Exports\";\r\nimport { IRecorder } from \"./IRecorder\";\r\n\r\n// getting around the build error for MediaRecorder as Typescript does not have a definition for this one.\r\ndeclare var MediaRecorder: any;\r\n\r\nexport class OpusRecorder implements IRecorder {\r\n private mediaResources: IMediaResources;\r\n private mediaRecorderOptions: any;\r\n\r\n constructor(options?: { mimeType: string, bitsPerSecond: number }) {\r\n this.mediaRecorderOptions = options;\r\n }\r\n\r\n public Record = (context: AudioContext, mediaStream: MediaStream, outputStream: Stream): void => {\r\n const mediaRecorder: any = new MediaRecorder(mediaStream, this.mediaRecorderOptions);\r\n const timeslice = 100; // this is in ms - 100 ensures that the chunk doesn't exceed the max size of chunk allowed in WS connection\r\n mediaRecorder.ondataavailable = (dataAvailableEvent: any) => {\r\n if (outputStream) {\r\n const reader = new FileReader();\r\n reader.readAsArrayBuffer(dataAvailableEvent.data);\r\n reader.onloadend = (event: ProgressEvent) => {\r\n outputStream.Write(reader.result);\r\n };\r\n }\r\n };\r\n\r\n this.mediaResources = {\r\n recorder: mediaRecorder,\r\n stream: mediaStream,\r\n };\r\n mediaRecorder.start(timeslice);\r\n }\r\n\r\n public ReleaseMediaResources = (context: AudioContext): void => {\r\n if (this.mediaResources.recorder.state !== \"inactive\") {\r\n this.mediaResources.recorder.stop();\r\n }\r\n this.mediaResources.stream.getTracks().forEach((track: any) => track.stop());\r\n }\r\n}\r\n\r\ninterface IMediaResources {\r\n stream: MediaStream;\r\n recorder: any;\r\n}\r\n\r\n/* Declaring this inline to avoid compiler warnings\r\ndeclare class MediaRecorder {\r\n constructor(mediaStream: MediaStream, options: any);\r\n\r\n public state: string;\r\n\r\n public ondataavailable(dataAvailableEvent: any): void;\r\n public stop(): void;\r\n}*/\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common.browser/OpusRecorder.ts","import { RiffPcmEncoder, Stream } from \"../common/Exports\";\r\nimport { IRecorder } from \"./IRecorder\";\r\n\r\nexport class PcmRecorder implements IRecorder {\r\n private mediaResources: IMediaResources;\r\n\r\n public Record = (context: AudioContext, mediaStream: MediaStream, outputStream: Stream): void => {\r\n const desiredSampleRate = 16000;\r\n\r\n // https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createScriptProcessor\r\n const scriptNode = (() => {\r\n let bufferSize = 0;\r\n try {\r\n return context.createScriptProcessor(bufferSize, 1, 1);\r\n } catch (error) {\r\n // Webkit (<= version 31) requires a valid bufferSize.\r\n bufferSize = 2048;\r\n let audioSampleRate = context.sampleRate;\r\n while (bufferSize < 16384 && audioSampleRate >= (2 * desiredSampleRate)) {\r\n bufferSize <<= 1 ;\r\n audioSampleRate >>= 1;\r\n }\r\n return context.createScriptProcessor(bufferSize, 1, 1);\r\n }\r\n })();\r\n\r\n const waveStreamEncoder = new RiffPcmEncoder(context.sampleRate, desiredSampleRate);\r\n let needHeader: boolean = true;\r\n const that = this;\r\n scriptNode.onaudioprocess = (event: AudioProcessingEvent) => {\r\n const inputFrame = event.inputBuffer.getChannelData(0);\r\n\r\n if (outputStream && !outputStream.IsClosed) {\r\n const waveFrame = waveStreamEncoder.Encode(needHeader, inputFrame);\r\n if (!!waveFrame) {\r\n outputStream.Write(waveFrame);\r\n needHeader = false;\r\n }\r\n }\r\n };\r\n\r\n // https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/createMediaStreamSource\r\n const micInput = context.createMediaStreamSource(mediaStream);\r\n\r\n this.mediaResources = {\r\n scriptProcessorNode: scriptNode,\r\n source: micInput,\r\n stream: mediaStream,\r\n };\r\n\r\n micInput.connect(scriptNode);\r\n scriptNode.connect(context.destination);\r\n }\r\n\r\n public ReleaseMediaResources = (context: AudioContext): void => {\r\n if (this.mediaResources) {\r\n if (this.mediaResources.scriptProcessorNode) {\r\n this.mediaResources.scriptProcessorNode.disconnect(context.destination);\r\n this.mediaResources.scriptProcessorNode = null;\r\n }\r\n if (this.mediaResources.source) {\r\n this.mediaResources.source.disconnect();\r\n this.mediaResources.stream.getTracks().forEach((track: any) => track.stop());\r\n this.mediaResources.source = null;\r\n }\r\n }\r\n }\r\n}\r\n\r\ninterface IMediaResources {\r\n source: MediaStreamAudioSourceNode;\r\n scriptProcessorNode: ScriptProcessorNode;\r\n stream: MediaStream;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common.browser/PCMRecorder.ts","import { ArgumentNullError, IKeyValueStorage } from \"../common/Exports\";\r\n\r\nexport class SessionStorage implements IKeyValueStorage {\r\n\r\n public Get = (key: string): string => {\r\n if (!key) {\r\n throw new ArgumentNullError(\"key\");\r\n }\r\n\r\n return sessionStorage.getItem(key);\r\n }\r\n\r\n public GetOrAdd = (key: string, valueToAdd: string): string => {\r\n if (!key) {\r\n throw new ArgumentNullError(\"key\");\r\n }\r\n\r\n const value = sessionStorage.getItem(key);\r\n if (value === null || value === undefined) {\r\n sessionStorage.setItem(key, valueToAdd);\r\n }\r\n\r\n return sessionStorage.getItem(key);\r\n }\r\n\r\n public Set = (key: string, value: string): void => {\r\n if (!key) {\r\n throw new ArgumentNullError(\"key\");\r\n }\r\n\r\n sessionStorage.setItem(key, value);\r\n }\r\n\r\n public Remove = (key: string): void => {\r\n if (!key) {\r\n throw new ArgumentNullError(\"key\");\r\n }\r\n\r\n sessionStorage.removeItem(key);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common.browser/SessionStorage.ts","import { ITimer } from \"../common/Exports\";\r\n\r\nexport class Timer implements ITimer {\r\n private delayInMillisec: number;\r\n private timerId: number;\r\n private successCallback: any;\r\n constructor(delayInMillisec: number, successCallback: any) {\r\n this.delayInMillisec = delayInMillisec;\r\n this.successCallback = successCallback;\r\n }\r\n public start = (...params: any[]): void => {\r\n if (this.timerId) {\r\n this.stop();\r\n }\r\n this.timerId = setTimeout(this.successCallback, this.delayInMillisec, params);\r\n }\r\n\r\n public stop = (): void => {\r\n clearTimeout(this.timerId);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common.browser/Timer.ts","import {\r\n ArgumentNullError,\r\n ConnectionEvent,\r\n ConnectionMessage,\r\n ConnectionOpenResponse,\r\n ConnectionState,\r\n CreateNoDashGuid,\r\n EventSource,\r\n IConnection,\r\n IStringDictionary,\r\n IWebsocketMessageFormatter,\r\n PlatformEvent,\r\n Promise,\r\n} from \"../common/Exports\";\r\nimport { WebsocketMessageAdapter } from \"./WebsocketMessageAdapter\";\r\n\r\nexport class WebsocketConnection implements IConnection {\r\n\r\n private uri: string;\r\n private messageFormatter: IWebsocketMessageFormatter;\r\n private connectionMessageAdapter: WebsocketMessageAdapter;\r\n private id: string;\r\n private isDisposed: boolean = false;\r\n\r\n public constructor(\r\n uri: string,\r\n queryParameters: IStringDictionary,\r\n headers: IStringDictionary,\r\n messageFormatter: IWebsocketMessageFormatter,\r\n connectionId?: string) {\r\n\r\n if (!uri) {\r\n throw new ArgumentNullError(\"uri\");\r\n }\r\n\r\n if (!messageFormatter) {\r\n throw new ArgumentNullError(\"messageFormatter\");\r\n }\r\n\r\n this.messageFormatter = messageFormatter;\r\n\r\n let queryParams = \"\";\r\n let i = 0;\r\n\r\n if (queryParameters) {\r\n for (const paramName in queryParameters) {\r\n if (paramName) {\r\n queryParams += i === 0 ? \"?\" : \"&\";\r\n const val = encodeURIComponent(queryParameters[paramName]);\r\n queryParams += `${paramName}=${val}`;\r\n i++;\r\n }\r\n }\r\n }\r\n\r\n if (headers) {\r\n for (const headerName in headers) {\r\n if (headerName) {\r\n queryParams += i === 0 ? \"?\" : \"&\";\r\n const val = encodeURIComponent(headers[headerName]);\r\n queryParams += `${headerName}=${val}`;\r\n i++;\r\n }\r\n }\r\n }\r\n\r\n this.uri = uri + queryParams;\r\n this.id = connectionId ? connectionId : CreateNoDashGuid();\r\n\r\n this.connectionMessageAdapter = new WebsocketMessageAdapter(\r\n this.uri,\r\n this.Id,\r\n this.messageFormatter);\r\n }\r\n\r\n public Dispose = (): void => {\r\n this.isDisposed = true;\r\n\r\n if (this.connectionMessageAdapter) {\r\n this.connectionMessageAdapter.Close();\r\n }\r\n }\r\n\r\n public IsDisposed = (): boolean => {\r\n return this.isDisposed;\r\n }\r\n\r\n public get Id(): string {\r\n return this.id;\r\n }\r\n\r\n public State = (): ConnectionState => {\r\n return this.connectionMessageAdapter.State;\r\n }\r\n\r\n public Open = (): Promise => {\r\n return this.connectionMessageAdapter.Open();\r\n }\r\n\r\n public Send = (message: ConnectionMessage): Promise => {\r\n return this.connectionMessageAdapter.Send(message);\r\n }\r\n\r\n public Read = (): Promise => {\r\n return this.connectionMessageAdapter.Read();\r\n }\r\n\r\n public get Events(): EventSource {\r\n return this.connectionMessageAdapter.Events;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/common.browser/WebsocketConnection.ts","import { 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\nexport class CognitiveSubscriptionKeyAuthentication implements IAuthentication {\r\n private authInfo: AuthInfo;\r\n\r\n constructor(subscriptionKey: string) {\r\n if (!subscriptionKey) {\r\n throw new ArgumentNullError(\"subscriptionKey\");\r\n }\r\n\r\n this.authInfo = new AuthInfo(AuthHeader, subscriptionKey);\r\n }\r\n\r\n public Fetch = (authFetchEventId: string): Promise => {\r\n return PromiseHelper.FromResult(this.authInfo);\r\n }\r\n\r\n public FetchOnExpiry = (authFetchEventId: string): Promise => {\r\n return PromiseHelper.FromResult(this.authInfo);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/sdk/speech/CognitiveSubscriptionKeyAuthentication.ts","import { ArgumentNullError, Promise, PromiseHelper } 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 fetchCallback: (authFetchEventId: string) => Promise;\r\n private fetchOnExpiryCallback: (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.fetchCallback = fetchCallback;\r\n this.fetchOnExpiryCallback = fetchOnExpiryCallback;\r\n }\r\n\r\n public Fetch = (authFetchEventId: string): Promise => {\r\n return this.fetchCallback(authFetchEventId).OnSuccessContinueWith((token: string) => new AuthInfo(AuthHeader, token));\r\n }\r\n\r\n public FetchOnExpiry = (authFetchEventId: string): Promise => {\r\n return this.fetchOnExpiryCallback(authFetchEventId).OnSuccessContinueWith((token: string) => new AuthInfo(AuthHeader, token));\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/sdk/speech/CognitiveTokenAuthentication.ts","import {\r\n ArgumentNullError,\r\n ConnectionMessage,\r\n ConnectionOpenResponse,\r\n ConnectionState,\r\n CreateNoDashGuid,\r\n Deferred,\r\n Events,\r\n IAudioSource,\r\n IAudioStreamNode,\r\n IConnection,\r\n IDetachable,\r\n IEventSource,\r\n IStreamChunk,\r\n MessageType,\r\n PlatformEvent,\r\n Promise,\r\n PromiseHelper,\r\n PromiseResult,\r\n} from \"../../common/Exports\";\r\nimport { AuthInfo, IAuthentication } from \"./IAuthentication\";\r\nimport { IConnectionFactory } from \"./IConnectionFactory\";\r\nimport {\r\n ConnectingToServiceEvent,\r\n ListeningStartedEvent,\r\n RecognitionCompletionStatus,\r\n RecognitionEndedEvent,\r\n RecognitionStartedEvent,\r\n RecognitionTriggeredEvent,\r\n SpeechDetailedPhraseEvent,\r\n SpeechEndDetectedEvent,\r\n SpeechFragmentEvent,\r\n SpeechHypothesisEvent,\r\n SpeechRecognitionEvent,\r\n SpeechRecognitionResultEvent,\r\n SpeechSimplePhraseEvent,\r\n SpeechStartDetectedEvent,\r\n} from \"./RecognitionEvents\";\r\nimport { RecognitionMode, RecognizerConfig, SpeechResultFormat } from \"./RecognizerConfig\";\r\nimport { ServiceTelemetryListener } from \"./ServiceTelemetryListener.Internal\";\r\nimport { SpeechConnectionMessage } from \"./SpeechConnectionMessage.Internal\";\r\nimport {\r\n IDetailedSpeechPhrase,\r\n ISimpleSpeechPhrase,\r\n ISpeechEndDetectedResult,\r\n ISpeechFragment,\r\n ISpeechStartDetectedResult,\r\n} from \"./SpeechResults\";\r\n\r\nexport class Recognizer {\r\n private authentication: IAuthentication;\r\n private connectionFactory: IConnectionFactory;\r\n private audioSource: IAudioSource;\r\n private recognizerConfig: RecognizerConfig;\r\n private speechConfigConnectionId: string;\r\n private connectionFetchPromise: Promise;\r\n private connectionId: string;\r\n private authFetchEventId: string;\r\n\r\n public constructor(\r\n authentication: IAuthentication,\r\n connectionFactory: IConnectionFactory,\r\n audioSource: IAudioSource,\r\n recognizerConfig: RecognizerConfig) {\r\n\r\n if (!authentication) {\r\n throw new ArgumentNullError(\"authentication\");\r\n }\r\n\r\n if (!connectionFactory) {\r\n throw new ArgumentNullError(\"connectionFactory\");\r\n }\r\n\r\n if (!audioSource) {\r\n throw new ArgumentNullError(\"audioSource\");\r\n }\r\n\r\n if (!recognizerConfig) {\r\n throw new ArgumentNullError(\"recognizerConfig\");\r\n }\r\n\r\n this.authentication = authentication;\r\n this.connectionFactory = connectionFactory;\r\n this.audioSource = audioSource;\r\n this.recognizerConfig = recognizerConfig;\r\n }\r\n\r\n public get AudioSource(): IAudioSource {\r\n return this.audioSource;\r\n }\r\n\r\n public Recognize = (onEventCallback: (event: SpeechRecognitionEvent) => void, speechContextJson?: string): Promise => {\r\n const requestSession = new RequestSession(this.audioSource.Id(), onEventCallback);\r\n requestSession.ListenForServiceTelemetry(this.audioSource.Events);\r\n\r\n return this.audioSource\r\n .Attach(requestSession.AudioNodeId)\r\n .ContinueWithPromise((result: PromiseResult) => {\r\n if (result.IsError) {\r\n requestSession.OnAudioSourceAttachCompleted(null, true, result.Error);\r\n throw new Error(result.Error);\r\n } else {\r\n requestSession.OnAudioSourceAttachCompleted(result.Result, false);\r\n }\r\n\r\n const audioNode = result.Result;\r\n\r\n this.FetchConnection(requestSession)\r\n .OnSuccessContinueWith((connection: IConnection) => {\r\n const messageRetrievalPromise = this.ReceiveMessage(connection, requestSession);\r\n const messageSendPromise = this.SendSpeechConfig(requestSession.RequestId, connection, this.recognizerConfig.SpeechConfig.Serialize())\r\n .OnSuccessContinueWithPromise((_: boolean) => {\r\n return this.SendSpeechContext(requestSession.RequestId, connection, speechContextJson)\r\n .OnSuccessContinueWithPromise((_: boolean) => {\r\n return this.SendAudio(requestSession.RequestId, connection, audioNode, requestSession);\r\n });\r\n });\r\n\r\n const completionPromise = PromiseHelper.WhenAll([messageRetrievalPromise, messageSendPromise]);\r\n\r\n completionPromise.On((r: boolean) => {\r\n requestSession.Dispose();\r\n this.SendTelemetryData(requestSession.RequestId, connection, requestSession.GetTelemetry());\r\n }, (error: string) => {\r\n requestSession.Dispose(error);\r\n this.SendTelemetryData(requestSession.RequestId, connection, requestSession.GetTelemetry());\r\n });\r\n\r\n return completionPromise;\r\n });\r\n\r\n return requestSession.CompletionPromise;\r\n });\r\n }\r\n\r\n private FetchConnection = (requestSession: RequestSession, isUnAuthorized: boolean = false): Promise => {\r\n if (this.connectionFetchPromise) {\r\n if (this.connectionFetchPromise.Result().IsError\r\n || this.connectionFetchPromise.Result().Result.State() === ConnectionState.Disconnected) {\r\n this.connectionId = null;\r\n this.connectionFetchPromise = null;\r\n return this.FetchConnection(requestSession);\r\n } else {\r\n requestSession.OnPreConnectionStart(this.authFetchEventId, this.connectionId);\r\n requestSession.OnConnectionEstablishCompleted(200);\r\n requestSession.ListenForServiceTelemetry(this.connectionFetchPromise.Result().Result.Events);\r\n return this.connectionFetchPromise;\r\n }\r\n }\r\n\r\n this.authFetchEventId = CreateNoDashGuid();\r\n this.connectionId = CreateNoDashGuid();\r\n\r\n requestSession.OnPreConnectionStart(this.authFetchEventId, this.connectionId);\r\n\r\n const authPromise = isUnAuthorized ? this.authentication.FetchOnExpiry(this.authFetchEventId) : this.authentication.Fetch(this.authFetchEventId);\r\n\r\n this.connectionFetchPromise = authPromise\r\n .ContinueWithPromise((result: PromiseResult) => {\r\n if (result.IsError) {\r\n requestSession.OnAuthCompleted(true, result.Error);\r\n throw new Error(result.Error);\r\n } else {\r\n requestSession.OnAuthCompleted(false);\r\n }\r\n\r\n const connection = this.connectionFactory.Create(this.recognizerConfig, result.Result, this.connectionId);\r\n requestSession.ListenForServiceTelemetry(connection.Events);\r\n\r\n return connection.Open().OnSuccessContinueWithPromise((response: ConnectionOpenResponse) => {\r\n if (response.StatusCode === 200) {\r\n requestSession.OnConnectionEstablishCompleted(response.StatusCode);\r\n return PromiseHelper.FromResult(connection);\r\n } else if (response.StatusCode === 403 && !isUnAuthorized) {\r\n return this.FetchConnection(requestSession, true);\r\n } else {\r\n requestSession.OnConnectionEstablishCompleted(response.StatusCode, response.Reason);\r\n return PromiseHelper.FromError(`Unable to contact server. StatusCode: ${response.StatusCode}, Reason: ${response.Reason}`);\r\n }\r\n });\r\n });\r\n\r\n return this.connectionFetchPromise;\r\n }\r\n\r\n private ReceiveMessage = (connection: IConnection, requestSession: RequestSession): Promise => {\r\n return connection\r\n .Read()\r\n .OnSuccessContinueWithPromise((message: ConnectionMessage) => {\r\n const connectionMessage = SpeechConnectionMessage.FromConnectionMessage(message);\r\n if (connectionMessage.RequestId.toLowerCase() === requestSession.RequestId.toLowerCase()) {\r\n switch (connectionMessage.Path.toLowerCase()) {\r\n case \"turn.start\":\r\n requestSession.OnServiceTurnStartResponse(JSON.parse(connectionMessage.TextBody));\r\n break;\r\n case \"speech.startDetected\":\r\n requestSession.OnServiceSpeechStartDetectedResponse(JSON.parse(connectionMessage.TextBody));\r\n break;\r\n case \"speech.hypothesis\":\r\n requestSession.OnServiceSpeechHypothesisResponse(JSON.parse(connectionMessage.TextBody));\r\n break;\r\n case \"speech.fragment\":\r\n requestSession.OnServiceSpeechFragmentResponse(JSON.parse(connectionMessage.TextBody));\r\n break;\r\n case \"speech.enddetected\":\r\n requestSession.OnServiceSpeechEndDetectedResponse(JSON.parse(connectionMessage.TextBody));\r\n break;\r\n case \"speech.phrase\":\r\n if (this.recognizerConfig.IsContinuousRecognition) {\r\n // For continuous recognition telemetry has to be sent for every phrase as per spec.\r\n this.SendTelemetryData(requestSession.RequestId, connection, requestSession.GetTelemetry());\r\n }\r\n if (this.recognizerConfig.Format === SpeechResultFormat.Simple) {\r\n requestSession.OnServiceSimpleSpeechPhraseResponse(JSON.parse(connectionMessage.TextBody));\r\n } else {\r\n requestSession.OnServiceDetailedSpeechPhraseResponse(JSON.parse(connectionMessage.TextBody));\r\n }\r\n break;\r\n case \"turn.end\":\r\n requestSession.OnServiceTurnEndResponse();\r\n return PromiseHelper.FromResult(true);\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return this.ReceiveMessage(connection, requestSession);\r\n });\r\n }\r\n\r\n private SendSpeechConfig = (requestId: string, connection: IConnection, speechConfigJson: string) => {\r\n if (speechConfigJson && this.connectionId !== this.speechConfigConnectionId) {\r\n this.speechConfigConnectionId = this.connectionId;\r\n return connection\r\n .Send(new SpeechConnectionMessage(\r\n MessageType.Text,\r\n \"speech.config\",\r\n requestId,\r\n \"application/json\",\r\n speechConfigJson));\r\n }\r\n\r\n return PromiseHelper.FromResult(true);\r\n }\r\n\r\n private SendSpeechContext = (requestId: string, connection: IConnection, speechContextJson: string) => {\r\n if (speechContextJson) {\r\n return connection\r\n .Send(new SpeechConnectionMessage(\r\n MessageType.Text,\r\n \"speech.context\",\r\n requestId,\r\n \"application/json\",\r\n speechContextJson));\r\n }\r\n return PromiseHelper.FromResult(true);\r\n }\r\n\r\n private SendTelemetryData = (requestId: string, connection: IConnection, telemetryData: string) => {\r\n return connection\r\n .Send(new SpeechConnectionMessage(\r\n MessageType.Text,\r\n \"telemetry\",\r\n requestId,\r\n \"application/json\",\r\n telemetryData));\r\n }\r\n\r\n private SendAudio = (\r\n requestId: string,\r\n connection: IConnection,\r\n audioStreamNode: IAudioStreamNode,\r\n requestSession: RequestSession): Promise => {\r\n // NOTE: Home-baked promises crash ios safari during the invocation\r\n // of the error callback chain (looks like the recursion is way too deep, and\r\n // it blows up the stack). The following construct is a stop-gap that does not\r\n // bubble the error up the callback chain and hence circumvents this problem.\r\n // TODO: rewrite with ES6 promises.\r\n const deferred = new Deferred();\r\n\r\n const readAndUploadCycle = (_: boolean) => {\r\n audioStreamNode.Read().On(\r\n (audioStreamChunk: IStreamChunk) => {\r\n // we have a new audio chunk to upload.\r\n if (requestSession.IsSpeechEnded) {\r\n // If service already recognized audio end then dont send any more audio\r\n deferred.Resolve(true);\r\n return;\r\n }\r\n\r\n const payload = (audioStreamChunk.IsEnd) ? null : audioStreamChunk.Buffer;\r\n const uploaded = connection.Send(\r\n new SpeechConnectionMessage(\r\n MessageType.Binary, \"audio\", requestId, null, payload));\r\n\r\n if (!audioStreamChunk.IsEnd) {\r\n uploaded.OnSuccessContinueWith(readAndUploadCycle);\r\n } else {\r\n // the audio stream has been closed, no need to schedule next\r\n // read-upload cycle.\r\n deferred.Resolve(true);\r\n }\r\n },\r\n (error: string) => {\r\n if (requestSession.IsSpeechEnded) {\r\n // For whatever reason, Reject is used to remove queue subscribers inside\r\n // the Queue.DrainAndDispose invoked from DetachAudioNode down blow, which\r\n // means that sometimes things can be rejected in normal circumstances, without\r\n // any errors.\r\n deferred.Resolve(true); // TODO: remove the argument, it's is completely meaningless.\r\n } else {\r\n // Only reject, if there was a proper error.\r\n deferred.Reject(error);\r\n }\r\n });\r\n };\r\n\r\n readAndUploadCycle(true);\r\n\r\n return deferred.Promise();\r\n }\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nclass RequestSession {\r\n private isDisposed: boolean = false;\r\n private serviceTelemetryListener: ServiceTelemetryListener;\r\n private detachables: IDetachable[] = new Array();\r\n private requestId: string;\r\n private audioSourceId: string;\r\n private audioNodeId: string;\r\n private audioNode: IAudioStreamNode;\r\n private authFetchEventId: string;\r\n private connectionId: string;\r\n private serviceTag: string;\r\n private isAudioNodeDetached: boolean = false;\r\n private isCompleted: boolean = false;\r\n private onEventCallback: (event: SpeechRecognitionEvent) => void;\r\n\r\n private requestCompletionDeferral: Deferred;\r\n\r\n constructor(audioSourceId: string, onEventCallback: (event: SpeechRecognitionEvent) => void) {\r\n this.audioSourceId = audioSourceId;\r\n this.onEventCallback = onEventCallback;\r\n this.requestId = CreateNoDashGuid();\r\n this.audioNodeId = CreateNoDashGuid();\r\n this.requestCompletionDeferral = new Deferred();\r\n\r\n this.serviceTelemetryListener = new ServiceTelemetryListener(this.requestId, this.audioSourceId, this.audioNodeId);\r\n\r\n this.OnEvent(new RecognitionTriggeredEvent(this.RequestId, this.audioSourceId, this.audioNodeId));\r\n }\r\n\r\n public get RequestId(): string {\r\n return this.requestId;\r\n }\r\n\r\n public get AudioNodeId(): string {\r\n return this.audioNodeId;\r\n }\r\n\r\n public get CompletionPromise(): Promise {\r\n return this.requestCompletionDeferral.Promise();\r\n }\r\n\r\n public get IsSpeechEnded(): boolean {\r\n return this.isAudioNodeDetached;\r\n }\r\n\r\n public get IsCompleted(): boolean {\r\n return this.isCompleted;\r\n }\r\n\r\n public ListenForServiceTelemetry(eventSource: IEventSource): void {\r\n this.detachables.push(eventSource.AttachListener(this.serviceTelemetryListener));\r\n }\r\n\r\n public OnAudioSourceAttachCompleted = (audioNode: IAudioStreamNode, isError: boolean, error?: string): void => {\r\n this.audioNode = audioNode;\r\n if (isError) {\r\n this.OnComplete(RecognitionCompletionStatus.AudioSourceError, error);\r\n } else {\r\n this.OnEvent(new ListeningStartedEvent(this.requestId, this.audioSourceId, this.audioNodeId));\r\n }\r\n }\r\n\r\n public OnPreConnectionStart = (authFetchEventId: string, connectionId: string): void => {\r\n this.authFetchEventId = authFetchEventId;\r\n this.connectionId = connectionId;\r\n this.OnEvent(new ConnectingToServiceEvent(this.requestId, this.authFetchEventId, this.connectionId));\r\n }\r\n\r\n public OnAuthCompleted = (isError: boolean, error?: string): void => {\r\n if (isError) {\r\n this.OnComplete(RecognitionCompletionStatus.AuthTokenFetchError, error);\r\n }\r\n }\r\n\r\n public OnConnectionEstablishCompleted = (statusCode: number, reason?: string): void => {\r\n if (statusCode === 200) {\r\n this.OnEvent(new RecognitionStartedEvent(this.RequestId, this.audioSourceId, this.audioNodeId, this.authFetchEventId, this.connectionId));\r\n return;\r\n } else if (statusCode === 403) {\r\n this.OnComplete(RecognitionCompletionStatus.UnAuthorized, reason);\r\n } else {\r\n this.OnComplete(RecognitionCompletionStatus.ConnectError, reason);\r\n }\r\n }\r\n\r\n public OnServiceTurnStartResponse = (response: ITurnStartResponse): void => {\r\n if (response && response.context && response.context.serviceTag) {\r\n this.serviceTag = response.context.serviceTag;\r\n }\r\n }\r\n\r\n public OnServiceSpeechStartDetectedResponse = (result: ISpeechStartDetectedResult): void => {\r\n this.OnEvent(new SpeechStartDetectedEvent(this.RequestId, result));\r\n }\r\n\r\n public OnServiceSpeechHypothesisResponse = (result: ISpeechFragment): void => {\r\n this.OnEvent(new SpeechHypothesisEvent(this.RequestId, result));\r\n }\r\n\r\n public OnServiceSpeechFragmentResponse = (result: ISpeechFragment): void => {\r\n this.OnEvent(new SpeechFragmentEvent(this.RequestId, result));\r\n }\r\n\r\n public OnServiceSpeechEndDetectedResponse = (result: ISpeechEndDetectedResult): void => {\r\n this.DetachAudioNode();\r\n this.OnEvent(new SpeechEndDetectedEvent(this.RequestId, result));\r\n }\r\n\r\n public OnServiceSimpleSpeechPhraseResponse = (result: ISimpleSpeechPhrase): void => {\r\n this.OnEvent(new SpeechSimplePhraseEvent(this.RequestId, result));\r\n }\r\n\r\n public OnServiceDetailedSpeechPhraseResponse = (result: IDetailedSpeechPhrase): void => {\r\n this.OnEvent(new SpeechDetailedPhraseEvent(this.RequestId, result));\r\n }\r\n\r\n public OnServiceTurnEndResponse = (): void => {\r\n this.OnComplete(RecognitionCompletionStatus.Success);\r\n }\r\n\r\n public OnConnectionError = (error: string): void => {\r\n this.OnComplete(RecognitionCompletionStatus.UnknownError, error);\r\n }\r\n\r\n public Dispose = (error?: string): void => {\r\n if (!this.isDisposed) {\r\n // we should have completed by now. If we did not its an unknown error.\r\n this.OnComplete(RecognitionCompletionStatus.UnknownError, error);\r\n this.isDisposed = true;\r\n for (const detachable of this.detachables) {\r\n detachable.Detach();\r\n }\r\n\r\n this.serviceTelemetryListener.Dispose();\r\n }\r\n }\r\n\r\n public GetTelemetry = (): string => {\r\n return this.serviceTelemetryListener.GetTelemetry();\r\n }\r\n\r\n private OnComplete = (status: RecognitionCompletionStatus, error?: string): void => {\r\n if (!this.isCompleted) {\r\n this.isCompleted = true;\r\n this.DetachAudioNode();\r\n this.OnEvent(new RecognitionEndedEvent(this.RequestId, this.audioSourceId, this.audioNodeId, this.authFetchEventId, this.connectionId, this.serviceTag, status, error ? error : \"\"));\r\n }\r\n }\r\n\r\n private DetachAudioNode = (): void => {\r\n if (!this.isAudioNodeDetached) {\r\n this.isAudioNodeDetached = true;\r\n if (this.audioNode) {\r\n this.audioNode.Detach();\r\n }\r\n }\r\n }\r\n\r\n private OnEvent = (event: SpeechRecognitionEvent): void => {\r\n this.serviceTelemetryListener.OnEvent(event);\r\n Events.Instance.OnEvent(event);\r\n if (this.onEventCallback) {\r\n this.onEventCallback(event);\r\n }\r\n }\r\n}\r\n\r\ninterface ITurnStartResponse {\r\n context: ITurnStartContext;\r\n}\r\n\r\ninterface ITurnStartContext {\r\n serviceTag: string;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/sdk/speech/Recognizer.ts","import {\r\n AudioSourceErrorEvent,\r\n AudioStreamNodeAttachedEvent,\r\n AudioStreamNodeAttachingEvent,\r\n AudioStreamNodeDetachedEvent,\r\n AudioStreamNodeErrorEvent,\r\n ConnectionClosedEvent,\r\n ConnectionEstablishedEvent,\r\n ConnectionEstablishErrorEvent,\r\n ConnectionMessageReceivedEvent,\r\n ConnectionStartEvent,\r\n IEventListener,\r\n IStringDictionary,\r\n PlatformEvent,\r\n} from \"../../common/Exports\";\r\nimport {\r\n ConnectingToServiceEvent,\r\n RecognitionTriggeredEvent,\r\n} from \"./RecognitionEvents\";\r\n\r\ninterface ITelemetry {\r\n Metrics: IMetric[];\r\n ReceivedMessages: IStringDictionary;\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\ninterface IMetric {\r\n End: string;\r\n Error?: string;\r\n Id?: string;\r\n Name: string;\r\n Start: string;\r\n}\r\n\r\n// tslint:disable-next-line:max-classes-per-file\r\nexport class ServiceTelemetryListener implements IEventListener {\r\n private isDisposed: boolean = false;\r\n\r\n private requestId: string;\r\n private audioSourceId: string;\r\n private audioNodeId: string;\r\n\r\n private listeningTriggerMetric: IMetric = null;\r\n private micMetric: IMetric = null;\r\n private connectionEstablishMetric: IMetric = null;\r\n\r\n private micStartTime: string;\r\n\r\n private connectionId: string;\r\n private connectionStartTime: string;\r\n\r\n private receivedMessages: IStringDictionary;\r\n\r\n constructor(requestId: string, audioSourceId: string, audioNodeId: string) {\r\n this.requestId = requestId;\r\n this.audioSourceId = audioSourceId;\r\n this.audioNodeId = audioNodeId;\r\n\r\n this.receivedMessages = {};\r\n }\r\n\r\n public OnEvent = (e: PlatformEvent): void => {\r\n if (this.isDisposed) {\r\n return;\r\n }\r\n\r\n if (e instanceof RecognitionTriggeredEvent && e.RequestId === this.requestId) {\r\n this.listeningTriggerMetric = {\r\n End: e.EventTime,\r\n Name: \"ListeningTrigger\",\r\n Start: e.EventTime,\r\n };\r\n }\r\n\r\n if (e instanceof AudioStreamNodeAttachingEvent && e.AudioSourceId === this.audioSourceId && e.AudioNodeId === this.audioNodeId) {\r\n this.micStartTime = e.EventTime;\r\n }\r\n\r\n if (e instanceof AudioStreamNodeAttachedEvent && e.AudioSourceId === this.audioSourceId && e.AudioNodeId === this.audioNodeId) {\r\n this.micStartTime = e.EventTime;\r\n }\r\n\r\n if (e instanceof AudioSourceErrorEvent && e.AudioSourceId === this.audioSourceId) {\r\n if (!this.micMetric) {\r\n this.micMetric = {\r\n End: e.EventTime,\r\n Error: e.Error,\r\n Name: \"Microphone\",\r\n Start: this.micStartTime,\r\n };\r\n }\r\n }\r\n\r\n if (e instanceof AudioStreamNodeErrorEvent && e.AudioSourceId === this.audioSourceId && e.AudioNodeId === this.audioNodeId) {\r\n if (!this.micMetric) {\r\n this.micMetric = {\r\n End: e.EventTime,\r\n Error: e.Error,\r\n Name: \"Microphone\",\r\n Start: this.micStartTime,\r\n };\r\n }\r\n }\r\n\r\n if (e instanceof AudioStreamNodeDetachedEvent && e.AudioSourceId === this.audioSourceId && e.AudioNodeId === this.audioNodeId) {\r\n if (!this.micMetric) {\r\n this.micMetric = {\r\n End: e.EventTime,\r\n Name: \"Microphone\",\r\n Start: this.micStartTime,\r\n };\r\n }\r\n }\r\n\r\n if (e instanceof ConnectingToServiceEvent && e.RequestId === this.requestId) {\r\n this.connectionId = e.ConnectionId;\r\n }\r\n\r\n if (e instanceof ConnectionStartEvent && e.ConnectionId === this.connectionId) {\r\n this.connectionStartTime = e.EventTime;\r\n }\r\n\r\n if (e instanceof ConnectionEstablishedEvent && e.ConnectionId === this.connectionId) {\r\n if (!this.connectionEstablishMetric) {\r\n this.connectionEstablishMetric = {\r\n End: e.EventTime,\r\n Id: this.connectionId,\r\n Name: \"Connection\",\r\n Start: this.connectionStartTime,\r\n };\r\n }\r\n }\r\n\r\n if (e instanceof ConnectionEstablishErrorEvent && e.ConnectionId === this.connectionId) {\r\n if (!this.connectionEstablishMetric) {\r\n this.connectionEstablishMetric = {\r\n End: e.EventTime,\r\n Error: this.GetConnectionError(e.StatusCode),\r\n Id: this.connectionId,\r\n Name: \"Connection\",\r\n Start: this.connectionStartTime,\r\n };\r\n }\r\n }\r\n\r\n if (e instanceof ConnectionMessageReceivedEvent && e.ConnectionId === this.connectionId) {\r\n if (e.Message && e.Message.Headers && e.Message.Headers.path) {\r\n if (!this.receivedMessages[e.Message.Headers.path]) {\r\n this.receivedMessages[e.Message.Headers.path] = new Array();\r\n }\r\n\r\n this.receivedMessages[e.Message.Headers.path].push(e.NetworkReceivedTime);\r\n }\r\n }\r\n }\r\n\r\n public GetTelemetry = (): string => {\r\n const metrics = new Array();\r\n\r\n if (this.listeningTriggerMetric) {\r\n metrics.push(this.listeningTriggerMetric);\r\n }\r\n\r\n if (this.micMetric) {\r\n metrics.push(this.micMetric);\r\n }\r\n\r\n if (this.connectionEstablishMetric) {\r\n metrics.push(this.connectionEstablishMetric);\r\n }\r\n\r\n const telemetry: ITelemetry = {\r\n Metrics: metrics,\r\n ReceivedMessages: this.receivedMessages,\r\n };\r\n\r\n const json = JSON.stringify(telemetry);\r\n\r\n // We dont want to send the same telemetry again. So clean those out.\r\n this.receivedMessages = {};\r\n this.listeningTriggerMetric = null;\r\n this.micMetric = null;\r\n this.connectionEstablishMetric = null;\r\n\r\n return json;\r\n }\r\n\r\n public Dispose = (): void => {\r\n this.isDisposed = true;\r\n }\r\n\r\n private GetConnectionError = (statusCode: number): string => {\r\n /*\r\n -- Websocket status codes --\r\n NormalClosure = 1000,\r\n EndpointUnavailable = 1001,\r\n ProtocolError = 1002,\r\n InvalidMessageType = 1003,\r\n Empty = 1005,\r\n InvalidPayloadData = 1007,\r\n PolicyViolation = 1008,\r\n MessageTooBig = 1009,\r\n MandatoryExtension = 1010,\r\n InternalServerError = 1011\r\n */\r\n\r\n switch (statusCode) {\r\n case 400:\r\n case 1002:\r\n case 1003:\r\n case 1005:\r\n case 1007:\r\n case 1008:\r\n case 1009: return \"BadRequest\";\r\n case 401: return \"Unauthorized\";\r\n case 403: return \"Forbidden\";\r\n case 503:\r\n case 1001: return \"ServerUnavailable\";\r\n case 500:\r\n case 1011: return \"ServerError\";\r\n case 408:\r\n case 504: return \"Timeout\";\r\n default: return \"statuscode:\" + statusCode.toString();\r\n }\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/sdk/speech/ServiceTelemetryListener.Internal.ts","import {\r\n ArgumentNullError,\r\n ConnectionMessage,\r\n IStringDictionary,\r\n MessageType,\r\n} from \"../../common/Exports\";\r\n\r\nconst PathHeaderName: string = \"path\";\r\nconst ContentTypeHeaderName: string = \"content-type\";\r\nconst RequestIdHeaderName: string = \"x-requestid\";\r\nconst RequestTimestampHeaderName: string = \"x-timestamp\";\r\n\r\nexport class SpeechConnectionMessage extends ConnectionMessage {\r\n\r\n private path: string;\r\n private requestId: string;\r\n private contentType: string;\r\n private additionalHeaders: IStringDictionary;\r\n\r\n public constructor(\r\n messageType: MessageType,\r\n path: string,\r\n requestId: string,\r\n contentType: string,\r\n body: any,\r\n additionalHeaders?: IStringDictionary,\r\n id?: string) {\r\n\r\n if (!path) {\r\n throw new ArgumentNullError(\"path\");\r\n }\r\n\r\n if (!requestId) {\r\n throw new ArgumentNullError(\"requestId\");\r\n }\r\n\r\n const headers: IStringDictionary = {};\r\n headers[PathHeaderName] = path;\r\n headers[RequestIdHeaderName] = requestId;\r\n headers[RequestTimestampHeaderName] = new Date().toISOString();\r\n if (contentType) {\r\n headers[ContentTypeHeaderName] = contentType;\r\n }\r\n\r\n if (additionalHeaders) {\r\n for (const headerName in additionalHeaders) {\r\n if (headerName) {\r\n headers[headerName] = additionalHeaders[headerName];\r\n }\r\n\r\n }\r\n }\r\n\r\n if (id) {\r\n super(messageType, body, headers, id);\r\n } else {\r\n super(messageType, body, headers);\r\n }\r\n\r\n this.path = path;\r\n this.requestId = requestId;\r\n this.contentType = contentType;\r\n this.additionalHeaders = additionalHeaders;\r\n }\r\n\r\n public get Path(): string {\r\n return this.path;\r\n }\r\n\r\n public get RequestId(): string {\r\n return this.requestId;\r\n }\r\n\r\n public get ContentType(): string {\r\n return this.contentType;\r\n }\r\n\r\n public get AdditionalHeaders(): IStringDictionary {\r\n return this.additionalHeaders;\r\n }\r\n\r\n public static FromConnectionMessage = (message: ConnectionMessage): SpeechConnectionMessage => {\r\n let path = null;\r\n let requestId = null;\r\n let contentType = null;\r\n let requestTimestamp = null;\r\n const additionalHeaders: IStringDictionary = {};\r\n\r\n if (message.Headers) {\r\n for (const headerName in message.Headers) {\r\n if (headerName) {\r\n if (headerName.toLowerCase() === PathHeaderName.toLowerCase()) {\r\n path = message.Headers[headerName];\r\n } else if (headerName.toLowerCase() === RequestIdHeaderName.toLowerCase()) {\r\n requestId = message.Headers[headerName];\r\n } else if (headerName.toLowerCase() === RequestTimestampHeaderName.toLowerCase()) {\r\n requestTimestamp = message.Headers[headerName];\r\n } else if (headerName.toLowerCase() === ContentTypeHeaderName.toLowerCase()) {\r\n contentType = message.Headers[headerName];\r\n } else {\r\n additionalHeaders[headerName] = message.Headers[headerName];\r\n }\r\n }\r\n }\r\n }\r\n\r\n return new SpeechConnectionMessage(\r\n message.MessageType,\r\n path,\r\n requestId,\r\n contentType,\r\n message.Body,\r\n additionalHeaders,\r\n message.Id);\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/sdk/speech/SpeechConnectionMessage.Internal.ts","\r\nexport enum RecognitionStatus {\r\n Success,\r\n NoMatch,\r\n InitialSilenceTimeout,\r\n BabbleTimeout,\r\n Error,\r\n EndOfDictation,\r\n}\r\n\r\nexport interface ISpeechStartDetectedResult {\r\n Offset?: number;\r\n}\r\n\r\nexport interface ISpeechFragment {\r\n Text: string;\r\n Offset?: number;\r\n Duration?: number;\r\n}\r\n\r\nexport interface ISpeechEndDetectedResult {\r\n Offset?: number;\r\n}\r\n\r\nexport interface ISimpleSpeechPhrase {\r\n RecognitionStatus: RecognitionStatus;\r\n DisplayText: string;\r\n Duration?: number;\r\n Offset?: number;\r\n}\r\n\r\nexport interface IDetailedSpeechPhrase {\r\n RecognitionStatus: RecognitionStatus;\r\n NBest: IPhrase[];\r\n Duration?: number;\r\n Offset?: number;\r\n}\r\n\r\nexport interface IPhrase {\r\n Confidence?: number;\r\n Lexical: string;\r\n ITN: string;\r\n MaskedITN: string;\r\n Display: string;\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/sdk/speech/SpeechResults.ts","import {\r\n ConnectionMessage,\r\n Deferred,\r\n IStringDictionary,\r\n IWebsocketMessageFormatter,\r\n MessageType,\r\n Promise,\r\n RawWebsocketMessage,\r\n} from \"../../common/Exports\";\r\n\r\nconst CRLF: string = \"\\r\\n\";\r\n\r\nexport class WebsocketMessageFormatter implements IWebsocketMessageFormatter {\r\n\r\n public ToConnectionMessage = (message: RawWebsocketMessage): Promise => {\r\n const deferral = new Deferred();\r\n\r\n try {\r\n if (message.MessageType === MessageType.Text) {\r\n const textMessage: string = message.TextContent;\r\n let headers: IStringDictionary = {};\r\n let body: string = null;\r\n\r\n if (textMessage) {\r\n const headerBodySplit = textMessage.split(\"\\r\\n\\r\\n\");\r\n if (headerBodySplit && headerBodySplit.length > 0) {\r\n headers = this.ParseHeaders(headerBodySplit[0]);\r\n if (headerBodySplit.length > 1) {\r\n body = headerBodySplit[1];\r\n }\r\n }\r\n }\r\n\r\n deferral.Resolve(new ConnectionMessage(message.MessageType, body, headers, message.Id));\r\n } else if (message.MessageType === MessageType.Binary) {\r\n const binaryMessage: ArrayBuffer = message.BinaryContent;\r\n let headers: IStringDictionary = {};\r\n let body: ArrayBuffer = null;\r\n\r\n if (!binaryMessage || binaryMessage.byteLength < 2) {\r\n throw new Error(\"Invalid binary message format. Header length missing.\");\r\n }\r\n\r\n const dataView = new DataView(binaryMessage);\r\n const headerLength = dataView.getInt16(0);\r\n\r\n if (binaryMessage.byteLength < headerLength + 2) {\r\n throw new Error(\"Invalid binary message format. Header content missing.\");\r\n }\r\n\r\n let headersString = \"\";\r\n for (let i = 0; i < headerLength; i++) {\r\n headersString += String.fromCharCode((dataView).getInt8(i + 2));\r\n }\r\n\r\n headers = this.ParseHeaders(headersString);\r\n\r\n if (binaryMessage.byteLength > headerLength + 2) {\r\n body = binaryMessage.slice(2 + headerLength);\r\n }\r\n\r\n deferral.Resolve(new ConnectionMessage(message.MessageType, body, headers, message.Id));\r\n }\r\n } catch (e) {\r\n deferral.Reject(`Error formatting the message. Error: ${e}`);\r\n }\r\n\r\n return deferral.Promise();\r\n }\r\n\r\n public FromConnectionMessage = (message: ConnectionMessage): Promise => {\r\n const deferral = new Deferred();\r\n\r\n try {\r\n if (message.MessageType === MessageType.Text) {\r\n const payload = `${this.MakeHeaders(message)}${CRLF}${message.TextBody ? message.TextBody : \"\"}`;\r\n\r\n deferral.Resolve(new RawWebsocketMessage(MessageType.Text, payload, message.Id));\r\n\r\n } else if (message.MessageType === MessageType.Binary) {\r\n const headersString = this.MakeHeaders(message);\r\n const content = message.BinaryBody;\r\n\r\n const headerInt8Array = new Int8Array(this.StringToArrayBuffer(headersString));\r\n\r\n const payload = new ArrayBuffer(2 + headerInt8Array.byteLength + (content ? content.byteLength : 0));\r\n const dataView = new DataView(payload);\r\n\r\n dataView.setInt16(0, headerInt8Array.length);\r\n\r\n for (let i = 0; i < headerInt8Array.byteLength; i++) {\r\n dataView.setInt8(2 + i, headerInt8Array[i]);\r\n }\r\n\r\n if (content) {\r\n const bodyInt8Array = new Int8Array(content);\r\n for (let i = 0; i < bodyInt8Array.byteLength; i++) {\r\n dataView.setInt8(2 + headerInt8Array.byteLength + i, bodyInt8Array[i]);\r\n }\r\n }\r\n\r\n deferral.Resolve(new RawWebsocketMessage(MessageType.Binary, payload, message.Id));\r\n }\r\n } catch (e) {\r\n deferral.Reject(`Error formatting the message. ${e}`);\r\n }\r\n\r\n return deferral.Promise();\r\n }\r\n\r\n private MakeHeaders = (message: ConnectionMessage): string => {\r\n let headersString: string = \"\";\r\n\r\n if (message.Headers) {\r\n for (const header in message.Headers) {\r\n if (header) {\r\n headersString += `${header}: ${message.Headers[header]}${CRLF}`;\r\n }\r\n }\r\n }\r\n\r\n return headersString;\r\n }\r\n\r\n private ParseHeaders = (headersString: string): IStringDictionary => {\r\n const headers: IStringDictionary = {};\r\n\r\n if (headersString) {\r\n const headerMatches = headersString.match(/[^\\r\\n]+/g);\r\n if (headers) {\r\n for (const header of headerMatches) {\r\n if (header) {\r\n const separatorIndex = header.indexOf(\":\");\r\n const headerName = separatorIndex > 0 ? header.substr(0, separatorIndex).trim().toLowerCase() : header;\r\n const headerValue =\r\n separatorIndex > 0 && header.length > (separatorIndex + 1) ?\r\n header.substr(separatorIndex + 1).trim() :\r\n \"\";\r\n\r\n headers[headerName] = headerValue;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return headers;\r\n }\r\n\r\n private StringToArrayBuffer = (str: string): ArrayBuffer => {\r\n const buffer = new ArrayBuffer(str.length);\r\n const view = new DataView(buffer);\r\n for (let i = 0; i < str.length; i++) {\r\n view.setUint8(i, str.charCodeAt(i));\r\n }\r\n return buffer;\r\n }\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/sdk/speech/WebsocketMessageFormatter.ts","\r\nexport * from \"./Recognizer\";\r\nexport * from \"./SpeechConnectionFactory\";\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/sdk/speech.browser/Exports.ts","import { FileAudioSource, MicAudioSource, PcmRecorder } from \"../../common.browser/Exports\";\r\nimport { IAudioSource, Promise, Storage } from \"../../common/Exports\";\r\nimport { IAuthentication, Recognizer, RecognizerConfig } from \"../speech/Exports\";\r\nimport { SpeechConnectionFactory } from \"./SpeechConnectionFactory\";\r\n\r\nconst CreateRecognizer = (recognizerConfig: RecognizerConfig, authentication: IAuthentication): Recognizer => {\r\n return CreateRecognizerWithPcmRecorder(\r\n recognizerConfig,\r\n authentication);\r\n};\r\n\r\nconst CreateRecognizerWithPcmRecorder = (recognizerConfig: RecognizerConfig, authentication: IAuthentication): Recognizer => {\r\n return CreateRecognizerWithCustomAudioSource(\r\n recognizerConfig,\r\n authentication,\r\n new MicAudioSource(new PcmRecorder()));\r\n};\r\n\r\nconst CreateRecognizerWithFileAudioSource = (recognizerConfig: RecognizerConfig, authentication: IAuthentication, file: File): Recognizer => {\r\n return CreateRecognizerWithCustomAudioSource(\r\n recognizerConfig,\r\n authentication,\r\n new FileAudioSource(file));\r\n};\r\n\r\nconst CreateRecognizerWithCustomAudioSource = (recognizerConfig: RecognizerConfig, authentication: IAuthentication, audioSource: IAudioSource): Recognizer => {\r\n return new Recognizer (\r\n authentication,\r\n new SpeechConnectionFactory(),\r\n audioSource,\r\n recognizerConfig);\r\n};\r\n\r\nexport { CreateRecognizer, CreateRecognizerWithCustomAudioSource, CreateRecognizerWithFileAudioSource, CreateRecognizerWithPcmRecorder };\r\n\n\n\n// WEBPACK FOOTER //\n// ../src/sdk/speech.browser/Recognizer.ts"],"sourceRoot":""}