forked from matrix/element-web
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.13-rc.1...v1.5.13)
* Upgrade to JS SDK 5.1.1 and React SDK 2.2.3 -----BEGIN PGP SIGNATURE----- iQHFBAABCAAvFiEEXqfg9wRho7y+vk1e9hUYBgMgJvkFAl5w39MRHHJlbGVhc2Vz QHJpb3QuaW0ACgkQ9hUYBgMgJvlVwQv/QXhOEaioBDRvIgBAd4Q0r1TNNjck4bNu kSnxusvuK8WBELPurF8IKk2Nx1rzO7AuY4nnjCJH/9Hzi+xKYAIv79j3kleJxlDB DZ2jTV3wLleAJQbmBtvphSaf5bYGH/A6KNcFBXzKID+fbHoY2reayw1FIe3pCeMe HDMjyBbkQj0jkHwiO+aMyHd/CBcOXw5MugOk/hi6ftzyQYWCxA+EhCERAC3P7XtT 3/l5DlBepXqFgvnXnKRSyW91+Q6YXrHSmLLv/ZD7Iu5XMB2QvOiX8/yBEHCO8y0L SxVm/8fBnbyfafGb3+pL5LJk8cY0lde4X4Nwwi+ZgLO4v24B6d9KdOomg8a857Zp JgZtBmgapDpdoLmQXmnipWBB6QGoF+AqeO47E8weRB3mNko3BuLlfTNjFM4lkthJ h/xnVuCK7ruYdIoEHqTuOqkDEYOm2fJq0ShD+B77xfdf1B1GaM/0njLXrPCxgdHh avDv8YswPT17JMG+6SrAFI2Hb87DJQKg =x4LI -----END PGP SIGNATURE----- Merge tag 'v1.5.13' into matthew/p2p [Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.13-rc.1...v1.5.13) * Upgrade to JS SDK 5.1.1 and React SDK 2.2.3
This commit is contained in:
commit
52641c5674
|
@ -1,80 +0,0 @@
|
||||||
steps:
|
|
||||||
- label: ":eslint: JS Lint"
|
|
||||||
command:
|
|
||||||
- "yarn install"
|
|
||||||
- "yarn lint:js"
|
|
||||||
plugins:
|
|
||||||
- docker#v3.0.1:
|
|
||||||
image: "node:12"
|
|
||||||
|
|
||||||
# This layer doesn't have a TypeScript linter. This comment is to remind TravisR to fix that.
|
|
||||||
# - label: ":eslint: TS Lint"
|
|
||||||
# command:
|
|
||||||
# - "echo '--- Install js-sdk'"
|
|
||||||
# - "./scripts/ci/install-deps.sh"
|
|
||||||
# - "yarn lint:ts"
|
|
||||||
# plugins:
|
|
||||||
# - docker#v3.0.1:
|
|
||||||
# image: "node:12"
|
|
||||||
|
|
||||||
- label: ":eslint: Types Lint"
|
|
||||||
command:
|
|
||||||
- "yarn install"
|
|
||||||
- "yarn lint:types"
|
|
||||||
plugins:
|
|
||||||
- docker#v3.0.1:
|
|
||||||
image: "node:12"
|
|
||||||
|
|
||||||
- label: "🛠 Build"
|
|
||||||
command:
|
|
||||||
- "echo '--- Fetching Dependencies'"
|
|
||||||
- "./scripts/fetch-develop.deps.sh --depth 1"
|
|
||||||
- "yarn install"
|
|
||||||
- "echo '+++ Building Project'"
|
|
||||||
- "yarn build"
|
|
||||||
plugins:
|
|
||||||
- docker#v3.0.1:
|
|
||||||
image: "node:12"
|
|
||||||
|
|
||||||
- label: ":jest: Tests"
|
|
||||||
agents:
|
|
||||||
# We use a medium sized instance instead of the normal small ones because
|
|
||||||
# webpack loves to gorge itself on resources.
|
|
||||||
queue: "medium"
|
|
||||||
command:
|
|
||||||
- "echo '--- Fetching Dependencies'"
|
|
||||||
- "./scripts/fetch-develop.deps.sh --depth 1"
|
|
||||||
- "yarn install"
|
|
||||||
- "yarn build:genfiles" # We have to build the app to make sure the autogenned files are present
|
|
||||||
- "echo '+++ Running Tests'"
|
|
||||||
- "yarn test"
|
|
||||||
plugins:
|
|
||||||
- docker#v3.0.1:
|
|
||||||
image: "node:10"
|
|
||||||
|
|
||||||
- label: "🌐 i18n"
|
|
||||||
command:
|
|
||||||
- "echo '--- Fetching Dependencies'"
|
|
||||||
- "./scripts/fetch-develop.deps.sh --depth 1"
|
|
||||||
- "yarn install"
|
|
||||||
- "echo '+++ Testing i18n output'"
|
|
||||||
- "yarn diff-i18n"
|
|
||||||
plugins:
|
|
||||||
- docker#v3.0.1:
|
|
||||||
image: "node:10"
|
|
||||||
|
|
||||||
- wait: ~ # this wait is to perform deploy to /develop only if all other steps passed
|
|
||||||
continue_on_failure: false
|
|
||||||
|
|
||||||
- label: ":hammer: Package"
|
|
||||||
command:
|
|
||||||
- "echo '--- Fetching Dependencies'"
|
|
||||||
- "./scripts/fetch-develop.deps.sh --depth 1"
|
|
||||||
- "yarn install"
|
|
||||||
- "echo '+++ Packaging'"
|
|
||||||
- "./scripts/ci_package.sh"
|
|
||||||
branches: "develop"
|
|
||||||
artifact_paths: "dist/riot-*.tar.gz"
|
|
||||||
plugins:
|
|
||||||
- docker#v3.0.1:
|
|
||||||
image: "node:10"
|
|
|
@ -5,12 +5,30 @@
|
||||||
"setClasses"
|
"setClasses"
|
||||||
],
|
],
|
||||||
"feature-detects": [
|
"feature-detects": [
|
||||||
|
"test/css/animations",
|
||||||
"test/css/displaytable",
|
"test/css/displaytable",
|
||||||
|
"test/css/filters",
|
||||||
"test/css/flexbox",
|
"test/css/flexbox",
|
||||||
"test/es5/specification",
|
|
||||||
"test/css/objectfit",
|
"test/css/objectfit",
|
||||||
"test/storage/localstorage",
|
|
||||||
"test/workers/webworkers",
|
"test/es5/date",
|
||||||
"test/indexeddb"
|
"test/es5/function",
|
||||||
|
"test/es5/object",
|
||||||
|
"test/es5/undefined",
|
||||||
|
|
||||||
|
"test/es6/array",
|
||||||
|
"test/es6/collections",
|
||||||
|
"test/es6/promises",
|
||||||
|
"test/es6/string",
|
||||||
|
|
||||||
|
"test/svg",
|
||||||
|
"test/svg/asimg",
|
||||||
|
"test/svg/filters",
|
||||||
|
|
||||||
|
"test/cors",
|
||||||
|
"test/iframe/sandbox",
|
||||||
|
"test/json",
|
||||||
|
"test/network/fetch",
|
||||||
|
"test/storage/localstorage"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
226
CHANGELOG.md
226
CHANGELOG.md
|
@ -1,3 +1,229 @@
|
||||||
|
Changes in [1.5.13](https://github.com/vector-im/riot-web/releases/tag/v1.5.13) (2020-03-17)
|
||||||
|
============================================================================================
|
||||||
|
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.13-rc.1...v1.5.13)
|
||||||
|
|
||||||
|
* Upgrade to JS SDK 5.1.1 and React SDK 2.2.3
|
||||||
|
|
||||||
|
Changes in [1.5.13-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.5.13-rc.1) (2020-03-11)
|
||||||
|
======================================================================================================
|
||||||
|
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.12...v1.5.13-rc.1)
|
||||||
|
|
||||||
|
* Update from Weblate
|
||||||
|
[\#12688](https://github.com/vector-im/riot-web/pull/12688)
|
||||||
|
* Fix Docker image version for develop builds
|
||||||
|
[\#12670](https://github.com/vector-im/riot-web/pull/12670)
|
||||||
|
* docker: optimize custom sdk builds
|
||||||
|
[\#12612](https://github.com/vector-im/riot-web/pull/12612)
|
||||||
|
* riot-desktop open SSO in browser so user doesn't have to auth twice
|
||||||
|
[\#12590](https://github.com/vector-im/riot-web/pull/12590)
|
||||||
|
* Fix SSO flows for electron 8.0.2 by re-breaking will-navigate
|
||||||
|
[\#12585](https://github.com/vector-im/riot-web/pull/12585)
|
||||||
|
* index.html: Place noscript on top of the page
|
||||||
|
[\#12563](https://github.com/vector-im/riot-web/pull/12563)
|
||||||
|
* Remove will-navigate comment after Electron fix
|
||||||
|
[\#12561](https://github.com/vector-im/riot-web/pull/12561)
|
||||||
|
* Update loading test for JS SDK IDB change
|
||||||
|
[\#12552](https://github.com/vector-im/riot-web/pull/12552)
|
||||||
|
* Upgrade deps
|
||||||
|
[\#12528](https://github.com/vector-im/riot-web/pull/12528)
|
||||||
|
|
||||||
|
Changes in [1.5.12](https://github.com/vector-im/riot-web/releases/tag/v1.5.12) (2020-03-04)
|
||||||
|
============================================================================================
|
||||||
|
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.11...v1.5.12)
|
||||||
|
|
||||||
|
* Upgrade to React SDK 2.2.1
|
||||||
|
* Revert to Electron 7.1.12 to fix Arch Linux tray icon
|
||||||
|
* Fix image download links so they open in a new tab
|
||||||
|
|
||||||
|
Changes in [1.5.11](https://github.com/vector-im/riot-web/releases/tag/v1.5.11) (2020-03-02)
|
||||||
|
============================================================================================
|
||||||
|
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.11-rc.1...v1.5.11)
|
||||||
|
|
||||||
|
* Upgrade to JS SDK 5.1.0 and React SDK 2.2.0
|
||||||
|
* Fix SSO flows for Electron 8.0.2 by disabling will-navigate
|
||||||
|
[\#12585](https://github.com/vector-im/riot-web/pull/12585)
|
||||||
|
|
||||||
|
Changes in [1.5.11-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.5.11-rc.1) (2020-02-26)
|
||||||
|
======================================================================================================
|
||||||
|
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.10...v1.5.11-rc.1)
|
||||||
|
|
||||||
|
* Upgrade to JS SDK 5.1.0-rc.1 and React SDK 2.2.0-rc.1
|
||||||
|
* Change Windows signing to warning when missing token
|
||||||
|
[\#12523](https://github.com/vector-im/riot-web/pull/12523)
|
||||||
|
* Modernizr remove t3st/es6/contains
|
||||||
|
[\#12524](https://github.com/vector-im/riot-web/pull/12524)
|
||||||
|
* Switch out any eval-using Modernizr rules
|
||||||
|
[\#12519](https://github.com/vector-im/riot-web/pull/12519)
|
||||||
|
* Update from Weblate
|
||||||
|
[\#12522](https://github.com/vector-im/riot-web/pull/12522)
|
||||||
|
* Notify electron of language changes
|
||||||
|
[\#12487](https://github.com/vector-im/riot-web/pull/12487)
|
||||||
|
* Relax macOS notarisation check to print a warning
|
||||||
|
[\#12503](https://github.com/vector-im/riot-web/pull/12503)
|
||||||
|
* Clarify supported tier means desktop OSes
|
||||||
|
[\#12486](https://github.com/vector-im/riot-web/pull/12486)
|
||||||
|
* Use noreferrer in addition to noopener for edge case browsers
|
||||||
|
[\#12477](https://github.com/vector-im/riot-web/pull/12477)
|
||||||
|
* Document start / end composer shortcuts
|
||||||
|
[\#12466](https://github.com/vector-im/riot-web/pull/12466)
|
||||||
|
* Update from Weblate
|
||||||
|
[\#12480](https://github.com/vector-im/riot-web/pull/12480)
|
||||||
|
* Remove buildkite pipeline
|
||||||
|
[\#12464](https://github.com/vector-im/riot-web/pull/12464)
|
||||||
|
* Remove exec so release script continues
|
||||||
|
[\#12435](https://github.com/vector-im/riot-web/pull/12435)
|
||||||
|
* Use Persistent Storage where possible
|
||||||
|
[\#12425](https://github.com/vector-im/riot-web/pull/12425)
|
||||||
|
|
||||||
|
Changes in [1.5.10](https://github.com/vector-im/riot-web/releases/tag/v1.5.10) (2020-02-19)
|
||||||
|
============================================================================================
|
||||||
|
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.9...v1.5.10)
|
||||||
|
|
||||||
|
* Get rid of dependence on usercontent.riot.im
|
||||||
|
[\#12292](https://github.com/vector-im/riot-web/pull/12292)
|
||||||
|
* Add experimental support tier
|
||||||
|
[\#12377](https://github.com/vector-im/riot-web/pull/12377)
|
||||||
|
|
||||||
|
Changes in [1.5.9](https://github.com/vector-im/riot-web/releases/tag/v1.5.9) (2020-02-17)
|
||||||
|
==========================================================================================
|
||||||
|
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.9-rc.1...v1.5.9)
|
||||||
|
|
||||||
|
* Automate SDK dep upgrades for release
|
||||||
|
[\#12374](https://github.com/vector-im/riot-web/pull/12374)
|
||||||
|
|
||||||
|
Changes in [1.5.9-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.5.9-rc.1) (2020-02-13)
|
||||||
|
====================================================================================================
|
||||||
|
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.8...v1.5.9-rc.1)
|
||||||
|
|
||||||
|
* Upgrade JS SDK to 5.0.0-rc.1 and React SDK 2.1.0-rc.2
|
||||||
|
* Update from Weblate
|
||||||
|
[\#12354](https://github.com/vector-im/riot-web/pull/12354)
|
||||||
|
* Add top left menu shortcut
|
||||||
|
[\#12310](https://github.com/vector-im/riot-web/pull/12310)
|
||||||
|
* Remove modernizr rules for features on which we only soft depend
|
||||||
|
[\#12272](https://github.com/vector-im/riot-web/pull/12272)
|
||||||
|
* Embed CSP meta tag and stop using script-src unsafe-inline
|
||||||
|
[\#12258](https://github.com/vector-im/riot-web/pull/12258)
|
||||||
|
* Add contribute.json
|
||||||
|
[\#12251](https://github.com/vector-im/riot-web/pull/12251)
|
||||||
|
* Improve Browser checks
|
||||||
|
[\#12232](https://github.com/vector-im/riot-web/pull/12232)
|
||||||
|
* Document padlock flag
|
||||||
|
[\#12173](https://github.com/vector-im/riot-web/pull/12173)
|
||||||
|
* Enable cross-signing on /develop
|
||||||
|
[\#12126](https://github.com/vector-im/riot-web/pull/12126)
|
||||||
|
* Switch back to legacy decorators
|
||||||
|
[\#12110](https://github.com/vector-im/riot-web/pull/12110)
|
||||||
|
* Update babel targets
|
||||||
|
[\#12102](https://github.com/vector-im/riot-web/pull/12102)
|
||||||
|
* Install deps for linting
|
||||||
|
[\#12076](https://github.com/vector-im/riot-web/pull/12076)
|
||||||
|
* Update from Weblate
|
||||||
|
[\#12062](https://github.com/vector-im/riot-web/pull/12062)
|
||||||
|
* Change to minimal Webpack output
|
||||||
|
[\#12049](https://github.com/vector-im/riot-web/pull/12049)
|
||||||
|
* Remove docs for new invite dialog labs feature
|
||||||
|
[\#12015](https://github.com/vector-im/riot-web/pull/12015)
|
||||||
|
* ElectronPlatform: Add the indexSize method.
|
||||||
|
[\#11529](https://github.com/vector-im/riot-web/pull/11529)
|
||||||
|
* ElectronPlatform: Add the ability to load file events from the event index
|
||||||
|
[\#11907](https://github.com/vector-im/riot-web/pull/11907)
|
||||||
|
* Fix the remainder of the cookie links
|
||||||
|
[\#12008](https://github.com/vector-im/riot-web/pull/12008)
|
||||||
|
* Use bash in Docker scripts
|
||||||
|
[\#12001](https://github.com/vector-im/riot-web/pull/12001)
|
||||||
|
* Use debian to build the Docker image
|
||||||
|
[\#11999](https://github.com/vector-im/riot-web/pull/11999)
|
||||||
|
* Update cookie policy urls on /app and /develop config.json
|
||||||
|
[\#11998](https://github.com/vector-im/riot-web/pull/11998)
|
||||||
|
* BuildKite: Only deploy to /develop if everything else passed
|
||||||
|
[\#11996](https://github.com/vector-im/riot-web/pull/11996)
|
||||||
|
* Add docs for admin report content message
|
||||||
|
[\#11995](https://github.com/vector-im/riot-web/pull/11995)
|
||||||
|
* Load as little as possible in index.js for the skinner
|
||||||
|
[\#11959](https://github.com/vector-im/riot-web/pull/11959)
|
||||||
|
* Fix webpack config (by stealing Dave's config)
|
||||||
|
[\#11956](https://github.com/vector-im/riot-web/pull/11956)
|
||||||
|
* Force Jest to resolve the js-sdk and react-sdk to src directories
|
||||||
|
[\#11954](https://github.com/vector-im/riot-web/pull/11954)
|
||||||
|
* Fix build to not babel modules inside js/react sdk
|
||||||
|
[\#11949](https://github.com/vector-im/riot-web/pull/11949)
|
||||||
|
* Fix webpack to babel js-sdk & react-sdk but no other deps
|
||||||
|
[\#11944](https://github.com/vector-im/riot-web/pull/11944)
|
||||||
|
|
||||||
|
Changes in [1.5.8](https://github.com/vector-im/riot-web/releases/tag/v1.5.8) (2020-01-27)
|
||||||
|
==========================================================================================
|
||||||
|
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.8-rc.2...v1.5.8)
|
||||||
|
|
||||||
|
* Fixes for alias display and copy / paste on composer
|
||||||
|
|
||||||
|
Changes in [1.5.8-rc.2](https://github.com/vector-im/riot-web/releases/tag/v1.5.8-rc.2) (2020-01-22)
|
||||||
|
====================================================================================================
|
||||||
|
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.8-rc.1...v1.5.8-rc.2)
|
||||||
|
|
||||||
|
* Fix incorrect version of react-sdk
|
||||||
|
|
||||||
|
Changes in [1.5.8-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.5.8-rc.1) (2020-01-22)
|
||||||
|
====================================================================================================
|
||||||
|
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.7...v1.5.8-rc.1)
|
||||||
|
|
||||||
|
This version contains an upgrade to the cryptography database
|
||||||
|
version. Once users run this version, their session's indexeddb
|
||||||
|
store will be upgraded and older version of Riot will no longer
|
||||||
|
be able to read it. Users will have to log out and log in if
|
||||||
|
the version of Riot is downgraded back to a previous version.
|
||||||
|
|
||||||
|
* Fix webpack config (by stealing Dave's config)
|
||||||
|
[\#11994](https://github.com/vector-im/riot-web/pull/11994)
|
||||||
|
* Fix webpack to babel js-sdk & react-sdk but no other deps
|
||||||
|
[\#11947](https://github.com/vector-im/riot-web/pull/11947)
|
||||||
|
* Update from Weblate
|
||||||
|
[\#11934](https://github.com/vector-im/riot-web/pull/11934)
|
||||||
|
* Fix rageshake post-sourcemaps
|
||||||
|
[\#11926](https://github.com/vector-im/riot-web/pull/11926)
|
||||||
|
* Fix yarn start concurrent commands
|
||||||
|
[\#11895](https://github.com/vector-im/riot-web/pull/11895)
|
||||||
|
* Run the react-sdk reskindexer for developers
|
||||||
|
[\#11894](https://github.com/vector-im/riot-web/pull/11894)
|
||||||
|
* Update labs documentation for feature_ftue_dms given new scope
|
||||||
|
[\#11893](https://github.com/vector-im/riot-web/pull/11893)
|
||||||
|
* Fix indentation on webpack config and make sourcemapped files legible
|
||||||
|
[\#11892](https://github.com/vector-im/riot-web/pull/11892)
|
||||||
|
* Remove spinner check
|
||||||
|
[\#11891](https://github.com/vector-im/riot-web/pull/11891)
|
||||||
|
* Don't minifiy builds of develop through CI packaging
|
||||||
|
[\#11867](https://github.com/vector-im/riot-web/pull/11867)
|
||||||
|
* Use Jest for tests
|
||||||
|
[\#11869](https://github.com/vector-im/riot-web/pull/11869)
|
||||||
|
* Support application/wasm in Docker image
|
||||||
|
[\#11858](https://github.com/vector-im/riot-web/pull/11858)
|
||||||
|
* Fix sourcemaps by refactoring the build system
|
||||||
|
[\#11843](https://github.com/vector-im/riot-web/pull/11843)
|
||||||
|
* Disable event indexing on develop
|
||||||
|
[\#11850](https://github.com/vector-im/riot-web/pull/11850)
|
||||||
|
* Updated blog url
|
||||||
|
[\#11792](https://github.com/vector-im/riot-web/pull/11792)
|
||||||
|
* Enable and document presence in room list feature flag
|
||||||
|
[\#11829](https://github.com/vector-im/riot-web/pull/11829)
|
||||||
|
* Add stub service worker so users can install on desktop with Chrome
|
||||||
|
[\#11774](https://github.com/vector-im/riot-web/pull/11774)
|
||||||
|
* Update from Weblate
|
||||||
|
[\#11826](https://github.com/vector-im/riot-web/pull/11826)
|
||||||
|
* Sourcemaps: develop -> feature branch
|
||||||
|
[\#11802](https://github.com/vector-im/riot-web/pull/11802)
|
||||||
|
* Update build scripts for new process
|
||||||
|
[\#11801](https://github.com/vector-im/riot-web/pull/11801)
|
||||||
|
* Make the webpack config work for us
|
||||||
|
[\#11712](https://github.com/vector-im/riot-web/pull/11712)
|
||||||
|
* Updates URL for Electron Command Line Switches
|
||||||
|
[\#11810](https://github.com/vector-im/riot-web/pull/11810)
|
||||||
|
* Import from src/ for the react-sdk and js-sdk
|
||||||
|
[\#11714](https://github.com/vector-im/riot-web/pull/11714)
|
||||||
|
* Convert components to ES6 exports
|
||||||
|
[\#11713](https://github.com/vector-im/riot-web/pull/11713)
|
||||||
|
* Remove now-retired package.json property
|
||||||
|
[\#11660](https://github.com/vector-im/riot-web/pull/11660)
|
||||||
|
|
||||||
Changes in [1.5.7](https://github.com/vector-im/riot-web/releases/tag/v1.5.7) (2020-01-13)
|
Changes in [1.5.7](https://github.com/vector-im/riot-web/releases/tag/v1.5.7) (2020-01-13)
|
||||||
==========================================================================================
|
==========================================================================================
|
||||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.7-rc.2...v1.5.7)
|
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.7-rc.2...v1.5.7)
|
||||||
|
|
38
README.md
38
README.md
|
@ -1,12 +1,31 @@
|
||||||
Riot
|
Riot
|
||||||
====
|
====
|
||||||
|
|
||||||
Riot (formerly known as Vector) is a Matrix web client built using the [Matrix React SDK](https://github.com/matrix-org/matrix-react-sdk).
|
Riot (formerly known as Vector) is a Matrix web client built using the [Matrix
|
||||||
|
React SDK](https://github.com/matrix-org/matrix-react-sdk).
|
||||||
|
|
||||||
Riot is officially supported on the web in the last 2 major versions of Chrome, Firefox, and Safari. For Riot on Desktop (electron),
|
Supported Environments
|
||||||
only the officially published app is supported. Other browsers and packages may work, however official support is not provided.
|
======================
|
||||||
For accessing Riot on an Android or iOS device, check out [riot-android](https://github.com/vector-im/riot-android)
|
|
||||||
and [riot-ios](https://github.com/vector-im/riot-ios) - riot-web does not support mobile devices.
|
Riot has several tiers of support for different environments:
|
||||||
|
|
||||||
|
* Supported
|
||||||
|
* Definition: Issues **actively triaged**, regressions **block** the release
|
||||||
|
* Last 2 major versions of Chrome, Firefox, and Safari on desktop OSes
|
||||||
|
* Latest release of official Riot Desktop app on desktop OSes
|
||||||
|
* Desktop OSes means macOS, Windows, and Linux versions for desktop devices
|
||||||
|
that are actively supported by the OS vendor and receive security updates
|
||||||
|
* Experimental
|
||||||
|
* Definition: Issues **accepted**, regressions **do not block** the release
|
||||||
|
* Riot as an installed PWA via current stable version of Chrome, Firefox, and Safari
|
||||||
|
* Mobile web for current stable version of Chrome, Firefox, and Safari on Android, iOS, and iPadOS
|
||||||
|
* Not supported
|
||||||
|
* Definition: Issues only affecting unsupported environments are **closed**
|
||||||
|
* Everything else
|
||||||
|
|
||||||
|
For accessing Riot on an Android or iOS device, we currently recommend the
|
||||||
|
native apps [riot-android](https://github.com/vector-im/riot-android)
|
||||||
|
and [riot-ios](https://github.com/vector-im/riot-ios).
|
||||||
|
|
||||||
Getting Started
|
Getting Started
|
||||||
===============
|
===============
|
||||||
|
@ -52,15 +71,6 @@ We have put some coarse mitigations into place to try to protect against this
|
||||||
situation, but it's still not good practice to do it in the first place. See
|
situation, but it's still not good practice to do it in the first place. See
|
||||||
https://github.com/vector-im/riot-web/issues/1977 for more details.
|
https://github.com/vector-im/riot-web/issues/1977 for more details.
|
||||||
|
|
||||||
The same applies for end-to-end encrypted content, but since this is decrypted
|
|
||||||
on the client, Riot needs a way to supply the decrypted content from a separate
|
|
||||||
origin to the one Riot is hosted on. This currently done with a 'cross origin
|
|
||||||
renderer' which is a small piece of javascript hosted on a different domain.
|
|
||||||
To avoid all Riot installs needing one of these to be set up, riot.im hosts
|
|
||||||
one on usercontent.riot.im which is used by default.
|
|
||||||
https://github.com/vector-im/riot-web/issues/6173 tracks progress on replacing
|
|
||||||
this with something better.
|
|
||||||
|
|
||||||
Building From Source
|
Building From Source
|
||||||
====================
|
====================
|
||||||
|
|
||||||
|
|
|
@ -1,25 +1,23 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
"sourceMaps": true,
|
"sourceMaps": true,
|
||||||
"presets": [
|
"presets": [
|
||||||
["@babel/preset-env", {
|
["@babel/preset-env", {
|
||||||
"targets": {
|
"targets": [
|
||||||
"browsers": [
|
"last 2 Chrome versions", "last 2 Firefox versions", "last 2 Safari versions"
|
||||||
"last 2 versions"
|
],
|
||||||
]
|
}],
|
||||||
}
|
"@babel/preset-typescript",
|
||||||
}],
|
"@babel/preset-flow",
|
||||||
"@babel/preset-typescript",
|
"@babel/preset-react"
|
||||||
"@babel/preset-flow",
|
],
|
||||||
"@babel/preset-react"
|
"plugins": [
|
||||||
],
|
["@babel/plugin-proposal-decorators", {legacy: true}],
|
||||||
"plugins": [
|
"@babel/plugin-proposal-export-default-from",
|
||||||
["@babel/plugin-proposal-decorators", {"legacy": true}],
|
"@babel/plugin-proposal-numeric-separator",
|
||||||
"@babel/plugin-proposal-export-default-from",
|
"@babel/plugin-proposal-class-properties",
|
||||||
"@babel/plugin-proposal-numeric-separator",
|
"@babel/plugin-proposal-object-rest-spread",
|
||||||
"@babel/plugin-proposal-class-properties",
|
"@babel/plugin-transform-flow-comments",
|
||||||
"@babel/plugin-proposal-object-rest-spread",
|
"@babel/plugin-syntax-dynamic-import",
|
||||||
"@babel/plugin-transform-flow-comments",
|
"@babel/plugin-transform-runtime"
|
||||||
"@babel/plugin-syntax-dynamic-import",
|
]
|
||||||
"@babel/plugin-transform-runtime"
|
|
||||||
]
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"name": "Riot",
|
||||||
|
"description": "A glossy Matrix collaboration client for the web.",
|
||||||
|
"repository": {
|
||||||
|
"url": "https://github.com/vector-im/riot-web",
|
||||||
|
"license": "Apache License 2.0"
|
||||||
|
},
|
||||||
|
"bugs": {
|
||||||
|
"list": "https://github.com/vector-im/riot-web/issues",
|
||||||
|
"report": "https://github.com/vector-im/riot-web/issues/new/choose"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"chat",
|
||||||
|
"riot",
|
||||||
|
"matrix"
|
||||||
|
]
|
||||||
|
}
|
|
@ -57,11 +57,6 @@ For a good example, see https://riot.im/develop/config.json.
|
||||||
1. `update_base_url` (electron app only): HTTPS URL to a web server to download
|
1. `update_base_url` (electron app only): HTTPS URL to a web server to download
|
||||||
updates from. This should be the path to the directory containing `macos`
|
updates from. This should be the path to the directory containing `macos`
|
||||||
and `win32` (for update packages, not installer packages).
|
and `win32` (for update packages, not installer packages).
|
||||||
1. `cross_origin_renderer_url`: URL to a static HTML page hosting code to help display
|
|
||||||
encrypted file attachments. This MUST be hosted on a completely separate domain to
|
|
||||||
anything else since it is used to isolate the privileges of file attachments to this
|
|
||||||
domain. Default: `https://usercontent.riot.im/v1.html`. This needs to contain v1.html from
|
|
||||||
https://github.com/matrix-org/usercontent/blob/master/v1.html
|
|
||||||
1. `piwik`: Analytics can be disabled by setting `piwik: false` or by leaving the piwik config
|
1. `piwik`: Analytics can be disabled by setting `piwik: false` or by leaving the piwik config
|
||||||
option out of your config file. If you want to enable analytics, set `piwik` to be an object
|
option out of your config file. If you want to enable analytics, set `piwik` to be an object
|
||||||
containing the following properties:
|
containing the following properties:
|
||||||
|
@ -87,7 +82,7 @@ For a good example, see https://riot.im/develop/config.json.
|
||||||
default homeserver when signing up or logging in.
|
default homeserver when signing up or logging in.
|
||||||
1. `permalinkPrefix`: Used to change the URL that Riot generates permalinks with.
|
1. `permalinkPrefix`: Used to change the URL that Riot generates permalinks with.
|
||||||
By default, this is "https://matrix.to" to generate matrix.to (spec) permalinks.
|
By default, this is "https://matrix.to" to generate matrix.to (spec) permalinks.
|
||||||
Set this to your Riot instance URL if you run an unfederated server (eg:
|
Set this to your Riot instance URL if you run an unfederated server (eg:
|
||||||
"https://riot.example.org").
|
"https://riot.example.org").
|
||||||
|
|
||||||
Note that `index.html` also has an og:image meta tag that is set to an image
|
Note that `index.html` also has an og:image meta tag that is set to an image
|
||||||
|
|
11
docs/labs.md
11
docs/labs.md
|
@ -82,12 +82,6 @@ that downloads, stores, and indexes room messages for E2E encrypted rooms.
|
||||||
The existing search will transparently work for encrypted rooms just like it
|
The existing search will transparently work for encrypted rooms just like it
|
||||||
does for non-encrypted.
|
does for non-encrypted.
|
||||||
|
|
||||||
## New invite dialog (`feature_ftue_dms`)
|
|
||||||
|
|
||||||
An improved dialog for inviting users. This replaces both the DM creation dialog
|
|
||||||
and the 'invite user' dialog, using your recent DMs as a suggestion for who to chat
|
|
||||||
with.
|
|
||||||
|
|
||||||
## Bridge info tab (`feature_bridge_state`)
|
## Bridge info tab (`feature_bridge_state`)
|
||||||
|
|
||||||
Adds a "Bridge Info" tab to the Room Settings dialog, if a compatible bridge is
|
Adds a "Bridge Info" tab to the Room Settings dialog, if a compatible bridge is
|
||||||
|
@ -99,3 +93,8 @@ tab as the single source of truth just yet.
|
||||||
|
|
||||||
This adds a presence indicator in the room list next to DM rooms where the other
|
This adds a presence indicator in the room list next to DM rooms where the other
|
||||||
person is online.
|
person is online.
|
||||||
|
|
||||||
|
## Show padlocks on invite only rooms (`feature_invite_only_padlocks`)
|
||||||
|
|
||||||
|
This adds padlocks to room list tiles and room header for invite only rooms.
|
||||||
|
This feature flag (unlike most) is enabled by default.
|
||||||
|
|
|
@ -47,7 +47,7 @@ Again from the `electron_app/` directory:
|
||||||
|
|
||||||
Recompiling Seshat itself can be done like so:
|
Recompiling Seshat itself can be done like so:
|
||||||
|
|
||||||
yarn run electron-build-env -- --electron 6.1.1 -- neon build matrix-seshat --release`
|
yarn run electron-build-env -- --electron 6.1.1 -- neon build matrix-seshat --release
|
||||||
|
|
||||||
Please make sure to include all the `--` as well as the `--release` command line
|
Please make sure to include all the `--` as well as the `--release` command line
|
||||||
switch at the end. Modify your electron version accordingly depending on the
|
switch at the end. Modify your electron version accordingly depending on the
|
||||||
|
@ -56,6 +56,5 @@ version that is installed on your system.
|
||||||
After this is done the Electron version of Riot can be run from the main folder
|
After this is done the Electron version of Riot can be run from the main folder
|
||||||
as usual using:
|
as usual using:
|
||||||
|
|
||||||
yarn build
|
|
||||||
yarn electron
|
yarn electron
|
||||||
|
|
||||||
|
|
|
@ -10,4 +10,6 @@ The modifier is <kbd>Ctrl</kbd> on Windows & Linux and <kbd>⌘</kbd> on Mac.
|
||||||
- <kbd>↑</kbd>/<kbd>↓</kbd> - next/prev room when focus in room list
|
- <kbd>↑</kbd>/<kbd>↓</kbd> - next/prev room when focus in room list
|
||||||
- <kbd>Alt</kbd>+<kbd>↑</kbd>/<kbd>↓</kbd> - resend previous messages when the composer is in focus
|
- <kbd>Alt</kbd>+<kbd>↑</kbd>/<kbd>↓</kbd> - resend previous messages when the composer is in focus
|
||||||
- <kbd>PageUp</kbd>/<kbd>PageDown</kbd> - scroll timeline up/down
|
- <kbd>PageUp</kbd>/<kbd>PageDown</kbd> - scroll timeline up/down
|
||||||
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>Home</kbd>/<kbd>End</kbd> - jump to timeline start/end
|
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>Home</kbd>/<kbd>End</kbd> - jump to
|
||||||
|
start/end of the composer when focused, otherwise jump to timeline start/end
|
||||||
|
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>`</kbd> - toggle the top left menu
|
||||||
|
|
|
@ -9,6 +9,9 @@
|
||||||
Latest electron-builder does, but it appears to be causing issues:
|
Latest electron-builder does, but it appears to be causing issues:
|
||||||
(https://github.com/electron-userland/electron-builder/issues/4390)
|
(https://github.com/electron-userland/electron-builder/issues/4390)
|
||||||
-->
|
-->
|
||||||
|
<!-- https://github.com/electron/electron-notarize#prerequisites -->
|
||||||
|
<key>com.apple.security.cs.allow-jit</key>
|
||||||
|
<true/>
|
||||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||||
<true/>
|
<true/>
|
||||||
<!-- https://github.com/electron-userland/electron-builder/issues/3940 -->
|
<!-- https://github.com/electron-userland/electron-builder/issues/3940 -->
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Link to the binary
|
|
||||||
ln -sf '/opt/${productFilename}/${executable}' '/usr/bin/${executable}'
|
|
||||||
|
|
||||||
# SUID chrome-sandbox for Electron 5+
|
|
||||||
# Remove this entire file (after-install.tpl) and remove the reference in
|
|
||||||
# package.json once this change has been upstreamed so we go back to the copy
|
|
||||||
# from upstream.
|
|
||||||
# https://github.com/electron-userland/electron-builder/pull/4163
|
|
||||||
chmod 4755 '/opt/${productFilename}/chrome-sandbox' || true
|
|
||||||
|
|
||||||
update-mime-database /usr/share/mime || true
|
|
||||||
update-desktop-database /usr/share/applications || true
|
|
|
@ -2,7 +2,7 @@
|
||||||
"name": "riot-web",
|
"name": "riot-web",
|
||||||
"productName": "Riot",
|
"productName": "Riot",
|
||||||
"main": "src/electron-main.js",
|
"main": "src/electron-main.js",
|
||||||
"version": "1.5.7",
|
"version": "1.5.13",
|
||||||
"description": "A feature-rich client for Matrix.org",
|
"description": "A feature-rich client for Matrix.org",
|
||||||
"author": "New Vector Ltd.",
|
"author": "New Vector Ltd.",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
@ -35,6 +35,7 @@ const tray = require('./tray');
|
||||||
const vectorMenu = require('./vectormenu');
|
const vectorMenu = require('./vectormenu');
|
||||||
const webContentsHandler = require('./webcontents-handler');
|
const webContentsHandler = require('./webcontents-handler');
|
||||||
const updater = require('./updater');
|
const updater = require('./updater');
|
||||||
|
const protocolInit = require('./protocol');
|
||||||
|
|
||||||
const windowStateKeeper = require('electron-window-state');
|
const windowStateKeeper = require('electron-window-state');
|
||||||
const Store = require('electron-store');
|
const Store = require('electron-store');
|
||||||
|
@ -346,6 +347,18 @@ ipcMain.on('seshat', async function(ev, payload) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'getStats':
|
||||||
|
if (eventIndex === null) ret = 0;
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
ret = await eventIndex.getStats();
|
||||||
|
} catch (e) {
|
||||||
|
sendError(payload.id, e);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 'removeCrawlerCheckpoint':
|
case 'removeCrawlerCheckpoint':
|
||||||
if (eventIndex === null) ret = false;
|
if (eventIndex === null) ret = false;
|
||||||
else {
|
else {
|
||||||
|
@ -370,6 +383,18 @@ ipcMain.on('seshat', async function(ev, payload) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'loadFileEvents':
|
||||||
|
if (eventIndex === null) ret = [];
|
||||||
|
else {
|
||||||
|
try {
|
||||||
|
ret = await eventIndex.loadFileEvents(args[0]);
|
||||||
|
} catch (e) {
|
||||||
|
sendError(payload.id, e);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 'loadCheckpoints':
|
case 'loadCheckpoints':
|
||||||
if (eventIndex === null) ret = [];
|
if (eventIndex === null) ret = [];
|
||||||
else {
|
else {
|
||||||
|
@ -403,6 +428,9 @@ if (!gotLock) {
|
||||||
app.exit();
|
app.exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// do this after we know we are the primary instance of the app
|
||||||
|
protocolInit();
|
||||||
|
|
||||||
const launcher = new AutoLaunch({
|
const launcher = new AutoLaunch({
|
||||||
name: vectorConfig.brand || 'Riot',
|
name: vectorConfig.brand || 'Riot',
|
||||||
isHidden: true,
|
isHidden: true,
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
/*
|
||||||
|
Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||||
|
|
||||||
|
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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
const {app} = require('electron');
|
||||||
|
|
||||||
|
const processUrl = (url) => {
|
||||||
|
if (!global.mainWindow) return;
|
||||||
|
console.log("Handling link: ", url);
|
||||||
|
global.mainWindow.loadURL(url.replace("riot://", "vector://"));
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = () => {
|
||||||
|
// get all args except `hidden` as it'd mean the app would not get focused
|
||||||
|
// XXX: passing args to protocol handlers only works on Windows,
|
||||||
|
// so unpackaged deep-linking and --profile passing won't work on Mac/Linux
|
||||||
|
const args = process.argv.slice(1).filter(arg => arg !== "--hidden" && arg !== "-hidden");
|
||||||
|
if (app.isPackaged) {
|
||||||
|
app.setAsDefaultProtocolClient('riot', process.execPath, args);
|
||||||
|
} else if (process.platform === 'win32') { // on Mac/Linux this would just cause the electron binary to open
|
||||||
|
// special handler for running without being packaged, e.g `electron .` by passing our app path to electron
|
||||||
|
app.setAsDefaultProtocolClient('riot', process.execPath, [app.getAppPath(), ...args]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.platform === 'darwin') {
|
||||||
|
// Protocol handler for macos
|
||||||
|
app.on('open-url', function(ev, url) {
|
||||||
|
ev.preventDefault();
|
||||||
|
processUrl(url);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// Protocol handler for win32/Linux
|
||||||
|
app.on('second-instance', (ev, commandLine) => {
|
||||||
|
const url = commandLine[commandLine.length - 1];
|
||||||
|
if (!url.startsWith("riot://")) return;
|
||||||
|
processUrl(url);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
|
@ -174,19 +174,10 @@ function onEditableContextMenu(ev, params) {
|
||||||
|
|
||||||
module.exports = (webContents) => {
|
module.exports = (webContents) => {
|
||||||
webContents.on('new-window', onWindowOrNavigate);
|
webContents.on('new-window', onWindowOrNavigate);
|
||||||
// XXX: The below now does absolutely nothing because of
|
webContents.on('will-navigate', (ev, target) => {
|
||||||
// https://github.com/electron/electron/issues/8841
|
if (target.startsWith("vector://")) return;
|
||||||
// Whilst this isn't a security issue since without
|
return onWindowOrNavigate(ev, target);
|
||||||
// node integration and with the sandbox, it should be
|
});
|
||||||
// no worse than opening the site in Chrome, it obviously
|
|
||||||
// means the user has to restart Riot to make it usable
|
|
||||||
// again (often unintuitive because it minimises to the
|
|
||||||
// system tray). We therefore need to be vigilant about
|
|
||||||
// putting target="_blank" on links in Riot (although
|
|
||||||
// we should generally be doing this anyway since links
|
|
||||||
// navigating you away from Riot in the browser is
|
|
||||||
// also annoying).
|
|
||||||
webContents.on('will-navigate', onWindowOrNavigate);
|
|
||||||
|
|
||||||
webContents.on('context-menu', function(ev, params) {
|
webContents.on('context-menu', function(ev, params) {
|
||||||
if (params.linkURL || params.srcURL) {
|
if (params.linkURL || params.srcURL) {
|
||||||
|
|
33
package.json
33
package.json
|
@ -2,7 +2,7 @@
|
||||||
"name": "riot-web",
|
"name": "riot-web",
|
||||||
"productName": "Riot",
|
"productName": "Riot",
|
||||||
"main": "electron_app/src/electron-main.js",
|
"main": "electron_app/src/electron-main.js",
|
||||||
"version": "1.5.7",
|
"version": "1.5.13",
|
||||||
"description": "A feature-rich client for Matrix.org",
|
"description": "A feature-rich client for Matrix.org",
|
||||||
"author": "New Vector Ltd.",
|
"author": "New Vector Ltd.",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
@ -24,7 +24,8 @@
|
||||||
"LICENSE",
|
"LICENSE",
|
||||||
"README.md",
|
"README.md",
|
||||||
"AUTHORS.rst",
|
"AUTHORS.rst",
|
||||||
"package.json"
|
"package.json",
|
||||||
|
"contribute.json"
|
||||||
],
|
],
|
||||||
"style": "bundle.css",
|
"style": "bundle.css",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -65,9 +66,8 @@
|
||||||
"gemini-scrollbar": "github:matrix-org/gemini-scrollbar#91e1e566",
|
"gemini-scrollbar": "github:matrix-org/gemini-scrollbar#91e1e566",
|
||||||
"gfm.css": "^1.1.2",
|
"gfm.css": "^1.1.2",
|
||||||
"highlight.js": "^9.13.1",
|
"highlight.js": "^9.13.1",
|
||||||
"matrix-js-sdk": "3.0.0",
|
"matrix-js-sdk": "5.1.1",
|
||||||
"matrix-react-sdk": "1.7.6",
|
"matrix-react-sdk": "2.2.3",
|
||||||
"modernizr": "^3.6.0",
|
|
||||||
"olm": "https://packages.matrix.org/npm/olm/olm-3.1.4.tgz",
|
"olm": "https://packages.matrix.org/npm/olm/olm-3.1.4.tgz",
|
||||||
"postcss-easings": "^2.0.0",
|
"postcss-easings": "^2.0.0",
|
||||||
"prop-types": "^15.7.2",
|
"prop-types": "^15.7.2",
|
||||||
|
@ -107,8 +107,8 @@
|
||||||
"cpx": "^1.3.2",
|
"cpx": "^1.3.2",
|
||||||
"cross-env": "^6.0.3",
|
"cross-env": "^6.0.3",
|
||||||
"css-loader": "^3.3.2",
|
"css-loader": "^3.3.2",
|
||||||
"electron-builder": "^21.2.0",
|
"electron-builder": "^22.3.2",
|
||||||
"electron-builder-squirrel-windows": "^21.2.0",
|
"electron-builder-squirrel-windows": "^22.3.2",
|
||||||
"electron-devtools-installer": "^2.2.4",
|
"electron-devtools-installer": "^2.2.4",
|
||||||
"electron-notarize": "^0.2.0",
|
"electron-notarize": "^0.2.0",
|
||||||
"eslint": "^5.8.0",
|
"eslint": "^5.8.0",
|
||||||
|
@ -132,6 +132,7 @@
|
||||||
"mini-css-extract-plugin": "^0.8.0",
|
"mini-css-extract-plugin": "^0.8.0",
|
||||||
"minimist": "^1.2.0",
|
"minimist": "^1.2.0",
|
||||||
"mkdirp": "^0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
|
"modernizr": "^3.6.0",
|
||||||
"optimize-css-assets-webpack-plugin": "^5.0.3",
|
"optimize-css-assets-webpack-plugin": "^5.0.3",
|
||||||
"postcss-extend": "^1.0.5",
|
"postcss-extend": "^1.0.5",
|
||||||
"postcss-import": "^12.0.1",
|
"postcss-import": "^12.0.1",
|
||||||
|
@ -153,7 +154,7 @@
|
||||||
},
|
},
|
||||||
"build": {
|
"build": {
|
||||||
"appId": "im.riot.app",
|
"appId": "im.riot.app",
|
||||||
"electronVersion": "7.1.7",
|
"electronVersion": "7.1.12",
|
||||||
"files": [
|
"files": [
|
||||||
"node_modules/**",
|
"node_modules/**",
|
||||||
"src/**"
|
"src/**"
|
||||||
|
@ -173,9 +174,6 @@
|
||||||
"StartupWMClass": "riot"
|
"StartupWMClass": "riot"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"deb": {
|
|
||||||
"afterInstall": "electron_app/build/linux/after-install.tpl"
|
|
||||||
},
|
|
||||||
"mac": {
|
"mac": {
|
||||||
"category": "public.app-category.social-networking",
|
"category": "public.app-category.social-networking",
|
||||||
"darkModeSupport": true
|
"darkModeSupport": true
|
||||||
|
@ -191,9 +189,20 @@
|
||||||
"output": "electron_app/dist",
|
"output": "electron_app/dist",
|
||||||
"app": "electron_app"
|
"app": "electron_app"
|
||||||
},
|
},
|
||||||
"afterSign": "scripts/electron_afterSign.js"
|
"afterSign": "scripts/electron_afterSign.js",
|
||||||
|
"protocols": [
|
||||||
|
{
|
||||||
|
"name": "riot",
|
||||||
|
"schemes": [
|
||||||
|
"riot"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"jest": {
|
"jest": {
|
||||||
|
"modulePathIgnorePatterns": [
|
||||||
|
"<rootDir>/electron_app"
|
||||||
|
],
|
||||||
"testEnvironment": "jest-environment-jsdom-fourteen",
|
"testEnvironment": "jest-environment-jsdom-fourteen",
|
||||||
"testMatch": [
|
"testMatch": [
|
||||||
"<rootDir>/test/**/*-test.js"
|
"<rootDir>/test/**/*-test.js"
|
||||||
|
|
45
release.sh
45
release.sh
|
@ -20,30 +20,59 @@ cd `dirname $0`
|
||||||
|
|
||||||
for i in matrix-js-sdk matrix-react-sdk
|
for i in matrix-js-sdk matrix-react-sdk
|
||||||
do
|
do
|
||||||
|
echo "Checking version of $i..."
|
||||||
depver=`cat package.json | jq -r .dependencies[\"$i\"]`
|
depver=`cat package.json | jq -r .dependencies[\"$i\"]`
|
||||||
latestver=`yarn info -s $i version`
|
latestver=`yarn info -s $i dist-tags.next`
|
||||||
if [ "$depver" != "$latestver" ]
|
if [ "$depver" != "$latestver" ]
|
||||||
then
|
then
|
||||||
echo "The latest version of $i is $latestver but package.json depends on $depver"
|
echo "The latest version of $i is $latestver but package.json depends on $depver."
|
||||||
echo -n "Type 'Yes' to continue anyway: "
|
echo -n "Type 'u' to auto-upgrade, 'c' to continue anyway, or 'a' to abort:"
|
||||||
read resp
|
read resp
|
||||||
if [ "$resp" != "Yes" ]
|
if [ "$resp" != "u" ] && [ "$resp" != "c" ]
|
||||||
then
|
then
|
||||||
echo "OK, never mind."
|
echo "Aborting."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
if [ "$resp" == "u" ]
|
||||||
|
then
|
||||||
|
echo "Upgrading $i to $latestver..."
|
||||||
|
yarn add -E $i@$latestver
|
||||||
|
git add -u
|
||||||
|
# The `-e` flag opens the editor and gives you a chance to check
|
||||||
|
# the upgrade for correctness.
|
||||||
|
git commit -m "Upgrade $i to $latestver" -e
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# bump Electron's package.json first
|
|
||||||
release="${1#v}"
|
release="${1#v}"
|
||||||
tag="v${release}"
|
tag="v${release}"
|
||||||
echo "electron yarn version"
|
prerelease=0
|
||||||
|
# We check if this build is a prerelease by looking to
|
||||||
|
# see if the version has a hyphen in it. Crude,
|
||||||
|
# but semver doesn't support postreleases so anything
|
||||||
|
# with a hyphen is a prerelease.
|
||||||
|
echo $release | grep -q '-' && prerelease=1
|
||||||
|
|
||||||
|
# bump Electron's package.json first
|
||||||
|
echo "electron yarn version"
|
||||||
cd electron_app
|
cd electron_app
|
||||||
yarn version --no-git-tag-version --new-version "$release"
|
yarn version --no-git-tag-version --new-version "$release"
|
||||||
git commit package.json -m "$tag"
|
git commit package.json -m "$tag"
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
exec ./node_modules/matrix-js-sdk/release.sh -u vector-im -z "$orig_args"
|
./node_modules/matrix-js-sdk/release.sh -u vector-im -z "$orig_args"
|
||||||
|
|
||||||
|
if [ $prerelease -eq 0 ]
|
||||||
|
then
|
||||||
|
# For a release, reset SDK deps back to the `develop` branch.
|
||||||
|
for i in matrix-js-sdk matrix-react-sdk
|
||||||
|
do
|
||||||
|
echo "Resetting $i to develop branch..."
|
||||||
|
yarn add github:matrix-org/$i#develop
|
||||||
|
git add -u
|
||||||
|
git commit -m "Reset $i back to develop branch"
|
||||||
|
done
|
||||||
|
git push origin develop
|
||||||
|
fi
|
||||||
|
|
|
@ -20,9 +20,9 @@
|
||||||
"feature_many_integration_managers": "labs",
|
"feature_many_integration_managers": "labs",
|
||||||
"feature_mjolnir": "labs",
|
"feature_mjolnir": "labs",
|
||||||
"feature_dm_verification": "labs",
|
"feature_dm_verification": "labs",
|
||||||
"feature_cross_signing": "labs",
|
"feature_cross_signing": "enable",
|
||||||
|
"feature_invite_only_padlocks": "enable",
|
||||||
"feature_event_indexing": "disable",
|
"feature_event_indexing": "disable",
|
||||||
"feature_ftue_dms": "labs",
|
|
||||||
"feature_bridge_state": "labs",
|
"feature_bridge_state": "labs",
|
||||||
"feature_presence_in_room_list": "labs"
|
"feature_presence_in_room_list": "labs"
|
||||||
},
|
},
|
||||||
|
|
|
@ -66,6 +66,7 @@ const COPY_LIST = [
|
||||||
["node_modules/matrix-react-sdk/res/media/**", "webapp/media"],
|
["node_modules/matrix-react-sdk/res/media/**", "webapp/media"],
|
||||||
["node_modules/olm/olm_legacy.js", "webapp", { directwatch: 1 }],
|
["node_modules/olm/olm_legacy.js", "webapp", { directwatch: 1 }],
|
||||||
["./config.json", "webapp", { directwatch: 1 }],
|
["./config.json", "webapp", { directwatch: 1 }],
|
||||||
|
["contribute.json", "webapp"],
|
||||||
];
|
];
|
||||||
|
|
||||||
const parseArgs = require('minimist');
|
const parseArgs = require('minimist');
|
||||||
|
|
|
@ -20,17 +20,15 @@ then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Linking js-sdk"
|
echo "Linking js-sdk"
|
||||||
git clone $JS_SDK_REPO js-sdk
|
git clone --depth 1 --branch $JS_SDK_BRANCH $JS_SDK_REPO js-sdk
|
||||||
cd js-sdk
|
cd js-sdk
|
||||||
git checkout $JS_SDK_BRANCH
|
|
||||||
yarn link
|
yarn link
|
||||||
yarn --network-timeout=100000 install
|
yarn --network-timeout=100000 install
|
||||||
cd ../
|
cd ../
|
||||||
|
|
||||||
echo "Linking react-sdk"
|
echo "Linking react-sdk"
|
||||||
git clone $REACT_SDK_REPO react-sdk
|
git clone --depth 1 --branch $REACT_SDK_BRANCH $REACT_SDK_REPO react-sdk
|
||||||
cd react-sdk
|
cd react-sdk
|
||||||
git checkout $REACT_SDK_BRANCH
|
|
||||||
yarn link
|
yarn link
|
||||||
yarn link matrix-js-sdk
|
yarn link matrix-js-sdk
|
||||||
yarn --network-timeout=100000 install
|
yarn --network-timeout=100000 install
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
|
|
||||||
set -ex
|
set -ex
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ DIST_VERSION=$TAG
|
||||||
# a few SHAs rather than a version.
|
# a few SHAs rather than a version.
|
||||||
# Docker Hub doesn't always check out the tag and sometimes checks out the branch, so we should look
|
# Docker Hub doesn't always check out the tag and sometimes checks out the branch, so we should look
|
||||||
# for an appropriately tagged branch as well (heads/v1.2.3).
|
# for an appropriately tagged branch as well (heads/v1.2.3).
|
||||||
if [ $BRANCH != 'HEAD' && $BRANCH != 'heads/v*' ]
|
if [[ $BRANCH != 'HEAD' && $BRANCH != 'heads/v*' ]]
|
||||||
then
|
then
|
||||||
REACT_SHA=$(cd node_modules/matrix-react-sdk; git rev-parse --short=12 HEAD)
|
REACT_SHA=$(cd node_modules/matrix-react-sdk; git rev-parse --short=12 HEAD)
|
||||||
JSSDK_SHA=$(cd node_modules/matrix-js-sdk; git rev-parse --short=12 HEAD)
|
JSSDK_SHA=$(cd node_modules/matrix-js-sdk; git rev-parse --short=12 HEAD)
|
||||||
|
|
|
@ -10,7 +10,13 @@ exports.default = async function(context) {
|
||||||
// from the keychain, so we need to get it from the environment.
|
// from the keychain, so we need to get it from the environment.
|
||||||
const userId = process.env.NOTARIZE_APPLE_ID;
|
const userId = process.env.NOTARIZE_APPLE_ID;
|
||||||
if (userId === undefined) {
|
if (userId === undefined) {
|
||||||
throw new Error("User ID not found. Set NOTARIZE_APPLE_ID.");
|
console.warn(
|
||||||
|
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +
|
||||||
|
"! Skipping macOS notarisation. !\n" +
|
||||||
|
"! User ID not found, set NOTARIZE_APPLE_ID. !\n" +
|
||||||
|
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",
|
||||||
|
);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("Notarising macOS app. This may be some time.");
|
console.log("Notarising macOS app. This may be some time.");
|
||||||
|
|
|
@ -8,23 +8,31 @@ exports.default = async function(options) {
|
||||||
const appOutDir = path.dirname(inPath);
|
const appOutDir = path.dirname(inPath);
|
||||||
|
|
||||||
// get the token passphrase from the keychain
|
// get the token passphrase from the keychain
|
||||||
const tokenPassphrase = await new Promise((resolve, reject) => {
|
let tokenPassphrase;
|
||||||
execFile(
|
try {
|
||||||
'security',
|
tokenPassphrase = await new Promise((resolve, reject) => {
|
||||||
['find-generic-password', '-s', 'riot_signing_token', '-w'],
|
execFile(
|
||||||
{},
|
'security',
|
||||||
(err, stdout) => {
|
['find-generic-password', '-s', 'riot_signing_token', '-w'],
|
||||||
if (err) {
|
{},
|
||||||
console.error("Couldn't find signing token in keychain", err);
|
(err, stdout) => {
|
||||||
// electron-builder seems to print '[object Object]' on the
|
if (err) {
|
||||||
// console whether you reject with an Error or a string...
|
reject(err);
|
||||||
reject(err);
|
} else {
|
||||||
} else {
|
resolve(stdout.trim());
|
||||||
resolve(stdout.trim());
|
}
|
||||||
}
|
},
|
||||||
},
|
);
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
console.warn(
|
||||||
|
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" +
|
||||||
|
"! Skipping Windows signing. !\n" +
|
||||||
|
"! Signing token not found in keychain. !\n" +
|
||||||
|
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!",
|
||||||
);
|
);
|
||||||
});
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
let cmdLine = 'osslsigncode sign ';
|
let cmdLine = 'osslsigncode sign ';
|
||||||
|
|
|
@ -29,7 +29,7 @@ export default class VectorEmbeddedPage extends EmbeddedPage {
|
||||||
translate(s) {
|
translate(s) {
|
||||||
s = sanitizeHtml(_t(s));
|
s = sanitizeHtml(_t(s));
|
||||||
// ugly fix for https://github.com/vector-im/riot-web/issues/4243
|
// ugly fix for https://github.com/vector-im/riot-web/issues/4243
|
||||||
s = s.replace(/\[matrix\]/, '<a href="https://matrix.org" target="_blank" rel="noopener"><img width="79" height="34" alt="[matrix]" style="padding-left: 1px;vertical-align: middle" src="welcome/images/matrix.svg"/></a>');
|
s = s.replace(/\[matrix\]/, '<a href="https://matrix.org" target="_blank" rel="noreferrer noopener"><img width="79" height="34" alt="[matrix]" style="padding-left: 1px;vertical-align: middle" src="welcome/images/matrix.svg"/></a>');
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ const VectorAuthFooter = () => {
|
||||||
const authFooterLinks = [];
|
const authFooterLinks = [];
|
||||||
for (const linkEntry of links) {
|
for (const linkEntry of links) {
|
||||||
authFooterLinks.push(
|
authFooterLinks.push(
|
||||||
<a href={linkEntry.url} key={linkEntry.text} target="_blank" rel="noopener">
|
<a href={linkEntry.url} key={linkEntry.text} target="_blank" rel="noreferrer noopener">
|
||||||
{linkEntry.text}
|
{linkEntry.text}
|
||||||
</a>,
|
</a>,
|
||||||
);
|
);
|
||||||
|
@ -43,7 +43,7 @@ const VectorAuthFooter = () => {
|
||||||
return (
|
return (
|
||||||
<div className="mx_AuthFooter">
|
<div className="mx_AuthFooter">
|
||||||
{authFooterLinks}
|
{authFooterLinks}
|
||||||
<a href="https://matrix.org" target="_blank" rel="noopener">{ _t('powered by Matrix') }</a>
|
<a href="https://matrix.org" target="_blank" rel="noreferrer noopener">{ _t('powered by Matrix') }</a>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -4,22 +4,22 @@
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "Pro uskutečnění hovoru se sdílením obrazovky musíte používat HTTPS.",
|
"You need to be using HTTPS to place a screen-sharing call.": "Pro uskutečnění hovoru se sdílením obrazovky musíte používat HTTPS.",
|
||||||
"Chat with Riot Bot": "Konverzovat s Riot Botem",
|
"Chat with Riot Bot": "Konverzovat s Riot Botem",
|
||||||
"Dismiss": "Zahodit",
|
"Dismiss": "Zahodit",
|
||||||
"powered by Matrix": "poháněno Matrixem",
|
"powered by Matrix": "používá protokol Matrix",
|
||||||
"Riot Desktop on %(platformName)s": "Riot Desktop na %(platformName)s",
|
"Riot Desktop on %(platformName)s": "Riot Desktop pro %(platformName)s",
|
||||||
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s přes %(browserName)s na %(osName)s",
|
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s přes %(browserName)s na %(osName)s",
|
||||||
"Custom Server Options": "Vlastní serverové volby",
|
"Custom Server Options": "Vlastní nastavení serveru",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizovaný, šifrovaný chat a spolupráce na platformě [matrix]",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizovaný, šifrovaný chat a spolupráce na platformě [matrix]",
|
||||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Ve vlastních serverových volbách si můžete nastavit použití vlastního domovského serveru. To Vám umožní používat Riot s existujícím Matrix účtem na jiném serveru.",
|
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Ve vlastním nastavení serveru můžete nastavit použití vlastního domovského serveru. To vám umožní používat Riot s existujícím Matrix účtem na jiném serveru.",
|
||||||
"Sign In": "Přihlásit se",
|
"Sign In": "Přihlásit se",
|
||||||
"Create Account": "Vytvořit účet",
|
"Create Account": "Vytvořit účet",
|
||||||
"Need help?": "Chcete pomoct?",
|
"Need help?": "Potřebujete pomoc?",
|
||||||
"Explore rooms": "Prohlížet místnosti",
|
"Explore rooms": "Procházet místnosti",
|
||||||
"Room Directory": "Adresář místností",
|
"Room Directory": "Adresář místností",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Konfigurace Riotu obsahuje neplatný JSON. Opravte prosím tento problém a obnovte stránku.",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Konfigurace Riotu obsahuje neplatný JSON. Opravte prosím tento problém a obnovte stránku.",
|
||||||
"The message from the parser is: %(message)s": "Zpráva z parseru je: %(message)s",
|
"The message from the parser is: %(message)s": "Zpráva z parseru je: %(message)s",
|
||||||
"Invalid JSON": "Neplatný JSON",
|
"Invalid JSON": "Neplatný JSON",
|
||||||
"Your Riot is misconfigured": "Riot je špatně nakonfigurován",
|
"Your Riot is misconfigured": "Riot je špatně nakonfigurován",
|
||||||
"Unexpected error preparing the app. See console for details.": "Neočekávaná chyba při přípravě aplikace. V konzoli je více informací.",
|
"Unexpected error preparing the app. See console for details.": "Neočekávaná chyba při přípravě aplikace. Podrobnosti najdete v konzoli.",
|
||||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Neplatná konfigurace: je možné specifikovat pouze jednu volbu z default_server_config, default_server_name, nebo default_hs_url.",
|
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Neplatná konfigurace: je možné specifikovat pouze jednu volbu z default_server_config, default_server_name, nebo default_hs_url.",
|
||||||
"Invalid configuration: no default server specified.": "Neplatná konfigurace: není zadán výchozí server."
|
"Invalid configuration: no default server specified.": "Neplatná konfigurace: není zadán výchozí server."
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,11 +9,11 @@
|
||||||
"Welcome to Riot.im": "Willkommen bei Riot.im",
|
"Welcome to Riot.im": "Willkommen bei Riot.im",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Dezentrale, verschlüsselte Chat- & Kollaborationslösung unterstützt von [matrix]",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Dezentrale, verschlüsselte Chat- & Kollaborationslösung unterstützt von [matrix]",
|
||||||
"Chat with Riot Bot": "Chatte mit dem Riot Bot",
|
"Chat with Riot Bot": "Chatte mit dem Riot Bot",
|
||||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Du kannst die erweiterte Serveroption nutzen um dich an einem anderen Matrixserver anzumelden, indem du eine andere Heimserver-URL angibst. Dies erlaubt dir, Riot mit einem existierenden Matrix-Konto auf einem anderen Heimserver zu nutzen.",
|
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Du kannst benutzerdefinierte Server-Optionen nutzen, um dich an anderen Matrix Servern anzumelden, indem du eine andere Heimserver-URL angibst. Dies erlaubt dir, Riot mit einem existierenden Matrix-Konto auf einem anderen Heimserver zu nutzen.",
|
||||||
"Sign In": "Anmelden",
|
"Sign In": "Anmelden",
|
||||||
"Create Account": "Konto erstellen",
|
"Create Account": "Account erstellen",
|
||||||
"Need help?": "Brauchst du Hilfe?",
|
"Need help?": "Brauchst du Hilfe?",
|
||||||
"Explore rooms": "Räume erkunden",
|
"Explore rooms": "Erkunde Räume",
|
||||||
"Room Directory": "Raumverzeichnis",
|
"Room Directory": "Raumverzeichnis",
|
||||||
"Unexpected error preparing the app. See console for details.": "Unerwarteter Fehler bei der Vorbereitung der App. Siehe Konsole für Details.",
|
"Unexpected error preparing the app. See console for details.": "Unerwarteter Fehler bei der Vorbereitung der App. Siehe Konsole für Details.",
|
||||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ungültige Konfiguration: Es kann nur eine der Optionen default_server_config, default_server_name oder default_hs_url angegeben werden.",
|
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ungültige Konfiguration: Es kann nur eine der Optionen default_server_config, default_server_name oder default_hs_url angegeben werden.",
|
||||||
|
@ -21,5 +21,6 @@
|
||||||
"Your Riot is misconfigured": "Dein Riot ist falsch konfiguriert",
|
"Your Riot is misconfigured": "Dein Riot ist falsch konfiguriert",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Deine Riot Konfiguration enthält ungültiges JSON. Bitte korrigiere das Problem und lade die Seite neu.",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Deine Riot Konfiguration enthält ungültiges JSON. Bitte korrigiere das Problem und lade die Seite neu.",
|
||||||
"The message from the parser is: %(message)s": "Die Nachricht des Parsers ist: %(message)s",
|
"The message from the parser is: %(message)s": "Die Nachricht des Parsers ist: %(message)s",
|
||||||
"Invalid JSON": "Ungültiges JSON"
|
"Invalid JSON": "Ungültiges JSON",
|
||||||
|
"Go to your browser to complete Sign In": "Gehe zu deinem Browser, um die Anmeldung abzuschließen"
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.",
|
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.",
|
||||||
"Invalid configuration: no default server specified.": "Invalid configuration: no default server specified.",
|
"Invalid configuration: no default server specified.": "Invalid configuration: no default server specified.",
|
||||||
"Riot Desktop on %(platformName)s": "Riot Desktop on %(platformName)s",
|
"Riot Desktop on %(platformName)s": "Riot Desktop on %(platformName)s",
|
||||||
|
"Go to your browser to complete Sign In": "Go to your browser to complete Sign In",
|
||||||
"Unknown device": "Unknown device",
|
"Unknown device": "Unknown device",
|
||||||
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s on %(osName)s",
|
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s on %(osName)s",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "You need to be using HTTPS to place a screen-sharing call.",
|
"You need to be using HTTPS to place a screen-sharing call.": "You need to be using HTTPS to place a screen-sharing call.",
|
||||||
|
|
|
@ -21,5 +21,6 @@
|
||||||
"Your Riot is misconfigured": "Via kliento Riot estas misagordita",
|
"Your Riot is misconfigured": "Via kliento Riot estas misagordita",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Viaj Riot-agordoj enhavas nevalidan JSON-on. Bonvolu korekti la problemon kaj reŝarĝi la paĝon.",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Viaj Riot-agordoj enhavas nevalidan JSON-on. Bonvolu korekti la problemon kaj reŝarĝi la paĝon.",
|
||||||
"The message from the parser is: %(message)s": "La mesaĝo el la analizilo estas: %(message)s",
|
"The message from the parser is: %(message)s": "La mesaĝo el la analizilo estas: %(message)s",
|
||||||
"Invalid JSON": "Nevalida JSON"
|
"Invalid JSON": "Nevalida JSON",
|
||||||
|
"Go to your browser to complete Sign In": "Iru al via foliumilo por fini la saluton"
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,5 +21,6 @@
|
||||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Konfigurazio baliogabea: default_server_config, default_server_name, edo default_hs_url bat bakarra zehaztu daiteke.",
|
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Konfigurazio baliogabea: default_server_config, default_server_name, edo default_hs_url bat bakarra zehaztu daiteke.",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Zure Riot konfigurazioak baliogabeko JSON kodea du. Zuzendu arazoa eta kargatu orria berriro.",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Zure Riot konfigurazioak baliogabeko JSON kodea du. Zuzendu arazoa eta kargatu orria berriro.",
|
||||||
"The message from the parser is: %(message)s": "Prozesatzailearen mezua hau da: %(message)s",
|
"The message from the parser is: %(message)s": "Prozesatzailearen mezua hau da: %(message)s",
|
||||||
"Invalid JSON": "JSON baliogabea"
|
"Invalid JSON": "JSON baliogabea",
|
||||||
|
"Go to your browser to complete Sign In": "Joan zure nabigatzailera izena ematen bukatzeko"
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,5 +21,6 @@
|
||||||
"Your Riot is misconfigured": "Votre Riot est mal configuré",
|
"Your Riot is misconfigured": "Votre Riot est mal configuré",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Votre configuration de Riot contient du JSON non valide. Corrigez ce problème et rechargez la page.",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Votre configuration de Riot contient du JSON non valide. Corrigez ce problème et rechargez la page.",
|
||||||
"The message from the parser is: %(message)s": "Le message de l’analyseur est : %(message)s",
|
"The message from the parser is: %(message)s": "Le message de l’analyseur est : %(message)s",
|
||||||
"Invalid JSON": "JSON non valide"
|
"Invalid JSON": "JSON non valide",
|
||||||
|
"Go to your browser to complete Sign In": "Utilisez votre navigateur pour terminer la connexion"
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,25 +1,26 @@
|
||||||
{
|
{
|
||||||
"Custom Server Options": "Egyedi szerverbeállítások",
|
"Custom Server Options": "Egyedi szerverbeállítások",
|
||||||
"Dismiss": "Eltüntet",
|
"Dismiss": "Eltüntetés",
|
||||||
"powered by Matrix": "Matrix hajtja",
|
"powered by Matrix": "Matrix hajtja",
|
||||||
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s alkalmazás %(browserName)s böngészőn %(osName)s rendszeren",
|
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s alkalmazás %(browserName)s böngészőn %(osName)s rendszeren",
|
||||||
"Riot Desktop on %(platformName)s": "Riot Desktop itt: %(platformName)s",
|
"Riot Desktop on %(platformName)s": "Riot Desktop itt: %(platformName)s",
|
||||||
"Unknown device": "Ismeretlen készülék",
|
"Unknown device": "Ismeretlen eszköz",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "Képernyőmegosztás indításához HTTPS-t kell használnod.",
|
"You need to be using HTTPS to place a screen-sharing call.": "Képernyőmegosztás indításához HTTPS-t kell használnod.",
|
||||||
"Welcome to Riot.im": "Üdvözöl a Riot.im",
|
"Welcome to Riot.im": "Üdvözöl a Riot.im",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizált, titkosított csevegés és kollaboráció [matrix] alapokon",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizált, titkosított csevegés és kollaboráció [matrix] alapokon",
|
||||||
"Chat with Riot Bot": "Csevegés a Riot Robottal",
|
"Chat with Riot Bot": "Csevegés a Riot Robottal",
|
||||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Használhatod az egyedi szerver beállítást más Matrix szerverre való belépéshez, azzal, hogy megadod a Matrix szerver URL-jét. Ezzel a Riot-ot használhatod más Matrix szerveren lévő fiókkal.",
|
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Használhatod az egyedi szerver beállítást más Matrix szerverre való belépéshez, azzal, hogy megadod a Matrix szerver URL-jét. Ezzel a Riot-ot használhatod más Matrix szerveren lévő fiókkal.",
|
||||||
"Sign In": "Bejelentkezés",
|
"Sign In": "Bejelentkezés",
|
||||||
"Create Account": "Fiók készítés",
|
"Create Account": "Fiók létrehozása",
|
||||||
"Need help?": "Segíthetünk?",
|
"Need help?": "Segíthetünk?",
|
||||||
"Explore rooms": "Szobák felderítése",
|
"Explore rooms": "Szobák felderítése",
|
||||||
"Room Directory": "Szoba lista",
|
"Room Directory": "Szobalista",
|
||||||
"Unexpected error preparing the app. See console for details.": "Váratlan hiba történt az alkalmazás előkészítésénél. A részletekért nézd meg a konzolt.",
|
"Unexpected error preparing the app. See console for details.": "Váratlan hiba történt az alkalmazás előkészítésénél. A részletekért nézd meg a konzolt.",
|
||||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Érvénytelen konfiguráció: csak egyet lehet megadni a default_server_config, default_server_name és default_hs_url közül.",
|
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Érvénytelen konfiguráció: csak egyet lehet megadni a default_server_config, default_server_name és default_hs_url közül.",
|
||||||
"Invalid configuration: no default server specified.": "Érvénytelen konfiguráció: nincs megadva alapértelmezett szerver.",
|
"Invalid configuration: no default server specified.": "Érvénytelen konfiguráció: nincs megadva alapértelmezett szerver.",
|
||||||
"Your Riot is misconfigured": "A Riotod hibásan van beállítva",
|
"Your Riot is misconfigured": "A Riotod hibásan van beállítva",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "A Riot beállításod érvénytelen JSON szöveget tartalmaz. Kérlek javítsd és töltsd újra az oldalt.",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "A Riot beállításod érvénytelen JSON szöveget tartalmaz. Kérlek javítsd és töltsd újra az oldalt.",
|
||||||
"The message from the parser is: %(message)s": "A feldolgozó algoritmus üzenete: %(message)s",
|
"The message from the parser is: %(message)s": "A feldolgozó algoritmus üzenete: %(message)s",
|
||||||
"Invalid JSON": "Érvénytelen JSON"
|
"Invalid JSON": "Érvénytelen JSON",
|
||||||
|
"Go to your browser to complete Sign In": "A böngészőben fejezd be a bejelentkezést"
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,5 +21,6 @@
|
||||||
"Your Riot is misconfigured": "Il tuo Riot è configurato male",
|
"Your Riot is misconfigured": "Il tuo Riot è configurato male",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "La tua configurazione di Riot contiene un JSON non valido. Correggi il problema e ricarica la pagina.",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "La tua configurazione di Riot contiene un JSON non valido. Correggi il problema e ricarica la pagina.",
|
||||||
"The message from the parser is: %(message)s": "Il messaggio dal parser è: %(message)s",
|
"The message from the parser is: %(message)s": "Il messaggio dal parser è: %(message)s",
|
||||||
"Invalid JSON": "JSON non valido"
|
"Invalid JSON": "JSON non valido",
|
||||||
|
"Go to your browser to complete Sign In": "Vai nel tuo browser per completare l'accesso"
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
{}
|
|
@ -2,7 +2,7 @@
|
||||||
"Unknown device": "Nežinomas įrenginys",
|
"Unknown device": "Nežinomas įrenginys",
|
||||||
"powered by Matrix": "veikia su Matrix",
|
"powered by Matrix": "veikia su Matrix",
|
||||||
"Welcome to Riot.im": "Sveiki atvykę į Riot.im",
|
"Welcome to Riot.im": "Sveiki atvykę į Riot.im",
|
||||||
"Chat with Riot Bot": "Kalbėtis su Riot botu",
|
"Chat with Riot Bot": "Kalbėtis su Riot Botu",
|
||||||
"Riot Desktop on %(platformName)s": "Riot Desktop, naudojant %(platformName)s",
|
"Riot Desktop on %(platformName)s": "Riot Desktop, naudojant %(platformName)s",
|
||||||
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s per %(browserName)s, naudojant %(osName)s",
|
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s per %(browserName)s, naudojant %(osName)s",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "Norint skambinti naudojant ekrano vaizdo dalijimosi funkciją, jūs turite naudoti HTTPS.",
|
"You need to be using HTTPS to place a screen-sharing call.": "Norint skambinti naudojant ekrano vaizdo dalijimosi funkciją, jūs turite naudoti HTTPS.",
|
||||||
|
@ -21,5 +21,6 @@
|
||||||
"Unexpected error preparing the app. See console for details.": "Netikėta klaida ruošiant programą. Norėdami sužinoti daugiau detalių, žiūrėkite konsolę.",
|
"Unexpected error preparing the app. See console for details.": "Netikėta klaida ruošiant programą. Norėdami sužinoti daugiau detalių, žiūrėkite konsolę.",
|
||||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Klaidinga konfigūracija: galima nurodyti tik vieną iš default_server_config, default_server_name, arba default_hs_url.",
|
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Klaidinga konfigūracija: galima nurodyti tik vieną iš default_server_config, default_server_name, arba default_hs_url.",
|
||||||
"Invalid configuration: no default server specified.": "Klaidinga konfigūracija: nenurodytas numatytasis serveris.",
|
"Invalid configuration: no default server specified.": "Klaidinga konfigūracija: nenurodytas numatytasis serveris.",
|
||||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Jūs galite naudoti pasirinktinius serverio nustatymus, kad prisijungtumėte prie kitų Matrix serverių, nurodydami kito serverio URL. Tai leidžia jums naudotis Riot su esama Matrix paskyra kitame serveryje."
|
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Jūs galite naudoti pasirinktinius serverio nustatymus, kad prisijungtumėte prie kitų Matrix serverių, nurodydami kito serverio URL. Tai leidžia jums naudotis Riot su esama Matrix paskyra kitame serveryje.",
|
||||||
|
"Go to your browser to complete Sign In": "Norėdami užbaigti prisijungimą, eikite į naršyklę"
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,14 +7,19 @@
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "Du er nødt til å bruke HTTPS for å ha en samtale med skjermdeling.",
|
"You need to be using HTTPS to place a screen-sharing call.": "Du er nødt til å bruke HTTPS for å ha en samtale med skjermdeling.",
|
||||||
"Dismiss": "Avvis",
|
"Dismiss": "Avvis",
|
||||||
"Welcome to Riot.im": "Velkommen til Riot.im",
|
"Welcome to Riot.im": "Velkommen til Riot.im",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Desentralisert, kryptert chat & sammabeid drevet av [matrix]",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Desentralisert, kryptert chat & samarbeid drevet av [matrix]",
|
||||||
"Chat with Riot Bot": "Chat med Riot Bot",
|
"Chat with Riot Bot": "Chat med Riot Bot",
|
||||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Du kan bruke instillinger for «egendefinert tjener» til å logge inn på andre Matrix tjenere ved å spesifisere en annen URL. Dette lar deg bruke Riot med en eksisterende Matrix konto på en annen hjemmetjener.",
|
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Du kan bruke instillinger for «egendefinert tjener» til å logge inn på andre Matrix-tjenere ved å spesifisere en annen URL. Dette lar deg bruke Riot med en eksisterende Matrix-konto på en annen hjemmetjener.",
|
||||||
"Sign In": "Logg inn",
|
"Sign In": "Logg inn",
|
||||||
"Create Account": "Lag konto",
|
"Create Account": "Lag konto",
|
||||||
"Need help?": "Trenger du hjelp?",
|
"Need help?": "Trenger du hjelp?",
|
||||||
"Room Directory": "Alle rom",
|
"Room Directory": "Alle rom",
|
||||||
"Explore rooms": "Se alle rom",
|
"Explore rooms": "Se alle rom",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot-konfigurasjonen din inneholder ugyldig JSON. Vennligst fiks problemet og oppdater siden.",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot-konfigurasjonen din inneholder ugyldig JSON. Vennligst fiks problemet og oppdater siden.",
|
||||||
"The message from the parser is: %(message)s": "Meldingen fra parseren er: %(message)s"
|
"The message from the parser is: %(message)s": "Meldingen fra parseren er: %(message)s",
|
||||||
|
"Invalid JSON": "Ugyldig JSON",
|
||||||
|
"Your Riot is misconfigured": "Riot er feilkonfigurert",
|
||||||
|
"Invalid configuration: no default server specified.": "Ugyldig konfigurasjon: ingen standardserver spesifisert.",
|
||||||
|
"Unexpected error preparing the app. See console for details.": "Uventet feil oppsto mens appen ble gjort klar. Se konsollen for detaljer.",
|
||||||
|
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ugyldig konfigurasjon: Spesifiser kun en av følgende: default_server_config, default_server_name eller default_hs_url."
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,5 +21,6 @@
|
||||||
"Your Riot is misconfigured": "Uw Riot is onjuist geconfigureerd",
|
"Your Riot is misconfigured": "Uw Riot is onjuist geconfigureerd",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Uw Riot-configuratie bevat ongeldige JSON. Corrigeer het probleem en herlaad de pagina.",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Uw Riot-configuratie bevat ongeldige JSON. Corrigeer het probleem en herlaad de pagina.",
|
||||||
"The message from the parser is: %(message)s": "De ontleder meldt: %(message)s",
|
"The message from the parser is: %(message)s": "De ontleder meldt: %(message)s",
|
||||||
"Invalid JSON": "Ongeldige JSON"
|
"Invalid JSON": "Ongeldige JSON",
|
||||||
|
"Go to your browser to complete Sign In": "Ga naar uw browser om de aanmelding te voltooien"
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"Riot Desktop on %(platformName)s": "Riot på Skrivebord for %(platformName)s",
|
"Riot Desktop on %(platformName)s": "Riot på Skrivebord for %(platformName)s",
|
||||||
"Unknown device": "Ukjend eining",
|
"Unknown device": "Ukjend eining",
|
||||||
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s gjennom %(browserName)s på %(osName)s",
|
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s gjennom %(browserName)s på %(osName)s",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "Du må bruka HTTPS for å ha ei samtale med skjermdeling.",
|
"You need to be using HTTPS to place a screen-sharing call.": "Du må bruka HTTPS for å ha ein samtale med skjermdeling.",
|
||||||
"Dismiss": "Avvis",
|
"Dismiss": "Avvis",
|
||||||
"powered by Matrix": "Matrixdriven",
|
"powered by Matrix": "Matrixdriven",
|
||||||
"Welcome to Riot.im": "Velkomen til Riot.im",
|
"Welcome to Riot.im": "Velkomen til Riot.im",
|
||||||
|
@ -11,12 +11,12 @@
|
||||||
"Custom Server Options": "Tilpassa tenar-innstillingar",
|
"Custom Server Options": "Tilpassa tenar-innstillingar",
|
||||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Du kan nytta dei eigendefinerte tenarinstillingane for å logga inn på andre Matrix-tenarar ved å uppgje ein annan heimtenar-URL. Dette lèt deg bruka Riot med ein Matrix-konto som allereie finst på ein annan heimtenar.",
|
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Du kan nytta dei eigendefinerte tenarinstillingane for å logga inn på andre Matrix-tenarar ved å uppgje ein annan heimtenar-URL. Dette lèt deg bruka Riot med ein Matrix-konto som allereie finst på ein annan heimtenar.",
|
||||||
"Sign In": "Logg inn",
|
"Sign In": "Logg inn",
|
||||||
"Create Account": "Lag brukar",
|
"Create Account": "Opprett konto",
|
||||||
"Need help?": "Treng du hjelp?",
|
"Need help?": "Treng du hjelp?",
|
||||||
"Explore rooms": "Utforsk romma",
|
"Explore rooms": "Utforsk romma",
|
||||||
"Room Directory": "Romkatalog",
|
"Room Directory": "Romkatalog",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot-konfigurasjonen din har ugyldig JSON-kode. Korriger dette og last inn sida på nytt.",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot-konfigurasjonen din har ugyldig JSON-kode. Korriger dette og last inn sida på nytt.",
|
||||||
"The message from the parser is: %(message)s": "Meldingen frå kodetolkaren er: %(message)s",
|
"The message from the parser is: %(message)s": "Meldinga frå kodetolkaren er: %(message)s",
|
||||||
"Invalid JSON": "Ugyldig JSON",
|
"Invalid JSON": "Ugyldig JSON",
|
||||||
"Your Riot is misconfigured": "Riot-klienten din er feilkonfiguert",
|
"Your Riot is misconfigured": "Riot-klienten din er feilkonfiguert",
|
||||||
"Unexpected error preparing the app. See console for details.": "Uventa feil under lasting av programmet. Sjå konsollen for detaljar.",
|
"Unexpected error preparing the app. See console for details.": "Uventa feil under lasting av programmet. Sjå konsollen for detaljar.",
|
||||||
|
|
|
@ -21,5 +21,6 @@
|
||||||
"Your Riot is misconfigured": "Ваш Riot неправильно настроен",
|
"Your Riot is misconfigured": "Ваш Riot неправильно настроен",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Ваша конфигурация Riot содержит нерабочий JSON. Пожалуйста исправьте проблему и перезагрузите страницу.",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Ваша конфигурация Riot содержит нерабочий JSON. Пожалуйста исправьте проблему и перезагрузите страницу.",
|
||||||
"The message from the parser is: %(message)s": "Сообщение из парсера: %(message)s",
|
"The message from the parser is: %(message)s": "Сообщение из парсера: %(message)s",
|
||||||
"Invalid JSON": "Нерабочий JSON"
|
"Invalid JSON": "Нерабочий JSON",
|
||||||
|
"Go to your browser to complete Sign In": "Перейдите в браузер для завершения входа"
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,5 +21,6 @@
|
||||||
"Your Riot is misconfigured": "Riot-i juaj është i keqformësuar",
|
"Your Riot is misconfigured": "Riot-i juaj është i keqformësuar",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Formësimi juaj i Riot-it përmban JSON. Ju lutemi, ndreqeni problemin dhe ringarkoni faqen.",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Formësimi juaj i Riot-it përmban JSON. Ju lutemi, ndreqeni problemin dhe ringarkoni faqen.",
|
||||||
"The message from the parser is: %(message)s": "Mesazhi prej procesit është: %(message)s",
|
"The message from the parser is: %(message)s": "Mesazhi prej procesit është: %(message)s",
|
||||||
"Invalid JSON": "JSON i pavlefshëm"
|
"Invalid JSON": "JSON i pavlefshëm",
|
||||||
|
"Go to your browser to complete Sign In": "Që të plotësoni Hyrjen, kaloni te shfletuesi juaj"
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
"Chat with Riot Bot": "Riot Bot ile Sohbet Et",
|
"Chat with Riot Bot": "Riot Bot ile Sohbet Et",
|
||||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Özel sunucu seçenekleri kullanıp farklı bir anamakine URL'si belirleyerek diğer Matrix sunucularına giriş yapabilirsin. Bu Riot'u varolan bir Matrix hesabı ile farklı anamakine de kullanmanı sağlar.",
|
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Özel sunucu seçenekleri kullanıp farklı bir anamakine URL'si belirleyerek diğer Matrix sunucularına giriş yapabilirsin. Bu Riot'u varolan bir Matrix hesabı ile farklı anamakine de kullanmanı sağlar.",
|
||||||
"Sign In": "Giriş Yap",
|
"Sign In": "Giriş Yap",
|
||||||
"Create Account": "Kayıt Ol",
|
"Create Account": "Hesap Oluştur",
|
||||||
"Need help?": "Yardıma mı ihtiyacın var?",
|
"Need help?": "Yardıma mı ihtiyacın var?",
|
||||||
"Explore rooms": "Odaları keşfet",
|
"Explore rooms": "Odaları keşfet",
|
||||||
"Room Directory": "Oda Dizini",
|
"Room Directory": "Oda Dizini",
|
||||||
|
|
|
@ -21,5 +21,6 @@
|
||||||
"Your Riot is misconfigured": "Je Riot is verkeerd geconfigureerd gewist",
|
"Your Riot is misconfigured": "Je Riot is verkeerd geconfigureerd gewist",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Je Riot-configuroasje bevat oungeldigen JSON. Corrigeer ’t probleem en herload ’t blad.",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Je Riot-configuroasje bevat oungeldigen JSON. Corrigeer ’t probleem en herload ’t blad.",
|
||||||
"The message from the parser is: %(message)s": "’t Bericht van de verwerker is: %(message)s",
|
"The message from the parser is: %(message)s": "’t Bericht van de verwerker is: %(message)s",
|
||||||
"Invalid JSON": "Oungeldigen JSON"
|
"Invalid JSON": "Oungeldigen JSON",
|
||||||
|
"Go to your browser to complete Sign In": "Goa noa je browser voe d’anmeldienge te voltooin"
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
"Unknown device": "未知设备",
|
"Unknown device": "未知设备",
|
||||||
"You need to be using HTTPS to place a screen-sharing call.": "您需要使用 HTTPS 以进行共享屏幕通话。",
|
"You need to be using HTTPS to place a screen-sharing call.": "您需要使用 HTTPS 以进行共享屏幕通话。",
|
||||||
"Welcome to Riot.im": "欢迎来到 Riot.im",
|
"Welcome to Riot.im": "欢迎来到 Riot.im",
|
||||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "去中心化,加密聊天 & 由 [matrix] 驱动",
|
"Decentralised, encrypted chat & collaboration powered by [matrix]": "去中心化、加密聊天与协作,由 [matrix] 驱动",
|
||||||
"Chat with Riot Bot": "与 Riot 机器人聊天",
|
"Chat with Riot Bot": "与 Riot 机器人聊天",
|
||||||
"Sign In": "登入",
|
"Sign In": "登入",
|
||||||
"Create Account": "创建帐号",
|
"Create Account": "创建帐号",
|
||||||
|
|
|
@ -21,5 +21,6 @@
|
||||||
"Your Riot is misconfigured": "您的 Riot 沒有設定好",
|
"Your Riot is misconfigured": "您的 Riot 沒有設定好",
|
||||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "您的 Riot 包含無效的 JSON。請修正問題並重新整理頁面。",
|
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "您的 Riot 包含無效的 JSON。請修正問題並重新整理頁面。",
|
||||||
"The message from the parser is: %(message)s": "從解析器而來的訊息為:%(message)s",
|
"The message from the parser is: %(message)s": "從解析器而來的訊息為:%(message)s",
|
||||||
"Invalid JSON": "無效的 JSON"
|
"Invalid JSON": "無效的 JSON",
|
||||||
|
"Go to your browser to complete Sign In": "到您的瀏覽器完成登入"
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,11 +53,23 @@ import CallHandler from 'matrix-react-sdk/src/CallHandler';
|
||||||
|
|
||||||
let lastLocationHashSet = null;
|
let lastLocationHashSet = null;
|
||||||
|
|
||||||
function checkBrowserFeatures(featureList) {
|
function checkBrowserFeatures() {
|
||||||
if (!window.Modernizr) {
|
if (!window.Modernizr) {
|
||||||
console.error("Cannot check features - Modernizr global is missing.");
|
console.error("Cannot check features - Modernizr global is missing.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// custom checks atop Modernizr because it doesn't have ES2018/ES2019 checks in it for some features we depend on,
|
||||||
|
// Modernizr requires rules to be lowercase with no punctuation:
|
||||||
|
// ES2018: http://www.ecma-international.org/ecma-262/9.0/#sec-promise.prototype.finally
|
||||||
|
window.Modernizr.addTest("promiseprototypefinally", () =>
|
||||||
|
window.Promise && window.Promise.prototype && typeof window.Promise.prototype.finally === "function");
|
||||||
|
// ES2019: http://www.ecma-international.org/ecma-262/10.0/#sec-object.fromentries
|
||||||
|
window.Modernizr.addTest("objectfromentries", () =>
|
||||||
|
window.Object && typeof window.Object.fromEntries === "function");
|
||||||
|
|
||||||
|
const featureList = Object.keys(window.Modernizr);
|
||||||
|
|
||||||
let featureComplete = true;
|
let featureComplete = true;
|
||||||
for (let i = 0; i < featureList.length; i++) {
|
for (let i = 0; i < featureList.length; i++) {
|
||||||
if (window.Modernizr[featureList[i]] === undefined) {
|
if (window.Modernizr[featureList[i]] === undefined) {
|
||||||
|
@ -69,8 +81,7 @@ function checkBrowserFeatures(featureList) {
|
||||||
}
|
}
|
||||||
if (window.Modernizr[featureList[i]] === false) {
|
if (window.Modernizr[featureList[i]] === false) {
|
||||||
console.error("Browser missing feature: '%s'", featureList[i]);
|
console.error("Browser missing feature: '%s'", featureList[i]);
|
||||||
// toggle flag rather than return early so we log all missing features
|
// toggle flag rather than return early so we log all missing features rather than just the first.
|
||||||
// rather than just the first.
|
|
||||||
featureComplete = false;
|
featureComplete = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -162,14 +173,17 @@ function onTokenLoginCompleted() {
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function loadApp() {
|
export async function loadApp() {
|
||||||
if (window.vector_indexeddb_worker_script === undefined) {
|
// XXX: the way we pass the path to the worker script from webpack via html in body's dataset is a hack
|
||||||
|
// but alternatives seem to require changing the interface to passing Workers to js-sdk
|
||||||
|
const vectorIndexeddbWorkerScript = document.body.dataset.vectorIndexeddbWorkerScript;
|
||||||
|
if (!vectorIndexeddbWorkerScript) {
|
||||||
// If this is missing, something has probably gone wrong with
|
// If this is missing, something has probably gone wrong with
|
||||||
// the bundling. The js-sdk will just fall back to accessing
|
// the bundling. The js-sdk will just fall back to accessing
|
||||||
// indexeddb directly with no worker script, but we want to
|
// indexeddb directly with no worker script, but we want to
|
||||||
// make sure the indexeddb script is present, so fail hard.
|
// make sure the indexeddb script is present, so fail hard.
|
||||||
throw new Error("Missing indexeddb worker script!");
|
throw new Error("Missing indexeddb worker script!");
|
||||||
}
|
}
|
||||||
MatrixClientPeg.setIndexedDbWorkerScript(window.vector_indexeddb_worker_script);
|
MatrixClientPeg.setIndexedDbWorkerScript(vectorIndexeddbWorkerScript);
|
||||||
|
|
||||||
// load dendrite, if available
|
// load dendrite, if available
|
||||||
if (window.vector_dendrite_worker_script && 'serviceWorker' in navigator) {
|
if (window.vector_dendrite_worker_script && 'serviceWorker' in navigator) {
|
||||||
|
@ -295,10 +309,7 @@ export async function loadApp() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const validBrowser = checkBrowserFeatures([
|
const validBrowser = checkBrowserFeatures();
|
||||||
"displaytable", "flexbox", "es5object", "es5function", "localstorage",
|
|
||||||
"objectfit", "indexeddb", "webworkers",
|
|
||||||
]);
|
|
||||||
|
|
||||||
const acceptInvalidBrowser = window.localStorage && window.localStorage.getItem('mx_accepts_unsupported_browser');
|
const acceptInvalidBrowser = window.localStorage && window.localStorage.getItem('mx_accepts_unsupported_browser');
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,21 @@
|
||||||
<meta name="msapplication-config" content="<%= require('../../res/vector-icons/browserconfig.xml') %>">
|
<meta name="msapplication-config" content="<%= require('../../res/vector-icons/browserconfig.xml') %>">
|
||||||
<meta name="theme-color" content="#ffffff">
|
<meta name="theme-color" content="#ffffff">
|
||||||
<meta property="og:image" content="<%= htmlWebpackPlugin.options.vars.og_image_url %>" />
|
<meta property="og:image" content="<%= htmlWebpackPlugin.options.vars.og_image_url %>" />
|
||||||
|
<meta http-equiv="Content-Security-Policy" content="
|
||||||
|
default-src 'none';
|
||||||
|
style-src 'self' 'unsafe-inline';
|
||||||
|
script-src 'self' 'unsafe-eval' https://www.recaptcha.net https://www.gstatic.com;
|
||||||
|
img-src * blob: data:;
|
||||||
|
connect-src *;
|
||||||
|
font-src 'self' data:;
|
||||||
|
media-src * blob: data:;
|
||||||
|
child-src * blob: data:;
|
||||||
|
worker-src 'self';
|
||||||
|
frame-src * blob: data:;
|
||||||
|
form-action 'self';
|
||||||
|
object-src 'self';
|
||||||
|
manifest-src 'self';
|
||||||
|
">
|
||||||
<% for (var i=0; i < htmlWebpackPlugin.files.css.length; i++) {
|
<% for (var i=0; i < htmlWebpackPlugin.files.css.length; i++) {
|
||||||
var file = htmlWebpackPlugin.files.css[i];
|
var file = htmlWebpackPlugin.files.css[i];
|
||||||
var match = file.match(/^bundles\/.*?\/theme-(.*)\.css$/);
|
var match = file.match(/^bundles\/.*?\/theme-(.*)\.css$/);
|
||||||
|
@ -34,20 +49,14 @@
|
||||||
<% }
|
<% }
|
||||||
} %>
|
} %>
|
||||||
</head>
|
</head>
|
||||||
<body style="height: 100%;">
|
<body style="height: 100%;" data-vector-indexeddb-worker-script="<%= htmlWebpackPlugin.files.chunks['indexeddb-worker'].entry %>">
|
||||||
<section id="matrixchat" style="height: 100%; overflow: auto;"></section>
|
|
||||||
<noscript>Sorry, Riot requires JavaScript to be enabled.</noscript> <!-- TODO: Translate this? -->
|
<noscript>Sorry, Riot requires JavaScript to be enabled.</noscript> <!-- TODO: Translate this? -->
|
||||||
<script>
|
<script>
|
||||||
window.vector_indexeddb_worker_script = '<%= htmlWebpackPlugin.files.chunks['indexeddb_worker'].entry %>';
|
window.vector_indexeddb_worker_script = '<%= htmlWebpackPlugin.files.chunks['indexeddb_worker'].entry %>';
|
||||||
window.vector_dendrite_worker_script = '<%= htmlWebpackPlugin.files.chunks['dendrite_sw'].entry %>';
|
window.vector_dendrite_worker_script = '<%= htmlWebpackPlugin.files.chunks['dendrite_sw'].entry %>';
|
||||||
</script>
|
</script>
|
||||||
|
<section id="matrixchat" style="height: 100%; overflow: auto;"></section>
|
||||||
<script src="<%= htmlWebpackPlugin.files.chunks['bundle'].entry %>"></script>
|
<script src="<%= htmlWebpackPlugin.files.chunks['bundle'].entry %>"></script>
|
||||||
<script>
|
|
||||||
// not needed if we have a dendrite SW
|
|
||||||
// if ('serviceWorker' in navigator) {
|
|
||||||
// navigator.serviceWorker.register('sw.js');
|
|
||||||
// }
|
|
||||||
</script>
|
|
||||||
<img src="<%= require('matrix-react-sdk/res/img/warning.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
<img src="<%= require('matrix-react-sdk/res/img/warning.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||||
<img src="<%= require('matrix-react-sdk/res/img/e2e/warning.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
<img src="<%= require('matrix-react-sdk/res/img/e2e/warning.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||||
<img src="<%= require('matrix-react-sdk/res/img/feather-customised/warning-triangle.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
<img src="<%= require('matrix-react-sdk/res/img/feather-customised/warning-triangle.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||||
|
|
|
@ -29,6 +29,11 @@ require('highlight.js/styles/github.css');
|
||||||
import './rageshakesetup';
|
import './rageshakesetup';
|
||||||
import './modernizr';
|
import './modernizr';
|
||||||
|
|
||||||
|
// load service worker if available on this platform
|
||||||
|
if ('serviceWorker' in navigator) {
|
||||||
|
navigator.serviceWorker.register('sw.js');
|
||||||
|
}
|
||||||
|
|
||||||
// Ensure the skin is the very first thing to load for the react-sdk. We don't even want to reference
|
// Ensure the skin is the very first thing to load for the react-sdk. We don't even want to reference
|
||||||
// the SDK until we have to in imports.
|
// the SDK until we have to in imports.
|
||||||
console.log("Loading skin...");
|
console.log("Loading skin...");
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -5,6 +5,7 @@ Copyright 2016 Aviral Dasgupta
|
||||||
Copyright 2016 OpenMarket Ltd
|
Copyright 2016 OpenMarket Ltd
|
||||||
Copyright 2018 New Vector Ltd
|
Copyright 2018 New Vector Ltd
|
||||||
Copyright 2019 Michael Telatynski <7t3chguy@gmail.com>
|
Copyright 2019 Michael Telatynski <7t3chguy@gmail.com>
|
||||||
|
Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||||
|
|
||||||
Licensed under the Apache License, Version 2.0 (the "License");
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
you may not use this file except in compliance with the License.
|
you may not use this file except in compliance with the License.
|
||||||
|
@ -24,6 +25,11 @@ import BaseEventIndexManager from 'matrix-react-sdk/src/indexing/BaseEventIndexM
|
||||||
import dis from 'matrix-react-sdk/src/dispatcher';
|
import dis from 'matrix-react-sdk/src/dispatcher';
|
||||||
import { _t } from 'matrix-react-sdk/src/languageHandler';
|
import { _t } from 'matrix-react-sdk/src/languageHandler';
|
||||||
import * as rageshake from 'matrix-react-sdk/src/rageshake/rageshake';
|
import * as rageshake from 'matrix-react-sdk/src/rageshake/rageshake';
|
||||||
|
import {MatrixClient} from "matrix-js-sdk";
|
||||||
|
import Modal from "matrix-react-sdk/src/Modal";
|
||||||
|
import InfoDialog from "matrix-react-sdk/src/components/views/dialogs/InfoDialog";
|
||||||
|
import Spinner from "matrix-react-sdk/src/components/views/elements/Spinner";
|
||||||
|
import React from "react";
|
||||||
|
|
||||||
const ipcRenderer = window.ipcRenderer;
|
const ipcRenderer = window.ipcRenderer;
|
||||||
|
|
||||||
|
@ -144,6 +150,10 @@ class SeshatIndexManager extends BaseEventIndexManager {
|
||||||
return this._ipcCall('removeCrawlerCheckpoint', checkpoint);
|
return this._ipcCall('removeCrawlerCheckpoint', checkpoint);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async loadFileEvents(args): Promise<[EventAndProfile]> {
|
||||||
|
return this._ipcCall('loadFileEvents', args);
|
||||||
|
}
|
||||||
|
|
||||||
async loadCheckpoints(): Promise<[CrawlerCheckpoint]> {
|
async loadCheckpoints(): Promise<[CrawlerCheckpoint]> {
|
||||||
return this._ipcCall('loadCheckpoints');
|
return this._ipcCall('loadCheckpoints');
|
||||||
}
|
}
|
||||||
|
@ -152,6 +162,10 @@ class SeshatIndexManager extends BaseEventIndexManager {
|
||||||
return this._ipcCall('closeEventIndex');
|
return this._ipcCall('closeEventIndex');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async getStats(): Promise<> {
|
||||||
|
return this._ipcCall('getStats');
|
||||||
|
}
|
||||||
|
|
||||||
async deleteEventIndex(): Promise<> {
|
async deleteEventIndex(): Promise<> {
|
||||||
return this._ipcCall('deleteEventIndex');
|
return this._ipcCall('deleteEventIndex');
|
||||||
}
|
}
|
||||||
|
@ -192,16 +206,6 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||||
|
|
||||||
this.startUpdateCheck = this.startUpdateCheck.bind(this);
|
this.startUpdateCheck = this.startUpdateCheck.bind(this);
|
||||||
this.stopUpdateCheck = this.stopUpdateCheck.bind(this);
|
this.stopUpdateCheck = this.stopUpdateCheck.bind(this);
|
||||||
|
|
||||||
this._tryPersistStorage();
|
|
||||||
}
|
|
||||||
|
|
||||||
async _tryPersistStorage() {
|
|
||||||
if (navigator.storage && navigator.storage.persist) {
|
|
||||||
const granted = await navigator.storage.persist();
|
|
||||||
const persisted = await navigator.storage.persisted();
|
|
||||||
console.log("Storage persist request granted: " + granted + " persisted: " + persisted);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async getConfig(): Promise<{}> {
|
async getConfig(): Promise<{}> {
|
||||||
|
@ -387,4 +391,25 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||||
getEventIndexingManager(): BaseEventIndexManager | null {
|
getEventIndexingManager(): BaseEventIndexManager | null {
|
||||||
return this.eventIndexManager;
|
return this.eventIndexManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setLanguage(preferredLangs: string[]) {
|
||||||
|
this._ipcCall('setLanguage', preferredLangs).catch(error => {
|
||||||
|
console.log("Failed to send setLanguage IPC to Electron");
|
||||||
|
console.error(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
getSSOCallbackUrl(hsUrl: string, isUrl: string): URL {
|
||||||
|
const url = super.getSSOCallbackUrl(hsUrl, isUrl);
|
||||||
|
url.protocol = "riot";
|
||||||
|
return url;
|
||||||
|
}
|
||||||
|
|
||||||
|
startSingleSignOn(mxClient: MatrixClient, loginType: "sso" | "cas") {
|
||||||
|
super.startSingleSignOn(mxClient, loginType); // this will get intercepted by electron-main will-navigate
|
||||||
|
Modal.createTrackedDialog('Electron', 'SSO', InfoDialog, {
|
||||||
|
title: _t("Go to your browser to complete Sign In"),
|
||||||
|
description: <Spinner />,
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -307,7 +307,7 @@ describe('loading:', function() {
|
||||||
indexedDB,
|
indexedDB,
|
||||||
"matrix-js-sdk:crypto",
|
"matrix-js-sdk:crypto",
|
||||||
);
|
);
|
||||||
await cryptoStore._connect();
|
await cryptoStore.startup();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('shows the last known room by default', function() {
|
it('shows the last known room by default', function() {
|
||||||
|
|
|
@ -40,6 +40,7 @@ module.exports = (env, argv) => {
|
||||||
"sql_wasm": "./node_modules/sql.js/dist/sql-wasm.wasm",
|
"sql_wasm": "./node_modules/sql.js/dist/sql-wasm.wasm",
|
||||||
"dendrite_wasm": "./src/vector/dendrite.wasm",
|
"dendrite_wasm": "./src/vector/dendrite.wasm",
|
||||||
"wasm_exec": "./src/vector/wasm_exec.js",
|
"wasm_exec": "./src/vector/wasm_exec.js",
|
||||||
|
"usercontent": "./node_modules/matrix-react-sdk/src/usercontent/index.js",
|
||||||
|
|
||||||
// CSS themes
|
// CSS themes
|
||||||
"theme-light": "./node_modules/matrix-react-sdk/res/themes/light/css/light.scss",
|
"theme-light": "./node_modules/matrix-react-sdk/res/themes/light/css/light.scss",
|
||||||
|
@ -314,7 +315,7 @@ module.exports = (env, argv) => {
|
||||||
// HtmlWebpackPlugin will screw up our formatting like the names
|
// HtmlWebpackPlugin will screw up our formatting like the names
|
||||||
// of the themes and which chunks we actually care about.
|
// of the themes and which chunks we actually care about.
|
||||||
inject: false,
|
inject: false,
|
||||||
excludeChunks: ['mobileguide'],
|
excludeChunks: ['mobileguide', 'usercontent'],
|
||||||
minify: argv.mode === 'production',
|
minify: argv.mode === 'production',
|
||||||
vars: {
|
vars: {
|
||||||
og_image_url: og_image_url,
|
og_image_url: og_image_url,
|
||||||
|
@ -328,6 +329,14 @@ module.exports = (env, argv) => {
|
||||||
minify: argv.mode === 'production',
|
minify: argv.mode === 'production',
|
||||||
chunks: ['mobileguide'],
|
chunks: ['mobileguide'],
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
// This is the usercontent sandbox's entry point (separate for iframing)
|
||||||
|
new HtmlWebpackPlugin({
|
||||||
|
template: './node_modules/matrix-react-sdk/src/usercontent/index.html',
|
||||||
|
filename: 'usercontent/index.html',
|
||||||
|
minify: argv.mode === 'production',
|
||||||
|
chunks: ['usercontent'],
|
||||||
|
}),
|
||||||
],
|
],
|
||||||
|
|
||||||
output: {
|
output: {
|
||||||
|
|
Loading…
Reference in New Issue