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"