From 3b3caafdf9690d487ae313593a10f734a56fff42 Mon Sep 17 00:00:00 2001 From: Marcos Spessatto Defendi Date: Thu, 1 Nov 2018 14:02:21 -0300 Subject: [PATCH 1/2] Convert chatpal search package to modular structure (#12485) * First wave of removal of Meteor global * Second wave of removal of Meteor global * Third wave of removal of Meteor global * Fix tests * Remove global variable SHA256 * Remove global variable WebApp * Remove global variable EJSON * Remove global variable Email * Remove global variable HTTP * Remove global variable Random * Remove global variable ReactiveDict * Remove global variable ReactiveVar * Remove global variable Accounts * Remove globals variables Match and check * Remove global variable Mongo * Remove global variable moment * Remove global variable Tracker * Remove global variable Blaze * Remove global variables FlowRouter and BlazeLayout * Add FlowRouter to eslint global in tests file * Remove global variable DDPRateLimiter * Remove global variable Session * Remove global variable UAParser * Remove global variable Promise * Remove global variable Reload * Remove global variable CryptoJS * Remove global variable Template * Remove global variable TAPi18n * Remove global variable TAPi18next * Exposing t function from rocketchat:ui package * Convert chatpal search to main module structure * Fix ESLint --- packages/chatpal-search/client/index.js | 8 +++++ packages/chatpal-search/client/route.js | 1 + .../chatpal-search/client/template/admin.js | 1 + .../chatpal-search/client/template/result.js | 1 + packages/chatpal-search/package.js | 30 ++++--------------- .../chatpal-search/server/asset/config.js | 2 +- packages/chatpal-search/server/index.js | 3 ++ .../chatpal-search/server/provider/index.js | 1 + .../server/provider/provider.js | 1 + .../chatpal-search/server/utils/logger.js | 2 ++ packages/rocketchat-ui/client/lib/tapi18n.js | 2 +- packages/rocketchat-ui/package.js | 1 + 12 files changed, 26 insertions(+), 27 deletions(-) create mode 100644 packages/chatpal-search/client/index.js create mode 100644 packages/chatpal-search/server/index.js diff --git a/packages/chatpal-search/client/index.js b/packages/chatpal-search/client/index.js new file mode 100644 index 0000000000000..1b4cd56f41999 --- /dev/null +++ b/packages/chatpal-search/client/index.js @@ -0,0 +1,8 @@ +import './style.css'; +import './template/admin.html'; +import './template/result.html'; +import './template/suggestion.html'; +import './template/admin'; +import './template/result'; +import './template/suggestion'; +import './route'; diff --git a/packages/chatpal-search/client/route.js b/packages/chatpal-search/client/route.js index 202cdb929991e..42361a1396746 100644 --- a/packages/chatpal-search/client/route.js +++ b/packages/chatpal-search/client/route.js @@ -1,5 +1,6 @@ import { FlowRouter } from 'meteor/kadira:flow-router'; import { BlazeLayout } from 'meteor/kadira:blaze-layout'; +import { t } from 'meteor/rocketchat:ui'; FlowRouter.route('/admin/chatpal', { name: 'chatpal-admin', diff --git a/packages/chatpal-search/client/template/admin.js b/packages/chatpal-search/client/template/admin.js index ded6c6176ee29..d104c08311d39 100644 --- a/packages/chatpal-search/client/template/admin.js +++ b/packages/chatpal-search/client/template/admin.js @@ -2,6 +2,7 @@ import { Meteor } from 'meteor/meteor'; import { ReactiveVar } from 'meteor/reactive-var'; import { Template } from 'meteor/templating'; import { TAPi18n } from 'meteor/tap:i18n'; +import { RocketChat } from 'meteor/rocketchat:lib'; import toastr from 'toastr'; Template.ChatpalAdmin.onCreated(function() { diff --git a/packages/chatpal-search/client/template/result.js b/packages/chatpal-search/client/template/result.js index 9cee9304f589e..6028c81a6e6b4 100644 --- a/packages/chatpal-search/client/template/result.js +++ b/packages/chatpal-search/client/template/result.js @@ -3,6 +3,7 @@ import { ReactiveVar } from 'meteor/reactive-var'; import { Session } from 'meteor/session'; import { Template } from 'meteor/templating'; import { TAPi18n } from 'meteor/tap:i18n'; +import { RocketChat } from 'meteor/rocketchat:lib'; Template.ChatpalSearchResultTemplate.onCreated(function() { this.badRequest = new ReactiveVar(false); diff --git a/packages/chatpal-search/package.js b/packages/chatpal-search/package.js index 8dbde5d1dd2d3..f55bfeb282d60 100644 --- a/packages/chatpal-search/package.js +++ b/packages/chatpal-search/package.js @@ -9,33 +9,13 @@ Package.onUse(function(api) { api.use([ 'ecmascript', 'templating', - 'rocketchat:lib', - 'rocketchat:logger', - 'rocketchat:search', - 'kadira:flow-router', - 'kadira:blaze-layout', - 'meteorhacks:inject-initial', ]); - api.addFiles('server/asset/chatpal-enter.svg', 'server', { isAsset:true }); - api.addFiles('server/asset/chatpal-logo-icon-darkblue.svg', 'server', { isAsset:true }); - - api.addFiles([ - 'server/provider/provider.js', - 'server/provider/index.js', - 'server/utils/logger.js', - 'server/utils/utils.js', - 'server/asset/config.js', + api.addAssets([ + 'server/asset/chatpal-enter.svg', + 'server/asset/chatpal-logo-icon-darkblue.svg', ], 'server'); - api.addFiles([ - 'client/template/suggestion.html', - 'client/template/suggestion.js', - 'client/template/result.html', - 'client/template/result.js', - 'client/template/admin.html', - 'client/template/admin.js', - 'client/style.css', - 'client/route.js', - ], 'client'); + api.mainModule('client/index.js', 'client'); + api.mainModule('server/index.js', 'server'); }); diff --git a/packages/chatpal-search/server/asset/config.js b/packages/chatpal-search/server/asset/config.js index add37dbca2712..266f8d46348e1 100644 --- a/packages/chatpal-search/server/asset/config.js +++ b/packages/chatpal-search/server/asset/config.js @@ -1,4 +1,4 @@ -/* globals Inject */ +import { Inject } from 'meteor/meteorhacks:inject-initial'; Inject.rawBody('chatpal-enter', Assets.getText('server/asset/chatpal-enter.svg')); Inject.rawBody('chatpal-logo-icon-darkblue', Assets.getText('server/asset/chatpal-logo-icon-darkblue.svg')); diff --git a/packages/chatpal-search/server/index.js b/packages/chatpal-search/server/index.js new file mode 100644 index 0000000000000..2a7f1094d0904 --- /dev/null +++ b/packages/chatpal-search/server/index.js @@ -0,0 +1,3 @@ +import './asset/config'; +import './provider/provider'; +import './utils/utils'; diff --git a/packages/chatpal-search/server/provider/index.js b/packages/chatpal-search/server/provider/index.js index 9a393ce053620..fcccc7d96cde0 100644 --- a/packages/chatpal-search/server/provider/index.js +++ b/packages/chatpal-search/server/provider/index.js @@ -2,6 +2,7 @@ import { Meteor } from 'meteor/meteor'; import { HTTP } from 'meteor/http'; import ChatpalLogger from '../utils/logger'; import { Random } from 'meteor/random'; +import { RocketChat } from 'meteor/rocketchat:lib'; /** * Enables HTTP functions on Chatpal Backend diff --git a/packages/chatpal-search/server/provider/provider.js b/packages/chatpal-search/server/provider/provider.js index cf400662a7fc2..d6175f48c3181 100644 --- a/packages/chatpal-search/server/provider/provider.js +++ b/packages/chatpal-search/server/provider/provider.js @@ -2,6 +2,7 @@ import { Meteor } from 'meteor/meteor'; import { searchProviderService, SearchProvider } from 'meteor/rocketchat:search'; import Index from './index'; import ChatpalLogger from '../utils/logger'; +import { RocketChat } from 'meteor/rocketchat:lib'; /** * The chatpal search provider enables chatpal search. An appropriate backedn has to be specified by settings. diff --git a/packages/chatpal-search/server/utils/logger.js b/packages/chatpal-search/server/utils/logger.js index 2e5278a11924d..cbae16ba41ebf 100644 --- a/packages/chatpal-search/server/utils/logger.js +++ b/packages/chatpal-search/server/utils/logger.js @@ -1,2 +1,4 @@ +import { Logger } from 'meteor/rocketchat:logger'; + const ChatpalLogger = new Logger('Chatpal Logger', {}); export default ChatpalLogger; diff --git a/packages/rocketchat-ui/client/lib/tapi18n.js b/packages/rocketchat-ui/client/lib/tapi18n.js index d9d50065ca7b1..4ea4f5aaa5bf8 100644 --- a/packages/rocketchat-ui/client/lib/tapi18n.js +++ b/packages/rocketchat-ui/client/lib/tapi18n.js @@ -1,7 +1,7 @@ import _ from 'underscore'; import { TAPi18n } from 'meteor/tap:i18n'; -this.t = function(key, ...replaces) { +t = function(key, ...replaces) { if (_.isObject(replaces[0])) { return TAPi18n.__(key, ...replaces); } else { diff --git a/packages/rocketchat-ui/package.js b/packages/rocketchat-ui/package.js index a2cff069c5d77..c1345a87ea934 100644 --- a/packages/rocketchat-ui/package.js +++ b/packages/rocketchat-ui/package.js @@ -145,4 +145,5 @@ Package.onUse(function(api) { api.addFiles('client/components/contextualBar.js', 'client'); api.export('fileUpload'); + api.export('t'); }); From c5a14f21966e0427fb5a14cb5802450795099c40 Mon Sep 17 00:00:00 2001 From: Marcos Spessatto Defendi Date: Thu, 1 Nov 2018 15:15:55 -0300 Subject: [PATCH 2/2] Convert meteor-accounts-saml to main module structure (#12486) * First wave of removal of Meteor global * Second wave of removal of Meteor global * Third wave of removal of Meteor global * Fix tests * Remove global variable SHA256 * Remove global variable WebApp * Remove global variable EJSON * Remove global variable Email * Remove global variable HTTP * Remove global variable Random * Remove global variable ReactiveDict * Remove global variable ReactiveVar * Remove global variable Accounts * Remove globals variables Match and check * Remove global variable Mongo * Remove global variable moment * Remove global variable Tracker * Remove global variable Blaze * Remove global variables FlowRouter and BlazeLayout * Add FlowRouter to eslint global in tests file * Remove global variable DDPRateLimiter * Remove global variable Session * Remove global variable UAParser * Remove global variable Promise * Remove global variable Reload * Remove global variable CryptoJS * Remove global variable Template * Remove global variable TAPi18n * Remove global variable TAPi18next * Exposing t function from rocketchat:ui package * Convert chatpal search to main module structure * Fix ESLint * Convert meteor-accounts-saml to main module structure * ReAdd removed package dependecies * Change export statement * Fix lint issue in saml package --- packages/meteor-accounts-saml/client/index.js | 1 + .../{ => client}/saml_client.js | 1 + packages/meteor-accounts-saml/package.js | 20 ++++++++++++------- packages/meteor-accounts-saml/server/index.js | 2 ++ .../{ => server}/saml_rocketchat.js | 3 +++ .../{ => server}/saml_server.js | 5 +++-- .../{ => server}/saml_utils.js | 5 +---- 7 files changed, 24 insertions(+), 13 deletions(-) create mode 100644 packages/meteor-accounts-saml/client/index.js rename packages/meteor-accounts-saml/{ => client}/saml_client.js (98%) create mode 100644 packages/meteor-accounts-saml/server/index.js rename packages/meteor-accounts-saml/{ => server}/saml_rocketchat.js (97%) rename packages/meteor-accounts-saml/{ => server}/saml_server.js (98%) rename packages/meteor-accounts-saml/{ => server}/saml_utils.js (99%) diff --git a/packages/meteor-accounts-saml/client/index.js b/packages/meteor-accounts-saml/client/index.js new file mode 100644 index 0000000000000..5ca4ae3d5c181 --- /dev/null +++ b/packages/meteor-accounts-saml/client/index.js @@ -0,0 +1 @@ +import './saml_client'; diff --git a/packages/meteor-accounts-saml/saml_client.js b/packages/meteor-accounts-saml/client/saml_client.js similarity index 98% rename from packages/meteor-accounts-saml/saml_client.js rename to packages/meteor-accounts-saml/client/saml_client.js index bc0076e9ac944..a30ad29dca19f 100644 --- a/packages/meteor-accounts-saml/saml_client.js +++ b/packages/meteor-accounts-saml/client/saml_client.js @@ -2,6 +2,7 @@ import { Meteor } from 'meteor/meteor'; import { Accounts } from 'meteor/accounts-base'; import { Random } from 'meteor/random'; +import { ServiceConfiguration } from 'meteor/service-configuration'; if (!Accounts.saml) { Accounts.saml = {}; diff --git a/packages/meteor-accounts-saml/package.js b/packages/meteor-accounts-saml/package.js index 919afa37eb62c..4c080b8739d29 100644 --- a/packages/meteor-accounts-saml/package.js +++ b/packages/meteor-accounts-saml/package.js @@ -6,12 +6,18 @@ Package.describe({ }); Package.on_use(function(api) { - api.use('rocketchat:lib', 'server'); - api.use('ecmascript'); - api.use(['routepolicy', 'webapp', 'service-configuration'], 'server'); - api.use(['http', 'accounts-base'], ['client', 'server']); + api.use([ + 'ecmascript', + 'http', + 'accounts-base', + ]); + api.use([ + 'routepolicy', + 'webapp', + 'rocketchat:lib', + 'service-configuration', + ], 'server'); - api.add_files(['saml_server.js', 'saml_utils.js'], 'server'); - api.add_files(['saml_rocketchat.js'], 'server'); - api.add_files('saml_client.js', 'client'); + api.mainModule('client/index.js', 'client'); + api.mainModule('server/index.js', 'server'); }); diff --git a/packages/meteor-accounts-saml/server/index.js b/packages/meteor-accounts-saml/server/index.js new file mode 100644 index 0000000000000..b9c087f108477 --- /dev/null +++ b/packages/meteor-accounts-saml/server/index.js @@ -0,0 +1,2 @@ +import './saml_rocketchat'; +import './saml_server'; diff --git a/packages/meteor-accounts-saml/saml_rocketchat.js b/packages/meteor-accounts-saml/server/saml_rocketchat.js similarity index 97% rename from packages/meteor-accounts-saml/saml_rocketchat.js rename to packages/meteor-accounts-saml/server/saml_rocketchat.js index 40d18a5cb0bd6..4b08f8f0e5c4f 100644 --- a/packages/meteor-accounts-saml/saml_rocketchat.js +++ b/packages/meteor-accounts-saml/server/saml_rocketchat.js @@ -1,5 +1,8 @@ import { Meteor } from 'meteor/meteor'; import { Accounts } from 'meteor/accounts-base'; +import { RocketChat } from 'meteor/rocketchat:lib'; +import { Logger } from 'meteor/rocketchat:logger'; +import { ServiceConfiguration } from 'meteor/service-configuration'; const logger = new Logger('steffo:meteor-accounts-saml', { methods: { diff --git a/packages/meteor-accounts-saml/saml_server.js b/packages/meteor-accounts-saml/server/saml_server.js similarity index 98% rename from packages/meteor-accounts-saml/saml_server.js rename to packages/meteor-accounts-saml/server/saml_server.js index 4bc41a2e5445f..4794b9d6254e1 100644 --- a/packages/meteor-accounts-saml/saml_server.js +++ b/packages/meteor-accounts-saml/server/saml_server.js @@ -1,9 +1,10 @@ -/* globals RoutePolicy, SAML */ -/* jshint newcap: false */ import { Meteor } from 'meteor/meteor'; import { Accounts } from 'meteor/accounts-base'; import { Random } from 'meteor/random'; import { WebApp } from 'meteor/webapp'; +import { RocketChat } from 'meteor/rocketchat:lib'; +import { RoutePolicy } from 'meteor/routepolicy'; +import { SAML } from './saml_utils'; import _ from 'underscore'; if (!Accounts.saml) { diff --git a/packages/meteor-accounts-saml/saml_utils.js b/packages/meteor-accounts-saml/server/saml_utils.js similarity index 99% rename from packages/meteor-accounts-saml/saml_utils.js rename to packages/meteor-accounts-saml/server/saml_utils.js index 97ea454c7292e..1331abd69fb74 100644 --- a/packages/meteor-accounts-saml/saml_utils.js +++ b/packages/meteor-accounts-saml/server/saml_utils.js @@ -1,5 +1,3 @@ -/* globals SAML:true */ - import { Meteor } from 'meteor/meteor'; import zlib from 'zlib'; import xmlCrypto from 'xml-crypto'; @@ -8,11 +6,10 @@ import xmldom from 'xmldom'; import querystring from 'querystring'; import xmlbuilder from 'xmlbuilder'; import array2string from 'arraybuffer-to-string'; - // var prefixMatch = new RegExp(/(?!xmlns)^.*:/); -SAML = function(options) { +export const SAML = function(options) { this.options = this.initialize(options); };