element-web-synapse01pim.gr.jp

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

8481.js.map (52385B)


      1 {"version":3,"file":"bundles/12c8185ea2689492c07b/8481.js","mappings":"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","sources":["webpack://element-web/./src/async-components/views/dialogs/QrLoginDialog.tsx","webpack://element-web/./src/components/views/auth/LoginWithQRFlow.tsx","webpack://element-web/./src/components/views/auth/LoginWithQR.tsx"],"sourcesContent":["/*\nCopyright 2026 Element Creations Ltd.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type FC, useMemo, useState } from \"react\";\nimport { RendezvousIntent } from \"matrix-js-sdk/src/rendezvous\";\nimport { createClient } from \"matrix-js-sdk/src/matrix\";\n\nimport { type ValidatedServerConfig } from \"../../../utils/ValidatedServerConfig\";\nimport LoginWithQR, { type QrLoginCredentials } from \"../../../components/views/auth/LoginWithQR.tsx\";\nimport { Mode, Phase } from \"../../../components/views/auth/LoginWithQR-types.ts\";\nimport BaseDialog from \"../../../components/views/dialogs/BaseDialog.tsx\";\nimport { _t } from \"../../../languageHandler.tsx\";\n\ninterface Props {\n    /**\n     * The server config to use for QR code login\n     */\n    serverConfig: ValidatedServerConfig;\n\n    /**\n     * Handler for when the dialog is to be closed\n     */\n    onFinished(this: void): void;\n\n    /**\n     * Handler for successful completion of QR Login\n     * @param credentials - the credentials to log in with\n     */\n    onLoggedIn(this: void, credentials: QrLoginCredentials): Promise<void>;\n}\n\n/**\n * Dialog for facilitating the Login with QR flow, shown from DefaultWelcome.\n */\nconst QrLoginDialog: FC<Props> = ({ serverConfig, onLoggedIn, onFinished }) => {\n    const tempClient = useMemo(() => createClient({ baseUrl: serverConfig.hsUrl }), [serverConfig]);\n\n    const [phase, setPhase] = useState<Phase>();\n\n    const hasCancel = phase === Phase.ShowingQR;\n\n    return (\n        <BaseDialog\n            onFinished={onFinished}\n            hasCancel={hasCancel}\n            aria-label={_t(\"auth|sign_in_with_qr\")}\n            fixedWidth={false}\n        >\n            <LoginWithQR\n                intent={RendezvousIntent.LOGIN_ON_NEW_DEVICE}\n                client={tempClient}\n                onFinished={onFinished}\n                onLoggedIn={onLoggedIn}\n                mode={Mode.Show}\n                onPhaseChange={setPhase}\n            />\n        </BaseDialog>\n    );\n};\n\nexport default QrLoginDialog;\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022-2024 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React, { type ComponentProps, createRef, type JSX, type ReactNode } from \"react\";\nimport { ClientRendezvousFailureReason, MSC4108FailureReason, RendezvousIntent } from \"matrix-js-sdk/src/rendezvous\";\nimport ChevronLeftIcon from \"@vector-im/compound-design-tokens/assets/web/icons/chevron-left\";\nimport CheckCircleSolidIcon from \"@vector-im/compound-design-tokens/assets/web/icons/check-circle-solid\";\nimport ErrorIcon from \"@vector-im/compound-design-tokens/assets/web/icons/error-solid\";\nimport { BigIcon, Button, Heading, MFAInput, Text } from \"@vector-im/compound-web\";\nimport classNames from \"classnames\";\nimport { LockSolidIcon, MobileIcon, QrCodeIcon } from \"@vector-im/compound-design-tokens/assets/web/icons\";\n\nimport { _t } from \"../../../languageHandler\";\nimport AccessibleButton from \"../elements/AccessibleButton\";\nimport QRCode from \"../elements/QRCode\";\nimport Spinner from \"../elements/Spinner\";\nimport { Click, Phase } from \"./LoginWithQR-types\";\nimport SdkConfig from \"../../../SdkConfig\";\nimport { type FailureReason, LoginWithQRFailureReason } from \"./LoginWithQR\";\nimport { ErrorMessage } from \"../../structures/ErrorMessage\";\n\ninterface Props {\n    /**\n     * The phase the flow is to be rendered in\n     */\n    phase: Phase;\n    /**\n     * The QR code data to render in Phase.ShowingQR\n     */\n    code?: Uint8Array;\n    /**\n     * The intent mode of the flow (login or reciprocate).\n     */\n    intent: RendezvousIntent;\n    /**\n     * State transition handler\n     * @param type the type of transition to take\n     * @param checkCodeEntered the check code entered, only present for Click.Approve\n     */\n    onClick(type: Click, checkCodeEntered?: string): Promise<void>;\n    /**\n     * The failure reason to render in Phase.Error\n     */\n    failureReason?: FailureReason;\n    /**\n     * The 6 digit user code to render in Phase.WaitingForDevice\n     */\n    userCode?: string;\n}\n\n/**\n * A component that implements the UI for sign in and E2EE set up by rendering a QR code in both login & reciprocate directions.\n *\n * Implements the v2024 version of MSC4108: https://github.com/matrix-org/matrix-spec-proposals/pull/4108\n */\nexport default class LoginWithQRFlow extends React.Component<Props> {\n    private checkCodeInput = createRef<HTMLInputElement>();\n\n    private handleClick = (type: Click): ((e: React.FormEvent) => Promise<void>) => {\n        return async (e: React.FormEvent): Promise<void> => {\n            e.preventDefault();\n            await this.props.onClick(type, type === Click.Approve ? this.checkCodeInput.current?.value : undefined);\n        };\n    };\n\n    private cancelButton = (): JSX.Element => (\n        <Button data-testid=\"cancel-button\" kind=\"primary\" size=\"lg\" onClick={this.handleClick(Click.Cancel)}>\n            {_t(\"action|cancel\")}\n        </Button>\n    );\n\n    private simpleSpinner = (description?: string): JSX.Element => {\n        return (\n            <div className=\"mx_LoginWithQR_spinner\">\n                <div>\n                    <Spinner />\n                    {description && <p>{description}</p>}\n                </div>\n            </div>\n        );\n    };\n\n    public render(): React.ReactNode {\n        let main: JSX.Element | undefined;\n        let buttons: JSX.Element | undefined;\n        let backButton = true;\n        let className = \"\";\n\n        switch (this.props.phase) {\n            case Phase.Error: {\n                backButton = false;\n                buttons = (\n                    <Button kind=\"primary\" size=\"lg\" onClick={this.handleClick(Click.ShowQr)}>\n                        {this.props.intent === RendezvousIntent.LOGIN_ON_NEW_DEVICE\n                            ? _t(\"auth|qr_code_login|start_over\")\n                            : _t(\"action|try_again\")}\n                    </Button>\n                );\n\n                let Icon = ErrorIcon;\n                let iconKind: ComponentProps<typeof BigIcon>[\"kind\"] = \"critical\";\n                let title: string | undefined;\n                let message: ReactNode | undefined;\n\n                switch (this.props.failureReason) {\n                    case MSC4108FailureReason.UnsupportedProtocol:\n                        title = _t(\"auth|qr_code_login|error_unsupported_protocol_title\");\n                        message = _t(\"auth|qr_code_login|error_unsupported_protocol\");\n                        break;\n\n                    case MSC4108FailureReason.UserCancelled:\n                        title = _t(\"auth|qr_code_login|error_user_cancelled_title\");\n                        message = _t(\"auth|qr_code_login|error_user_cancelled\");\n                        if (this.props.intent === RendezvousIntent.LOGIN_ON_NEW_DEVICE) {\n                            buttons = this.cancelButton();\n                        }\n                        break;\n\n                    case MSC4108FailureReason.AuthorizationExpired:\n                    case ClientRendezvousFailureReason.Expired:\n                        title = _t(\"auth|qr_code_login|error_expired_title\");\n                        message = _t(\"auth|qr_code_login|error_expired\");\n                        break;\n\n                    case ClientRendezvousFailureReason.InsecureChannelDetected:\n                        title = _t(\"auth|qr_code_login|error_insecure_channel_detected_title\");\n                        message = (\n                            <>\n                                {_t(\"auth|qr_code_login|error_insecure_channel_detected\")}\n\n                                <Text as=\"h2\" size=\"lg\" weight=\"semibold\" data-testid=\"cancellation-message\">\n                                    {_t(\"auth|qr_code_login|error_insecure_channel_detected_instructions\")}\n                                </Text>\n                                <ol>\n                                    <li>{_t(\"auth|qr_code_login|error_insecure_channel_detected_instructions_1\")}</li>\n                                    <li>{_t(\"auth|qr_code_login|error_insecure_channel_detected_instructions_2\")}</li>\n                                    <li>{_t(\"auth|qr_code_login|error_insecure_channel_detected_instructions_3\")}</li>\n                                </ol>\n                            </>\n                        );\n                        break;\n\n                    case ClientRendezvousFailureReason.OtherDeviceAlreadySignedIn:\n                        iconKind = \"success\";\n                        Icon = CheckCircleSolidIcon;\n                        title = _t(\"auth|qr_code_login|error_other_device_already_signed_in_title\");\n                        message = _t(\"auth|qr_code_login|error_other_device_already_signed_in\");\n                        break;\n\n                    case ClientRendezvousFailureReason.UserDeclined:\n                        title = _t(\"auth|qr_code_login|error_user_declined_title\");\n                        message = _t(\"auth|qr_code_login|error_user_declined\");\n                        if (this.props.intent === RendezvousIntent.LOGIN_ON_NEW_DEVICE) {\n                            buttons = this.cancelButton();\n                        }\n                        break;\n\n                    case LoginWithQRFailureReason.RateLimited:\n                        title = _t(\"error|something_went_wrong\");\n                        message = _t(\"auth|qr_code_login|error_rate_limited\");\n                        break;\n\n                    case ClientRendezvousFailureReason.ETagMissing:\n                        title = _t(\"error|something_went_wrong\");\n                        message = _t(\"auth|qr_code_login|error_etag_missing\");\n                        break;\n\n                    case ClientRendezvousFailureReason.HomeserverLacksSupport:\n                        Icon = QrCodeIcon;\n                        backButton = true;\n                        title = _t(\"auth|qr_code_login|unsupported_heading\");\n                        message = _t(\"auth|qr_code_login|unsupported_explainer\");\n                        if (this.props.intent === RendezvousIntent.LOGIN_ON_NEW_DEVICE) {\n                            buttons = this.cancelButton();\n                        }\n                        break;\n\n                    case MSC4108FailureReason.DeviceAlreadyExists:\n                    case MSC4108FailureReason.DeviceNotFound:\n                    case MSC4108FailureReason.UnexpectedMessageReceived:\n                    case ClientRendezvousFailureReason.OtherDeviceNotSignedIn:\n                    case ClientRendezvousFailureReason.Unknown:\n                    default:\n                        title = _t(\"error|something_went_wrong\");\n                        message = _t(\"auth|qr_code_login|error_unexpected\");\n                        break;\n                }\n                className = \"mx_LoginWithQR_error\";\n                main = (\n                    <>\n                        <BigIcon kind={iconKind}>\n                            <Icon />\n                        </BigIcon>\n                        <Heading as=\"h1\" size=\"sm\" weight=\"semibold\">\n                            {title}\n                        </Heading>\n                        {typeof message === \"object\" ? message : <p data-testid=\"cancellation-message\">{message}</p>}\n                    </>\n                );\n                break;\n            }\n            case Phase.OutOfBandConfirmation:\n                backButton = false;\n                main = (\n                    <>\n                        {this.props.intent === RendezvousIntent.LOGIN_ON_NEW_DEVICE && (\n                            <BigIcon>\n                                <MobileIcon />\n                            </BigIcon>\n                        )}\n                        <Heading as=\"h1\" size=\"sm\" weight=\"semibold\">\n                            {_t(\"auth|qr_code_login|check_code_heading\")}\n                        </Heading>\n                        <Text size=\"md\">{_t(\"auth|qr_code_login|check_code_explainer\")}</Text>\n                        <label htmlFor=\"mx_LoginWithQR_checkCode\">\n                            {_t(\"auth|qr_code_login|check_code_input_label\")}\n                        </label>\n                        <MFAInput\n                            className=\"mx_LoginWithQR_checkCode_input mx_no_textinput\"\n                            ref={this.checkCodeInput}\n                            length={2}\n                            autoFocus\n                            id=\"mx_LoginWithQR_checkCode\"\n                            data-invalid={\n                                this.props.failureReason === LoginWithQRFailureReason.CheckCodeMismatch\n                                    ? true\n                                    : undefined\n                            }\n                        />\n                        <ErrorMessage\n                            message={\n                                this.props.failureReason === LoginWithQRFailureReason.CheckCodeMismatch\n                                    ? _t(\"auth|qr_code_login|check_code_mismatch\")\n                                    : null\n                            }\n                        />\n                    </>\n                );\n\n                buttons = (\n                    <>\n                        <Button\n                            data-testid=\"approve-login-button\"\n                            kind=\"primary\"\n                            size=\"lg\"\n                            onClick={this.handleClick(Click.Approve)}\n                        >\n                            {_t(\"action|continue\")}\n                        </Button>\n                        <Button\n                            data-testid=\"decline-login-button\"\n                            kind=\"tertiary\"\n                            size=\"lg\"\n                            onClick={this.handleClick(Click.Decline)}\n                        >\n                            {_t(\"action|cancel\")}\n                        </Button>\n                    </>\n                );\n                break;\n            case Phase.ShowingQR: {\n                let steps: ReactNode[];\n                if (this.props.intent === RendezvousIntent.LOGIN_ON_NEW_DEVICE) {\n                    steps = [\n                        _t(\"auth|qr_code_login|open_element_mobile_device\", {\n                            brand: SdkConfig.get().brand,\n                        }),\n                        _t(\"auth|qr_code_login|tap_avatar_link_new_device\", {\n                            linkNewDevice: <strong>{_t(\"settings|sessions|sign_in_with_qr\")}</strong>,\n                        }),\n                        _t(\"auth|qr_code_login|choose_desktop_computer\", {\n                            desktopComputer: <strong>{_t(\"auth|qr_code_login|desktop_computer\")}</strong>,\n                        }),\n                        _t(\"auth|qr_code_login|select_ready_to_scan\", {\n                            readyToScan: <strong>{_t(\"auth|qr_code_login|ready_to_scan\")}</strong>,\n                        }),\n                        _t(\"auth|qr_code_login|follow_remaining_instructions\"),\n                    ];\n                } else {\n                    steps = [\n                        _t(\"auth|qr_code_login|open_element_other_device\", {\n                            brand: SdkConfig.get().brand,\n                        }),\n                        _t(\"auth|qr_code_login|select_qr_code\", {\n                            scanQRCode: <strong>{_t(\"auth|qr_code_login|scan_qr_code\")}</strong>,\n                        }),\n                        _t(\"auth|qr_code_login|point_the_camera\"),\n                        _t(\"auth|qr_code_login|follow_remaining_instructions\"),\n                    ];\n                }\n\n                main = (\n                    <>\n                        <Heading as=\"h1\" size=\"sm\" weight=\"semibold\">\n                            {this.props.intent === RendezvousIntent.LOGIN_ON_NEW_DEVICE\n                                ? _t(\"auth|qr_code_login|scan_code_instruction\")\n                                : _t(\"auth|qr_code_login|scan_code_instruction_reciprocate\")}\n                        </Heading>\n                        <div className=\"mx_LoginWithQR_qrWrapper\">\n                            {this.props.code ? (\n                                <QRCode data={[{ data: this.props.code, mode: \"byte\" }]} width={200} />\n                            ) : (\n                                <Spinner />\n                            )}\n                        </div>\n                        <ol>\n                            {steps.map((step, i) => (\n                                <li key={this.props.intent + i}>{step}</li>\n                            ))}\n                        </ol>\n                    </>\n                );\n                break;\n            }\n            case Phase.Loading:\n                main = this.simpleSpinner();\n                break;\n            case Phase.WaitingForDevice:\n                main =\n                    this.props.intent === RendezvousIntent.LOGIN_ON_NEW_DEVICE ? (\n                        <>\n                            <BigIcon>\n                                <LockSolidIcon />\n                            </BigIcon>\n                            <Heading as=\"h1\" size=\"sm\" weight=\"semibold\">\n                                {_t(\"auth|qr_code_login|security_code_title\")}\n                            </Heading>\n                            <Text size=\"md\">{_t(\"auth|qr_code_login|security_code_prompt\")}</Text>\n                            <MFAInput\n                                className=\"mx_LoginWithQR_checkCode_input mx_no_textinput\"\n                                length={6}\n                                value={this.props.userCode}\n                                disabled\n                            />\n                            {this.simpleSpinner(_t(\"auth|qr_code_login|waiting_for_device\"))}\n                        </>\n                    ) : (\n                        this.simpleSpinner(_t(\"auth|qr_code_login|waiting_for_device\"))\n                    );\n                buttons = this.cancelButton();\n                break;\n            case Phase.Verifying:\n                main = this.simpleSpinner(_t(\"auth|qr_code_login|completing_setup\"));\n                break;\n        }\n\n        return (\n            <div data-testid=\"login-with-qr\" className={classNames(\"mx_LoginWithQR\", className)}>\n                {this.props.intent === RendezvousIntent.RECIPROCATE_LOGIN_ON_EXISTING_DEVICE && backButton ? (\n                    <div className=\"mx_LoginWithQR_heading\">\n                        <AccessibleButton\n                            data-testid=\"back-button\"\n                            className=\"mx_LoginWithQR_BackButton\"\n                            onClick={this.handleClick(Click.Cancel)}\n                            title={_t(\"action|back\")}\n                        >\n                            <ChevronLeftIcon />\n                        </AccessibleButton>\n                        <div className=\"mx_LoginWithQR_breadcrumbs\">\n                            {_t(\"settings|sessions|title\")} / {_t(\"settings|sessions|sign_in_with_qr\")}\n                        </div>\n                    </div>\n                ) : null}\n                <div className=\"mx_LoginWithQR_main\">{main}</div>\n                <div className=\"mx_LoginWithQR_buttons\">{buttons}</div>\n            </div>\n        );\n    }\n}\n","/*\nCopyright 2024 New Vector Ltd.\nCopyright 2022 The Matrix.org Foundation C.I.C.\n\nSPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial\nPlease see LICENSE files in the repository root for full details.\n*/\n\nimport React from \"react\";\nimport {\n    ClientRendezvousFailureReason,\n    linkNewDeviceByGeneratingQR,\n    MSC4108FailureReason,\n    MSC4108SignInWithQR,\n    RendezvousError,\n    type RendezvousFailureReason,\n    RendezvousIntent,\n    signInByGeneratingQR,\n} from \"matrix-js-sdk/src/rendezvous\";\nimport { logger } from \"matrix-js-sdk/src/logger\";\nimport {\n    AutoDiscovery,\n    MatrixClient,\n    OAuthGrantType,\n    type ValidatedAuthMetadata,\n    type XOR,\n} from \"matrix-js-sdk/src/matrix\";\nimport { sleep } from \"matrix-js-sdk/src/utils\";\nimport { secureRandomString } from \"matrix-js-sdk/src/randomstring\";\n\nimport { Click, Mode, Phase } from \"./LoginWithQR-types\";\nimport LoginWithQRFlow from \"./LoginWithQRFlow\";\nimport { type CompleteOAuthLoginResponse } from \"../../../utils/oauth/authorize\";\nimport { getOAuthClientId } from \"../../../utils/oauth/registerClient.ts\";\nimport SdkConfig from \"../../../SdkConfig.ts\";\nimport { type Context } from \"../../../utils/oauth/persistOAuthSettings.ts\";\n\nexport type QrLoginCredentials = CompleteOAuthLoginResponse &\n    Awaited<ReturnType<MSC4108SignInWithQR[\"shareSecrets\"]>> & {\n        deviceId: string;\n    };\n\ntype BaseProps = {\n    /**\n     * The MatrixClient to use for the rendezvous communication with the other device.\n     */\n    client: MatrixClient;\n    /**\n     * Whether to show a QR code or facilitate scanning one. Only Mode.Show is currently supported.\n     */\n    mode: Mode;\n    /**\n     * Callback when the internal phase state has changed\n     * @param phase - the new phase which is being entered\n     */\n    onPhaseChange?(phase: Phase): void;\n    /**\n     * Callback when the flow is concluded\n     * @param success - whether it was successful\n     */\n    onFinished(this: void, success?: boolean): void;\n};\n\ntype Props = XOR<\n    {\n        /**\n         * Intent to facilitate logging into this device from an existing device\n         */\n        intent: RendezvousIntent.LOGIN_ON_NEW_DEVICE;\n        /**\n         * Callback for successful login\n         * @param credentials - the credentials to authenticate with\n         */\n        onLoggedIn(credentials: QrLoginCredentials): Promise<void>;\n    },\n    {\n        /**\n         * Intent to facilitate logging into another device from this existing device\n         */\n        intent: RendezvousIntent.RECIPROCATE_LOGIN_ON_EXISTING_DEVICE;\n    }\n> &\n    BaseProps;\n\ninterface IState {\n    /**\n     * The current phase of the flow\n     */\n    phase: Phase;\n    /**\n     * The rendezvous channel in use\n     */\n    rendezvous?: MSC4108SignInWithQR;\n    /**\n     * TODO\n     */\n    verificationUri?: string;\n    /**\n     * TODO\n     */\n    userCode?: string;\n    /**\n     * TODO\n     */\n    checkCode?: string;\n    /**\n     * TODO\n     */\n    failureReason?: FailureReason;\n    /**\n     * Details of the server we are logging into, set after initial protocol negotiation.\n     */\n    loginServerDetails?: Pick<Context, \"homeserverUrl\" | \"identityServerUrl\" | \"metadata\"> &\n        Pick<Context[\"authContext\"], \"clientId\">;\n}\n\nexport enum LoginWithQRFailureReason {\n    RateLimited = \"rate_limited\",\n    CheckCodeMismatch = \"check_code_mismatch\",\n}\n\nexport type FailureReason = RendezvousFailureReason | LoginWithQRFailureReason;\n\n/**\n * Resolve a server name or baseURL to the homeserver & identity server URLs.\n * @param serverNameOrBaseUrl the name or URL to resolve\n * Whilst the 2024 version of MSC4108 says that we always get a server name, in practise the\n * rust-sdk is currently misbehaving and we may receive a base URL instead. Additionally, the 2025\n * version of MSC4108  will always give the base URL.\n * As such, we should be resilient and support both formats until the spec and implementations have\n * stabilised.\n */\nasync function resolveServerURLs(\n    serverNameOrBaseUrl: string,\n): Promise<Pick<Partial<Context>, \"homeserverUrl\" | \"identityServerUrl\">> {\n    if (serverNameOrBaseUrl.startsWith(\"http://\") || serverNameOrBaseUrl.startsWith(\"https://\")) {\n        // treat as base URL and skip discovery\n        return {\n            homeserverUrl: serverNameOrBaseUrl,\n        };\n    }\n\n    // treat as server name and do discovery\n    const clientConfig = await AutoDiscovery.findClientConfig(serverNameOrBaseUrl);\n    const homeserverUrl = clientConfig?.[\"m.homeserver\"]?.base_url ?? undefined;\n\n    const identityServerUrl = clientConfig?.[\"m.identity_server\"]?.base_url ?? undefined;\n\n    return {\n        homeserverUrl,\n        identityServerUrl,\n    };\n}\n\n/**\n * A component that allows sign in and E2EE set up with a QR code.\n *\n * It implements `login.reciprocate` & `login.start` capabilities and showing QR codes.\n * It does not implement any flows requiring the scanning of QR codes.\n *\n * Implements the v2024 version of MSC4108: https://github.com/matrix-org/matrix-spec-proposals/pull/4108\n */\nexport default class LoginWithQR extends React.Component<Props, IState> {\n    private finished = false;\n    private abortController?: AbortController;\n\n    public constructor(props: Props) {\n        super(props);\n\n        this.state = {\n            phase: Phase.Loading,\n        };\n        this.props.onPhaseChange?.(this.state.phase);\n    }\n\n    public componentDidMount(): void {\n        void this.updateMode(this.props.mode);\n    }\n\n    public componentDidUpdate(prevProps: Readonly<Props>, prevState: Readonly<IState>): void {\n        if (prevState.phase !== this.state.phase) {\n            this.props.onPhaseChange?.(this.state.phase);\n        }\n\n        if (prevProps.mode !== this.props.mode) {\n            void this.updateMode(this.props.mode);\n        }\n    }\n\n    private async updateMode(mode: Mode, showLoading = true): Promise<void> {\n        this.abortController?.abort();\n        this.abortController = new AbortController();\n        this.setState({ rendezvous: undefined });\n        if (showLoading) {\n            this.setState({ phase: Phase.Loading });\n        }\n\n        if (mode === Mode.Show) {\n            await this.generateAndShowCode(this.abortController);\n        }\n    }\n\n    public componentWillUnmount(): void {\n        if (!this.finished) {\n            this.abortController?.abort();\n        }\n    }\n\n    private onFinished(success: boolean): void {\n        this.finished = true;\n        if (!success) {\n            this.abortController?.abort();\n        }\n        this.props.onFinished(success);\n    }\n\n    private generateAndShowCode = async (abortController: AbortController): Promise<void> => {\n        let rendezvous: MSC4108SignInWithQR;\n        try {\n            rendezvous =\n                this.props.intent === RendezvousIntent.LOGIN_ON_NEW_DEVICE\n                    ? await signInByGeneratingQR(this.props.client, this.onFailure, abortController.signal)\n                    : await linkNewDeviceByGeneratingQR(this.props.client, this.onFailure, abortController.signal);\n            if (abortController.signal.aborted) return;\n            this.setState({\n                phase: Phase.ShowingQR,\n                rendezvous,\n                failureReason: undefined,\n            });\n        } catch (e) {\n            if (abortController.signal.aborted) return;\n            logger.error(\"Error whilst generating QR code\", e);\n            this.setState({ phase: Phase.Error, failureReason: ClientRendezvousFailureReason.HomeserverLacksSupport });\n            return;\n        }\n\n        try {\n            if (this.props.intent === RendezvousIntent.RECIPROCATE_LOGIN_ON_EXISTING_DEVICE) {\n                // MSC4108-Flow: NewScanned\n                await rendezvous.negotiateProtocols();\n                const { verificationUri } = await rendezvous.deviceAuthorizationGrant();\n                this.setState({\n                    phase: Phase.OutOfBandConfirmation,\n                    verificationUri,\n                });\n            } else {\n                const { serverName } = await rendezvous.negotiateProtocols();\n                const { homeserverUrl, identityServerUrl } = await resolveServerURLs(serverName!);\n\n                if (!homeserverUrl) {\n                    this.setState({ phase: Phase.Error, failureReason: ClientRendezvousFailureReason.Unknown });\n                    logger.error(\"Failed to discover homeserver URL\");\n                    throw new Error(\"Failed to discover homeserver URL\");\n                }\n\n                let metadata: ValidatedAuthMetadata;\n                let clientId: string;\n                try {\n                    // Create a new client as the homeserver URL may not be the same as we used for the secure channel\n                    metadata = await new MatrixClient({ baseUrl: homeserverUrl }).getAuthMetadata();\n                    if (!metadata.grant_types_supported.includes(OAuthGrantType.DeviceAuthorization)) {\n                        throw new Error(\"Server does not support Device Authorization Grant\");\n                    }\n                    clientId = await getOAuthClientId(metadata, SdkConfig.get().oidc_static_clients);\n                } catch (e) {\n                    this.setState({\n                        phase: Phase.Error,\n                        failureReason: ClientRendezvousFailureReason.HomeserverLacksSupport,\n                    });\n                    logger.error(\"Failed to register OIDC Client ID\", e);\n                    throw new Error(\"Failed to register OIDC Client ID\", { cause: e });\n                }\n\n                this.setState({\n                    phase: Phase.OutOfBandConfirmation,\n                    loginServerDetails: {\n                        homeserverUrl,\n                        identityServerUrl,\n                        metadata,\n                        clientId,\n                    },\n                });\n            }\n\n            // we ask the user to confirm that the channel is secure\n        } catch (e: RendezvousError | unknown) {\n            if (abortController.signal.aborted) return;\n            logger.error(\"Error whilst approving login\", e);\n            await rendezvous.cancel(\n                e instanceof RendezvousError ? (e.code as MSC4108FailureReason) : ClientRendezvousFailureReason.Unknown,\n            );\n        }\n    };\n\n    private approveLogin = async (checkCode: string | undefined): Promise<void> => {\n        if (!(this.state.rendezvous instanceof MSC4108SignInWithQR)) {\n            this.setState({ phase: Phase.Error, failureReason: ClientRendezvousFailureReason.Unknown });\n            throw new Error(\"Rendezvous not found\");\n        }\n\n        if (this.state.rendezvous?.checkCode !== checkCode) {\n            this.setState({ failureReason: LoginWithQRFailureReason.CheckCodeMismatch });\n            return;\n        }\n\n        try {\n            if (this.props.intent === RendezvousIntent.RECIPROCATE_LOGIN_ON_EXISTING_DEVICE) {\n                // MSC4108-Flow: NewScanned\n                this.setState({ phase: Phase.Loading });\n\n                if (this.state.verificationUri) {\n                    window.open(this.state.verificationUri, \"_blank\");\n                }\n\n                this.setState({ phase: Phase.WaitingForDevice });\n\n                // send secrets\n                await this.state.rendezvous.shareSecrets();\n\n                // done\n                this.onFinished(true);\n            } else {\n                if (!this.state.loginServerDetails) {\n                    this.setState({ phase: Phase.Error, failureReason: ClientRendezvousFailureReason.Unknown });\n                    throw new Error(\"Server details not found in state\");\n                }\n\n                const { homeserverUrl, identityServerUrl, clientId, metadata } = this.state.loginServerDetails;\n\n                // Generate our new device ID\n                const deviceId = secureRandomString(10);\n                const { userCode } = await this.state.rendezvous.deviceAuthorizationGrant({\n                    metadata,\n                    clientId,\n                    deviceId,\n                });\n                this.setState({ phase: Phase.WaitingForDevice, userCode });\n\n                const tokenResponse = await this.state.rendezvous.completeLoginOnNewDevice({ clientId });\n\n                if (tokenResponse) {\n                    const { secrets } = await this.state.rendezvous.shareSecrets();\n\n                    await this.props.onLoggedIn({\n                        accessToken: tokenResponse.access_token,\n                        refreshToken: tokenResponse.refresh_token,\n                        homeserverUrl,\n                        clientId,\n                        identityServerUrl,\n                        secrets,\n                        deviceId,\n                    });\n\n                    this.onFinished(true);\n                }\n            }\n        } catch (e: RendezvousError | unknown) {\n            logger.error(\"Error whilst approving sign in\", e);\n            this.setState({\n                phase: Phase.Error,\n                failureReason: e instanceof RendezvousError ? e.code : ClientRendezvousFailureReason.Unknown,\n            });\n        }\n    };\n\n    private onFailure = async (reason: RendezvousFailureReason): Promise<void> => {\n        if (this.state.phase === Phase.Error) return; // Already in failed state\n        logger.warn(`Rendezvous failed: ${reason}`);\n\n        // Generate a new rendezvous channel & qr code if we hit expiry whilst still showing the QR code\n        if (reason === ClientRendezvousFailureReason.Expired && this.state.phase === Phase.ShowingQR) {\n            try {\n                this.reset();\n                // Add a sleep to make the UX looks less flickery and more intentional\n                await sleep(1000);\n                await this.updateMode(Mode.Show, false);\n                return;\n            } catch (e) {\n                logger.warn(\"Failed to re-roll qr code on expiry\", e);\n            }\n        }\n        this.setState({ phase: Phase.Error, failureReason: reason });\n    };\n\n    public reset(): void {\n        this.abortController?.abort();\n        this.setState({\n            rendezvous: undefined,\n            verificationUri: undefined,\n            failureReason: undefined,\n            userCode: undefined,\n        });\n    }\n\n    private onClick = async (type: Click, checkCode?: string): Promise<void> => {\n        switch (type) {\n            case Click.Cancel:\n                await this.state.rendezvous?.cancel(MSC4108FailureReason.UserCancelled);\n                this.onFinished(false);\n                break;\n            case Click.Approve:\n                await this.approveLogin(checkCode);\n                break;\n            case Click.Decline:\n                if (this.props.intent === RendezvousIntent.LOGIN_ON_NEW_DEVICE) {\n                    await this.state.rendezvous?.cancel(MSC4108FailureReason.UserCancelled);\n                } else {\n                    await this.state.rendezvous?.declineLoginOnExistingDevice();\n                }\n                this.onFinished(false);\n                break;\n            case Click.ShowQr:\n                await this.updateMode(Mode.Show);\n                break;\n        }\n    };\n\n    public render(): React.ReactNode {\n        return (\n            <LoginWithQRFlow\n                onClick={this.onClick}\n                phase={this.state.phase}\n                code={this.state.phase === Phase.ShowingQR ? this.state.rendezvous?.code : undefined}\n                failureReason={this.state.failureReason}\n                userCode={this.state.userCode}\n                intent={this.props.intent}\n            />\n        );\n    }\n}\n"],"names":["__WEBPACK_DEFAULT_EXPORT__","QrLoginDialog","serverConfig","onLoggedIn","onFinished","tempClient","useMemo","createClient","baseUrl","hsUrl","phase","setPhase","useState","hasCancel","Phase","ShowingQR","React","BaseDialog","_t","fixedWidth","LoginWithQR","intent","RendezvousIntent","LOGIN_ON_NEW_DEVICE","client","mode","Mode","Show","onPhaseChange","LoginWithQRFlow","constructor","args","super","_defineProperty","this","createRef","type","async","_this$checkCodeInput$","e","preventDefault","props","onClick","Click","Approve","checkCodeInput","current","value","undefined","Button","kind","size","handleClick","Cancel","description","className","Spinner","render","main","buttons","backButton","Error","ShowQr","title","message","Icon","ErrorIcon","iconKind","failureReason","MSC4108FailureReason","UnsupportedProtocol","UserCancelled","cancelButton","AuthorizationExpired","ClientRendezvousFailureReason","Expired","InsecureChannelDetected","Text","as","weight","OtherDeviceAlreadySignedIn","CheckCircleSolidIcon","UserDeclined","LoginWithQRFailureReason","RateLimited","ETagMissing","HomeserverLacksSupport","QrCodeIcon","DeviceAlreadyExists","DeviceNotFound","UnexpectedMessageReceived","OtherDeviceNotSignedIn","Unknown","BigIcon","Heading","OutOfBandConfirmation","MobileIcon","htmlFor","MFAInput","ref","length","autoFocus","id","CheckCodeMismatch","ErrorMessage","Decline","steps","brand","SdkConfig","get","linkNewDevice","desktopComputer","readyToScan","scanQRCode","code","QRCode","data","width","map","step","i","key","Loading","simpleSpinner","WaitingForDevice","LockSolidIcon","userCode","disabled","Verifying","classNames","RECIPROCATE_LOGIN_ON_EXISTING_DEVICE","AccessibleButton","ChevronLeftIcon","_this$props$onPhaseCh","_this$props","rendezvous","signInByGeneratingQR","onFailure","abortController","signal","linkNewDeviceByGeneratingQR","aborted","setState","logger","error","negotiateProtocols","verificationUri","deviceAuthorizationGrant","serverName","homeserverUrl","identityServerUrl","serverNameOrBaseUrl","_clientConfig$mHomes","_clientConfig$mHomes2","_clientConfig$mIdent","_clientConfig$mIdent2","startsWith","clientConfig","AutoDiscovery","findClientConfig","base_url","resolveServerURLs","metadata","clientId","MatrixClient","getAuthMetadata","grant_types_supported","includes","OAuthGrantType","DeviceAuthorization","getOAuthClientId","oidc_static_clients","cause","loginServerDetails","cancel","RendezvousError","_this$state$rendezvou","state","MSC4108SignInWithQR","checkCode","window","open","shareSecrets","deviceId","secureRandomString","tokenResponse","completeLoginOnNewDevice","secrets","accessToken","access_token","refreshToken","refresh_token","warn","reason","reset","sleep","updateMode","_this$state$rendezvou2","approveLogin","_this$state$rendezvou3","_this$state$rendezvou4","declineLoginOnExistingDevice","call","componentDidMount","componentDidUpdate","prevProps","prevState","_this$props$onPhaseCh2","_this$props2","showLoading","_this$abortController","abort","AbortController","generateAndShowCode","componentWillUnmount","_this$abortController2","finished","success","_this$abortController3","_this$abortController4","_this$state$rendezvou5"],"sourceRoot":""}