@zohodesk/react-cli 0.0.1-exp.169.1 → 0.0.1-exp.175.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +1 -0
- package/{CHANGELOG.md → CHANGELOG-fz.md} +0 -0
- package/Changelog.md +1019 -0
- package/README.md +17 -936
- package/docs/VariableConversion.md +678 -0
- package/lib/configs/jest.config.js +8 -10
- package/lib/configs/libAlias.js +10 -3
- package/lib/configs/resolvers.js +38 -0
- package/lib/configs/webpack.dev.config.js +19 -26
- package/lib/configs/webpack.docs.config.js +12 -19
- package/lib/configs/webpack.impact.config.js +13 -15
- package/lib/configs/webpack.prod.config.js +24 -28
- package/lib/constants.js +31 -0
- package/lib/jest/preProcessors/cssPreprocessor.js +14 -7
- package/lib/loaderUtils/getCSSLoaders.js +45 -8
- package/lib/pluginUtils/configHtmlWebpackPlugins.js +59 -0
- package/lib/pluginUtils/getDevPlugins.js +14 -34
- package/lib/pluginUtils/getProdPlugins.js +24 -42
- package/lib/postcss-plugins/{ExcludeRTLPlugin.js → ExcludePlugin.js} +1 -1
- package/lib/postcss-plugins/hoverActivePlugin.js +51 -27
- package/lib/postcss-plugins/variableModificationPlugin/ErrorHandler.js +37 -0
- package/lib/postcss-plugins/variableModificationPlugin/index.js +248 -0
- package/lib/postcss-plugins/variableModifier.js +244 -0
- package/lib/schemas/index.js +50 -10
- package/lib/servers/docsServerCore.js +13 -12
- package/lib/servers/getCliPath.js +1 -1
- package/lib/servers/httpsOptions.js +40 -9
- package/lib/servers/nowatchserver.js +12 -11
- package/lib/servers/server.js +14 -13
- package/lib/utils/getOptions.js +42 -14
- package/package.json +5 -34
- package/postpublish.js +6 -4
- package/templates/docs/css/style.css +1 -1
- package/templates/docs/index.html +9 -1
- package/cert/Tsicsezwild-22-23.crt +0 -37
- package/cert/Tsicsezwild-22-23.key +0 -27
| @@ -29,28 +29,29 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de | |
| 29 29 |  | 
| 30 30 | 
             
            // import fs from 'fs';
         | 
| 31 31 | 
             
            var _default = isSSTest => {
         | 
| 32 | 
            -
               | 
| 33 | 
            -
               | 
| 32 | 
            +
              const options = (0, _utils.getOptions)();
         | 
| 33 | 
            +
              const httpsOptions = (0, _httpsOptions.httpsOptionsWithUserFriendlyError)(options);
         | 
| 34 | 
            +
              const {
         | 
| 34 35 | 
             
                docs: {
         | 
| 35 36 | 
             
                  server
         | 
| 36 37 | 
             
                }
         | 
| 37 38 | 
             
              } = options;
         | 
| 38 | 
            -
               | 
| 39 | 
            +
              const {
         | 
| 39 40 | 
             
                port,
         | 
| 40 41 | 
             
                branch,
         | 
| 41 42 | 
             
                host,
         | 
| 42 43 | 
             
                domain,
         | 
| 43 44 | 
             
                iphost
         | 
| 44 45 | 
             
              } = server;
         | 
| 45 | 
            -
               | 
| 46 | 
            +
              const appPath = process.cwd();
         | 
| 46 47 | 
             
              const app = (0, _express.default)();
         | 
| 47 48 | 
             
              app.use(_express.default.json());
         | 
| 48 49 | 
             
              app.use(_express.default.urlencoded({
         | 
| 49 50 | 
             
                extended: true
         | 
| 50 51 | 
             
              }));
         | 
| 51 | 
            -
               | 
| 52 | 
            -
               | 
| 53 | 
            -
               | 
| 52 | 
            +
              const docsConfig = (0, _webpackDocs.default)(isSSTest);
         | 
| 53 | 
            +
              const compiler = (0, _webpack.default)(docsConfig);
         | 
| 54 | 
            +
              const wdm = (0, _webpackDevMiddleware.default)(compiler, {
         | 
| 54 55 | 
             
                logLevel: 'error',
         | 
| 55 56 | 
             
                publicPath: docsConfig.output.publicPath,
         | 
| 56 57 | 
             
                headers: {
         | 
| @@ -67,7 +68,7 @@ var _default = isSSTest => { | |
| 67 68 | 
             
                res.sendFile(_path.default.join(__dirname, '..', '..', 'templates', 'docs', 'index.html'));
         | 
| 68 69 | 
             
              });
         | 
| 69 70 | 
             
              app.use('/author/get', (req, res) => {
         | 
| 70 | 
            -
                 | 
| 71 | 
            +
                const {
         | 
| 71 72 | 
             
                  query: {
         | 
| 72 73 | 
             
                    componentName = ''
         | 
| 73 74 | 
             
                  }
         | 
| @@ -84,7 +85,7 @@ var _default = isSSTest => { | |
| 84 85 |  | 
| 85 86 | 
             
              if (branch) {
         | 
| 86 87 | 
             
                app.post('/repo/merge', (req, res) => {
         | 
| 87 | 
            -
                   | 
| 88 | 
            +
                  const {
         | 
| 88 89 | 
             
                    ref
         | 
| 89 90 | 
             
                  } = req.body;
         | 
| 90 91 |  | 
| @@ -98,7 +99,7 @@ var _default = isSSTest => { | |
| 98 99 | 
             
                });
         | 
| 99 100 | 
             
              }
         | 
| 100 101 |  | 
| 101 | 
            -
              const httpsServer = _https.default.createServer( | 
| 102 | 
            +
              const httpsServer = _https.default.createServer(httpsOptions, app);
         | 
| 102 103 |  | 
| 103 104 | 
             
              if (!isSSTest) {
         | 
| 104 105 | 
             
                httpsServer.listen(port, err => {
         | 
| @@ -110,8 +111,8 @@ var _default = isSSTest => { | |
| 110 111 | 
             
                });
         | 
| 111 112 | 
             
              }
         | 
| 112 113 |  | 
| 113 | 
            -
               | 
| 114 | 
            -
               | 
| 114 | 
            +
              const httpPort = Number(port) + 1;
         | 
| 115 | 
            +
              const http = app.listen(httpPort, err => {
         | 
| 115 116 | 
             
                if (err) {
         | 
| 116 117 | 
             
                  throw err;
         | 
| 117 118 | 
             
                }
         | 
| @@ -24,5 +24,5 @@ const suffixExt = isWindows ? '.cmd' : ''; | |
| 24 24 | 
             
            function getCliPath(libName) {
         | 
| 25 25 | 
             
              const cliPath = _getCliPath(libName + suffixExt);
         | 
| 26 26 |  | 
| 27 | 
            -
              return (0, _fs.existsSync)(cliPath) ? cliPath : libName;
         | 
| 27 | 
            +
              return (0, _fs.existsSync)(cliPath) ? cliPath : libName + suffixExt;
         | 
| 28 28 | 
             
            }
         | 
| @@ -3,16 +3,47 @@ | |
| 3 3 | 
             
            Object.defineProperty(exports, "__esModule", {
         | 
| 4 4 | 
             
              value: true
         | 
| 5 5 | 
             
            });
         | 
| 6 | 
            -
            exports.httpsOptions =  | 
| 6 | 
            +
            exports.httpsOptions = httpsOptions;
         | 
| 7 | 
            +
            exports.httpsOptionsWithUserFriendlyError = httpsOptionsWithUserFriendlyError;
         | 
| 7 8 |  | 
| 8 | 
            -
             | 
| 9 | 
            +
            // import fs from 'fs';
         | 
| 10 | 
            +
            // import path from 'path';
         | 
| 11 | 
            +
            // export const httpsOptions = {
         | 
| 12 | 
            +
            //   key: fs.readFileSync(path.join(__dirname, './cert/Tsicsezwild-22-23.key')),
         | 
| 13 | 
            +
            //   cert: fs.readFileSync(path.join(__dirname, './cert/Tsicsezwild-22-23.crt'))
         | 
| 14 | 
            +
            // };
         | 
| 15 | 
            +
            function httpsOptions(options) {
         | 
| 16 | 
            +
              const {
         | 
| 17 | 
            +
                httpsCerts
         | 
| 18 | 
            +
              } = options.app.server;
         | 
| 9 19 |  | 
| 10 | 
            -
             | 
| 20 | 
            +
              const certificate = require(require.resolve(httpsCerts, {
         | 
| 21 | 
            +
                paths: [process.cwd()]
         | 
| 22 | 
            +
              })); // TODO: in future we may do some version based check. certificate.version
         | 
| 11 23 |  | 
| 12 | 
            -
            function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
         | 
| 13 24 |  | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 25 | 
            +
              return certificate.httpsOptions;
         | 
| 26 | 
            +
            }
         | 
| 27 | 
            +
             | 
| 28 | 
            +
            function httpsOptionsWithUserFriendlyError(options) {
         | 
| 29 | 
            +
              const {
         | 
| 30 | 
            +
                httpsCerts
         | 
| 31 | 
            +
              } = options.app.server;
         | 
| 32 | 
            +
             | 
| 33 | 
            +
              if (typeof httpsCerts === 'string') {
         | 
| 34 | 
            +
                try {
         | 
| 35 | 
            +
                  const certificate = httpsOptions(options);
         | 
| 36 | 
            +
                  return certificate;
         | 
| 37 | 
            +
                } catch (error) {
         | 
| 38 | 
            +
                  if (error.message.indexOf('Cannot find module') !== -1) {
         | 
| 39 | 
            +
                    console.error(`You have given react-cli.app.server.httpsCerts as "${httpsCerts}". \n But it seems that file path have some problem.\n we are unable to locate "${httpsCerts}" in "${process.cwd()}"`);
         | 
| 40 | 
            +
                  } else {
         | 
| 41 | 
            +
                    console.error(error);
         | 
| 42 | 
            +
                  }
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                  process.exit(0);
         | 
| 45 | 
            +
                }
         | 
| 46 | 
            +
              } else {
         | 
| 47 | 
            +
                return null;
         | 
| 48 | 
            +
              }
         | 
| 49 | 
            +
            }
         | 
| @@ -19,15 +19,16 @@ var _devBuild = require("./devBuild"); | |
| 19 19 | 
             
            function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
         | 
| 20 20 |  | 
| 21 21 | 
             
            // import webpack from 'webpack';
         | 
| 22 | 
            -
             | 
| 22 | 
            +
            const options = (0, _utils.getOptions)(); // let args = process.argv.slice(3);
         | 
| 23 23 |  | 
| 24 | 
            -
             | 
| 24 | 
            +
            const httpsOptions = (0, _httpsOptions.httpsOptionsWithUserFriendlyError)(options);
         | 
| 25 | 
            +
            const {
         | 
| 25 26 | 
             
              app: {
         | 
| 26 27 | 
             
                context,
         | 
| 27 28 | 
             
                server
         | 
| 28 29 | 
             
              }
         | 
| 29 30 | 
             
            } = options;
         | 
| 30 | 
            -
             | 
| 31 | 
            +
            const {
         | 
| 31 32 | 
             
              host,
         | 
| 32 33 | 
             
              port,
         | 
| 33 34 | 
             
              domain,
         | 
| @@ -35,9 +36,9 @@ let { | |
| 35 36 | 
             
              hasMock,
         | 
| 36 37 | 
             
              mockPort
         | 
| 37 38 | 
             
            } = server;
         | 
| 38 | 
            -
             | 
| 39 | 
            -
             | 
| 40 | 
            -
             | 
| 39 | 
            +
            const isCompatableHttp2 = Number(process.version.slice(1).split('.')[0]) >= 8;
         | 
| 40 | 
            +
            const contextURL = disableContextURL ? '' : `/${context}`;
         | 
| 41 | 
            +
            const serverUrl = (0, _utils.getServerURL)(server, 'htt' + 'ps');
         | 
| 41 42 | 
             
            const {
         | 
| 42 43 | 
             
              zipname,
         | 
| 43 44 | 
             
              cssSelectorZipPath,
         | 
| @@ -83,7 +84,7 @@ app.use('/wms/*', (req, res) => { | |
| 83 84 | 
             
              res.sendFile(_path.default.join(__dirname, '..', '..', 'templates', 'wms', 'index.html'));
         | 
| 84 85 | 
             
            });
         | 
| 85 86 |  | 
| 86 | 
            -
            const httpsServer = _https.default.createServer( | 
| 87 | 
            +
            const httpsServer = _https.default.createServer(httpsOptions, app);
         | 
| 87 88 |  | 
| 88 89 | 
             
            const wss = new _ws.default.Server({
         | 
| 89 90 | 
             
              server: httpsServer
         | 
| @@ -101,7 +102,7 @@ wss.on('connection', ws => { | |
| 101 102 | 
             
            });
         | 
| 102 103 | 
             
            app.post('/wmsmockapi', (req, res) => {
         | 
| 103 104 | 
             
              wsPool.forEach(ws => {
         | 
| 104 | 
            -
                 | 
| 105 | 
            +
                const {
         | 
| 105 106 | 
             
                  body
         | 
| 106 107 | 
             
                } = req;
         | 
| 107 108 |  | 
| @@ -161,7 +162,7 @@ httpsServer.listen(port, err => { | |
| 161 162 | 
             
            if (isCompatableHttp2) {
         | 
| 162 163 | 
             
              const http2 = require('http2');
         | 
| 163 164 |  | 
| 164 | 
            -
              const http2Server = http2.createSecureServer( | 
| 165 | 
            +
              const http2Server = http2.createSecureServer(httpsOptions); // eslint-disable-next-line no-unused-vars
         | 
| 165 166 |  | 
| 166 167 | 
             
              http2Server.on('stream', (stream, headers) => {
         | 
| 167 168 | 
             
                stream.respond({
         | 
| @@ -170,7 +171,7 @@ if (isCompatableHttp2) { | |
| 170 171 | 
             
                });
         | 
| 171 172 | 
             
                stream.end('<h1>Hello World! <br>Working with http2</h1>');
         | 
| 172 173 | 
             
              });
         | 
| 173 | 
            -
               | 
| 174 | 
            +
              const http2Port = Number(port) + 1;
         | 
| 174 175 | 
             
              http2Server.listen(http2Port, err => {
         | 
| 175 176 | 
             
                if (err) {
         | 
| 176 177 | 
             
                  throw err;
         | 
| @@ -186,7 +187,7 @@ if (isCompatableHttp2) { | |
| 186 187 | 
             
              (0, _utils.log)('Your node version didn\'t adopted http2 support. Kindly update that to 8 LTS or above you can engage the http2');
         | 
| 187 188 | 
             
            }
         | 
| 188 189 |  | 
| 189 | 
            -
             | 
| 190 | 
            +
            const httpPort = Number(port) + (isCompatableHttp2 ? 2 : 1);
         | 
| 190 191 | 
             
            app.listen(httpPort, err => {
         | 
| 191 192 | 
             
              if (err) {
         | 
| 192 193 | 
             
                throw err;
         | 
    
        package/lib/servers/server.js
    CHANGED
    
    | @@ -25,14 +25,15 @@ var _httpsOptions = require("./httpsOptions"); | |
| 25 25 | 
             
            function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
         | 
| 26 26 |  | 
| 27 27 | 
             
            // import fs from 'fs';
         | 
| 28 | 
            -
             | 
| 29 | 
            -
             | 
| 28 | 
            +
            const options = (0, _utils.getOptions)();
         | 
| 29 | 
            +
            const httpsOptions = (0, _httpsOptions.httpsOptionsWithUserFriendlyError)(options);
         | 
| 30 | 
            +
            const {
         | 
| 30 31 | 
             
              app: {
         | 
| 31 32 | 
             
                context,
         | 
| 32 33 | 
             
                server
         | 
| 33 34 | 
             
              }
         | 
| 34 35 | 
             
            } = options;
         | 
| 35 | 
            -
             | 
| 36 | 
            +
            const {
         | 
| 36 37 | 
             
              host,
         | 
| 37 38 | 
             
              port,
         | 
| 38 39 | 
             
              domain,
         | 
| @@ -41,9 +42,9 @@ let { | |
| 41 42 | 
             
              hasMock,
         | 
| 42 43 | 
             
              mockPort
         | 
| 43 44 | 
             
            } = server;
         | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 45 | 
            +
            const isCompatableHttp2 = Number(process.version.substr(1).split('.')[0]) >= 8;
         | 
| 46 | 
            +
            const contextURL = disableContextURL ? '' : `/${context}`;
         | 
| 47 | 
            +
            const serverUrl = (0, _utils.getServerURL)(server, 'htt' + 'ps');
         | 
| 47 48 | 
             
            const {
         | 
| 48 49 | 
             
              writeToDisk
         | 
| 49 50 | 
             
            } = options.impactService;
         | 
| @@ -72,8 +73,8 @@ if (mode === 'prod') { | |
| 72 73 | 
             
            } // console.log({ contextURL });
         | 
| 73 74 |  | 
| 74 75 |  | 
| 75 | 
            -
             | 
| 76 | 
            -
             | 
| 76 | 
            +
            const compiler = (0, _webpack.default)(config);
         | 
| 77 | 
            +
            const webpackServerOptions = {
         | 
| 77 78 | 
             
              logLevel: 'error',
         | 
| 78 79 | 
             
              publicPath: mode === 'prod' ? contextURL === '' ? `${serverUrl}/${contextURL}` : serverUrl + contextURL : config.output.publicPath,
         | 
| 79 80 | 
             
              headers: options.app.enableDevCache ? {
         | 
| @@ -114,7 +115,7 @@ app.use('/wms/*', (req, res) => { | |
| 114 115 | 
             
              res.sendFile(_path.default.join(__dirname, '..', '..', 'templates', 'wms', 'index.html'));
         | 
| 115 116 | 
             
            });
         | 
| 116 117 |  | 
| 117 | 
            -
            const httpsServer = _https.default.createServer( | 
| 118 | 
            +
            const httpsServer = _https.default.createServer(httpsOptions, app);
         | 
| 118 119 |  | 
| 119 120 | 
             
            const wss = new _ws.default.Server({
         | 
| 120 121 | 
             
              server: httpsServer
         | 
| @@ -132,7 +133,7 @@ wss.on('connection', ws => { | |
| 132 133 | 
             
            });
         | 
| 133 134 | 
             
            app.post('/wmsmockapi', (req, res) => {
         | 
| 134 135 | 
             
              wsPool.forEach(ws => {
         | 
| 135 | 
            -
                 | 
| 136 | 
            +
                const {
         | 
| 136 137 | 
             
                  body
         | 
| 137 138 | 
             
                } = req;
         | 
| 138 139 |  | 
| @@ -178,7 +179,7 @@ httpsServer.listen(port, err => { | |
| 178 179 | 
             
            if (isCompatableHttp2) {
         | 
| 179 180 | 
             
              const http2 = require('http2');
         | 
| 180 181 |  | 
| 181 | 
            -
              const http2Server = http2.createSecureServer( | 
| 182 | 
            +
              const http2Server = http2.createSecureServer(httpsOptions); // eslint-disable-next-line no-unused-vars
         | 
| 182 183 |  | 
| 183 184 | 
             
              http2Server.on('stream', (stream, headers) => {
         | 
| 184 185 | 
             
                stream.respond({
         | 
| @@ -187,7 +188,7 @@ if (isCompatableHttp2) { | |
| 187 188 | 
             
                });
         | 
| 188 189 | 
             
                stream.end('<h1>Hello World! <br>Working with http2</h1>');
         | 
| 189 190 | 
             
              });
         | 
| 190 | 
            -
               | 
| 191 | 
            +
              const http2Port = Number(port) + 1;
         | 
| 191 192 | 
             
              http2Server.listen(http2Port, err => {
         | 
| 192 193 | 
             
                if (err) {
         | 
| 193 194 | 
             
                  throw err;
         | 
| @@ -203,7 +204,7 @@ if (isCompatableHttp2) { | |
| 203 204 | 
             
              (0, _utils.log)('Your node version didn\'t adopted http2 support. Kindly update that to 8 LTS or above you can engage the http2');
         | 
| 204 205 | 
             
            }
         | 
| 205 206 |  | 
| 206 | 
            -
             | 
| 207 | 
            +
            const httpPort = Number(port) + (isCompatableHttp2 ? 2 : 1);
         | 
| 207 208 | 
             
            app.listen(httpPort, err => {
         | 
| 208 209 | 
             
              if (err) {
         | 
| 209 210 | 
             
                throw err;
         | 
    
        package/lib/utils/getOptions.js
    CHANGED
    
    | @@ -26,14 +26,14 @@ const NPM_CONFIG_PREFIX = 'npm_config_'; // TODO: we have to do option parse log | |
| 26 26 | 
             
            // // clone:type
         | 
| 27 27 |  | 
| 28 28 | 
             
            const processEnv = {};
         | 
| 29 | 
            -
             | 
| 29 | 
            +
            const keysWithColon = [];
         | 
| 30 30 | 
             
            Object.keys(process.env).filter(key => key.startsWith(NPM_CONFIG_PREFIX)).forEach(key => {
         | 
| 31 | 
            -
               | 
| 31 | 
            +
              const nkey = key.slice(NPM_CONFIG_PREFIX.length);
         | 
| 32 32 | 
             
              processEnv[nkey] = process.env[key];
         | 
| 33 33 | 
             
              nkey.includes(':') && keysWithColon.push(nkey);
         | 
| 34 34 | 
             
            });
         | 
| 35 35 | 
             
            keysWithColon.forEach(key => {
         | 
| 36 | 
            -
               | 
| 36 | 
            +
              const nkey = key.replace(/:/g, '_');
         | 
| 37 37 |  | 
| 38 38 | 
             
              if (processEnv[nkey]) {
         | 
| 39 39 | 
             
                throw Error('there is some options conflict', key, nkey);
         | 
| @@ -60,8 +60,8 @@ function getCWD() { | |
| 60 60 | 
             
              let cwd = process.cwd();
         | 
| 61 61 |  | 
| 62 62 | 
             
              try {
         | 
| 63 | 
            -
                 | 
| 64 | 
            -
                 | 
| 63 | 
            +
                const ress = (0, _child_process.execSync)('npm bin').toString();
         | 
| 64 | 
            +
                const i = ress.lastIndexOf('node_modules');
         | 
| 65 65 | 
             
                cwd = i === -1 ? cwd : ress.slice(0, i);
         | 
| 66 66 | 
             
              } catch (error) {
         | 
| 67 67 | 
             
                console.log(error);
         | 
| @@ -73,7 +73,7 @@ function getCWD() { | |
| 73 73 |  | 
| 74 74 | 
             
            args.forEach(option => {
         | 
| 75 75 | 
             
              if (/^--./.test(option)) {
         | 
| 76 | 
            -
                 | 
| 76 | 
            +
                const equIndex = option.indexOf('='); // equIndex = equIndex === -1 ? option.length : equIndex;
         | 
| 77 77 |  | 
| 78 78 | 
             
                let key = option.slice(2, equIndex);
         | 
| 79 79 | 
             
                let value = option.slice(equIndex + 1);
         | 
| @@ -88,10 +88,10 @@ args.forEach(option => { | |
| 88 88 | 
             
              }
         | 
| 89 89 | 
             
            });
         | 
| 90 90 |  | 
| 91 | 
            -
             | 
| 92 | 
            -
               | 
| 91 | 
            +
            const defaulter = (target, source) => {
         | 
| 92 | 
            +
              const defaultObject = {};
         | 
| 93 93 | 
             
              Object.keys(target).forEach(key => {
         | 
| 94 | 
            -
                 | 
| 94 | 
            +
                const data = target[key];
         | 
| 95 95 |  | 
| 96 96 | 
             
                if (data && typeof data === 'object') {
         | 
| 97 97 | 
             
                  if (Array.isArray(data)) {
         | 
| @@ -122,26 +122,54 @@ let defaulter = (target, source) => { | |
| 122 122 | 
             
              return defaultObject;
         | 
| 123 123 | 
             
            };
         | 
| 124 124 |  | 
| 125 | 
            -
            global.reactCLIOptions = null;
         | 
| 125 | 
            +
            global.reactCLIOptions = null; // function selectn(obj, key) {
         | 
| 126 | 
            +
            //   let temp = obj;
         | 
| 127 | 
            +
            //   let keys = key.split('.');
         | 
| 128 | 
            +
            //   for (let i = 0; i < keys.length; i++) {
         | 
| 129 | 
            +
            //     const element = keys[i];
         | 
| 130 | 
            +
            //     temp = temp && temp[element];
         | 
| 131 | 
            +
            //   }
         | 
| 132 | 
            +
            //   return temp;
         | 
| 133 | 
            +
            // }
         | 
| 134 | 
            +
             | 
| 135 | 
            +
            function deprecationSupport(options) {
         | 
| 136 | 
            +
              // if (selectn(options, ".app.hasRTL") === true) {
         | 
| 137 | 
            +
              if (options.app.hasRTL === true) {
         | 
| 138 | 
            +
                options.app.plugins.hasRTL = true;
         | 
| 139 | 
            +
              }
         | 
| 140 | 
            +
             | 
| 141 | 
            +
              if (options.docs.hasRTL === true) {
         | 
| 142 | 
            +
                options.docs.plugins.hasRTL = true;
         | 
| 143 | 
            +
              }
         | 
| 144 | 
            +
             | 
| 145 | 
            +
              if (options.app.rtlExclude.length > 0) {
         | 
| 146 | 
            +
                options.app.exclude.rtl = options.app.rtlExclude;
         | 
| 147 | 
            +
              }
         | 
| 148 | 
            +
             | 
| 149 | 
            +
              if (options.docs.rtlExclude.length > 0) {
         | 
| 150 | 
            +
                options.docs.exclude.rtl = options.docs.rtlExclude;
         | 
| 151 | 
            +
              }
         | 
| 152 | 
            +
            }
         | 
| 126 153 |  | 
| 127 | 
            -
             | 
| 154 | 
            +
            const getOptions = () => {
         | 
| 128 155 | 
             
              if (global.reactCLIOptions) {
         | 
| 129 156 | 
             
                return global.reactCLIOptions;
         | 
| 130 157 | 
             
              }
         | 
| 131 158 |  | 
| 132 | 
            -
               | 
| 159 | 
            +
              const appPath = process.cwd();
         | 
| 133 160 | 
             
              let userSchemas;
         | 
| 134 161 |  | 
| 135 | 
            -
               | 
| 162 | 
            +
              const packagePath = _path.default.join(appPath, 'package.json');
         | 
| 136 163 |  | 
| 137 164 | 
             
              if (_fs.default.existsSync(packagePath)) {
         | 
| 138 165 | 
             
                userSchemas = require(packagePath)['react-cli'] || {};
         | 
| 139 166 | 
             
              }
         | 
| 140 167 |  | 
| 141 | 
            -
               | 
| 168 | 
            +
              const options = defaulter(_schemas.default, userSchemas || {}); // for future may be for npm 8 edge cases
         | 
| 142 169 |  | 
| 143 170 | 
             
              options.npmVersion = getNpmVersion();
         | 
| 144 171 | 
             
              options.cwd = getCWD();
         | 
| 172 | 
            +
              deprecationSupport(options);
         | 
| 145 173 | 
             
              options.packageVersion = process.env.npm_package_version;
         | 
| 146 174 | 
             
              global.reactCLIOptions = options;
         | 
| 147 175 | 
             
              return options;
         | 
    
        package/package.json
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            {
         | 
| 2 2 | 
             
              "name": "@zohodesk/react-cli",
         | 
| 3 | 
            -
              "version": "0.0.1-exp. | 
| 3 | 
            +
              "version": "0.0.1-exp.175.0",
         | 
| 4 4 | 
             
              "description": "A CLI tool for build modern web application and libraries",
         | 
| 5 5 | 
             
              "scripts": {
         | 
| 6 6 | 
             
                "init": "node ./lib/utils/init.js",
         | 
| @@ -27,6 +27,9 @@ | |
| 27 27 | 
             
                "url": "https://git.csez.zohocorpin.com/zohodesk/react-cli/issues"
         | 
| 28 28 | 
             
              },
         | 
| 29 29 | 
             
              "homepage": "https://git.csez.zohocorpin.com/zohodesk/react-cli/blob/2.0.0/README.md",
         | 
| 30 | 
            +
              "bin": {
         | 
| 31 | 
            +
                "react-cli": "bin/cli.js"
         | 
| 32 | 
            +
              },
         | 
| 30 33 | 
             
              "dependencies": {
         | 
| 31 34 | 
             
                "@babel/cli": "7.10.5",
         | 
| 32 35 | 
             
                "@babel/core": "7.11.1",
         | 
| @@ -36,10 +39,8 @@ | |
| 36 39 | 
             
                "@babel/preset-env": "7.11.0",
         | 
| 37 40 | 
             
                "@babel/preset-react": "7.10.4",
         | 
| 38 41 | 
             
                "@babel/runtime": "7.11.2",
         | 
| 39 | 
            -
                "@zohodesk/datetimejs": "1.0.0-beta.8",
         | 
| 40 42 | 
             
                "@zohodesk/eslint-plugin-react-performance": "1.0.3",
         | 
| 41 43 | 
             
                "@zohodesk/eslint-plugin-zsecurity": "0.0.1-beta.4",
         | 
| 42 | 
            -
                "@zohodesk/normalizer": "1.0.2",
         | 
| 43 44 | 
             
                "@zohodesk/postcss-rtl": "1.5.2",
         | 
| 44 45 | 
             
                "@zohodesk/propertytojson": "1.0.1",
         | 
| 45 46 | 
             
                "@zohodesk/screenshot-test": "0.0.1-beta.20",
         | 
| @@ -54,9 +55,7 @@ | |
| 54 55 | 
             
                "case-sensitive-paths-webpack-plugin": "2.3.0",
         | 
| 55 56 | 
             
                "compression": "1.7.4",
         | 
| 56 57 | 
             
                "copy-webpack-plugin": "5.1.2",
         | 
| 57 | 
            -
                "core-js": "3.6.5",
         | 
| 58 58 | 
             
                "css-loader": "4.2.1",
         | 
| 59 | 
            -
                "debug": "4.3.3",
         | 
| 60 59 | 
             
                "escodegen": "2.0.0",
         | 
| 61 60 | 
             
                "eslint": "7.6.0",
         | 
| 62 61 | 
             
                "eslint-html-reporter": "0.7.4",
         | 
| @@ -67,59 +66,34 @@ | |
| 67 66 | 
             
                "expect": "26.4.0",
         | 
| 68 67 | 
             
                "express": "4.17.1",
         | 
| 69 68 | 
             
                "file-loader": "6.0.0",
         | 
| 70 | 
            -
                "fz-i18n": "1.2.0-beta.15",
         | 
| 71 | 
            -
                "fz-layout": "1.0.0-beta.8",
         | 
| 72 | 
            -
                "fz-permission": "0.0.2",
         | 
| 73 69 | 
             
                "git-root-dir": "1.0.2",
         | 
| 74 70 | 
             
                "gitlab": "14.2.2",
         | 
| 75 | 
            -
                "history": "4.9.0",
         | 
| 76 | 
            -
                "hoist-non-react-statics": "3.3.2",
         | 
| 77 71 | 
             
                "html-loader": "1.1.0",
         | 
| 78 72 | 
             
                "html-webpack-inject-attributes-plugin": "1.0.6",
         | 
| 79 73 | 
             
                "html-webpack-plugin": "4.3.0",
         | 
| 80 74 | 
             
                "http-proxy-middleware": "1.0.5",
         | 
| 81 | 
            -
                "identity-obj-proxy": "3.0.0",
         | 
| 82 75 | 
             
                "jest": "26.4.0",
         | 
| 83 76 | 
             
                "jsdom": "16.4.0",
         | 
| 84 77 | 
             
                "loader-utils": "2.0.0",
         | 
| 85 78 | 
             
                "lodash-webpack-plugin": "0.11.5",
         | 
| 86 79 | 
             
                "mini-css-extract-plugin": "0.10.0",
         | 
| 87 | 
            -
                " | 
| 88 | 
            -
                "moment-timezone": "0.5.32",
         | 
| 89 | 
            -
                "nock": "13.0.4",
         | 
| 80 | 
            +
                "nock": "13.2.9",
         | 
| 90 81 | 
             
                "nodemailer": "6.4.11",
         | 
| 91 82 | 
             
                "nodemon": "2.0.4",
         | 
| 92 83 | 
             
                "optimize-js": "1.0.3",
         | 
| 93 84 | 
             
                "postcss": "7.0.32",
         | 
| 94 85 | 
             
                "postcss-combine-media-query": "1.0.1",
         | 
| 95 86 | 
             
                "postcss-hash-classname": "0.4.0",
         | 
| 96 | 
            -
                "postcss-import": "14.1.0",
         | 
| 97 87 | 
             
                "postcss-loader": "3.0.0",
         | 
| 98 88 | 
             
                "postcss-mobile-hover": "1.0.2",
         | 
| 99 89 | 
             
                "postcss-selector-replace": "1.0.2",
         | 
| 100 | 
            -
                "prop-types": "15.7.2",
         | 
| 101 | 
            -
                "react": "16.13.1",
         | 
| 102 | 
            -
                "react-dom": "16.13.1",
         | 
| 103 | 
            -
                "react-error-overlay": "6.0.7",
         | 
| 104 | 
            -
                "react-redux": "7.2.1",
         | 
| 105 | 
            -
                "react-router": "5.2.0",
         | 
| 106 | 
            -
                "react-router-redux": "4.0.8",
         | 
| 107 90 | 
             
                "react-test-renderer": "16.13.1",
         | 
| 108 | 
            -
                "react-transition-group": "2.7.1",
         | 
| 109 91 | 
             
                "redis": "3.0.2",
         | 
| 110 | 
            -
                "redux": "4.0.5",
         | 
| 111 | 
            -
                "redux-logger": "3.0.6",
         | 
| 112 92 | 
             
                "redux-mock-store": "1.5.4",
         | 
| 113 | 
            -
                "redux-router-middleware": "1.0.0-beta.22",
         | 
| 114 | 
            -
                "redux-thunk": "2.3.0",
         | 
| 115 | 
            -
                "reselect": "4.0.0",
         | 
| 116 93 | 
             
                "rimraf": "3.0.2",
         | 
| 117 94 | 
             
                "script-loader": "0.7.2",
         | 
| 118 | 
            -
                "selectn": "1.1.2",
         | 
| 119 | 
            -
                "simple-normalizr": "1.2.5",
         | 
| 120 95 | 
             
                "uglifycss": "0.0.29",
         | 
| 121 96 | 
             
                "url-loader": "4.1.0",
         | 
| 122 | 
            -
                "velocity-react": "1.4.3",
         | 
| 123 97 | 
             
                "webpack": "4.44.1",
         | 
| 124 98 | 
             
                "webpack-bundle-analyzer": "4.5.0",
         | 
| 125 99 | 
             
                "webpack-cli": "3.3.12",
         | 
| @@ -129,9 +103,6 @@ | |
| 129 103 | 
             
                "xhr2": "0.2.0",
         | 
| 130 104 | 
             
                "xmlhttprequest": "1.8.0"
         | 
| 131 105 | 
             
              },
         | 
| 132 | 
            -
              "bin": {
         | 
| 133 | 
            -
                "react-cli": "bin/cli.js"
         | 
| 134 | 
            -
              },
         | 
| 135 106 | 
             
              "babel": {
         | 
| 136 107 | 
             
                "presets": [
         | 
| 137 108 | 
             
                  [
         | 
    
        package/postpublish.js
    CHANGED
    
    | @@ -1,6 +1,8 @@ | |
| 1 1 | 
             
            const { execSync } = require('child_process');
         | 
| 2 | 
            -
            const { version } = require('./package.json');
         | 
| 3 | 
            -
             | 
| 2 | 
            +
            const { version, name } = require('./package.json');
         | 
| 3 | 
            +
            const tagName = `${name}@${version}`;
         | 
| 4 | 
            +
            // const tagName = `${name.replace(/^@/g, "").replace(/\//g, "-")}-v-${version}}@${version}`;
         | 
| 5 | 
            +
            console.log(`going to add git tag...  ${tagName}`);
         | 
| 4 6 |  | 
| 5 | 
            -
            execSync(`git tag -a  | 
| 6 | 
            -
            execSync(`git push origin  | 
| 7 | 
            +
            execSync(`git tag -a ${tagName}`, { stdio: 'inherit' });
         | 
| 8 | 
            +
            execSync(`git push origin ${tagName}`, { stdio: 'inherit' });
         | 
| @@ -438,6 +438,7 @@ | |
| 438 438 | 
             
            							Components[propComName].propTypes) ||
         | 
| 439 439 | 
             
            						{};
         | 
| 440 440 | 
             
            					let currentCompProps = Object.keys(propsObj) || [];
         | 
| 441 | 
            +
            					let currentCompPropsDescription = window.componentList && window.componentList[propComName] && window.componentList[propComName].propsDescription || (Components[propComName] && Components[propComName].propsDescription) || {};
         | 
| 441 442 | 
             
            					let currentCompDefault = Window.componentList && window.componentList[propComName] && window.componentList[propComName].defaultProps || (Components[propComName] && Components[propComName].defaultProps) || {};
         | 
| 442 443 | 
             
            					let componentsObj=componentObj && this.filter(Object.keys(componentObj),'').map((item,i)=>{
         | 
| 443 444 | 
             
            						return ({key:item,value:componentObj[item],length:Object.keys(componentObj[item]).length})
         | 
| @@ -767,6 +768,7 @@ | |
| 767 768 | 
             
            																<span className="brR">Type</span>
         | 
| 768 769 | 
             
            																<span className="brR">isRequired</span>
         | 
| 769 770 | 
             
            																<span className="brR ">Default Props</span>
         | 
| 771 | 
            +
            																<span className="brR ">Description</span>
         | 
| 770 772 | 
             
            															</div>
         | 
| 771 773 | 
             
            															{
         | 
| 772 774 | 
             
            																currentCompProps.map((value, i) => {
         | 
| @@ -796,9 +798,15 @@ | |
| 796 798 | 
             
            																			</span>
         | 
| 797 799 | 
             
            																			<span className="defaultProps">
         | 
| 798 800 | 
             
            																				<div className="bn">
         | 
| 799 | 
            -
            																					{JSON.stringify(currentCompDefault[value])}
         | 
| 801 | 
            +
            																					{JSON.stringify(currentCompDefault[value] || '')}
         | 
| 800 802 | 
             
            																				</div>
         | 
| 801 803 | 
             
            																			</span>
         | 
| 804 | 
            +
            																			<span className="defaultProps">
         | 
| 805 | 
            +
            																				<div className="bn">
         | 
| 806 | 
            +
            																					{JSON.stringify(currentCompPropsDescription[value] || '')}
         | 
| 807 | 
            +
            																				</div>
         | 
| 808 | 
            +
            																			</span>  
         | 
| 809 | 
            +
             | 
| 802 810 | 
             
            																		</div>
         | 
| 803 811 | 
             
            																	);
         | 
| 804 812 | 
             
            																})
         | 
| @@ -1,37 +0,0 @@ | |
| 1 | 
            -
            -----BEGIN CERTIFICATE-----
         | 
| 2 | 
            -
            MIIGXjCCBUagAwIBAgIRAMKJgToWlDYncIf54wIl/K4wDQYJKoZIhvcNAQELBQAw
         | 
| 3 | 
            -
            gY8xCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO
         | 
| 4 | 
            -
            BgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE3MDUGA1UE
         | 
| 5 | 
            -
            AxMuU2VjdGlnbyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD
         | 
| 6 | 
            -
            QTAeFw0yMjA0MjAwMDAwMDBaFw0yMzA0MjAyMzU5NTlaMB4xHDAaBgNVBAMTE2Nz
         | 
| 7 | 
            -
            ZXouem9ob2NvcnBpbi5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
         | 
| 8 | 
            -
            AQDaiXIoQmlYF7guFyGcjqmwJ4ksETK7R0QVoald3h0f8nkbqn29fg3MwvmMmnCV
         | 
| 9 | 
            -
            27frm0wYaWK7/xIWb0IIxYqGG2OmOFC4lv/jrGa96EH3fHm0DVU+4gFOf+qdvjdt
         | 
| 10 | 
            -
            vBdCxWw++dG8KJsbeFcJoF+az/Ei9vhjzgrKtHH62b9aw5i5lpVFbq9bZ0xr3xOx
         | 
| 11 | 
            -
            brOpZDk/Af2svICTi15/G+YGM7X5DL7z2tjtX8KZ5cbLIjkQS7chtjmx61Tuwq+f
         | 
| 12 | 
            -
            4zk0ge8w9hNkvcYrsueuT/FDyO8wbPphNPJBdGrjLnMT05vedAryYfl7LHe8ib3m
         | 
| 13 | 
            -
            T6QQ0afxvkIyOkpjIEiN1E/jAgMBAAGjggMjMIIDHzAfBgNVHSMEGDAWgBSNjF7E
         | 
| 14 | 
            -
            VK2K4Xfpm/mbBeG4AY1h4TAdBgNVHQ4EFgQUmkpYbSWtXdFPZfJSz+yW7EA0mjYw
         | 
| 15 | 
            -
            DgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUH
         | 
| 16 | 
            -
            AwEGCCsGAQUFBwMCMEkGA1UdIARCMEAwNAYLKwYBBAGyMQECAgcwJTAjBggrBgEF
         | 
| 17 | 
            -
            BQcCARYXaHR0cHM6Ly9zZWN0aWdvLmNvbS9DUFMwCAYGZ4EMAQIBMIGEBggrBgEF
         | 
| 18 | 
            -
            BQcBAQR4MHYwTwYIKwYBBQUHMAKGQ2h0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2Vj
         | 
| 19 | 
            -
            dGlnb1JTQURvbWFpblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5jcnQwIwYIKwYB
         | 
| 20 | 
            -
            BQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMIIBfwYKKwYBBAHWeQIEAgSC
         | 
| 21 | 
            -
            AW8EggFrAWkAdwCt9776fP8QyIudPZwePhhqtGcpXc+xDCTKhYY069yCigAAAYBH
         | 
| 22 | 
            -
            FYz3AAAEAwBIMEYCIQD0YmMCd5ZPhVwCYdHJFXaB3TeEVtY3GGBmJreCYpxpWwIh
         | 
| 23 | 
            -
            AKPLd+IUbrKGjN436yXigPnSHYMhYHjcOIwkJilCKW4kAHYAejKMVNi3LbYg6jjg
         | 
| 24 | 
            -
            Uh7phBZwMhOFTTvSK8E6V6NS61IAAAGARxWMsAAABAMARzBFAiEA2QOIvUWLlk5d
         | 
| 25 | 
            -
            dCQ+b3rJrhJhhgYu4KReme7QYuopJL8CIEuwHH4Ro9RfFajzZcYfL0tQO1zacBM+
         | 
| 26 | 
            -
            yRVvLTF3MbwDAHYA6D7Q2j71BjUy51covIlryQPTy9ERa+zraeF3fW0GvW4AAAGA
         | 
| 27 | 
            -
            RxWMjwAABAMARzBFAiAU9r8DFaPKtVJ/uCelx8aYgmawpzthhaOATzfS2jWpNwIh
         | 
| 28 | 
            -
            AJsUAAMJb17Vwk4HucoLRN3ve2qm8TzRiGepKIh/r0rdMEsGA1UdEQREMEKCE2Nz
         | 
| 29 | 
            -
            ZXouem9ob2NvcnBpbi5jb22CFSouY3Nlei56b2hvY29ycGluLmNvbYIUKi50c2ku
         | 
| 30 | 
            -
            em9ob2NvcnBpbi5jb20wDQYJKoZIhvcNAQELBQADggEBADbqEtyp7J47CbCHIZ+A
         | 
| 31 | 
            -
            nedURDLTV0G2cR/yHxbbSUfQsJUt8t736JVw4JnRN2Exch32v9LHvEr40O7TL4er
         | 
| 32 | 
            -
            OQuEIe7wTkcJ7wZ6bkxgI/ip8y0w2Ips4eVxSmnYYk0AjiyKmn+ujdNZ0yz7qfUE
         | 
| 33 | 
            -
            ysgRbsyL4ODlUBdTHjS6vFVtTmDWGE9St/gkQEHPoyGNe7v6+39GJEHW2XKYfuhK
         | 
| 34 | 
            -
            //nHcQxvyr2O5dJGlP1q1WIJRJyCp3Srbgso55H/ylmwfJ7ePYgM4GWbWEfSDLHW
         | 
| 35 | 
            -
            KOZL2IZgz+oRJikKU4CAvjKvpULK2rSnIs2W11z4KtLqyzTrVmkuJ6MP2rMBQrHu
         | 
| 36 | 
            -
            jTs=
         | 
| 37 | 
            -
            -----END CERTIFICATE-----
         | 
| @@ -1,27 +0,0 @@ | |
| 1 | 
            -
            -----BEGIN RSA PRIVATE KEY-----
         | 
| 2 | 
            -
            MIIEowIBAAKCAQEA2olyKEJpWBe4LhchnI6psCeJLBEyu0dEFaGpXd4dH/J5G6p9
         | 
| 3 | 
            -
            vX4NzML5jJpwldu365tMGGliu/8SFm9CCMWKhhtjpjhQuJb/46xmvehB93x5tA1V
         | 
| 4 | 
            -
            PuIBTn/qnb43bbwXQsVsPvnRvCibG3hXCaBfms/xIvb4Y84KyrRx+tm/WsOYuZaV
         | 
| 5 | 
            -
            RW6vW2dMa98TsW6zqWQ5PwH9rLyAk4tefxvmBjO1+Qy+89rY7V/CmeXGyyI5EEu3
         | 
| 6 | 
            -
            IbY5setU7sKvn+M5NIHvMPYTZL3GK7Lnrk/xQ8jvMGz6YTTyQXRq4y5zE9Ob3nQK
         | 
| 7 | 
            -
            8mH5eyx3vIm95k+kENGn8b5CMjpKYyBIjdRP4wIDAQABAoIBACfOaGpX6nte2rAe
         | 
| 8 | 
            -
            i4NKYzNQiEZsHYsKaKbuCv0ro695icDV1dCJ4PaevzjyurY5Tu+OGpbJv2/R/tfy
         | 
| 9 | 
            -
            TRtu7BQQch7JXD67VoIAmbhW0YlEdaCr2w64uRc06qXwC4WkALKrZlO0SpVU6iff
         | 
| 10 | 
            -
            TC9XNILtBJXjWYxIcCPLKYXRWu8romGJGNvZlabHkMMk1eF/rZvdmlgVj1LCE//A
         | 
| 11 | 
            -
            gjYPsiWCDi0ZWOCXNmKq4yNQnAPjHb4nhN/BumXKn9D/wl282FFx6E9Yetg/bvj6
         | 
| 12 | 
            -
            f2JN8AST1WwMcPxdnDKC+ZUD0mQqG+w3g47dkaTxc1G5Yot9t0rYujIjbtaFLiWN
         | 
| 13 | 
            -
            MEGDtsUCgYEA+TIOItGeaRRPdAfXDKjEw2/UfnNr1S9DyAFP7j3UajR7bDv/wWSG
         | 
| 14 | 
            -
            ct0tJnpK/LvnYsvTF1QQ3PV1hNNtu97XdDV6rwuDeVXOfDBH0ctbnqevTw4ShRuG
         | 
| 15 | 
            -
            +0qwfychuIy4jG0ZHGFn5adhBhspxGjgYqxJo9fdQBjU0ciH91B6IeUCgYEA4IEU
         | 
| 16 | 
            -
            GW9rJoVB86HVdaadq2VmuOdyGa+tLkPh8v47vPGB/vpRlThuuRRc51Oq+SRh7bC7
         | 
| 17 | 
            -
            FO4cjOa6VpM9dkeAc2GFPs+uyzzU8yRxeqO3gicvXC1sApaca9uv8Vp3WDacnlsu
         | 
| 18 | 
            -
            shVM+RXKLEi8/JHrcr9BCvSlycvZy8t+QUp6LicCgYBE1ocBJ1bTQEESlHfbj2OL
         | 
| 19 | 
            -
            eYEBzXCkW4Il5fbmoT3keMr/gzOLgPGDGYY3cuD0IBQzPor5jsd5wnTMVHujwlNS
         | 
| 20 | 
            -
            TtOtN0kCY6m+tLeiRMLyeO/8rq5/BrOrB17qQS0XhggVAq5FIMNKtYof3bEUCMSz
         | 
| 21 | 
            -
            fVR6Zk9APZvMt9CXiSuz4QKBgFHDMMrCpUd2KLrOKaubbrjJSUv2Hrv0GyJKXrPc
         | 
| 22 | 
            -
            m20Il8uA5s1trAWDwQIOmqn58iBayQeqYIOAVETLgwrcp49d6OUjRgmGsheLIjkD
         | 
| 23 | 
            -
            /wVLuBfeAwQ+TeGKNN21kNlzqj6R/sOktk/Q+7x9ETb6/cDgnpOa3fZMY5mxFt44
         | 
| 24 | 
            -
            fZ7pAoGBAN8ep49qQWxChYfqu75d3dkCcbF6UeWS+mDZ1QDkiJ5hGlDWDAC7EUma
         | 
| 25 | 
            -
            jf7c56wBydih+2XKFq2BWxyFcfzzxKJrNeMhGANi/yJ1QrECyrwVWnhP+OFfG5vR
         | 
| 26 | 
            -
            O+PzUCwZGet0PHG6r6IuvpGMCdZDYCt+fZSvIRJtmvIrtZWGKQly
         | 
| 27 | 
            -
            -----END RSA PRIVATE KEY-----
         |