{"version":3,"sources":["src/common.speech/Transcription/ConversationRequestSession.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,qBAAa,0BAA0B;IACnC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,eAAe,CAA2C;IAClE,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,6BAA6B,CAAiB;IACtD,OAAO,CAAC,aAAa,CAAS;gBAEX,SAAS,EAAE,MAAM;IAMpC,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,SAAS,IAAI,MAAM,CAE7B;IAED,IAAW,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAE5C;IAEM,oBAAoB,CAAC,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAI1E,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMvC,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAQxD,wBAAwB,CAAC,qBAAqB,EAAE,OAAO,GAAG,IAAI;IAQxD,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAUrC,OAAO,CAAC,UAAU;CAIrB","file":"ConversationRequestSession.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n\nimport {\n    createNoDashGuid,\n    Deferred,\n    IDetachable,\n} from \"../../common/Exports.js\";\n\n/**\n * Placeholder class for the Conversation Request Session. Based off RequestSession.\n * TODO: define what telemetry is required.\n */\nexport class ConversationRequestSession {\n    private privIsDisposed: boolean = false;\n    private privDetachables: IDetachable[] = new Array<IDetachable>();\n    private privRequestId: string;\n    private privRequestCompletionDeferral: Deferred<void>;\n    private privSessionId: string;\n\n    public constructor(sessionId: string) {\n        this.privSessionId = sessionId;\n        this.privRequestId = createNoDashGuid();\n        this.privRequestCompletionDeferral = new Deferred<void>();\n    }\n\n    public get sessionId(): string {\n        return this.privSessionId;\n    }\n\n    public get requestId(): string {\n        return this.privRequestId;\n    }\n\n    public get completionPromise(): Promise<void> {\n        return this.privRequestCompletionDeferral.promise;\n    }\n\n    public onPreConnectionStart(authFetchEventId: string, connectionId: string): void {\n        this.privSessionId = connectionId;\n    }\n\n    public onAuthCompleted(isError: boolean): void {\n        if (isError) {\n            this.onComplete();\n        }\n    }\n\n    public onConnectionEstablishCompleted(statusCode: number): void {\n        if (statusCode === 200) {\n            return;\n        } else if (statusCode === 403) {\n            this.onComplete();\n        }\n    }\n\n    public onServiceTurnEndResponse(continuousRecognition: boolean): void {\n        if (!continuousRecognition) {\n            this.onComplete();\n        } else {\n            this.privRequestId = createNoDashGuid();\n        }\n    }\n\n    public async dispose(): Promise<void> {\n        if (!this.privIsDisposed) {\n            // we should have completed by now. If we did not its an unknown error.\n            this.privIsDisposed = true;\n            for (const detachable of this.privDetachables) {\n                await detachable.detach();\n            }\n        }\n    }\n\n    private onComplete(): void {\n        //\n    }\n\n}\n"]}