From 3f4f10e60c0c7978aba4230e3dfe684b85aaf472 Mon Sep 17 00:00:00 2001 From: Vins Date: Wed, 25 Sep 2024 10:40:23 +0200 Subject: [PATCH 1/5] Fix nchor proof --- .../common/AnchoringProofService/AnchoringProofService.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/services/common/AnchoringProofService/AnchoringProofService.ts b/src/services/common/AnchoringProofService/AnchoringProofService.ts index 7077ce45..c2091b7c 100644 --- a/src/services/common/AnchoringProofService/AnchoringProofService.ts +++ b/src/services/common/AnchoringProofService/AnchoringProofService.ts @@ -22,6 +22,7 @@ export default class AnchoringProofService extends BaseService { public async generate(data: AnchoringProofData): Promise { const browser = await puppeteer.launch({ headless: "new", + executablePath: `/usr/bin/chromium`, args: ["--no-sandbox", "--disable-setuid-sandbox"], }); From edfd55ec92729195beeba02cae5f773c6c91aba6 Mon Sep 17 00:00:00 2001 From: Max S Date: Mon, 30 Sep 2024 16:17:09 +0200 Subject: [PATCH 2/5] use puppeteer-core instead of puppeteer --- package.json | 2 +- .../AnchoringProofService/AnchoringProofService.ts | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 8bfdfe86..d913c1d0 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "node-schedule": "^2.1.1", "ovh": "^2.0.3", "prisma-query": "^2.0.0", - "puppeteer": "^21.3.4", + "puppeteer-core": "^23.4.1", "reflect-metadata": "^0.1.13", "stripe": "^14.22.0", "ts-node": "^10.9.1", diff --git a/src/services/common/AnchoringProofService/AnchoringProofService.ts b/src/services/common/AnchoringProofService/AnchoringProofService.ts index c2091b7c..5ae01443 100644 --- a/src/services/common/AnchoringProofService/AnchoringProofService.ts +++ b/src/services/common/AnchoringProofService/AnchoringProofService.ts @@ -1,6 +1,6 @@ import BaseService from "@Services/BaseService"; import { Service } from "typedi"; -import puppeteer from "puppeteer"; +import puppeteer from "puppeteer-core"; import proofTemplate from "./proofTemplate"; export interface AnchoringProofData { @@ -21,10 +21,8 @@ export default class AnchoringProofService extends BaseService { */ public async generate(data: AnchoringProofData): Promise { const browser = await puppeteer.launch({ - headless: "new", - executablePath: `/usr/bin/chromium`, args: ["--no-sandbox", "--disable-setuid-sandbox"], - }); + }); const page = await browser.newPage(); @@ -68,12 +66,14 @@ export default class AnchoringProofService extends BaseService { `, }); - const buffer = await page.pdf({ + const uint8Array = await page.pdf({ landscape: true, printBackground: false, format: "A4", }); + const buffer = Buffer.from(uint8Array); + await browser.close(); return buffer; From a427df10c328a85a1872707f05f3a04ccaea2aed Mon Sep 17 00:00:00 2001 From: Max S Date: Mon, 30 Sep 2024 16:32:00 +0200 Subject: [PATCH 3/5] use executablePath --- Dockerfile | 2 +- .../common/AnchoringProofService/AnchoringProofService.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e98bde33..b50d3c5b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ WORKDIR leCoffre RUN npm install -D prisma@4.11.0 COPY package.json ./ -RUN apk update && apk add openssh-client git +RUN apk update && apk add openssh-client git chromium COPY id_rsa /root/.ssh/id_rsa RUN chmod 600 ~/.ssh/id_rsa diff --git a/src/services/common/AnchoringProofService/AnchoringProofService.ts b/src/services/common/AnchoringProofService/AnchoringProofService.ts index 5ae01443..83fafda3 100644 --- a/src/services/common/AnchoringProofService/AnchoringProofService.ts +++ b/src/services/common/AnchoringProofService/AnchoringProofService.ts @@ -21,6 +21,7 @@ export default class AnchoringProofService extends BaseService { */ public async generate(data: AnchoringProofData): Promise { const browser = await puppeteer.launch({ + executablePath: `/usr/bin/chromium`, args: ["--no-sandbox", "--disable-setuid-sandbox"], }); From 06a802c95c50c2544147a356ccee7ac97872aaab Mon Sep 17 00:00:00 2001 From: Max S Date: Mon, 30 Sep 2024 17:23:43 +0200 Subject: [PATCH 4/5] use puppeter back --- Dockerfile | 2 +- package.json | 2 +- .../common/AnchoringProofService/AnchoringProofService.ts | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index b50d3c5b..e98bde33 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ WORKDIR leCoffre RUN npm install -D prisma@4.11.0 COPY package.json ./ -RUN apk update && apk add openssh-client git chromium +RUN apk update && apk add openssh-client git COPY id_rsa /root/.ssh/id_rsa RUN chmod 600 ~/.ssh/id_rsa diff --git a/package.json b/package.json index d913c1d0..82f0b42a 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "node-schedule": "^2.1.1", "ovh": "^2.0.3", "prisma-query": "^2.0.0", - "puppeteer-core": "^23.4.1", + "puppeteer": "^23.4.1", "reflect-metadata": "^0.1.13", "stripe": "^14.22.0", "ts-node": "^10.9.1", diff --git a/src/services/common/AnchoringProofService/AnchoringProofService.ts b/src/services/common/AnchoringProofService/AnchoringProofService.ts index 83fafda3..7ce05c82 100644 --- a/src/services/common/AnchoringProofService/AnchoringProofService.ts +++ b/src/services/common/AnchoringProofService/AnchoringProofService.ts @@ -1,6 +1,7 @@ import BaseService from "@Services/BaseService"; +import puppeteer from "puppeteer"; import { Service } from "typedi"; -import puppeteer from "puppeteer-core"; + import proofTemplate from "./proofTemplate"; export interface AnchoringProofData { From 4fd4dc82a8e638b53695da877e75556de9f4ddc8 Mon Sep 17 00:00:00 2001 From: Max S Date: Mon, 30 Sep 2024 17:37:15 +0200 Subject: [PATCH 5/5] increase timeout page.setContent --- .../common/AnchoringProofService/AnchoringProofService.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/common/AnchoringProofService/AnchoringProofService.ts b/src/services/common/AnchoringProofService/AnchoringProofService.ts index 7ce05c82..04395f5e 100644 --- a/src/services/common/AnchoringProofService/AnchoringProofService.ts +++ b/src/services/common/AnchoringProofService/AnchoringProofService.ts @@ -43,7 +43,7 @@ export default class AnchoringProofService extends BaseService { `; - await page.setContent(htmlContent); + await page.setContent(htmlContent, { waitUntil: "networkidle0", timeout: 60000 }); await page.addStyleTag({ content: ` @page {