Merge remote-tracking branch 'origin/develop' into aviraldg-electron
This commit is contained in:
commit
24610f4d18
9 changed files with 137 additions and 100 deletions
5
.gitignore
vendored
5
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
||||||
|
/build
|
||||||
/cert.pem
|
/cert.pem
|
||||||
/karma-reports
|
/karma-reports
|
||||||
/key.pem
|
/key.pem
|
||||||
|
@ -5,10 +6,10 @@
|
||||||
/node_modules
|
/node_modules
|
||||||
/packages/
|
/packages/
|
||||||
/vector/bundle.*
|
/vector/bundle.*
|
||||||
/vector/components.css
|
|
||||||
/vector/emojione/
|
/vector/emojione/
|
||||||
/vector/config.json
|
/vector/config.json
|
||||||
/vector/olm.js
|
/vector/index.html
|
||||||
|
/vector/olm.*
|
||||||
.DS_Store
|
.DS_Store
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
electron/dist
|
electron/dist
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
example
|
|
||||||
examples
|
|
||||||
build/.module-cache
|
|
117
README.md
117
README.md
|
@ -1,52 +1,59 @@
|
||||||
Vector/Web
|
Riot
|
||||||
==========
|
====
|
||||||
|
|
||||||
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).
|
||||||
|
|
||||||
Getting Started
|
Getting Started
|
||||||
===============
|
===============
|
||||||
|
|
||||||
The easiest way to test Vector is to just use the hosted copy at https://vector.im/beta.
|
The easiest way to test Riot is to just use the hosted copy at
|
||||||
The develop branch is continuously deployed by Jenkins at https://vector.im/develop for
|
https://riot.im/app. The develop branch is continuously deployed by Jenkins at
|
||||||
those who like living dangerously.
|
https://riot.im/develop for those who like living dangerously.
|
||||||
|
|
||||||
To host your own copy of Vector, the quickest bet is to use a pre-built released version
|
To host your own copy of Riot, the quickest bet is to use a pre-built
|
||||||
of Vector:
|
released version of Riot:
|
||||||
|
|
||||||
1. Download the latest version from https://vector.im/packages/
|
1. Download the latest version from https://vector.im/packages/
|
||||||
1. Untar the tarball on your web server
|
1. Untar the tarball on your web server
|
||||||
1. Move (or symlink) the vector-x.x.x directory to an appropriate name
|
1. Move (or symlink) the vector-x.x.x directory to an appropriate name
|
||||||
1. If desired, copy `config.sample.json` to `config.json` and edit it
|
1. If desired, copy `config.sample.json` to `config.json` and edit it
|
||||||
as desired. See below for details.
|
as desired. See below for details.
|
||||||
1. Enter the URL into your browser and log into vector!
|
1. Enter the URL into your browser and log into Riot!
|
||||||
|
|
||||||
|
Note that Chrome does not allow microphone or webcam access for sites served
|
||||||
|
over http (except localhost), so for working VoIP you will need to serve Riot
|
||||||
|
over https.
|
||||||
|
|
||||||
Important Security Note
|
Important Security Note
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
We do not recommend running Vector from the same domain name as your Matrix
|
We do not recommend running Riot from the same domain name as your Matrix
|
||||||
homeserver. The reason is the risk of XSS (cross-site-scripting) vulnerabilities
|
homeserver. The reason is the risk of XSS (cross-site-scripting)
|
||||||
that could occur if someone caused Vector to load and render malicious user generated
|
vulnerabilities that could occur if someone caused Riot to load and render
|
||||||
content from a Matrix API which then had trusted access to Vector (or other apps) due
|
malicious user generated content from a Matrix API which then had trusted
|
||||||
to sharing the same domain.
|
access to Riot (or other apps) due to sharing the same domain.
|
||||||
|
|
||||||
We have put some coarse mitigations into place to try to protect against this situation,
|
We have put some coarse mitigations into place to try to protect against this
|
||||||
but it's still not good practice to do it in the first place.
|
situation, but it's still not good practice to do it in the first place. See
|
||||||
See https://github.com/vector-im/vector-web/issues/1977 for more details.
|
https://github.com/vector-im/vector-web/issues/1977 for more details.
|
||||||
|
|
||||||
Building From Source
|
Building From Source
|
||||||
====================
|
====================
|
||||||
|
|
||||||
Vector is a modular webapp built with modern ES6 and requires a npm build system to build.
|
Riot is a modular webapp built with modern ES6 and requires a npm build system
|
||||||
|
to build.
|
||||||
|
|
||||||
1. Install or update `node.js` so that your `npm` is at least at version `2.0.0`
|
1. Install or update `node.js` so that your `npm` is at least at version `2.0.0`
|
||||||
1. Clone the repo: `git clone https://github.com/vector-im/vector-web.git`
|
1. Clone the repo: `git clone https://github.com/vector-im/vector-web.git`
|
||||||
1. Switch to the vector directory: `cd vector-web`
|
1. Switch to the vector-web directory: `cd vector-web`
|
||||||
1. Install the prerequisites: `npm install`
|
1. Install the prerequisites: `npm install`
|
||||||
1. If you are using the `develop` branch of vector, you will probably need to
|
1. If you are using the `develop` branch of vector-web, you will probably need
|
||||||
rebuild one of the dependencies, due to https://github.com/npm/npm/issues/3055:
|
to rebuild one of the dependencies, due to
|
||||||
`(cd node_modules/matrix-react-sdk && npm install)`
|
https://github.com/npm/npm/issues/3055: `(cd node_modules/matrix-react-sdk
|
||||||
1. Configure the app by copying `config.sample.json` to `config.json` and modifying
|
&& npm install)`
|
||||||
it (see below for details)
|
1. Configure the app by copying `config.sample.json` to `config.json` and
|
||||||
|
modifying it (see below for details)
|
||||||
1. `npm run package` to build a tarball to deploy. Untaring this file will give
|
1. `npm run package` to build a tarball to deploy. Untaring this file will give
|
||||||
a version-specific directory containing all the files that need to go on your
|
a version-specific directory containing all the files that need to go on your
|
||||||
web server.
|
web server.
|
||||||
|
@ -72,6 +79,8 @@ You can configure the app by copying `vector/config.sample.json` to
|
||||||
addresses) to matrix IDs: see http://matrix.org/docs/spec/identity_service/unstable.html
|
addresses) to matrix IDs: see http://matrix.org/docs/spec/identity_service/unstable.html
|
||||||
for more details. Currently the only public matrix identity servers are https://matrix.org
|
for more details. Currently the only public matrix identity servers are https://matrix.org
|
||||||
and https://vector.im. In future identity servers will be decentralised.
|
and https://vector.im. In future identity servers will be decentralised.
|
||||||
|
1. `integrations_ui_url`: URL to the web interface for the integrations server.
|
||||||
|
1. `integrations_rest_url`: URL to the REST interface for the integrations server.
|
||||||
1. `roomDirectory`: config for the public room directory. This section encodes behaviour
|
1. `roomDirectory`: config for the public room directory. This section encodes behaviour
|
||||||
on the room directory screen for filtering the list by server / network type and joining
|
on the room directory screen for filtering the list by server / network type and joining
|
||||||
third party networks. This config section will disappear once APIs are available to
|
third party networks. This config section will disappear once APIs are available to
|
||||||
|
@ -102,14 +111,14 @@ You can configure the app by copying `vector/config.sample.json` to
|
||||||
Running as a Desktop app
|
Running as a Desktop app
|
||||||
========================
|
========================
|
||||||
|
|
||||||
In future we'll do an official distribution of Vector as an desktop app. Meanwhile,
|
In future we'll do an official distribution of Riot as an desktop app. Meanwhile,
|
||||||
there are a few options:
|
there are a few options:
|
||||||
|
|
||||||
@asdf:matrix.org points out that you can use nativefier and it just works(tm):
|
@asdf:matrix.org points out that you can use nativefier and it just works(tm):
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo npm install nativefier -g
|
sudo npm install nativefier -g
|
||||||
nativefier https://vector.im/beta/
|
nativefier https://riot.im/app/
|
||||||
```
|
```
|
||||||
|
|
||||||
krisa has a dedicated electron project at https://github.com/krisak/vector-electron-desktop
|
krisa has a dedicated electron project at https://github.com/krisak/vector-electron-desktop
|
||||||
|
@ -123,11 +132,11 @@ There's also a (much) older electron distribution at https://github.com/stevenha
|
||||||
Development
|
Development
|
||||||
===========
|
===========
|
||||||
|
|
||||||
Before attempting to develop on Vector you **must** read the developer guide
|
Before attempting to develop on Riot you **must** read the developer guide
|
||||||
for `matrix-react-sdk` at https://github.com/matrix-org/matrix-react-sdk, which
|
for `matrix-react-sdk` at https://github.com/matrix-org/matrix-react-sdk, which
|
||||||
also defines the design, architecture and style for Vector too.
|
also defines the design, architecture and style for Riot too.
|
||||||
|
|
||||||
The idea of Vector is to be a relatively lightweight "skin" of customisations on
|
The idea of Riot is to be a relatively lightweight "skin" of customisations on
|
||||||
top of the underlying `matrix-react-sdk`. `matrix-react-sdk` provides both the
|
top of the underlying `matrix-react-sdk`. `matrix-react-sdk` provides both the
|
||||||
higher and lower level React components useful for building Matrix communication
|
higher and lower level React components useful for building Matrix communication
|
||||||
apps using React.
|
apps using React.
|
||||||
|
@ -136,26 +145,26 @@ After creating a new component you must run `npm run reskindex` to regenerate
|
||||||
the `component-index.js` for the app (used in future for skinning)
|
the `component-index.js` for the app (used in future for skinning)
|
||||||
|
|
||||||
**However, as of July 2016 this layering abstraction is broken due to rapid
|
**However, as of July 2016 this layering abstraction is broken due to rapid
|
||||||
development on Vector forcing `matrix-react-sdk` to move fast at the expense of
|
development on Riot forcing `matrix-react-sdk` to move fast at the expense of
|
||||||
maintaining a clear abstraction between the two.** Hacking on Vector inevitably
|
maintaining a clear abstraction between the two.** Hacking on Riot inevitably
|
||||||
means hacking equally on `matrix-react-sdk`, and there are bits of
|
means hacking equally on `matrix-react-sdk`, and there are bits of
|
||||||
`matrix-react-sdk` behaviour incorrectly residing in the `vector-web` project
|
`matrix-react-sdk` behaviour incorrectly residing in the `vector-web` project
|
||||||
(e.g. matrix-react-sdk specific CSS), and a bunch of Vector specific behaviour
|
(e.g. matrix-react-sdk specific CSS), and a bunch of Riot specific behaviour
|
||||||
in the `matrix-react-sdk` (grep for Vector). This separation problem will be
|
in the `matrix-react-sdk` (grep for `vector` / `riot`). This separation problem will be
|
||||||
solved asap once development on Vector (and thus matrix-react-sdk) has
|
solved asap once development on Riot (and thus matrix-react-sdk) has
|
||||||
stabilised. Until then, the two projects should basically be considered as a
|
stabilised. Until then, the two projects should basically be considered as a
|
||||||
single unit. In particular, `matrix-react-sdk` issues are currently filed
|
single unit. In particular, `matrix-react-sdk` issues are currently filed
|
||||||
against `vector-web` in github.
|
against `vector-web` in github.
|
||||||
|
|
||||||
Please note that Vector is intended to run correctly without access to the public
|
Please note that Riot is intended to run correctly without access to the public
|
||||||
internet. So please don't depend on resources (JS libs, CSS, images, fonts)
|
internet. So please don't depend on resources (JS libs, CSS, images, fonts)
|
||||||
hosted by external CDNs or servers but instead please package all dependencies
|
hosted by external CDNs or servers but instead please package all dependencies
|
||||||
into Vector itself.
|
into Riot itself.
|
||||||
|
|
||||||
Setting up a dev environment
|
Setting up a dev environment
|
||||||
============================
|
============================
|
||||||
|
|
||||||
Much of the functionality in Vector is actually in the `matrix-react-sdk` and
|
Much of the functionality in Riot is actually in the `matrix-react-sdk` and
|
||||||
`matrix-js-sdk` modules. It is possible to set these up in a way that makes it
|
`matrix-js-sdk` modules. It is possible to set these up in a way that makes it
|
||||||
easy to track the `develop` branches in git and to make local changes without
|
easy to track the `develop` branches in git and to make local changes without
|
||||||
having to manually rebuild each time.
|
having to manually rebuild each time.
|
||||||
|
@ -178,7 +187,7 @@ Then similarly with `matrix-react-sdk`:
|
||||||
1. `rm -r node_modules/matrix-js-sdk; ln -s ../../matrix-js-sdk node_modules/`
|
1. `rm -r node_modules/matrix-js-sdk; ln -s ../../matrix-js-sdk node_modules/`
|
||||||
1. `popd`
|
1. `popd`
|
||||||
|
|
||||||
Finally, build and start vector itself:
|
Finally, build and start Riot itself:
|
||||||
|
|
||||||
1. `git clone git@github.com:vector-im/vector-web.git`
|
1. `git clone git@github.com:vector-im/vector-web.git`
|
||||||
1. `cd vector-web`
|
1. `cd vector-web`
|
||||||
|
@ -203,25 +212,19 @@ Finally, build and start vector itself:
|
||||||
Remember, the command will not terminate since it runs the web server
|
Remember, the command will not terminate since it runs the web server
|
||||||
and rebuilds source files when they change. This development server also
|
and rebuilds source files when they change. This development server also
|
||||||
disables caching, so do NOT use it in production.
|
disables caching, so do NOT use it in production.
|
||||||
1. Open http://127.0.0.1:8080/ in your browser to see your newly built Vector.
|
1. Open http://127.0.0.1:8080/ in your browser to see your newly built Riot.
|
||||||
|
|
||||||
When you make changes to `matrix-react-sdk`, you will need to run `npm run
|
When you make changes to `matrix-react-sdk`, you will need to run `npm run
|
||||||
build` in the relevant directory. You can do this automatically by instead
|
build` in the relevant directory. You can do this automatically by instead
|
||||||
running `npm start` in the directory, to start a development builder which
|
running `npm start` in the directory, to start a development builder which
|
||||||
will watch for changes to the files and rebuild automatically.
|
will watch for changes to the files and rebuild automatically.
|
||||||
|
|
||||||
If you add or remove any components from the Vector skin, you will need to rebuild
|
If you add or remove any components from the Riot skin, you will need to rebuild
|
||||||
the skin's index by running, `npm run reskindex`.
|
the skin's index by running, `npm run reskindex`.
|
||||||
|
|
||||||
If any of these steps error with, `file table overflow`, you are probably on a mac
|
If any of these steps error with, `file table overflow`, you are probably on a mac
|
||||||
which has a very low limit on max open files. Run `ulimit -Sn 1024` and try again.
|
which has a very low limit on max open files. Run `ulimit -Sn 1024` and try again.
|
||||||
You'll need to do this in each new terminal you open before building vector.
|
You'll need to do this in each new terminal you open before building Riot.
|
||||||
|
|
||||||
Filing issues
|
|
||||||
=============
|
|
||||||
|
|
||||||
All issues for Vector-web and Matrix-react-sdk should be filed at
|
|
||||||
https://github.com/matrix-org/matrix-react-sdk/issues
|
|
||||||
|
|
||||||
Triaging issues
|
Triaging issues
|
||||||
===============
|
===============
|
||||||
|
@ -247,23 +250,3 @@ bug or feature:
|
||||||
|
|
||||||
* network (specific to network conditions)
|
* network (specific to network conditions)
|
||||||
* platform (platform specific)
|
* platform (platform specific)
|
||||||
|
|
||||||
Enabling encryption
|
|
||||||
===================
|
|
||||||
|
|
||||||
End-to-end encryption in Vector and Matrix is not yet considered ready for
|
|
||||||
day-to-day use; it is experimental and should be considered only as a
|
|
||||||
proof-of-concept. See https://matrix.org/jira/browse/SPEC-162 for an overview
|
|
||||||
of the current progress.
|
|
||||||
|
|
||||||
To enable the (very experimental) support, check the 'End-to-End Encryption'
|
|
||||||
box in the 'Labs' section of the user settings (note that the labs are disabled
|
|
||||||
on http://vector.im/beta: you will need to use http://vector.im/develop or your
|
|
||||||
own deployment of vector). The Room Settings dialog will then show an
|
|
||||||
'Encryption' setting; rooms for which you are an administrator will offer you
|
|
||||||
the option of enabling encryption. Any messages sent in that room will then be
|
|
||||||
encrypted.
|
|
||||||
|
|
||||||
Note that historical encrypted messages cannot currently be decoded - history
|
|
||||||
is therefore lost when the page is reloaded.
|
|
||||||
|
|
||||||
|
|
45
package.json
45
package.json
|
@ -10,31 +10,42 @@
|
||||||
"url": "https://github.com/vector-im/vector-web"
|
"url": "https://github.com/vector-im/vector-web"
|
||||||
},
|
},
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
|
"files": [
|
||||||
|
"AUTHORS.rst",
|
||||||
|
"CONTRIBUTING.rst",
|
||||||
|
"deploy",
|
||||||
|
"docs",
|
||||||
|
"karma.conf.js",
|
||||||
|
"lib",
|
||||||
|
"release.sh",
|
||||||
|
"scripts",
|
||||||
|
"src",
|
||||||
|
"test",
|
||||||
|
"webpack.config.js"
|
||||||
|
],
|
||||||
"style": "bundle.css",
|
"style": "bundle.css",
|
||||||
"matrix-react-parent": "matrix-react-sdk",
|
"matrix-react-parent": "matrix-react-sdk",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"reskindex": "reskindex -h src/header",
|
"reskindex": "reskindex -h src/header",
|
||||||
"build:emojione": "cpx \"node_modules/emojione/assets/svg/*\" vector/emojione/svg/",
|
"build:emojione": "cpx \"node_modules/emojione/assets/svg/*\" vector/emojione/svg/",
|
||||||
"build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
|
"build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
|
||||||
"build:css": "catw \"src/skins/vector/css/**/*.css\" -o vector/components.css --no-watch",
|
"build:css": "mkdirp build && catw \"src/skins/vector/css/**/*.css\" -o build/components.css --no-watch",
|
||||||
"build:compile": "babel --source-maps -d lib src",
|
"build:compile": "babel --source-maps -d lib src",
|
||||||
"build:bundle": "NODE_ENV=production webpack -p lib/vector/index.js vector/bundle.js",
|
"build:bundle": "NODE_ENV=production webpack -p --progress",
|
||||||
"build:bundle:dev": "webpack --optimize-occurence-order lib/vector/index.js vector/bundle.js",
|
"build:bundle:dev": "webpack --optimize-occurence-order --progress",
|
||||||
"build:staticfiles": "cpx -v node_modules/olm/olm.js vector/",
|
|
||||||
"build:electron": "build -lwm",
|
"build:electron": "build -lwm",
|
||||||
"build": "node scripts/babelcheck.js && npm run build:staticfiles && npm run build:emojione && npm run build:css && npm run build:compile && npm run build:bundle",
|
"build": "node scripts/babelcheck.js && npm run build:emojione && npm run build:css && npm run build:bundle",
|
||||||
"build:dev": "npm run build:staticfiles && npm run build:emojione && npm run build:css && npm run build:compile && npm run build:bundle:dev",
|
"build:dev": "npm run build:emojione && npm run build:css && npm run build:bundle:dev",
|
||||||
"package": "scripts/package.sh",
|
"package": "scripts/package.sh",
|
||||||
"start:emojione": "cpx \"node_modules/emojione/assets/svg/*\" vector/emojione/svg/ -w",
|
"start:emojione": "cpx \"node_modules/emojione/assets/svg/*\" vector/emojione/svg/ -w",
|
||||||
"start:js": "webpack -w src/vector/index.js vector/bundle.js",
|
"start:js": "webpack -w --progress --no-cache-buster",
|
||||||
"start:js:prod": "NODE_ENV=production webpack -w src/vector/index.js vector/bundle.js",
|
"start:js:prod": "NODE_ENV=production webpack -w --progress --no-cache-buster",
|
||||||
"start:skins:css": "catw \"src/skins/vector/css/**/*.css\" -o vector/components.css",
|
"start:skins:css": "mkdirp build && catw \"src/skins/vector/css/**/*.css\" -o build/components.css",
|
||||||
"start:staticfiles": "cpx -Lwv node_modules/olm/olm.js vector/",
|
|
||||||
"//cache": "Note the -c 1 below due to https://code.google.com/p/chromium/issues/detail?id=508270",
|
"//cache": "Note the -c 1 below due to https://code.google.com/p/chromium/issues/detail?id=508270",
|
||||||
"start": "node scripts/babelcheck.js && parallelshell \"npm run start:staticfiles\" \"npm run start:emojione\" \"npm run start:js\" \"npm run start:skins:css\" \"http-server -c 1 vector\"",
|
"start": "node scripts/babelcheck.js && parallelshell \"npm run start:emojione\" \"npm run start:js\" \"npm run start:skins:css\" \"http-server -c 1 vector\"",
|
||||||
"start:prod": "parallelshell \"npm run start:staticfiles\" \"npm run start:emojione\" \"npm run start:js:prod\" \"npm run start:skins:css\" \"http-server -c 1 vector\"",
|
"start:prod": "parallelshell \"npm run start:emojione\" \"npm run start:js:prod\" \"npm run start:skins:css\" \"http-server -c 1 vector\"",
|
||||||
"clean": "rimraf lib vector/olm.js vector/bundle.css vector/bundle.js vector/bundle.js.map vector/webpack.css* vector/emojione",
|
"clean": "rimraf build lib vector/olm.* vector/bundle.* vector/emojione vector/index.html",
|
||||||
"prepublish": "npm run build:css && npm run build:compile",
|
"prepublish": "npm run build:compile",
|
||||||
"test": "karma start --single-run=true --autoWatch=false --browsers PhantomJS --colors=false",
|
"test": "karma start --single-run=true --autoWatch=false --browsers PhantomJS --colors=false",
|
||||||
"test:multi": "karma start"
|
"test:multi": "karma start"
|
||||||
},
|
},
|
||||||
|
@ -87,6 +98,7 @@
|
||||||
"emojione": "^2.2.3",
|
"emojione": "^2.2.3",
|
||||||
"expect": "^1.16.0",
|
"expect": "^1.16.0",
|
||||||
"fs-extra": "^0.30.0",
|
"fs-extra": "^0.30.0",
|
||||||
|
"html-webpack-plugin": "^2.24.0",
|
||||||
"http-server": "^0.8.4",
|
"http-server": "^0.8.4",
|
||||||
"json-loader": "^0.5.3",
|
"json-loader": "^0.5.3",
|
||||||
"karma": "^0.13.22",
|
"karma": "^0.13.22",
|
||||||
|
@ -97,6 +109,7 @@
|
||||||
"karma-phantomjs-launcher": "^1.0.0",
|
"karma-phantomjs-launcher": "^1.0.0",
|
||||||
"karma-sourcemap-loader": "^0.3.7",
|
"karma-sourcemap-loader": "^0.3.7",
|
||||||
"karma-webpack": "^1.7.0",
|
"karma-webpack": "^1.7.0",
|
||||||
|
"mkdirp": "^0.5.1",
|
||||||
"mocha": "^2.4.5",
|
"mocha": "^2.4.5",
|
||||||
"parallelshell": "^1.2.0",
|
"parallelshell": "^1.2.0",
|
||||||
"phantomjs-prebuilt": "^2.1.7",
|
"phantomjs-prebuilt": "^2.1.7",
|
||||||
|
@ -107,6 +120,7 @@
|
||||||
"webpack": "^1.12.14"
|
"webpack": "^1.12.14"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
|
<<<<<<< HEAD
|
||||||
"olm": "https://matrix.org/packages/npm/olm/olm-1.3.0.tgz"
|
"olm": "https://matrix.org/packages/npm/olm/olm-1.3.0.tgz"
|
||||||
},
|
},
|
||||||
"build": {
|
"build": {
|
||||||
|
@ -127,5 +141,8 @@
|
||||||
"directories": {
|
"directories": {
|
||||||
"buildResources": "electron/build",
|
"buildResources": "electron/build",
|
||||||
"output": "electron/dist"
|
"output": "electron/dist"
|
||||||
|
=======
|
||||||
|
"olm": "https://matrix.org/packages/npm/olm/olm-2.0.0.tgz"
|
||||||
|
>>>>>>> origin/develop
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ export default class ChangelogDialog extends React.Component {
|
||||||
_elementsForCommit(commit) {
|
_elementsForCommit(commit) {
|
||||||
return (
|
return (
|
||||||
<li key={commit.sha} className="mx_ChangelogDialog_li">
|
<li key={commit.sha} className="mx_ChangelogDialog_li">
|
||||||
<a href={commit.html_url} target="_blank" ref="noopener">
|
<a href={commit.html_url} target="_blank" rel="noopener">
|
||||||
{commit.commit.message}
|
{commit.commit.message}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -62,6 +62,7 @@ limitations under the License.
|
||||||
|
|
||||||
.mx_RoomDirectory_searchbox {
|
.mx_RoomDirectory_searchbox {
|
||||||
display: table-cell;
|
display: table-cell;
|
||||||
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mx_RoomDirectory_listheader .mx_NetworkDropdown {
|
.mx_RoomDirectory_listheader .mx_NetworkDropdown {
|
||||||
|
|
|
@ -20,14 +20,16 @@
|
||||||
<meta name="msapplication-TileImage" content="vector-icons/mstile-144x144.png">
|
<meta name="msapplication-TileImage" content="vector-icons/mstile-144x144.png">
|
||||||
<meta name="msapplication-config" content="vector-icons/browserconfig.xml">
|
<meta name="msapplication-config" content="vector-icons/browserconfig.xml">
|
||||||
<meta name="theme-color" content="#ffffff">
|
<meta name="theme-color" content="#ffffff">
|
||||||
|
<% for(var i=0; i<htmlWebpackPlugin.files.css.length; i++) {%>
|
||||||
|
<link href="<%= htmlWebpackPlugin.files.css[i] %>" rel="stylesheet">
|
||||||
|
<% } %>
|
||||||
</head>
|
</head>
|
||||||
<body style="height: 100%;">
|
<body style="height: 100%;">
|
||||||
<section id="matrixchat" style="height: 100%;"></section>
|
<section id="matrixchat" style="height: 100%;"></section>
|
||||||
<!-- load olm, if possible. -->
|
|
||||||
<script src="olm.js"></script>
|
|
||||||
<script src="bundle.js"></script>
|
|
||||||
<noscript>Sorry, Riot requires JavaScript to be enabled.</noscript>
|
<noscript>Sorry, Riot requires JavaScript to be enabled.</noscript>
|
||||||
<link rel="stylesheet" href="bundle.css">
|
<% for(var i=0; i<htmlWebpackPlugin.files.js.length; i++) {%>
|
||||||
|
<script src="<%= htmlWebpackPlugin.files.js[i] %>"></script>
|
||||||
|
<% } %>
|
||||||
<img src="img/warning.svg" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
<img src="img/warning.svg" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||||
<audio id="messageAudio">
|
<audio id="messageAudio">
|
||||||
<source src="media/message.ogg" type="audio/ogg" />
|
<source src="media/message.ogg" type="audio/ogg" />
|
|
@ -29,8 +29,8 @@ limitations under the License.
|
||||||
require('babel-polyfill');
|
require('babel-polyfill');
|
||||||
|
|
||||||
// CSS requires: just putting them here for now as CSS is going to be
|
// CSS requires: just putting them here for now as CSS is going to be
|
||||||
// refactored soon anyway
|
// refactored "soon" anyway
|
||||||
require('../../vector/components.css');
|
require('../../build/components.css');
|
||||||
require('gemini-scrollbar/gemini-scrollbar.css');
|
require('gemini-scrollbar/gemini-scrollbar.css');
|
||||||
require('gfm.css/gfm.css');
|
require('gfm.css/gfm.css');
|
||||||
require('highlight.js/styles/github.css');
|
require('highlight.js/styles/github.css');
|
||||||
|
|
|
@ -1,8 +1,30 @@
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
var webpack = require('webpack');
|
var webpack = require('webpack');
|
||||||
var ExtractTextPlugin = require("extract-text-webpack-plugin");
|
var ExtractTextPlugin = require("extract-text-webpack-plugin");
|
||||||
|
var HtmlWebpackPlugin = require('html-webpack-plugin');
|
||||||
|
|
||||||
|
var cachebuster = true;
|
||||||
|
|
||||||
|
for (var i=0; i < process.argv.length; i++) {
|
||||||
|
var arg = process.argv[i];
|
||||||
|
if (arg == "--no-cache-buster") {
|
||||||
|
cachebuster = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
entry: {
|
||||||
|
"bundle": "./src/vector/index.js",
|
||||||
|
|
||||||
|
// We ship olm.js as a separate lump of javascript. This makes it get
|
||||||
|
// loaded via a separate <script/> tag in index.html (which loads it
|
||||||
|
// into the browser global `Olm`), and define it as an external below.
|
||||||
|
//
|
||||||
|
// (we should probably make js-sdk load it asynchronously at some
|
||||||
|
// point, so that it doesn't block the pageload, but that is a separate
|
||||||
|
// problem)
|
||||||
|
"olm": "olm/olm.js",
|
||||||
|
},
|
||||||
module: {
|
module: {
|
||||||
preLoaders: [
|
preLoaders: [
|
||||||
{ test: /\.js$/, loader: "source-map-loader" }
|
{ test: /\.js$/, loader: "source-map-loader" }
|
||||||
|
@ -19,9 +41,15 @@ module.exports = {
|
||||||
// there is no need for webpack to parse them - they can just be
|
// there is no need for webpack to parse them - they can just be
|
||||||
// included as-is.
|
// included as-is.
|
||||||
/highlight\.js\/lib\/languages/,
|
/highlight\.js\/lib\/languages/,
|
||||||
|
|
||||||
|
// olm takes ages for webpack to process, and it's already heavily
|
||||||
|
// optimised, so there is little to gain by us uglifying it.
|
||||||
|
/olm\/(javascript\/)?olm\.js$/,
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
|
path: path.join(__dirname, "vector"),
|
||||||
|
filename: "[name]" + (cachebuster ? ".[chunkhash]" : "") + ".js",
|
||||||
devtoolModuleFilenameTemplate: function(info) {
|
devtoolModuleFilenameTemplate: function(info) {
|
||||||
// Reading input source maps gives only relative paths here for
|
// Reading input source maps gives only relative paths here for
|
||||||
// everything. Until I figure out how to fix this, this is a
|
// everything. Until I figure out how to fix this, this is a
|
||||||
|
@ -46,11 +74,6 @@ module.exports = {
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
externals: {
|
externals: {
|
||||||
// olm takes ages for webpack to process, and it's already heavily
|
|
||||||
// optimised, so there is little to gain by us uglifying it. We
|
|
||||||
// therefore use it via a separate <script/> tag in index.html (which
|
|
||||||
// loads it into the browser global `Olm`), and reference it as an
|
|
||||||
// external here.
|
|
||||||
"olm": "Olm",
|
"olm": "Olm",
|
||||||
// Don't try to bundle electron: leave it as a commonjs dependency
|
// Don't try to bundle electron: leave it as a commonjs dependency
|
||||||
// (the 'commonjs' here means it will output a 'require')
|
// (the 'commonjs' here means it will output a 'require')
|
||||||
|
@ -63,8 +86,21 @@ module.exports = {
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
||||||
new ExtractTextPlugin("bundle.css", {
|
new ExtractTextPlugin(
|
||||||
allChunks: true
|
"[name]" + (cachebuster ? ".[contenthash]" : "") + ".css",
|
||||||
|
{
|
||||||
|
allChunks: true
|
||||||
|
}
|
||||||
|
),
|
||||||
|
|
||||||
|
new HtmlWebpackPlugin({
|
||||||
|
template: './src/vector/index.html',
|
||||||
|
|
||||||
|
// we inject the links ourselves via the template, because
|
||||||
|
// HtmlWebpackPlugin wants to put the script tags either at the
|
||||||
|
// bottom of <head> or the bottom of <body>, and I'm a bit scared
|
||||||
|
// about moving them.
|
||||||
|
inject: false,
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
devtool: 'source-map'
|
devtool: 'source-map'
|
||||||
|
|
Loading…
Add table
Reference in a new issue