@things-factory/board-service 8.0.0-alpha.2 → 8.0.0-alpha.21

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/board-service",
3
- "version": "8.0.0-alpha.2",
3
+ "version": "8.0.0-alpha.21",
4
4
  "main": "dist-server/index.js",
5
5
  "things-factory": true,
6
6
  "author": "",
@@ -23,11 +23,11 @@
23
23
  "migration:create": "node ../../node_modules/typeorm/cli.js migration:create ./server/migrations/migration"
24
24
  },
25
25
  "dependencies": {
26
- "@things-factory/auth-base": "^8.0.0-alpha.2",
27
- "@things-factory/env": "^8.0.0-alpha.0",
28
- "@things-factory/fav-base": "^8.0.0-alpha.2",
29
- "@things-factory/font-base": "^8.0.0-alpha.2",
30
- "@things-factory/integration-base": "^8.0.0-alpha.2",
26
+ "@things-factory/auth-base": "^8.0.0-alpha.19",
27
+ "@things-factory/env": "^8.0.0-alpha.8",
28
+ "@things-factory/fav-base": "^8.0.0-alpha.19",
29
+ "@things-factory/font-base": "^8.0.0-alpha.19",
30
+ "@things-factory/integration-base": "^8.0.0-alpha.21",
31
31
  "@things-factory/operato-license-checker": "^4.0.4",
32
32
  "content-disposition": "^0.5.3",
33
33
  "generic-pool": "^3.8.2"
@@ -36,5 +36,5 @@
36
36
  "@thiagoelg/node-printer": "0.6.2",
37
37
  "puppeteer": "22.12.1"
38
38
  },
39
- "gitHead": "9599f03becd1263f0c6d7c1138b82180036f7dbf"
39
+ "gitHead": "788bc537e525825b775bcedea2394e39e9222ef2"
40
40
  }
@@ -1,3 +1,5 @@
1
+ import crypto from 'crypto'
2
+
1
3
  const puppeteer = require('puppeteer')
2
4
  const { Readable } = require('stream')
3
5
  const ejs = require('ejs')
@@ -21,7 +23,10 @@ export const pdfToImage = async ({ pdfPath, fileName, extension = 'png', quality
21
23
  const pdfUrl = `${protocol}://${host}:${port}${pdfPath}`
22
24
 
23
25
  const page = await browser.newPage()
24
- const html = await ejs.render(getPdfHtmlTemplate(), { data: { pdfUrl, quality } })
26
+ const html = await ejs.render(getPdfHtmlTemplate(), {
27
+ data: { pdfUrl, quality },
28
+ nonce: crypto.randomBytes(16).toString('hex')
29
+ })
25
30
 
26
31
  // 페이지 로딩시 까지 기다리고 스크린샷
27
32
  await page.setContent(html, { waitUntil: 'networkidle0' })
@@ -59,7 +64,7 @@ function getPdfHtmlTemplate() {
59
64
  <head>
60
65
  <meta charset="UTF-8" />
61
66
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
62
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
67
+ <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
63
68
 
64
69
  <style nonce="<%= nonce %>">
65
70
  body {
@@ -99,8 +99,19 @@ async function initializeScenePage() {
99
99
  const [fontsToUse, fontStyles] = await fonts()
100
100
 
101
101
  await page.setRequestInterception(true)
102
+
102
103
  page.on('console', async msg => {
103
- console.log(`[browser ${msg.type()}] ${msg.text()}`)
104
+ console.log(`[headless ${msg.type()}] ${msg.text()}`)
105
+ })
106
+
107
+ page.on('pageerror', error => {
108
+ console.log(`[headless pageerror] ${error.message}`)
109
+ console.log(error.stack)
110
+ })
111
+
112
+ page.on('error', error => {
113
+ console.log(`[headless fault] ${error}`)
114
+ console.log(error.stack)
104
115
  })
105
116
 
106
117
  page.on('requestfailed', request => {
@@ -56,7 +56,17 @@ export const pdf = async ({
56
56
  await page.setRequestInterception(true)
57
57
 
58
58
  page.on('console', async msg => {
59
- console.log(`[browser ${msg.type()}] ${msg.text()}`)
59
+ console.log(`[headless ${msg.type()}] ${msg.text()}`)
60
+ })
61
+
62
+ page.on('pageerror', error => {
63
+ console.log(`[headless pageerror] ${error.message}`)
64
+ console.log(error.stack)
65
+ })
66
+
67
+ page.on('error', error => {
68
+ console.log(`[headless fault] ${error}`)
69
+ console.log(error.stack)
60
70
  })
61
71
 
62
72
  page.on('requestfailed', request => {
@@ -55,7 +55,17 @@ export const screenshot = async ({
55
55
  await page.setDefaultTimeout(10000)
56
56
 
57
57
  page.on('console', async msg => {
58
- console.log(`[browser ${msg.type()}] ${msg.text()}`)
58
+ console.log(`[headless ${msg.type()}] ${msg.text()}`)
59
+ })
60
+
61
+ page.on('pageerror', error => {
62
+ console.log(`[headless pageerror] ${error.message}`)
63
+ console.log(error.stack)
64
+ })
65
+
66
+ page.on('error', error => {
67
+ console.log(`[headless fault] ${error}`)
68
+ console.log(error.stack)
59
69
  })
60
70
 
61
71
  page.on('requestfailed', request => {
@@ -70,16 +70,30 @@
70
70
  const startSubscribingForAutoRefresh = window.startSubscribingForAutoRefresh
71
71
 
72
72
  const container = document.querySelector('#scene')
73
- const player = document.createElement('ox-board-player')
74
- player.provider = provider
75
- player.boards = boards
76
- data && (player.data = data)
77
73
 
78
- container.appendChild(player)
74
+ function stop() {
75
+ let player = document.querySelector('ox-board-player')
76
+ if(player) {
77
+ player.stop()
78
+ container.removeChild(player)
79
+ player = null
80
+ }
81
+ }
79
82
 
80
- startSubscribingForAutoRefresh(id, ({id, boards}) => {
83
+ function start(boards, data) {
84
+ let player = document.createElement('ox-board-player')
85
+ player.provider = provider
81
86
  player.boards = boards
82
87
  data && (player.data = data)
88
+
89
+ container.appendChild(player)
90
+ }
91
+
92
+ start(boards, data)
93
+
94
+ startSubscribingForAutoRefresh(id, ({id, boards}) => {
95
+ stop()
96
+ start(boards, data)
83
97
  })
84
98
  </script>
85
99
  </body>