diff --git a/node/app.js b/node/app.js index d78bcee..2632cc7 100755 --- a/node/app.js +++ b/node/app.js @@ -2,7 +2,6 @@ const puppeteer = require('puppeteer'); const fs = require('fs'); const path = require('path'); const Rx = require('rxjs/Rx'); -const isRoot = require('is-root'); const http = require('http'); const fetchResponse = () => { @@ -37,17 +36,13 @@ const timedOut = timeout => { }; const convert = async() => { - if(isRoot()) { - console.log('ERROR: Please run this without root (admin) permissions.'); - return; - } await waitForServerReachable().first().toPromise(); console.log('Connected to server ...'); console.log('Exporting ...'); try { const directories = getResumesFromDirectories(); directories.forEach(async(dir) => { - const browser = await puppeteer.launch(); + const browser = await puppeteer.launch({args: ['--no-sandbox']}); const page = await browser.newPage(); await page.goto('http://localhost:8080/#/resume/' + dir.name, {waitUntil: 'networkidle'}); await page.pdf({path: path.join(__dirname, '../pdf/' + dir.name + '.pdf'), format: 'A4'}); @@ -74,7 +69,7 @@ const getResumesFromDirectories = () => { const getDirectories = () => { const srcpath = path.join(__dirname, '../src/resumes'); return fs.readdirSync(srcpath) - .filter(file => file !== 'resumes.js' && file !== 'template.vue'); + .filter(file => file !== 'resumes.js' && file !== 'template.vue' && file !== 'options.js'); }; convert(); diff --git a/package.json b/package.json index 6cc3181..30c979b 100755 --- a/package.json +++ b/package.json @@ -19,80 +19,84 @@ "lint": "eslint --ext .js,.vue src test/unit/specs test/e2e/specs" }, "dependencies": { - "font-awesome": "4.7.0", - "material-design-icons": "3.0.1", - "material-icons": "0.1.0", - "npm-font-open-sans": "1.0.3", - "npm-font-open-sans-condensed": "1.0.3", - "raleway-webfont": "3.0.1", - "roboto-fontface": "0.7.0", - "source-sans-pro": "2.0.10", - "vue": "2.4.2", - "vue-router": "2.7.0" + "font-awesome": "^4.7.0", + "material-design-icons": "^3.0.1", + "material-icons": "^0.1.0", + "npm-font-open-sans": "^1.0.3", + "npm-font-open-sans-condensed": "^1.0.3", + "raleway-webfont": "^3.0.1", + "roboto-fontface": "^0.7.0", + "source-sans-pro": "^2.0.10", + "vue": "^2.4.2", + "vue-router": "^2.7.0" }, "devDependencies": { - "autoprefixer": "7.1.4", - "babel-cli": "6.26.0", - "babel-core": "6.26.0", - "babel-eslint": "7.1.1", - "babel-loader": "7.1.2", - "babel-plugin-transform-runtime": "6.22.0", - "babel-preset-env": "1.6.0", - "babel-preset-stage-2": "6.22.0", - "babel-register": "6.26.0", - "chalk": "1.1.3", - "check-node-version": "2.1.0", - "concurrently": "3.5.0", - "connect-history-api-fallback": "1.3.0", - "copy-webpack-plugin": "4.0.1", - "cpx": "1.5.0", - "css-loader": "0.28.0", - "eslint": "4.6.1", - "eslint-config-standard": "10.2.1", - "eslint-friendly-formatter": "3.0.0", - "eslint-loader": "1.9.0", - "eslint-plugin-html": "3.2.1", - "eslint-plugin-import": "2.7.0", - "eslint-plugin-node": "5.1.1", - "eslint-plugin-promise": "3.4.0", - "eslint-plugin-standard": "3.0.1", - "eventsource-polyfill": "0.9.6", - "express": "4.15.4", - "extract-text-webpack-plugin": "2.1.2", - "file-loader": "0.11.1", - "friendly-errors-webpack-plugin": "1.1.3", - "html-webpack-plugin": "2.30.1", + "autoprefixer": "^7.1.4", + "babel-cli": "^6.26.0", + "babel-core": "^6.26.0", + "babel-eslint": "^7.1.1", + "babel-loader": "^7.1.2", + "babel-plugin-transform-runtime": "^6.22.0", + "babel-preset-env": "^1.6.0", + "babel-preset-stage-2": "^6.22.0", + "babel-register": "^6.26.0", + "chalk": "^1.1.3", + "check-node-version": "^2.1.0", + "concurrently": "^3.5.0", + "connect-history-api-fallback": "^1.3.0", + "copy-webpack-plugin": "^4.0.1", + "cpx": "^1.5.0", + "css-loader": "^0.28.0", + "escope": "^3.6.0", + "eslint": "^4.6.1", + "eslint-config-standard": "^10.2.1", + "eslint-friendly-formatter": "^3.0.0", + "eslint-loader": "^1.9.0", + "eslint-plugin-html": "^3.2.1", + "eslint-plugin-import": "^2.7.0", + "eslint-plugin-node": "^5.1.1", + "eslint-plugin-promise": "^3.4.0", + "eslint-plugin-standard": "^3.0.1", + "eventsource-polyfill": "^0.9.6", + "express": "^4.15.4", + "extract-text-webpack-plugin": "^2.1.2", + "file-loader": "^0.11.1", + "friendly-errors-webpack-plugin": "^1.1.3", + "html-webpack-plugin": "^2.30.1", "http": "0.0.0", - "http-proxy-middleware": "0.17.3", - "is-root": "1.0.0", - "less": "2.7.2", - "less-loader": "4.0.5", - "lolex": "1.5.2", - "mv": "2.1.1", - "opn": "5.1.0", - "optimize-css-assets-webpack-plugin": "2.0.0", - "ora": "1.3.0", - "pdf-image": "1.1.0", - "postcss": "6.0.11", - "postcss-cssnext": "2.11.0", - "puppeteer": "0.12.0", - "rename": "1.0.4", - "request": "2.81.0", - "request-promise": "4.2.1", - "rimraf": "2.6.0", - "rx": "4.1.0", - "rxjs": "5.4.3", - "semver": "5.4.1", - "shelljs": "0.7.6", - "url-exists": "1.0.3", - "url-loader": "0.5.9", - "vue-loader": "12.2.1", - "vue-style-loader": "3.0.1", - "vue-template-compiler": "2.4.2", - "webpack": "2.3.3", - "webpack-bundle-analyzer": "2.9.0", - "webpack-dev-middleware": "1.12.0", - "webpack-hot-middleware": "2.19.1", - "webpack-merge": "4.1.0" + "http-proxy-middleware": "^0.17.3", + "less": "^2.7.2", + "less-loader": "^4.0.5", + "lolex": "^1.5.2", + "mv": "^2.1.1", + "opn": "^5.1.0", + "optimize-css-assets-webpack-plugin": "^2.0.0", + "ora": "^1.3.0", + "pdf-image": "^1.1.0", + "postcss": "^6.0.11", + "postcss-cssnext": "^2.11.0", + "puppeteer": "^0.12.0", + "rename": "^1.0.4", + "request": "^2.81.0", + "request-promise": "^4.2.1", + "rimraf": "^2.6.0", + "rx": "^4.1.0", + "rxjs": "^5.4.3", + "semver": "^5.4.1", + "shelljs": "^0.7.6", + "url-exists": "^1.0.3", + "url-loader": "^0.5.9", + "vue-loader": "^12.2.1", + "vue-style-loader": "^3.0.1", + "vue-template-compiler": "^2.4.2", + "webpack": "^2.3.3", + "webpack-bundle-analyzer": "^2.9.0", + "webpack-dev-middleware": "^1.12.0", + "webpack-hot-middleware": "^2.19.1", + "webpack-merge": "^4.1.0" + }, + "engines": { + "node": ">= 8.5.0", + "npm": ">= 5.0.0" } } diff --git a/src/resumes/left-right.vue b/src/resumes/left-right.vue index 6c9242b..1552663 100755 --- a/src/resumes/left-right.vue +++ b/src/resumes/left-right.vue @@ -71,7 +71,7 @@ @@ -447,4 +447,4 @@ h4 { width:25px; padding-left:17px; } - \ No newline at end of file + diff --git a/src/resumes/oblique.vue b/src/resumes/oblique.vue index 837d9cd..f4b7364 100755 --- a/src/resumes/oblique.vue +++ b/src/resumes/oblique.vue @@ -74,7 +74,7 @@ diff --git a/src/resumes/resumes.js b/src/resumes/resumes.js index c9f9c22..be4cbe7 100755 --- a/src/resumes/resumes.js +++ b/src/resumes/resumes.js @@ -5,27 +5,3 @@ import './oblique.vue'; import './side-bar.vue'; import './purple.vue'; import './side-bar-rtl.vue'; - -import { PERSON } from '../person'; -import { terms } from '../terms'; - -// Called by templates to decrease redundancy -function getVueOptions (name) { - let opt = { - name: name, - data () { - return { - person: PERSON, - terms: terms - }; - }, - computed: { - lang () { - return this.terms[this.person.lang]; - } - } - }; - return opt; -} - -export { getVueOptions }; diff --git a/src/resumes/side-bar-rtl.vue b/src/resumes/side-bar-rtl.vue index 2bc8e52..e48c7e1 100755 --- a/src/resumes/side-bar-rtl.vue +++ b/src/resumes/side-bar-rtl.vue @@ -89,7 +89,7 @@