mirror of https://github.com/vector-im/riot-web
Simplify types (#28749)
parent
db02f26005
commit
0b24d33c64
|
@ -87,6 +87,7 @@
|
||||||
"@matrix-org/react-sdk-module-api": "^2.4.0",
|
"@matrix-org/react-sdk-module-api": "^2.4.0",
|
||||||
"@matrix-org/spec": "^1.7.0",
|
"@matrix-org/spec": "^1.7.0",
|
||||||
"@sentry/browser": "^8.0.0",
|
"@sentry/browser": "^8.0.0",
|
||||||
|
"@types/png-chunks-extract": "^1.0.2",
|
||||||
"@vector-im/compound-design-tokens": "^2.0.1",
|
"@vector-im/compound-design-tokens": "^2.0.1",
|
||||||
"@vector-im/compound-web": "^7.5.0",
|
"@vector-im/compound-web": "^7.5.0",
|
||||||
"@vector-im/matrix-wysiwyg": "2.37.13",
|
"@vector-im/matrix-wysiwyg": "2.37.13",
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2024 New Vector Ltd.
|
|
||||||
Copyright 2021 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
|
|
||||||
Please see LICENSE files in the repository root for full details.
|
|
||||||
*/
|
|
||||||
|
|
||||||
declare module "png-chunks-extract" {
|
|
||||||
interface IChunk {
|
|
||||||
name: string;
|
|
||||||
data: Uint8Array;
|
|
||||||
}
|
|
||||||
|
|
||||||
function extractPngChunks(data: Uint8Array): IChunk[];
|
|
||||||
|
|
||||||
export default extractPngChunks;
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
/*
|
|
||||||
Copyright 2024 New Vector Ltd.
|
|
||||||
Copyright 2020 The Matrix.org Foundation C.I.C.
|
|
||||||
|
|
||||||
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
|
|
||||||
Please see LICENSE files in the repository root for full details.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import sanitizeHtml from "sanitize-html";
|
|
||||||
|
|
||||||
export interface IExtendedSanitizeOptions extends sanitizeHtml.IOptions {
|
|
||||||
// This option only exists in 2.x RCs so far, so not yet present in the
|
|
||||||
// separate type definition module.
|
|
||||||
nestingLimit?: number;
|
|
||||||
}
|
|
|
@ -10,7 +10,7 @@ Please see LICENSE files in the repository root for full details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { LegacyRef, ReactNode } from "react";
|
import React, { LegacyRef, ReactNode } from "react";
|
||||||
import sanitizeHtml from "sanitize-html";
|
import sanitizeHtml, { IOptions } from "sanitize-html";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import katex from "katex";
|
import katex from "katex";
|
||||||
import { decode } from "html-entities";
|
import { decode } from "html-entities";
|
||||||
|
@ -19,7 +19,6 @@ import { Optional } from "matrix-events-sdk";
|
||||||
import escapeHtml from "escape-html";
|
import escapeHtml from "escape-html";
|
||||||
import { getEmojiFromUnicode } from "@matrix-org/emojibase-bindings";
|
import { getEmojiFromUnicode } from "@matrix-org/emojibase-bindings";
|
||||||
|
|
||||||
import { IExtendedSanitizeOptions } from "./@types/sanitize-html";
|
|
||||||
import SettingsStore from "./settings/SettingsStore";
|
import SettingsStore from "./settings/SettingsStore";
|
||||||
import { stripHTMLReply, stripPlainReply } from "./utils/Reply";
|
import { stripHTMLReply, stripPlainReply } from "./utils/Reply";
|
||||||
import { PERMITTED_URL_SCHEMES } from "./utils/UrlUtils";
|
import { PERMITTED_URL_SCHEMES } from "./utils/UrlUtils";
|
||||||
|
@ -126,7 +125,7 @@ export function isUrlPermitted(inputUrl: string): boolean {
|
||||||
}
|
}
|
||||||
|
|
||||||
// this is the same as the above except with less rewriting
|
// this is the same as the above except with less rewriting
|
||||||
const composerSanitizeHtmlParams: IExtendedSanitizeOptions = {
|
const composerSanitizeHtmlParams: IOptions = {
|
||||||
...sanitizeHtmlParams,
|
...sanitizeHtmlParams,
|
||||||
transformTags: {
|
transformTags: {
|
||||||
"code": transformTags["code"],
|
"code": transformTags["code"],
|
||||||
|
@ -135,7 +134,7 @@ const composerSanitizeHtmlParams: IExtendedSanitizeOptions = {
|
||||||
};
|
};
|
||||||
|
|
||||||
// reduced set of allowed tags to avoid turning topics into Myspace
|
// reduced set of allowed tags to avoid turning topics into Myspace
|
||||||
const topicSanitizeHtmlParams: IExtendedSanitizeOptions = {
|
const topicSanitizeHtmlParams: IOptions = {
|
||||||
...sanitizeHtmlParams,
|
...sanitizeHtmlParams,
|
||||||
allowedTags: [
|
allowedTags: [
|
||||||
"font", // custom to matrix for IRC-style font coloring
|
"font", // custom to matrix for IRC-style font coloring
|
||||||
|
|
|
@ -7,7 +7,7 @@ Please see LICENSE files in the repository root for full details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React, { ReactElement } from "react";
|
import React, { ReactElement } from "react";
|
||||||
import sanitizeHtml from "sanitize-html";
|
import sanitizeHtml, { IOptions } from "sanitize-html";
|
||||||
import { merge } from "lodash";
|
import { merge } from "lodash";
|
||||||
import _Linkify from "linkify-react";
|
import _Linkify from "linkify-react";
|
||||||
|
|
||||||
|
@ -17,7 +17,6 @@ import {
|
||||||
ELEMENT_URL_PATTERN,
|
ELEMENT_URL_PATTERN,
|
||||||
options as linkifyMatrixOptions,
|
options as linkifyMatrixOptions,
|
||||||
} from "./linkify-matrix";
|
} from "./linkify-matrix";
|
||||||
import { IExtendedSanitizeOptions } from "./@types/sanitize-html";
|
|
||||||
import SettingsStore from "./settings/SettingsStore";
|
import SettingsStore from "./settings/SettingsStore";
|
||||||
import { tryTransformPermalinkToLocalHref } from "./utils/permalinks/Permalinks";
|
import { tryTransformPermalinkToLocalHref } from "./utils/permalinks/Permalinks";
|
||||||
import { mediaFromMxc } from "./customisations/Media";
|
import { mediaFromMxc } from "./customisations/Media";
|
||||||
|
@ -26,7 +25,7 @@ import { PERMITTED_URL_SCHEMES } from "./utils/UrlUtils";
|
||||||
const COLOR_REGEX = /^#[0-9a-fA-F]{6}$/;
|
const COLOR_REGEX = /^#[0-9a-fA-F]{6}$/;
|
||||||
const MEDIA_API_MXC_REGEX = /\/_matrix\/media\/r0\/(?:download|thumbnail)\/(.+?)\/(.+?)(?:[?/]|$)/;
|
const MEDIA_API_MXC_REGEX = /\/_matrix\/media\/r0\/(?:download|thumbnail)\/(.+?)\/(.+?)(?:[?/]|$)/;
|
||||||
|
|
||||||
export const transformTags: NonNullable<IExtendedSanitizeOptions["transformTags"]> = {
|
export const transformTags: NonNullable<IOptions["transformTags"]> = {
|
||||||
// custom to matrix
|
// custom to matrix
|
||||||
// add blank targets to all hyperlinks except vector URLs
|
// add blank targets to all hyperlinks except vector URLs
|
||||||
"a": function (tagName: string, attribs: sanitizeHtml.Attributes) {
|
"a": function (tagName: string, attribs: sanitizeHtml.Attributes) {
|
||||||
|
@ -137,7 +136,7 @@ export const transformTags: NonNullable<IExtendedSanitizeOptions["transformTags"
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export const sanitizeHtmlParams: IExtendedSanitizeOptions = {
|
export const sanitizeHtmlParams: IOptions = {
|
||||||
allowedTags: [
|
allowedTags: [
|
||||||
// These tags are suggested by the spec https://spec.matrix.org/v1.10/client-server-api/#mroommessage-msgtypes
|
// These tags are suggested by the spec https://spec.matrix.org/v1.10/client-server-api/#mroommessage-msgtypes
|
||||||
"font", // custom to matrix for IRC-style font coloring
|
"font", // custom to matrix for IRC-style font coloring
|
||||||
|
|
|
@ -3128,6 +3128,11 @@
|
||||||
resolved "https://registry.yarnpkg.com/@types/pbf/-/pbf-3.0.5.tgz#a9495a58d8c75be4ffe9a0bd749a307715c07404"
|
resolved "https://registry.yarnpkg.com/@types/pbf/-/pbf-3.0.5.tgz#a9495a58d8c75be4ffe9a0bd749a307715c07404"
|
||||||
integrity sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==
|
integrity sha512-j3pOPiEcWZ34R6a6mN07mUkM4o4Lwf6hPNt8eilOeZhTFbxFXmKhvXl9Y28jotFPaI1bpPDJsbCprUoNke6OrA==
|
||||||
|
|
||||||
|
"@types/png-chunks-extract@^1.0.2":
|
||||||
|
version "1.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/png-chunks-extract/-/png-chunks-extract-1.0.2.tgz#31dd8d74d6ba879ace317c1e042dcdabc6300d6e"
|
||||||
|
integrity sha512-z6djfFIbrrddtunoMJBOPlyZrnmeuG1kkvHUNi2QfpOb+JMMLuLliHHTmMyRi7k7LiTAut0HbdGCF6ibDtQAHQ==
|
||||||
|
|
||||||
"@types/prop-types@*":
|
"@types/prop-types@*":
|
||||||
version "15.7.13"
|
version "15.7.13"
|
||||||
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.13.tgz#2af91918ee12d9d32914feb13f5326658461b451"
|
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.13.tgz#2af91918ee12d9d32914feb13f5326658461b451"
|
||||||
|
|
Loading…
Reference in New Issue