67cb8b7590
* Force verification even for refreshed cients Set a flag on login to remember that the device needs to be verified so that we don't forget if the user refreshes the page, but still allow user with an existing unverified session to stay logged in. * Hopefully make matrixchat tests pass? Much, much tweaking to make the matrixchat tests pass again. Should hopefully make them a bit more solid in general with judicious use of waitFor rather than flushPromises(). Also lots of fun to stop the state bleeding between tests. * Manual yarn.lock manipulation to hopefully resolve infinite package sadness * Make final test pass(?) Mock out the createClient method to return the same client, because we've mocked the peg to always return that client, so if we let the code make another one having still overridden the peg, everything becomes cursed. Also mock out the autodiscovery stuff rather than relying on fetch-mock. * another waitFor * death to flushPromises * Put the logged in dispatch back Actually it breaks all sorts of other things too, having fixed all the MatrixChat tests (although this is useful anyway). * Try displaying the screen in onClientStarted instead * Put post login screen back in logged in but move ready transition to avoid flash of main UI * Rejig more in the hope it does the right thing * Make hook work before push rules are fetched * Add test for unskippable verification * Add test for use case selection * Fix test * Add playwright test for unskippable verification * Remove console log * Add log message to log line * Add tsdoc * Use useTypedEventEmitter * Remove commented code * Use catch instead of empty then on unawaited promises or in one case just await it because the caller was async anyway * Add new mock
251 lines
10 KiB
JSON
251 lines
10 KiB
JSON
{
|
|
"name": "matrix-react-sdk",
|
|
"version": "3.108.0",
|
|
"description": "SDK for matrix.org using React",
|
|
"author": "New Vector Ltd.",
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/element-hq/matrix-react-sdk"
|
|
},
|
|
"license": "AGPL-3.0-only OR GPL-3.0-only",
|
|
"files": [
|
|
"lib",
|
|
"res",
|
|
"src",
|
|
"scripts",
|
|
"git-revision.txt",
|
|
"docs",
|
|
"header",
|
|
"CHANGELOG.md",
|
|
"CONTRIBUTING.rst",
|
|
"LICENSE",
|
|
"README.md",
|
|
"package.json",
|
|
".stylelintrc.js"
|
|
],
|
|
"engines": {
|
|
"node": ">=20.0.0"
|
|
},
|
|
"main": "./lib/index.ts",
|
|
"typings": "./lib/index.d.ts",
|
|
"matrix_i18n_extra_translation_funcs": [
|
|
"UserFriendlyError"
|
|
],
|
|
"scripts": {
|
|
"prepack": "yarn build",
|
|
"i18n": "matrix-gen-i18n && yarn i18n:sort && yarn i18n:lint",
|
|
"i18n:sort": "jq --sort-keys '.' src/i18n/strings/en_EN.json > src/i18n/strings/en_EN.json.tmp && mv src/i18n/strings/en_EN.json.tmp src/i18n/strings/en_EN.json",
|
|
"i18n:lint": "matrix-i18n-lint && prettier --log-level=silent --write src/i18n/strings/ --ignore-path /dev/null",
|
|
"i18n:diff": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && yarn i18n && matrix-compare-i18n-files src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json",
|
|
"make-component": "node scripts/make-react-component.js",
|
|
"rethemendex": "res/css/rethemendex.sh",
|
|
"clean": "rimraf lib",
|
|
"build": "yarn clean && git rev-parse HEAD > git-revision.txt && yarn build:compile && yarn build:types",
|
|
"build:compile": "babel -d lib --verbose --extensions \".ts,.js,.tsx\" src",
|
|
"build:types": "tsc --emitDeclarationOnly --jsx react",
|
|
"start": "echo THIS IS FOR LEGACY PURPOSES ONLY. && yarn start:all",
|
|
"start:all": "echo THIS IS FOR LEGACY PURPOSES ONLY. && yarn start:build",
|
|
"start:build": "babel src -w -s -d lib --verbose --extensions \".ts,.js\"",
|
|
"lint": "yarn lint:types && yarn lint:js && yarn lint:style && yarn lint:workflows",
|
|
"lint:js": "eslint --max-warnings 0 src test playwright && prettier --check .",
|
|
"lint:js-fix": "eslint --fix src test playwright && prettier --log-level=warn --write .",
|
|
"lint:types": "tsc --noEmit --jsx react && tsc --noEmit --jsx react -p playwright",
|
|
"lint:style": "stylelint \"res/css/**/*.pcss\"",
|
|
"test": "jest",
|
|
"test:playwright": "playwright test",
|
|
"test:playwright:open": "yarn test:playwright --ui",
|
|
"test:playwright:screenshots": "yarn test:playwright:screenshots:build && yarn test:playwright:screenshots:run",
|
|
"test:playwright:screenshots:build": "docker build playwright -t matrix-react-sdk-playwright",
|
|
"test:playwright:screenshots:run": "docker run --rm --network host -e BASE_URL -v $(pwd)/../:/work/ -v /var/run/docker.sock:/var/run/docker.sock -v /tmp/:/tmp/ -it matrix-react-sdk-playwright",
|
|
"coverage": "yarn test --coverage",
|
|
"lint:workflows": "find .github/workflows -type f \\( -iname '*.yaml' -o -iname '*.yml' \\) | xargs -I {} sh -c 'echo \"Linting {}\"; action-validator \"{}\"'"
|
|
},
|
|
"resolutions": {
|
|
"@types/react-dom": "17.0.25",
|
|
"@types/react": "17.0.82",
|
|
"@types/seedrandom": "3.0.8",
|
|
"oidc-client-ts": "3.0.1",
|
|
"jwt-decode": "4.0.0",
|
|
"@floating-ui/react": "0.26.11",
|
|
"@radix-ui/react-id": "1.1.0",
|
|
"caniuse-lite": "1.0.30001655"
|
|
},
|
|
"dependencies": {
|
|
"@babel/runtime": "^7.12.5",
|
|
"@matrix-org/analytics-events": "^0.25.0",
|
|
"@matrix-org/emojibase-bindings": "^1.1.2",
|
|
"@matrix-org/matrix-wysiwyg": "2.37.9",
|
|
"@matrix-org/react-sdk-module-api": "^2.4.0",
|
|
"@matrix-org/spec": "^1.7.0",
|
|
"@sentry/browser": "^8.0.0",
|
|
"@testing-library/react-hooks": "^8.0.1",
|
|
"@vector-im/compound-design-tokens": "^1.8.0",
|
|
"@vector-im/compound-web": "^5.5.0",
|
|
"@zxcvbn-ts/core": "^3.0.4",
|
|
"@zxcvbn-ts/language-common": "^3.0.4",
|
|
"@zxcvbn-ts/language-en": "^3.0.2",
|
|
"await-lock": "^2.1.0",
|
|
"bloom-filters": "^3.0.1",
|
|
"blurhash": "^2.0.3",
|
|
"browserslist": "^4.23.2",
|
|
"classnames": "^2.2.6",
|
|
"commonmark": "^0.31.0",
|
|
"counterpart": "^0.18.6",
|
|
"css-tree": "^3.0.0",
|
|
"diff-dom": "^5.0.0",
|
|
"diff-match-patch": "^1.0.5",
|
|
"emojibase-regex": "15.3.2",
|
|
"escape-html": "^1.0.3",
|
|
"file-saver": "^2.0.5",
|
|
"filesize": "10.1.4",
|
|
"github-markdown-css": "^5.5.1",
|
|
"glob-to-regexp": "^0.4.1",
|
|
"highlight.js": "^11.3.1",
|
|
"html-entities": "^2.0.0",
|
|
"is-ip": "^3.1.0",
|
|
"js-xxhash": "^4.0.0",
|
|
"jszip": "^3.7.0",
|
|
"katex": "^0.16.0",
|
|
"linkify-element": "4.1.3",
|
|
"linkify-react": "4.1.3",
|
|
"linkify-string": "4.1.3",
|
|
"linkifyjs": "4.1.3",
|
|
"lodash": "^4.17.20",
|
|
"maplibre-gl": "^2.0.0",
|
|
"matrix-encrypt-attachment": "^1.0.3",
|
|
"matrix-events-sdk": "0.0.1",
|
|
"matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop",
|
|
"matrix-widget-api": "^1.9.0",
|
|
"memoize-one": "^6.0.0",
|
|
"minimist": "^1.2.5",
|
|
"oidc-client-ts": "^3.0.1",
|
|
"opus-recorder": "^8.0.3",
|
|
"pako": "^2.0.3",
|
|
"png-chunks-extract": "^1.0.0",
|
|
"posthog-js": "1.157.2",
|
|
"qrcode": "1.5.4",
|
|
"re-resizable": "^6.9.0",
|
|
"react": "17.0.2",
|
|
"react-beautiful-dnd": "^13.1.0",
|
|
"react-blurhash": "^0.3.0",
|
|
"react-dom": "17.0.2",
|
|
"react-focus-lock": "^2.5.1",
|
|
"react-transition-group": "^4.4.1",
|
|
"rfc4648": "^1.4.0",
|
|
"sanitize-filename": "^1.6.3",
|
|
"sanitize-html": "2.13.0",
|
|
"tar-js": "^0.3.0",
|
|
"temporal-polyfill": "^0.2.5",
|
|
"ua-parser-js": "^1.0.2",
|
|
"uuid": "^10.0.0",
|
|
"what-input": "^5.2.10"
|
|
},
|
|
"devDependencies": {
|
|
"@action-validator/cli": "^0.6.0",
|
|
"@action-validator/core": "^0.6.0",
|
|
"@axe-core/playwright": "^4.8.1",
|
|
"@babel/cli": "^7.12.10",
|
|
"@babel/core": "^7.12.10",
|
|
"@babel/eslint-parser": "^7.12.10",
|
|
"@babel/eslint-plugin": "^7.12.10",
|
|
"@babel/parser": "^7.12.11",
|
|
"@babel/plugin-proposal-export-default-from": "^7.12.1",
|
|
"@babel/plugin-transform-class-properties": "^7.12.1",
|
|
"@babel/plugin-transform-numeric-separator": "^7.12.7",
|
|
"@babel/plugin-transform-object-rest-spread": "^7.12.1",
|
|
"@babel/plugin-transform-runtime": "^7.12.10",
|
|
"@babel/preset-env": "^7.12.11",
|
|
"@babel/preset-react": "^7.12.10",
|
|
"@babel/preset-typescript": "^7.12.7",
|
|
"@babel/register": "^7.12.10",
|
|
"@casualbot/jest-sonar-reporter": "2.2.7",
|
|
"@peculiar/webcrypto": "^1.4.3",
|
|
"@playwright/test": "^1.40.1",
|
|
"@testing-library/dom": "^9.0.0",
|
|
"@testing-library/jest-dom": "^6.0.0",
|
|
"@testing-library/react": "^12.1.5",
|
|
"@testing-library/user-event": "^14.4.3",
|
|
"@types/commonmark": "^0.27.4",
|
|
"@types/content-type": "^1.1.5",
|
|
"@types/counterpart": "^0.18.1",
|
|
"@types/css-tree": "^2.3.8",
|
|
"@types/diff-match-patch": "^1.0.32",
|
|
"@types/escape-html": "^1.0.1",
|
|
"@types/express": "^5.0.0",
|
|
"@types/file-saver": "^2.0.3",
|
|
"@types/fs-extra": "^11.0.0",
|
|
"@types/glob-to-regexp": "^0.4.1",
|
|
"@types/jest": "29.5.12",
|
|
"@types/katex": "^0.16.0",
|
|
"@types/lodash": "^4.14.168",
|
|
"@types/modernizr": "^3.5.3",
|
|
"@types/node": "18",
|
|
"@types/node-fetch": "^2.6.2",
|
|
"@types/pako": "^2.0.0",
|
|
"@types/qrcode": "^1.3.5",
|
|
"@types/react": "17.0.82",
|
|
"@types/react-beautiful-dnd": "^13.0.0",
|
|
"@types/react-dom": "17.0.25",
|
|
"@types/react-transition-group": "^4.4.0",
|
|
"@types/sanitize-html": "2.13.0",
|
|
"@types/sdp-transform": "^2.4.6",
|
|
"@types/seedrandom": "3.0.8",
|
|
"@types/tar-js": "^0.3.2",
|
|
"@types/ua-parser-js": "^0.7.36",
|
|
"@types/uuid": "^10.0.0",
|
|
"@typescript-eslint/eslint-plugin": "^7.0.0",
|
|
"@typescript-eslint/parser": "^7.0.0",
|
|
"axe-core": "4.10.0",
|
|
"babel-jest": "^29.0.0",
|
|
"blob-polyfill": "^9.0.0",
|
|
"core-js": "^3.38.1",
|
|
"eslint": "8.57.1",
|
|
"eslint-config-google": "^0.14.0",
|
|
"eslint-config-prettier": "^9.0.0",
|
|
"eslint-plugin-deprecate": "0.8.5",
|
|
"eslint-plugin-import": "^2.25.4",
|
|
"eslint-plugin-jest": "^28.0.0",
|
|
"eslint-plugin-jsx-a11y": "^6.5.1",
|
|
"eslint-plugin-matrix-org": "1.2.1",
|
|
"eslint-plugin-react": "^7.28.0",
|
|
"eslint-plugin-react-hooks": "^4.3.0",
|
|
"eslint-plugin-unicorn": "^55.0.0",
|
|
"express": "^4.18.2",
|
|
"fake-indexeddb": "^6.0.0",
|
|
"fetch-mock-jest": "^1.5.1",
|
|
"fs-extra": "^11.0.0",
|
|
"glob": "^11.0.0",
|
|
"husky": "^9.0.0",
|
|
"jest": "^29.6.2",
|
|
"jest-canvas-mock": "^2.5.2",
|
|
"jest-environment-jsdom": "^29.6.2",
|
|
"jest-mock": "^29.6.2",
|
|
"jest-raw-loader": "^1.0.1",
|
|
"jsqr": "^1.4.0",
|
|
"lint-staged": "^15.0.2",
|
|
"mailhog": "^4.16.0",
|
|
"matrix-web-i18n": "^3.2.1",
|
|
"mocha-junit-reporter": "^2.2.0",
|
|
"node-fetch": "2",
|
|
"playwright-core": "^1.45.1",
|
|
"postcss-scss": "^4.0.4",
|
|
"prettier": "3.3.3",
|
|
"raw-loader": "^4.0.2",
|
|
"rimraf": "^6.0.0",
|
|
"stylelint": "^16.1.0",
|
|
"stylelint-config-standard": "^36.0.0",
|
|
"stylelint-scss": "^6.0.0",
|
|
"ts-node": "^10.9.1",
|
|
"typescript": "5.6.2",
|
|
"web-streams-polyfill": "^4.0.0"
|
|
},
|
|
"peerDependencies": {
|
|
"postcss": "^8.4.19",
|
|
"webpack": "^4.0.0 || ^5.0.0"
|
|
},
|
|
"@casualbot/jest-sonar-reporter": {
|
|
"outputDirectory": "coverage",
|
|
"outputName": "jest-sonar-report.xml",
|
|
"relativePaths": true
|
|
}
|
|
}
|