Allowing env.yaml file for environment configs
							parent
							
								
									ad0b4c0604
								
							
						
					
					
						commit
						7a3f61dbb3
					
				|  | @ -4,5 +4,5 @@ public/uploads | ||||||
| /config/*-local.json | /config/*-local.json | ||||||
| .vscode | .vscode | ||||||
| **.DS_Store | **.DS_Store | ||||||
| .env | env.yaml | ||||||
| ecosystem.config.js | ecosystem.config.js | ||||||
							
								
								
									
										15
									
								
								README.md
								
								
								
								
							
							
						
						
									
										15
									
								
								README.md
								
								
								
								
							|  | @ -166,6 +166,21 @@ If you'd rather store settings in a file which isn't checked into version contro | ||||||
| 
 | 
 | ||||||
| This can also be used for payment modules too. Any settings in the `/config/<gateway>-local.json` file will override the `/config/<gateway>.json` file. | This can also be used for payment modules too. Any settings in the `/config/<gateway>-local.json` file will override the `/config/<gateway>.json` file. | ||||||
| 
 | 
 | ||||||
|  | ##### Environment configuration | ||||||
|  | 
 | ||||||
|  | An alternative to local configuration is using an `env.yaml` file (in the root of app) to override settings. You may want to do something like: | ||||||
|  | 
 | ||||||
|  | ``` yaml | ||||||
|  | development: | ||||||
|  |   port: 1111 | ||||||
|  |   databaseConnectionString: mongodb://127.0.0.1:27017/expresscart | ||||||
|  | production: | ||||||
|  |   port: 2222 | ||||||
|  |   databaseConnectionString: mongodb://prod_db_url:27017/expresscart | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | The app will read in the `NODE_ENV` and switch and override any valid settings. Eg: `databaseConnectionString` set in the `env.yaml` file will override anything in `settings.json` file (including local). | ||||||
|  | 
 | ||||||
| ##### Cart name and Cart description | ##### Cart name and Cart description | ||||||
| 
 | 
 | ||||||
| These values are used for search engine optimization (SEO) purposes. They will be used as the title and description when your website is listed in Google and other search engines. | These values are used for search engine optimization (SEO) purposes. They will be used as the title and description when your website is listed in Google and other search engines. | ||||||
|  |  | ||||||
							
								
								
									
										11
									
								
								app.js
								
								
								
								
							
							
						
						
									
										11
									
								
								app.js
								
								
								
								
							|  | @ -1,6 +1,11 @@ | ||||||
| require('dotenv').config(); | // require('dotenv').config();
 | ||||||
| const express = require('express'); | const fs = require('fs'); | ||||||
|  | const yenv = require('yenv'); | ||||||
|  | if(fs.existsSync('./env.yaml')){ | ||||||
|  |     process.env = yenv('env.yaml', { strict: false }); | ||||||
|  | } | ||||||
| const path = require('path'); | const path = require('path'); | ||||||
|  | const express = require('express'); | ||||||
| const logger = require('morgan'); | const logger = require('morgan'); | ||||||
| const cookieParser = require('cookie-parser'); | const cookieParser = require('cookie-parser'); | ||||||
| const bodyParser = require('body-parser'); | const bodyParser = require('body-parser'); | ||||||
|  | @ -279,7 +284,7 @@ if(!config.secretSession || config.secretSession === ''){ | ||||||
| 
 | 
 | ||||||
| app.enable('trust proxy'); | app.enable('trust proxy'); | ||||||
| app.use(helmet()); | app.use(helmet()); | ||||||
| app.set('port', process.env.PORT || 1111); | app.set('port', process.env.port || 1111); | ||||||
| app.use(logger('dev')); | app.use(logger('dev')); | ||||||
| app.use(bodyParser.urlencoded({ extended: false })); | app.use(bodyParser.urlencoded({ extended: false })); | ||||||
| app.use(cookieParser(config.secretCookie)); | app.use(cookieParser(config.secretCookie)); | ||||||
|  |  | ||||||
|  | @ -227,8 +227,12 @@ const getConfig = () => { | ||||||
| 
 | 
 | ||||||
|     config.themeViews = '../views/themes/' + config.theme + '/'; |     config.themeViews = '../views/themes/' + config.theme + '/'; | ||||||
| 
 | 
 | ||||||
|     // if db set to mongodb override connection with MONGODB_CONNECTION_STRING env var
 |     // Override from env.yaml environment file
 | ||||||
|     config.databaseConnectionString = process.env.MONGODB_CONNECTION_STRING || config.databaseConnectionString; |     Object.keys(config).forEach((configKey) => { | ||||||
|  |         if(process.env[configKey]){ | ||||||
|  |             config[configKey] = process.env[configKey]; | ||||||
|  |         } | ||||||
|  |     }); | ||||||
| 
 | 
 | ||||||
|     return config; |     return config; | ||||||
| }; | }; | ||||||
|  | @ -249,7 +253,7 @@ const getPaymentConfig = () => { | ||||||
|         config = Object.assign(config, localConfigObj); |         config = Object.assign(config, localConfigObj); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     // Override from .env file
 |     // Override from env.yaml environment file
 | ||||||
|     Object.keys(config).forEach((configKey) => { |     Object.keys(config).forEach((configKey) => { | ||||||
|         if(process.env[configKey]){ |         if(process.env[configKey]){ | ||||||
|             config[configKey] = process.env[configKey]; |             config[configKey] = process.env[configKey]; | ||||||
|  |  | ||||||
|  | @ -721,7 +721,6 @@ | ||||||
|       "version": "1.0.10", |       "version": "1.0.10", | ||||||
|       "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", |       "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", | ||||||
|       "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", |       "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", | ||||||
|       "dev": true, |  | ||||||
|       "requires": { |       "requires": { | ||||||
|         "sprintf-js": "~1.0.2" |         "sprintf-js": "~1.0.2" | ||||||
|       } |       } | ||||||
|  | @ -2020,6 +2019,11 @@ | ||||||
|       "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", |       "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|  |     "coercer": { | ||||||
|  |       "version": "1.1.2", | ||||||
|  |       "resolved": "https://registry.npmjs.org/coercer/-/coercer-1.1.2.tgz", | ||||||
|  |       "integrity": "sha1-6upEWVEfc/nzat4EqYEHznWCS3A=" | ||||||
|  |     }, | ||||||
|     "collection-map": { |     "collection-map": { | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", |       "resolved": "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz", | ||||||
|  | @ -2395,8 +2399,7 @@ | ||||||
|     "decamelize": { |     "decamelize": { | ||||||
|       "version": "1.2.0", |       "version": "1.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", |       "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", | ||||||
|       "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", |       "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "decamelize-keys": { |     "decamelize-keys": { | ||||||
|       "version": "1.1.0", |       "version": "1.1.0", | ||||||
|  | @ -2448,8 +2451,7 @@ | ||||||
|     "deep-extend": { |     "deep-extend": { | ||||||
|       "version": "0.6.0", |       "version": "0.6.0", | ||||||
|       "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", |       "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", | ||||||
|       "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", |       "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "deep-is": { |     "deep-is": { | ||||||
|       "version": "0.1.3", |       "version": "0.1.3", | ||||||
|  | @ -3394,8 +3396,7 @@ | ||||||
|     "esprima": { |     "esprima": { | ||||||
|       "version": "4.0.1", |       "version": "4.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", |       "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", | ||||||
|       "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", |       "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "espurify": { |     "espurify": { | ||||||
|       "version": "1.8.1", |       "version": "1.8.1", | ||||||
|  | @ -5846,7 +5847,6 @@ | ||||||
|       "version": "3.13.1", |       "version": "3.13.1", | ||||||
|       "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", |       "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", | ||||||
|       "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", |       "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", | ||||||
|       "dev": true, |  | ||||||
|       "requires": { |       "requires": { | ||||||
|         "argparse": "^1.0.7", |         "argparse": "^1.0.7", | ||||||
|         "esprima": "^4.0.0" |         "esprima": "^4.0.0" | ||||||
|  | @ -5904,6 +5904,11 @@ | ||||||
|       "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", |       "integrity": "sha1-h/zPrv/AtozRnVX2cilD+SnqNeo=", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|  |     "keyblade": { | ||||||
|  |       "version": "0.3.2", | ||||||
|  |       "resolved": "https://registry.npmjs.org/keyblade/-/keyblade-0.3.2.tgz", | ||||||
|  |       "integrity": "sha1-HmV/R3RlloB9a1kcU0dr6poawtQ=" | ||||||
|  |     }, | ||||||
|     "keyv": { |     "keyv": { | ||||||
|       "version": "3.1.0", |       "version": "3.1.0", | ||||||
|       "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", |       "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", | ||||||
|  | @ -7114,7 +7119,6 @@ | ||||||
|       "version": "2.2.1", |       "version": "2.2.1", | ||||||
|       "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", |       "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", | ||||||
|       "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", |       "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", | ||||||
|       "dev": true, |  | ||||||
|       "requires": { |       "requires": { | ||||||
|         "p-try": "^2.0.0" |         "p-try": "^2.0.0" | ||||||
|       } |       } | ||||||
|  | @ -7137,8 +7141,7 @@ | ||||||
|     "p-try": { |     "p-try": { | ||||||
|       "version": "2.2.0", |       "version": "2.2.0", | ||||||
|       "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", |       "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", | ||||||
|       "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", |       "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "package-hash": { |     "package-hash": { | ||||||
|       "version": "4.0.0", |       "version": "4.0.0", | ||||||
|  | @ -8035,8 +8038,7 @@ | ||||||
|     "require-directory": { |     "require-directory": { | ||||||
|       "version": "2.1.1", |       "version": "2.1.1", | ||||||
|       "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", |       "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", | ||||||
|       "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", |       "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "require-main-filename": { |     "require-main-filename": { | ||||||
|       "version": "1.0.1", |       "version": "1.0.1", | ||||||
|  | @ -8367,8 +8369,7 @@ | ||||||
|     "set-blocking": { |     "set-blocking": { | ||||||
|       "version": "2.0.0", |       "version": "2.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", |       "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", | ||||||
|       "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", |       "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "set-value": { |     "set-value": { | ||||||
|       "version": "2.0.1", |       "version": "2.0.1", | ||||||
|  | @ -8652,8 +8653,7 @@ | ||||||
|     "sprintf-js": { |     "sprintf-js": { | ||||||
|       "version": "1.0.3", |       "version": "1.0.3", | ||||||
|       "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", |       "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", | ||||||
|       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", |       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" | ||||||
|       "dev": true |  | ||||||
|     }, |     }, | ||||||
|     "srcset": { |     "srcset": { | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
|  | @ -9830,6 +9830,163 @@ | ||||||
|       "requires": { |       "requires": { | ||||||
|         "camelcase": "^3.0.0" |         "camelcase": "^3.0.0" | ||||||
|       } |       } | ||||||
|  |     }, | ||||||
|  |     "yenv": { | ||||||
|  |       "version": "2.1.1", | ||||||
|  |       "resolved": "https://registry.npmjs.org/yenv/-/yenv-2.1.1.tgz", | ||||||
|  |       "integrity": "sha512-fbjRZjpP9fi1Kdj8ehSXNf703qYCoeb80QoEwnPDjogy5abE1raxXJfr+wJLn6mFRcvp1pfyHfYg0N40y8MBCA==", | ||||||
|  |       "requires": { | ||||||
|  |         "coercer": "^1.1.2", | ||||||
|  |         "deep-extend": "^0.6.0", | ||||||
|  |         "js-yaml": "^3.13.1", | ||||||
|  |         "keyblade": "^0.3.2", | ||||||
|  |         "yargs": "^14.2.0" | ||||||
|  |       }, | ||||||
|  |       "dependencies": { | ||||||
|  |         "ansi-regex": { | ||||||
|  |           "version": "4.1.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | ||||||
|  |           "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" | ||||||
|  |         }, | ||||||
|  |         "ansi-styles": { | ||||||
|  |           "version": "3.2.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", | ||||||
|  |           "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", | ||||||
|  |           "requires": { | ||||||
|  |             "color-convert": "^1.9.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "camelcase": { | ||||||
|  |           "version": "5.3.1", | ||||||
|  |           "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", | ||||||
|  |           "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" | ||||||
|  |         }, | ||||||
|  |         "cliui": { | ||||||
|  |           "version": "5.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", | ||||||
|  |           "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", | ||||||
|  |           "requires": { | ||||||
|  |             "string-width": "^3.1.0", | ||||||
|  |             "strip-ansi": "^5.2.0", | ||||||
|  |             "wrap-ansi": "^5.1.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "emoji-regex": { | ||||||
|  |           "version": "7.0.3", | ||||||
|  |           "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", | ||||||
|  |           "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" | ||||||
|  |         }, | ||||||
|  |         "find-up": { | ||||||
|  |           "version": "3.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", | ||||||
|  |           "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", | ||||||
|  |           "requires": { | ||||||
|  |             "locate-path": "^3.0.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "get-caller-file": { | ||||||
|  |           "version": "2.0.5", | ||||||
|  |           "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", | ||||||
|  |           "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" | ||||||
|  |         }, | ||||||
|  |         "is-fullwidth-code-point": { | ||||||
|  |           "version": "2.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", | ||||||
|  |           "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" | ||||||
|  |         }, | ||||||
|  |         "locate-path": { | ||||||
|  |           "version": "3.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", | ||||||
|  |           "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", | ||||||
|  |           "requires": { | ||||||
|  |             "p-locate": "^3.0.0", | ||||||
|  |             "path-exists": "^3.0.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "p-locate": { | ||||||
|  |           "version": "3.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", | ||||||
|  |           "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", | ||||||
|  |           "requires": { | ||||||
|  |             "p-limit": "^2.0.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "path-exists": { | ||||||
|  |           "version": "3.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", | ||||||
|  |           "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" | ||||||
|  |         }, | ||||||
|  |         "require-main-filename": { | ||||||
|  |           "version": "2.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", | ||||||
|  |           "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" | ||||||
|  |         }, | ||||||
|  |         "string-width": { | ||||||
|  |           "version": "3.1.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", | ||||||
|  |           "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", | ||||||
|  |           "requires": { | ||||||
|  |             "emoji-regex": "^7.0.1", | ||||||
|  |             "is-fullwidth-code-point": "^2.0.0", | ||||||
|  |             "strip-ansi": "^5.1.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "strip-ansi": { | ||||||
|  |           "version": "5.2.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | ||||||
|  |           "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | ||||||
|  |           "requires": { | ||||||
|  |             "ansi-regex": "^4.1.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "which-module": { | ||||||
|  |           "version": "2.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", | ||||||
|  |           "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" | ||||||
|  |         }, | ||||||
|  |         "wrap-ansi": { | ||||||
|  |           "version": "5.1.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", | ||||||
|  |           "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", | ||||||
|  |           "requires": { | ||||||
|  |             "ansi-styles": "^3.2.0", | ||||||
|  |             "string-width": "^3.0.0", | ||||||
|  |             "strip-ansi": "^5.0.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "y18n": { | ||||||
|  |           "version": "4.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", | ||||||
|  |           "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" | ||||||
|  |         }, | ||||||
|  |         "yargs": { | ||||||
|  |           "version": "14.2.2", | ||||||
|  |           "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.2.tgz", | ||||||
|  |           "integrity": "sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA==", | ||||||
|  |           "requires": { | ||||||
|  |             "cliui": "^5.0.0", | ||||||
|  |             "decamelize": "^1.2.0", | ||||||
|  |             "find-up": "^3.0.0", | ||||||
|  |             "get-caller-file": "^2.0.1", | ||||||
|  |             "require-directory": "^2.1.1", | ||||||
|  |             "require-main-filename": "^2.0.0", | ||||||
|  |             "set-blocking": "^2.0.0", | ||||||
|  |             "string-width": "^3.0.0", | ||||||
|  |             "which-module": "^2.0.0", | ||||||
|  |             "y18n": "^4.0.0", | ||||||
|  |             "yargs-parser": "^15.0.0" | ||||||
|  |           } | ||||||
|  |         }, | ||||||
|  |         "yargs-parser": { | ||||||
|  |           "version": "15.0.0", | ||||||
|  |           "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz", | ||||||
|  |           "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==", | ||||||
|  |           "requires": { | ||||||
|  |             "camelcase": "^5.0.0", | ||||||
|  |             "decamelize": "^1.2.0" | ||||||
|  |           } | ||||||
|  |         } | ||||||
|  |       } | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -64,7 +64,8 @@ | ||||||
|     "sitemap": "^1.6.0", |     "sitemap": "^1.6.0", | ||||||
|     "strip-bom": "^3.0.0", |     "strip-bom": "^3.0.0", | ||||||
|     "stripe": "^7.12.0", |     "stripe": "^7.12.0", | ||||||
|     "uglifycss": "0.0.27" |     "uglifycss": "0.0.27", | ||||||
|  |     "yenv": "^2.1.1" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "ava": "^2.4.0", |     "ava": "^2.4.0", | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue