diff --git a/client/.babelrc b/client/.babelrc
index e054da899..27289288c 100644
--- a/client/.babelrc
+++ b/client/.babelrc
@@ -2,8 +2,5 @@
"extends": "../.babelrc",
"plugins": [
"transform-async-to-generator",
- "syntax-dynamic-import",
- "transform-regenerator",
- "transform-runtime"
]
}
diff --git a/client/coral-embed-stream/src/Pluggable.js b/client/coral-embed-stream/src/Pluggable.js
index ee07a031f..fd5b1aa4e 100644
--- a/client/coral-embed-stream/src/Pluggable.js
+++ b/client/coral-embed-stream/src/Pluggable.js
@@ -1,4 +1,10 @@
import React from 'react';
-import * as Plugins from 'plugins';
+import injectedPlugins from 'coral-framework/helpers/importer';
-export default () =>
{Object.keys(Plugins).map((component, i) => Plugins[component]({key: i}))}
;
+export default function pluginContainer () {
+ return (
+
+ {Object.keys(injectedPlugins).map((component, i) => injectedPlugins[component]({key: i}))}
+
+ )
+};
diff --git a/client/coral-framework/helpers/importer.js b/client/coral-framework/helpers/importer.js
new file mode 100644
index 000000000..5fc057610
--- /dev/null
+++ b/client/coral-framework/helpers/importer.js
@@ -0,0 +1,12 @@
+function importer () {
+ const context = require.context("../../../plugins", true, /\.\/(.*)\/client\/index.js$/);
+ let res = {};
+
+ context.keys().forEach(function (key) {
+ res[key] = context(key)
+ });
+
+ return res;
+}
+
+export default importer();
\ No newline at end of file
diff --git a/package.json b/package.json
index 310891f33..4269fff72 100644
--- a/package.json
+++ b/package.json
@@ -49,7 +49,6 @@
},
"homepage": "https://github.com/coralproject/talk#readme",
"dependencies": {
- "babel-plugin-syntax-dynamic-import": "^6.18.0",
"bcrypt": "^1.0.2",
"body-parser": "^1.15.2",
"cli-table": "^0.3.1",
@@ -63,8 +62,8 @@
"env-rewrite": "^1.0.2",
"express": "^4.14.0",
"express-session": "^1.14.2",
- "form-data": "^2.1.2",
"gql-merge": "^0.0.4",
+ "form-data": "^2.1.2",
"graphql": "^0.8.2",
"graphql-errors": "^2.1.0",
"graphql-server-express": "^0.5.0",
@@ -87,7 +86,6 @@
"passport-facebook": "^2.1.1",
"passport-local": "^1.0.0",
"react-apollo": "^0.10.0",
- "react-dom": "^15.4.2",
"react-recaptcha": "^2.2.6",
"redis": "^2.6.5",
"uuid": "^2.0.3"
@@ -95,25 +93,24 @@
"devDependencies": {
"apollo-client": "^0.8.3",
"autoprefixer": "^6.5.2",
- "babel-core": "^6.24.0",
+ "babel-core": "^6.21.0",
"babel-eslint": "^7.1.0",
"babel-jest": "^15.0.0",
- "babel-loader": "^6.4.1",
+ "babel-loader": "^6.2.7",
"babel-plugin-add-module-exports": "^0.2.1",
- "babel-plugin-transform-async-to-generator": "^6.22.0",
+ "babel-plugin-transform-async-to-generator": "^6.16.0",
"babel-plugin-transform-class-properties": "^6.18.0",
"babel-plugin-transform-decorators-legacy": "^1.3.4",
"babel-plugin-transform-object-assign": "^6.8.0",
"babel-plugin-transform-object-rest-spread": "^6.16.0",
"babel-plugin-transform-react-jsx": "^6.8.0",
- "babel-plugin-transform-regenerator": "^6.22.0",
- "babel-plugin-transform-runtime": "^6.23.0",
"babel-polyfill": "^6.16.0",
- "babel-preset-es2015": "^6.24.0",
+ "babel-preset-es2015": "^6.18.0",
"babel-preset-stage-0": "^6.16.0",
"chai": "^3.5.0",
"chai-as-promised": "^6.0.0",
"chai-http": "^3.0.0",
+ "contents-loader": "^1.0.0",
"copy-webpack-plugin": "^4.0.0",
"css-loader": "^0.25.0",
"dialog-polyfill": "^0.4.4",
@@ -152,14 +149,16 @@
"pre-git": "^3.10.0",
"precss": "^1.4.0",
"pym.js": "^1.1.1",
- "react": "next",
+ "react": "15.3.2",
+ "react-addons-test-utils": "15.3.2",
+ "react-dom": "15.3.2",
"react-highlight-words": "^0.6.0",
"react-linkify": "^0.1.3",
"react-mdl": "^1.7.2",
"react-mdl-selectfield": "^0.2.0",
"react-onclickoutside": "^5.7.1",
"react-redux": "^4.4.5",
- "react-router": "next",
+ "react-router": "^3.0.0",
"react-tagsinput": "^3.14.0",
"redux": "^3.6.0",
"redux-mock-store": "^1.2.1",
diff --git a/webpack.config.js b/webpack.config.js
index 014588e86..8c7119bd2 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -4,7 +4,8 @@ const precss = require('precss');
const Copy = require('copy-webpack-plugin');
const LicenseWebpackPlugin = require('license-webpack-plugin');
const webpack = require('webpack');
-
+// const plugins = require('./plugins.json');
+// 'plugins': plugins.client.map(name => path.join(__dirname, `plugins/${name}/index`))
// Edit the build targets and embeds below.
const buildTargets = [
@@ -122,7 +123,7 @@ module.exports = {
],
resolve: {
alias: {
- plugins: path.resolve(__dirname, 'plugins/index.js'),
+ plugins: path.resolve(__dirname, 'plugins/'),
},
modules: [
path.resolve(__dirname, 'client'),
diff --git a/yarn.lock b/yarn.lock
index 99c623050..62247999c 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -368,7 +368,7 @@ babel-code-frame@^6.11.0, babel-code-frame@^6.16.0, babel-code-frame@^6.22.0:
esutils "^2.0.2"
js-tokens "^3.0.0"
-babel-core@^6.0.0, babel-core@^6.24.0:
+babel-core@^6.0.0, babel-core@^6.21.0, babel-core@^6.24.0:
version "6.24.0"
resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.24.0.tgz#8f36a0a77f5c155aed6f920b844d23ba56742a02"
dependencies:
@@ -550,7 +550,7 @@ babel-jest@^15.0.0:
babel-plugin-istanbul "^2.0.0"
babel-preset-jest "^15.0.0"
-babel-loader@^6.4.1:
+babel-loader@^6.2.7:
version "6.4.1"
resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-6.4.1.tgz#0b34112d5b0748a8dcdbf51acf6f9bd42d50b8ca"
dependencies:
@@ -930,7 +930,7 @@ babel-polyfill@^6.16.0:
core-js "^2.4.0"
regenerator-runtime "^0.10.0"
-babel-preset-es2015@^6.24.0:
+babel-preset-es2015@^6.18.0:
version "6.24.0"
resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.0.tgz#c162d68b1932696e036cd3110dc1ccd303d2673a"
dependencies:
@@ -1787,6 +1787,12 @@ content-type@~1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.2.tgz#b7d113aee7a8dd27bd21133c4dc2529df1721eed"
+contents-loader@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/contents-loader/-/contents-loader-1.0.0.tgz#8ca18fbe70d63837c020737de55d29fa0823ce3f"
+ dependencies:
+ loader-utils "^1.0.2"
+
conventional-commit-message@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/conventional-commit-message/-/conventional-commit-message-1.1.0.tgz#ece8c661a168e983692e1d5a14875acb59510f6a"
@@ -2820,7 +2826,7 @@ fastparse@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8"
-fbjs@^0.8.1, fbjs@^0.8.4, fbjs@^0.8.9:
+fbjs@^0.8.1, fbjs@^0.8.4:
version "0.8.11"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.11.tgz#340b590b8a2278a01ef7467c07a16da9b753db24"
dependencies:
@@ -3508,14 +3514,13 @@ highlight-words-core@^1.0.2:
dependencies:
babel-runtime "^6.11.6"
-history@^4.6.0:
- version "4.6.1"
- resolved "https://registry.yarnpkg.com/history/-/history-4.6.1.tgz#911cf8eb65728555a94f2b12780a0c531a14d2fd"
+history@^3.0.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/history/-/history-3.3.0.tgz#fcedcce8f12975371545d735461033579a6dae9c"
dependencies:
invariant "^2.2.1"
loose-envify "^1.2.0"
- resolve-pathname "^2.0.0"
- value-equal "^0.2.0"
+ query-string "^4.2.2"
warning "^3.0.0"
hoek@2.x.x:
@@ -3788,7 +3793,7 @@ interpret@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.1.tgz#d579fb7f693b858004947af39fa0db49f795602c"
-invariant@^2.0.0, invariant@^2.2.0, invariant@^2.2.1, invariant@^2.2.2:
+invariant@^2.0.0, invariant@^2.2.0, invariant@^2.2.1:
version "2.2.2"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
dependencies:
@@ -4468,6 +4473,14 @@ loader-utils@0.2.x, loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@^0.
json5 "^0.5.0"
object-assign "^4.0.1"
+loader-utils@^1.0.2:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd"
+ dependencies:
+ big.js "^3.1.3"
+ emojis-list "^2.0.0"
+ json5 "^0.5.0"
+
lodash-es@^4.2.1:
version "4.17.4"
resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.4.tgz#dcc1d7552e150a0640073ba9cb31d70f032950e7"
@@ -4722,7 +4735,7 @@ longest@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
-loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0, loose-envify@^1.3.1:
+loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.2.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
dependencies:
@@ -5585,7 +5598,7 @@ path-to-regexp@0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
-path-to-regexp@^1.5.3, path-to-regexp@^1.7.0:
+path-to-regexp@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.7.0.tgz#59fde0f435badacba103a84e9d3bc64e96b9937d"
dependencies:
@@ -6362,7 +6375,7 @@ qs@~6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.0.tgz#f403b264f23bc01228c74131b407f18d5ea5d442"
-query-string@^4.1.0:
+query-string@^4.1.0, query-string@^4.2.2:
version "4.3.1"
resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.1.tgz#54baada6713eafc92be75c47a731f2ebd09cd11d"
dependencies:
@@ -6425,6 +6438,10 @@ rc@^1.0.1, rc@~1.1.6:
minimist "^1.2.0"
strip-json-comments "~1.0.4"
+react-addons-test-utils@15.3.2:
+ version "15.3.2"
+ resolved "https://registry.yarnpkg.com/react-addons-test-utils/-/react-addons-test-utils-15.3.2.tgz#c09a44f583425a4a9c1b38444d7a6c3e6f0f41f6"
+
react-apollo@^0.10.0:
version "0.10.1"
resolved "https://registry.yarnpkg.com/react-apollo/-/react-apollo-0.10.1.tgz#97fd50855f8575672aa68330b9c64a201cd13343"
@@ -6440,7 +6457,7 @@ react-apollo@^0.10.0:
optionalDependencies:
react-dom "0.14.x || 15.* || ^15.0.0"
-"react-dom@0.14.x || 15.* || ^15.0.0", react-dom@^15.3.1, react-dom@^15.4.2:
+"react-dom@0.14.x || 15.* || ^15.0.0", react-dom@^15.3.1:
version "15.4.2"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.4.2.tgz#015363f05b0a1fd52ae9efdd3a0060d90695208f"
dependencies:
@@ -6448,6 +6465,10 @@ react-apollo@^0.10.0:
loose-envify "^1.1.0"
object-assign "^4.1.0"
+react-dom@15.3.2:
+ version "15.3.2"
+ resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-15.3.2.tgz#c46b0aa5380d7b838e7a59c4a7beff2ed315531f"
+
react-highlight-words@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/react-highlight-words/-/react-highlight-words-0.6.0.tgz#e12e9fedda4333e410ea408cdedffc77122020aa"
@@ -6496,21 +6517,21 @@ react-redux@^4.4.5:
lodash "^4.2.0"
loose-envify "^1.1.0"
-react-router@next:
- version "4.0.0-beta.8"
- resolved "https://registry.yarnpkg.com/react-router/-/react-router-4.0.0-beta.8.tgz#368cfe540d23d5d23419b42fb915d465f268b66b"
+react-router@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/react-router/-/react-router-3.0.2.tgz#5a19156678810e01d81901f9c0fef63284b8a514"
dependencies:
- history "^4.6.0"
- invariant "^2.2.2"
- loose-envify "^1.3.1"
- path-to-regexp "^1.5.3"
+ history "^3.0.0"
+ hoist-non-react-statics "^1.2.0"
+ invariant "^2.2.1"
+ loose-envify "^1.2.0"
warning "^3.0.0"
react-tagsinput@^3.14.0:
version "3.14.0"
resolved "https://registry.yarnpkg.com/react-tagsinput/-/react-tagsinput-3.14.0.tgz#6729f8d5b313ed8fbb35496205ec2a97654af6bc"
-react@^15.3.1:
+react@15.3.2, react@^15.3.1:
version "15.3.2"
resolved "https://registry.yarnpkg.com/react/-/react-15.3.2.tgz#a7bccd2fee8af126b0317e222c28d1d54528d09e"
dependencies:
@@ -6518,14 +6539,6 @@ react@^15.3.1:
loose-envify "^1.1.0"
object-assign "^4.1.0"
-react@next:
- version "16.0.0-alpha.5"
- resolved "https://registry.yarnpkg.com/react/-/react-16.0.0-alpha.5.tgz#ba5ca2058e7f39b010661497286e37133eb1c9fa"
- dependencies:
- fbjs "^0.8.9"
- loose-envify "^1.1.0"
- object-assign "^4.1.0"
-
read-all-stream@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa"
@@ -6855,10 +6868,6 @@ resolve-from@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
-resolve-pathname@^2.0.0:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.0.2.tgz#e55c016eb2e9df1de98e85002282bfb38c630436"
-
resolve@^1.1.6, resolve@^1.1.7:
version "1.2.0"
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.2.0.tgz#9589c3f2f6149d1417a40becc1663db6ec6bc26c"
@@ -7773,10 +7782,6 @@ validate-npm-package-license@^3.0.1:
spdx-correct "~1.0.0"
spdx-expression-parse "~1.0.0"
-value-equal@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-0.2.0.tgz#4f41c60a3fc011139a2ec3d3340a8998ae8b69c0"
-
vary@~1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.0.tgz#e1e5affbbd16ae768dd2674394b9ad3022653140"