-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit fea7688
Showing
3,035 changed files
with
438,066 additions
and
0 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
# Copyright 2017 Aviral Dasgupta | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
root = true | ||
|
||
[*] | ||
charset=utf-8 | ||
end_of_line = lf | ||
insert_final_newline = true | ||
indent_style = space | ||
indent_size = 4 | ||
trim_trailing_whitespace = true | ||
|
||
[*.{yml,yaml}] | ||
indent_size = 4 | ||
|
||
[*.tsx.snap] | ||
trim_trailing_whitespace = false |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
test/end-to-end-tests/node_modules/ | ||
test/end-to-end-tests/element/ | ||
test/end-to-end-tests/synapse/ | ||
test/end-to-end-tests/lib/ | ||
# Legacy skinning file that some people might still have | ||
src/component-index.js |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,302 @@ | ||
module.exports = { | ||
plugins: ["matrix-org"], | ||
extends: ["plugin:matrix-org/babel", "plugin:matrix-org/react", "plugin:matrix-org/a11y"], | ||
parserOptions: { | ||
project: ["./tsconfig.json"], | ||
}, | ||
env: { | ||
browser: true, | ||
node: true, | ||
}, | ||
globals: { | ||
LANGUAGES_FILE: "readonly", | ||
}, | ||
rules: { | ||
// Things we do that break the ideal style | ||
"no-constant-condition": "off", | ||
"prefer-promise-reject-errors": "off", | ||
"no-async-promise-executor": "off", | ||
"no-extra-boolean-cast": "off", | ||
|
||
// Bind or arrow functions in props causes performance issues (but we | ||
// currently use them in some places). | ||
// It's disabled here, but we should using it sparingly. | ||
"react/jsx-no-bind": "off", | ||
"react/jsx-key": ["error"], | ||
|
||
"no-restricted-properties": [ | ||
"error", | ||
...buildRestrictedPropertiesOptions( | ||
["window.innerHeight", "window.innerWidth", "window.visualViewport"], | ||
"Use UIStore to access window dimensions instead.", | ||
), | ||
...buildRestrictedPropertiesOptions( | ||
["*.mxcUrlToHttp", "*.getHttpUriForMxc"], | ||
"Use Media helper instead to centralise access for customisation.", | ||
), | ||
], | ||
|
||
"import/no-duplicates": ["error"], | ||
// Ban matrix-js-sdk/src imports in favour of matrix-js-sdk/src/matrix imports to prevent unleashing hell. | ||
"no-restricted-imports": [ | ||
"error", | ||
{ | ||
paths: [ | ||
{ | ||
name: "matrix-js-sdk", | ||
message: "Please use matrix-js-sdk/src/matrix instead", | ||
}, | ||
{ | ||
name: "matrix-js-sdk/", | ||
message: "Please use matrix-js-sdk/src/matrix instead", | ||
}, | ||
{ | ||
name: "matrix-js-sdk/src", | ||
message: "Please use matrix-js-sdk/src/matrix instead", | ||
}, | ||
{ | ||
name: "matrix-js-sdk/src/", | ||
message: "Please use matrix-js-sdk/src/matrix instead", | ||
}, | ||
{ | ||
name: "matrix-js-sdk/src/index", | ||
message: "Please use matrix-js-sdk/src/matrix instead", | ||
}, | ||
{ | ||
name: "matrix-react-sdk", | ||
message: "Please use matrix-react-sdk/src/index instead", | ||
}, | ||
{ | ||
name: "matrix-react-sdk/", | ||
message: "Please use matrix-react-sdk/src/index instead", | ||
}, | ||
], | ||
patterns: [ | ||
{ | ||
group: [ | ||
"matrix-js-sdk/src/**", | ||
"!matrix-js-sdk/src/matrix", | ||
"matrix-js-sdk/lib", | ||
"matrix-js-sdk/lib/", | ||
"matrix-js-sdk/lib/**", | ||
// XXX: Temporarily allow these as they are not available via the main export | ||
"!matrix-js-sdk/src/logger", | ||
"!matrix-js-sdk/src/errors", | ||
"!matrix-js-sdk/src/utils", | ||
"!matrix-js-sdk/src/version-support", | ||
"!matrix-js-sdk/src/randomstring", | ||
"!matrix-js-sdk/src/sliding-sync", | ||
"!matrix-js-sdk/src/browser-index", | ||
"!matrix-js-sdk/src/feature", | ||
"!matrix-js-sdk/src/NamespacedValue", | ||
"!matrix-js-sdk/src/ReEmitter", | ||
"!matrix-js-sdk/src/event-mapper", | ||
"!matrix-js-sdk/src/interactive-auth", | ||
"!matrix-js-sdk/src/secret-storage", | ||
"!matrix-js-sdk/src/room-hierarchy", | ||
"!matrix-js-sdk/src/rendezvous", | ||
"!matrix-js-sdk/src/rendezvous/transports", | ||
"!matrix-js-sdk/src/rendezvous/channels", | ||
"!matrix-js-sdk/src/indexeddb-worker", | ||
"!matrix-js-sdk/src/pushprocessor", | ||
"!matrix-js-sdk/src/extensible_events_v1", | ||
"!matrix-js-sdk/src/extensible_events_v1/PollStartEvent", | ||
"!matrix-js-sdk/src/extensible_events_v1/PollResponseEvent", | ||
"!matrix-js-sdk/src/extensible_events_v1/PollEndEvent", | ||
"!matrix-js-sdk/src/extensible_events_v1/InvalidEventError", | ||
"!matrix-js-sdk/src/crypto-api", | ||
"!matrix-js-sdk/src/crypto-api/verification", | ||
"!matrix-js-sdk/src/crypto", | ||
"!matrix-js-sdk/src/crypto/algorithms", | ||
"!matrix-js-sdk/src/crypto/api", | ||
"!matrix-js-sdk/src/crypto/aes", | ||
"!matrix-js-sdk/src/crypto/backup", | ||
"!matrix-js-sdk/src/crypto/olmlib", | ||
"!matrix-js-sdk/src/crypto/crypto", | ||
"!matrix-js-sdk/src/crypto/keybackup", | ||
"!matrix-js-sdk/src/crypto/RoomList", | ||
"!matrix-js-sdk/src/crypto/deviceinfo", | ||
"!matrix-js-sdk/src/crypto/key_passphrase", | ||
"!matrix-js-sdk/src/crypto/CrossSigning", | ||
"!matrix-js-sdk/src/crypto/recoverykey", | ||
"!matrix-js-sdk/src/crypto/dehydration", | ||
"!matrix-js-sdk/src/crypto/verification", | ||
"!matrix-js-sdk/src/crypto/verification/SAS", | ||
"!matrix-js-sdk/src/crypto/verification/QRCode", | ||
"!matrix-js-sdk/src/crypto/verification/request", | ||
"!matrix-js-sdk/src/crypto/verification/request/VerificationRequest", | ||
"!matrix-js-sdk/src/common-crypto", | ||
"!matrix-js-sdk/src/common-crypto/CryptoBackend", | ||
"!matrix-js-sdk/src/oidc", | ||
"!matrix-js-sdk/src/oidc/discovery", | ||
"!matrix-js-sdk/src/oidc/authorize", | ||
"!matrix-js-sdk/src/oidc/validate", | ||
"!matrix-js-sdk/src/oidc/error", | ||
"!matrix-js-sdk/src/oidc/register", | ||
"!matrix-js-sdk/src/webrtc", | ||
"!matrix-js-sdk/src/webrtc/call", | ||
"!matrix-js-sdk/src/webrtc/callFeed", | ||
"!matrix-js-sdk/src/webrtc/mediaHandler", | ||
"!matrix-js-sdk/src/webrtc/callEventTypes", | ||
"!matrix-js-sdk/src/webrtc/callEventHandler", | ||
"!matrix-js-sdk/src/webrtc/groupCallEventHandler", | ||
"!matrix-js-sdk/src/models", | ||
"!matrix-js-sdk/src/models/read-receipt", | ||
"!matrix-js-sdk/src/models/relations-container", | ||
"!matrix-js-sdk/src/models/related-relations", | ||
], | ||
message: "Please use matrix-js-sdk/src/matrix instead", | ||
}, | ||
], | ||
}, | ||
], | ||
|
||
// There are too many a11y violations to fix at once | ||
// Turn violated rules off until they are fixed | ||
"jsx-a11y/aria-activedescendant-has-tabindex": "off", | ||
"jsx-a11y/click-events-have-key-events": "off", | ||
"jsx-a11y/interactive-supports-focus": "off", | ||
"jsx-a11y/media-has-caption": "off", | ||
"jsx-a11y/mouse-events-have-key-events": "off", | ||
"jsx-a11y/no-autofocus": "off", | ||
"jsx-a11y/no-noninteractive-element-interactions": "off", | ||
"jsx-a11y/no-noninteractive-element-to-interactive-role": "off", | ||
"jsx-a11y/no-noninteractive-tabindex": "off", | ||
"jsx-a11y/no-static-element-interactions": "off", | ||
"jsx-a11y/role-supports-aria-props": "off", | ||
|
||
"matrix-org/require-copyright-header": "error", | ||
}, | ||
overrides: [ | ||
{ | ||
files: ["src/**/*.{ts,tsx}", "test/**/*.{ts,tsx}", "cypress/**/*.ts", "playwright/**/*.ts"], | ||
extends: ["plugin:matrix-org/typescript", "plugin:matrix-org/react"], | ||
rules: { | ||
"@typescript-eslint/explicit-function-return-type": [ | ||
"error", | ||
{ | ||
allowExpressions: true, | ||
}, | ||
], | ||
|
||
// Things we do that break the ideal style | ||
"prefer-promise-reject-errors": "off", | ||
"no-extra-boolean-cast": "off", | ||
|
||
// Remove Babel things manually due to override limitations | ||
"@babel/no-invalid-this": ["off"], | ||
|
||
// We're okay being explicit at the moment | ||
"@typescript-eslint/no-empty-interface": "off", | ||
// We disable this while we're transitioning | ||
"@typescript-eslint/no-explicit-any": "off", | ||
// We'd rather not do this but we do | ||
"@typescript-eslint/ban-ts-comment": "off", | ||
// We're okay with assertion errors when we ask for them | ||
"@typescript-eslint/no-non-null-assertion": "off", | ||
}, | ||
}, | ||
// temporary override for offending icon require files | ||
{ | ||
files: [ | ||
"src/SdkConfig.ts", | ||
"src/components/structures/FileDropTarget.tsx", | ||
"src/components/structures/RoomStatusBar.tsx", | ||
"src/components/structures/UserMenu.tsx", | ||
"src/components/views/avatars/WidgetAvatar.tsx", | ||
"src/components/views/dialogs/AddExistingToSpaceDialog.tsx", | ||
"src/components/views/dialogs/ForwardDialog.tsx", | ||
"src/components/views/dialogs/InviteDialog.tsx", | ||
"src/components/views/dialogs/ModalWidgetDialog.tsx", | ||
"src/components/views/dialogs/UploadConfirmDialog.tsx", | ||
"src/components/views/dialogs/security/SetupEncryptionDialog.tsx", | ||
"src/components/views/elements/AddressTile.tsx", | ||
"src/components/views/elements/AppWarning.tsx", | ||
"src/components/views/elements/SSOButtons.tsx", | ||
"src/components/views/messages/MAudioBody.tsx", | ||
"src/components/views/messages/MImageBody.tsx", | ||
"src/components/views/messages/MFileBody.tsx", | ||
"src/components/views/messages/MStickerBody.tsx", | ||
"src/components/views/messages/MVideoBody.tsx", | ||
"src/components/views/messages/MVoiceMessageBody.tsx", | ||
"src/components/views/right_panel/EncryptionPanel.tsx", | ||
"src/components/views/rooms/EntityTile.tsx", | ||
"src/components/views/rooms/LinkPreviewGroup.tsx", | ||
"src/components/views/rooms/MemberList.tsx", | ||
"src/components/views/rooms/MessageComposer.tsx", | ||
"src/components/views/rooms/ReplyPreview.tsx", | ||
"src/components/views/settings/tabs/room/SecurityRoomSettingsTab.tsx", | ||
"src/components/views/settings/tabs/user/GeneralUserSettingsTab.tsx", | ||
], | ||
rules: { | ||
"@typescript-eslint/no-var-requires": "off", | ||
}, | ||
}, | ||
{ | ||
files: ["test/**/*.{ts,tsx}", "cypress/**/*.ts", "playwright/**/*.ts"], | ||
extends: ["plugin:matrix-org/jest"], | ||
rules: { | ||
// We don't need super strict typing in test utilities | ||
"@typescript-eslint/explicit-function-return-type": "off", | ||
"@typescript-eslint/explicit-member-accessibility": "off", | ||
|
||
// Jest/Cypress specific | ||
|
||
// Disabled tests are a reality for now but as soon as all of the xits are | ||
// eliminated, we should enforce this. | ||
"jest/no-disabled-tests": "off", | ||
// Also treat "oldBackendOnly" as a test function. | ||
// Used in some crypto tests. | ||
"jest/no-standalone-expect": [ | ||
"error", | ||
{ | ||
additionalTestBlockFunctions: ["beforeAll", "beforeEach", "oldBackendOnly"], | ||
}, | ||
], | ||
}, | ||
}, | ||
{ | ||
files: ["cypress/**/*.ts"], | ||
parserOptions: { | ||
project: ["./cypress/tsconfig.json"], | ||
}, | ||
rules: { | ||
// Cypress "promises" work differently - disable some related rules | ||
"jest/valid-expect": "off", | ||
"jest/valid-expect-in-promise": "off", | ||
"jest/no-done-callback": "off", | ||
}, | ||
}, | ||
{ | ||
files: ["playwright/**/*.ts"], | ||
parserOptions: { | ||
project: ["./playwright/tsconfig.json"], | ||
}, | ||
rules: { | ||
// Cypress "promises" work differently - disable some related rules | ||
"jest/valid-expect": "off", | ||
"jest/valid-expect-in-promise": "off", | ||
"jest/no-done-callback": "off", | ||
}, | ||
}, | ||
], | ||
settings: { | ||
react: { | ||
version: "detect", | ||
}, | ||
}, | ||
}; | ||
|
||
function buildRestrictedPropertiesOptions(properties, message) { | ||
return properties.map((prop) => { | ||
let [object, property] = prop.split("."); | ||
if (object === "*") { | ||
object = undefined; | ||
} | ||
return { | ||
object, | ||
property, | ||
message, | ||
}; | ||
}); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
# prettier | ||
526645c79160ab1ad4b4c3845de27d51263a405e |
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
* @matrix-org/element-web | ||
/.github/workflows/** @matrix-org/element-web-app-team | ||
/package.json @matrix-org/element-web-app-team | ||
/yarn.lock @matrix-org/element-web-app-team | ||
/src/i18n/strings |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
patreon: matrixdotorg | ||
liberapay: matrixdotorg |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
<!-- Thanks for submitting a PR! Please ensure the following requirements are met in order for us to review your PR --> | ||
|
||
## Checklist | ||
|
||
- [ ] Tests written for new code (and old code if feasible) | ||
- [ ] Linter and other CI checks pass | ||
- [ ] Sign-off given on the changes (see [CONTRIBUTING.md](https://github.com/matrix-org/matrix-react-sdk/blob/develop/CONTRIBUTING.md)) | ||
|
||
<!-- | ||
If you would like to specify text for the changelog entry other than your PR title, add the following: | ||
Notes: Add super cool feature | ||
Changes in this project also generate changelogs in Element Web. To disable this, use the following: | ||
element-web notes: none | ||
or specify alternative text: | ||
element-web notes: Add super cool feature | ||
Changes to this project require tagging with the type of change. If you know the correct type, add the following: | ||
Type: [enhancement/defect/task] | ||
--> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
_extends: matrix-org/matrix-js-sdk |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
{ | ||
"$schema": "https://docs.renovatebot.com/renovate-schema.json", | ||
"extends": ["github>matrix-org/renovate-config-element-web"] | ||
} |
Oops, something went wrong.