From 5fc22585bf7970ddda5e497505d4278c4bb012a0 Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Fri, 5 Mar 2021 15:38:11 +0000 Subject: [PATCH] fix(core): update --- .gitignore | 4 +--- .gitlab-ci.yml | 31 +++++++++++++++++++++---------- .vscode/launch.json | 29 +++++++++++++++++++++++++++++ .vscode/settings.json | 26 ++++++++++++++++++++++++++ npmextra.json | 1 + package.json | 12 ++++++++---- readme.md | 25 ++++++++++++++++++------- ts/smartpdf.classes.smartpdf.ts | 20 ++++++++++---------- 8 files changed, 114 insertions(+), 34 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json diff --git a/.gitignore b/.gitignore index 91c0db0..ef13c79 100644 --- a/.gitignore +++ b/.gitignore @@ -15,8 +15,6 @@ node_modules/ # builds dist/ -dist_web/ -dist_serve/ -dist_ts_web/ +dist_*/ # custom \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1b9d3bf..9a4467e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -19,22 +19,35 @@ mirror: stage: security script: - npmci git mirror + only: + - tags tags: - lossless - docker - notpriv -snyk: - image: registry.gitlab.com/hosttoday/ht-docker-node:snyk +auditProductionDependencies: + image: registry.gitlab.com/hosttoday/ht-docker-node:npmci stage: security script: - npmci npm prepare - - npmci command npm ci --ignore-scripts - - npmci command snyk test + - npmci command npm install --production --ignore-scripts + - npmci command npm config set registry https://registry.npmjs.org + - npmci command npm audit --audit-level=high --only=prod --production tags: - - lossless - docker - - notpriv + +auditDevDependencies: + image: registry.gitlab.com/hosttoday/ht-docker-node:npmci + stage: security + script: + - npmci npm prepare + - npmci command npm install --ignore-scripts + - npmci command npm config set registry https://registry.npmjs.org + - npmci command npm audit --audit-level=high --only=dev + tags: + - docker + allow_failure: true # ==================== # test stage @@ -49,9 +62,7 @@ testStable: - npmci npm test coverage: /\d+.?\d+?\%\s*coverage/ tags: - - lossless - docker - - priv testBuild: stage: test @@ -62,9 +73,7 @@ testBuild: - npmci command npm run build coverage: /\d+.?\d+?\%\s*coverage/ tags: - - lossless - docker - - notpriv release: stage: release @@ -84,6 +93,8 @@ release: codequality: stage: metadata allow_failure: true + only: + - tags script: - npmci command npm install -g tslint typescript - npmci npm prepare diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..112db52 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,29 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "current file", + "type": "node", + "request": "launch", + "args": [ + "${relativeFile}" + ], + "runtimeArgs": ["-r", "@gitzone/tsrun"], + "cwd": "${workspaceRoot}", + "protocol": "inspector", + "internalConsoleOptions": "openOnSessionStart" + }, + { + "name": "test.ts", + "type": "node", + "request": "launch", + "args": [ + "test/test.ts" + ], + "runtimeArgs": ["-r", "@gitzone/tsrun"], + "cwd": "${workspaceRoot}", + "protocol": "inspector", + "internalConsoleOptions": "openOnSessionStart" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3648eaa --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,26 @@ +{ + "json.schemas": [ + { + "fileMatch": ["/npmextra.json"], + "schema": { + "type": "object", + "properties": { + "npmci": { + "type": "object", + "description": "settings for npmci" + }, + "gitzone": { + "type": "object", + "description": "settings for gitzone", + "properties": { + "projectType": { + "type": "string", + "enum": ["website", "element", "service", "npm", "wcc"] + } + } + } + } + } + } + ] +} diff --git a/npmextra.json b/npmextra.json index 5bb17de..daabd05 100644 --- a/npmextra.json +++ b/npmextra.json @@ -4,6 +4,7 @@ "npmAccessLevel": "public" }, "gitzone": { + "projectType": "npm", "module": { "githost": "gitlab.com", "gitscope": "pushrocks", diff --git a/package.json b/package.json index 6544892..c95fec1 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,8 @@ "version": "2.0.3", "private": false, "description": "create pdfs on the fly", - "main": "dist/index.js", - "typings": "dist/index.d.ts", + "main": "dist_ts/index.js", + "typings": "dist_ts/index.d.ts", "author": "Lossless GmbH", "license": "MIT", "scripts": { @@ -34,11 +34,15 @@ "ts/**/*", "ts_web/**/*", "dist/**/*", - "dist_web/**/*", + "dist_*/**/*", + "dist_ts/**/*", "dist_ts_web/**/*", "assets/**/*", "cli.js", "npmextra.json", "readme.md" + ], + "browserslist": [ + "last 1 chrome versions" ] -} +} \ No newline at end of file diff --git a/readme.md b/readme.md index 959c934..b846b0a 100644 --- a/readme.md +++ b/readme.md @@ -8,16 +8,27 @@ Create PDFs fast and smoothly * [docs (typedoc)](https://pushrocks.gitlab.io/smartpdf/) ## Status for master -[![build status](https://gitlab.com/pushrocks/smartpdf/badges/master/build.svg)](https://gitlab.com/pushrocks/smartpdf/commits/master) -[![coverage report](https://gitlab.com/pushrocks/smartpdf/badges/master/coverage.svg)](https://gitlab.com/pushrocks/smartpdf/commits/master) -[![npm downloads per month](https://img.shields.io/npm/dm/@pushrocks/smartpdf.svg)](https://www.npmjs.com/package/@pushrocks/smartpdf) -[![Known Vulnerabilities](https://snyk.io/test/npm/@pushrocks/smartpdf/badge.svg)](https://snyk.io/test/npm/@pushrocks/smartpdf) -[![TypeScript](https://img.shields.io/badge/TypeScript->=%203.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/) -[![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/) -[![JavaScript Style Guide](https://img.shields.io/badge/code%20style-prettier-ff69b4.svg)](https://prettier.io/) + +Status Category | Status Badge +-- | -- +GitLab Pipelines | [![pipeline status](https://gitlab.com/pushrocks/smartpdf/badges/master/pipeline.svg)](https://lossless.cloud) +GitLab Pipline Test Coverage | [![coverage report](https://gitlab.com/pushrocks/smartpdf/badges/master/coverage.svg)](https://lossless.cloud) +npm | [![npm downloads per month](https://badgen.net/npm/dy/@pushrocks/smartpdf)](https://lossless.cloud) +Snyk | [![Known Vulnerabilities](https://badgen.net/snyk/pushrocks/smartpdf)](https://lossless.cloud) +TypeScript Support | [![TypeScript](https://badgen.net/badge/TypeScript/>=%203.x/blue?icon=typescript)](https://lossless.cloud) +node Support | [![node](https://img.shields.io/badge/node->=%2010.x.x-blue.svg)](https://nodejs.org/dist/latest-v10.x/docs/api/) +Code Style | [![Code Style](https://badgen.net/badge/style/prettier/purple)](https://lossless.cloud) +PackagePhobia (total standalone install weight) | [![PackagePhobia](https://badgen.net/packagephobia/install/@pushrocks/smartpdf)](https://lossless.cloud) +PackagePhobia (package size on registry) | [![PackagePhobia](https://badgen.net/packagephobia/publish/@pushrocks/smartpdf)](https://lossless.cloud) +BundlePhobia (total size when bundled) | [![BundlePhobia](https://badgen.net/bundlephobia/minzip/@pushrocks/smartpdf)](https://lossless.cloud) +Platform support | [![Supports Windows 10](https://badgen.net/badge/supports%20Windows%2010/yes/green?icon=windows)](https://lossless.cloud) [![Supports Mac OS X](https://badgen.net/badge/supports%20Mac%20OS%20X/yes/green?icon=apple)](https://lossless.cloud) ## Usage +## Contribution + +We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :) + ## Contribution diff --git a/ts/smartpdf.classes.smartpdf.ts b/ts/smartpdf.classes.smartpdf.ts index ecb09a3..2baa42a 100644 --- a/ts/smartpdf.classes.smartpdf.ts +++ b/ts/smartpdf.classes.smartpdf.ts @@ -27,7 +27,7 @@ export class SmartPdf { this.externalBrowserBool = true; } else { this.headlessBrowser = await plugins.smartpuppeteer.getEnvAwareBrowserInstance({ - forceNoSandbox: true + forceNoSandbox: true, }); } @@ -69,7 +69,7 @@ export class SmartPdf { this._candidates[pdfCandidate.pdfId] = pdfCandidate; const page = await this.headlessBrowser.newPage(); const response = await page.goto(`http://localhost:3210/${pdfCandidate.pdfId}`, { - waitUntil: 'networkidle2' + waitUntil: 'networkidle2', }); const headers = response.headers(); if (headers['pdf-id'] !== pdfCandidate.pdfId) { @@ -83,7 +83,7 @@ export class SmartPdf { format: 'A4', printBackground: true, displayHeaderFooter: false, - preferCSSPageSize: true + preferCSSPageSize: true, }); await page.close(); delete this._candidates[pdfCandidate.pdfId]; @@ -92,7 +92,7 @@ export class SmartPdf { return { id: pdfCandidate.pdfId, name: `${pdfCandidate.pdfId}.js`, - buffer: pdfBuffer + buffer: pdfBuffer, }; } @@ -104,7 +104,7 @@ export class SmartPdf { const { documentHeight, documentWidth } = await page.evaluate(() => { return { documentHeight: document.height, - documentWidth: document.width + documentWidth: document.width, }; }); const pdfBuffer = await page.pdf({ @@ -113,13 +113,13 @@ export class SmartPdf { width: documentWidth, printBackground: true, displayHeaderFooter: false, - preferCSSPageSize: true + preferCSSPageSize: true, }); await page.close(); return { id: pdfId, name: `${pdfId}.js`, - buffer: pdfBuffer + buffer: pdfBuffer, }; } @@ -131,7 +131,7 @@ export class SmartPdf { const { documentHeight, documentWidth } = await page.evaluate(() => { return { documentHeight: document.height, - documentWidth: document.width + documentWidth: document.width, }; }); const pdfBuffer = await page.pdf({ @@ -140,13 +140,13 @@ export class SmartPdf { width: documentWidth, printBackground: true, displayHeaderFooter: false, - preferCSSPageSize: true + preferCSSPageSize: true, }); await page.close(); return { id: pdfId, name: `${pdfId}.js`, - buffer: pdfBuffer + buffer: pdfBuffer, }; } }