@things-factory/board-service 8.0.0-alpha.8 → 8.0.0-beta.0
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/dist-server/controllers/headless-pdf-to-image.js +7 -2
- package/dist-server/controllers/headless-pdf-to-image.js.map +1 -1
- package/dist-server/controllers/headless-pool-for-board.js +1 -1
- package/dist-server/controllers/headless-pool-for-board.js.map +1 -1
- package/dist-server/controllers/headless-pool-for-label.js +1 -1
- package/dist-server/controllers/headless-pool-for-label.js.map +1 -1
- package/dist-server/controllers/index.d.ts +1 -6
- package/dist-server/controllers/index.js +1 -6
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/controllers/pdf.d.ts +1 -1
- package/dist-server/routes.js +0 -3
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/board/board-history.js +15 -4
- package/dist-server/service/board/board-history.js.map +1 -1
- package/dist-server/service/board/board.js +8 -2
- package/dist-server/service/board/board.js.map +1 -1
- package/dist-server/service/board-template/board-template.js +8 -2
- package/dist-server/service/board-template/board-template.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -12
- package/server/controllers/headless-pdf-to-image.ts +7 -2
- package/server/controllers/headless-pool-for-board.ts +1 -1
- package/server/controllers/headless-pool-for-label.ts +1 -1
- package/server/controllers/index.ts +0 -6
- package/server/routes.ts +0 -3
- package/server/service/board/board-history.ts +19 -7
- package/server/service/board/board.ts +10 -4
- package/server/service/board-template/board-template.ts +8 -2
- package/views/internal-board-full-feature-view.html +2 -1
- package/views/internal-board-player-view.html +20 -6
- package/dist-server/controllers/print.d.ts +0 -21
- package/dist-server/controllers/print.js +0 -57
- package/dist-server/controllers/print.js.map +0 -1
- package/dist-server/routers/board-print-router.d.ts +0 -1
- package/dist-server/routers/board-print-router.js +0 -48
- package/dist-server/routers/board-print-router.js.map +0 -1
- package/server/controllers/print.ts +0 -54
- package/server/routers/board-print-router.ts +0 -55
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/board-service",
|
|
3
|
-
"version": "8.0.0-
|
|
3
|
+
"version": "8.0.0-beta.0",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"things-factory": true,
|
|
6
6
|
"author": "",
|
|
@@ -23,18 +23,15 @@
|
|
|
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-
|
|
27
|
-
"@things-factory/env": "^8.0.0-
|
|
28
|
-
"@things-factory/fav-base": "^8.0.0-
|
|
29
|
-
"@things-factory/font-base": "^8.0.0-
|
|
30
|
-
"@things-factory/integration-base": "^8.0.0-
|
|
26
|
+
"@things-factory/auth-base": "^8.0.0-beta.0",
|
|
27
|
+
"@things-factory/env": "^8.0.0-beta.0",
|
|
28
|
+
"@things-factory/fav-base": "^8.0.0-beta.0",
|
|
29
|
+
"@things-factory/font-base": "^8.0.0-beta.0",
|
|
30
|
+
"@things-factory/integration-base": "^8.0.0-beta.0",
|
|
31
31
|
"@things-factory/operato-license-checker": "^4.0.4",
|
|
32
32
|
"content-disposition": "^0.5.3",
|
|
33
|
-
"generic-pool": "^3.8.2"
|
|
33
|
+
"generic-pool": "^3.8.2",
|
|
34
|
+
"puppeteer": "^23.0.0"
|
|
34
35
|
},
|
|
35
|
-
"
|
|
36
|
-
"@thiagoelg/node-printer": "0.6.2",
|
|
37
|
-
"puppeteer": "22.12.1"
|
|
38
|
-
},
|
|
39
|
-
"gitHead": "0a9fb3ab431934982294b58c743d01b6f782a15f"
|
|
36
|
+
"gitHead": "add6fb8224b2cb19cbea47bed6a5ecb0424c9a28"
|
|
40
37
|
}
|
|
@@ -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(), {
|
|
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
|
|
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 {
|
|
@@ -15,7 +15,7 @@ export function getHeadlessPool() {
|
|
|
15
15
|
headlessPool = genericPool.createPool(
|
|
16
16
|
{
|
|
17
17
|
create() {
|
|
18
|
-
console.log('headless-pool-for-board about to create')
|
|
18
|
+
console.log('headless instance in headless-pool-for-board about to create')
|
|
19
19
|
return initializeChromium()
|
|
20
20
|
},
|
|
21
21
|
validate(browser) {
|
|
@@ -18,7 +18,7 @@ export function getHeadlessPool() {
|
|
|
18
18
|
headlessPool = genericPool.createPool(
|
|
19
19
|
{
|
|
20
20
|
create() {
|
|
21
|
-
console.log('headless-pool-for-label about to create')
|
|
21
|
+
console.log('headless instance in headless-pool-for-label about to create')
|
|
22
22
|
return initializeScenePage()
|
|
23
23
|
},
|
|
24
24
|
validate({ browser, page }) {
|
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
import { printDirect, getPrinters } from './print'
|
|
2
1
|
import { labelcommand as boardToZpl } from './label-command'
|
|
3
2
|
import { pdf as boardToPdf } from './pdf'
|
|
4
3
|
import { headlessModel } from './headless-model'
|
|
5
4
|
import { fonts } from './fonts'
|
|
6
5
|
|
|
7
|
-
export const Printer = {
|
|
8
|
-
printDirect,
|
|
9
|
-
getPrinters
|
|
10
|
-
}
|
|
11
|
-
|
|
12
6
|
export const BoardFunc = {
|
|
13
7
|
boardToZpl,
|
|
14
8
|
boardToPdf,
|
package/server/routes.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { boardPrintRouter } from './routers/board-print-router'
|
|
2
1
|
import { config } from '@things-factory/env'
|
|
3
2
|
import { getHeadlessPool as getHeadlessPoolForBoard } from './controllers/headless-pool-for-board'
|
|
4
3
|
import { getHeadlessPool as getHeadlessPoolForLabel } from './controllers/headless-pool-for-label'
|
|
@@ -15,14 +14,12 @@ process.on('bootstrap-module-global-public-route' as any, (app, domainGlobalPubl
|
|
|
15
14
|
|
|
16
15
|
process.on('bootstrap-module-domain-private-route' as any, (app, domainPrivateRouter) => {
|
|
17
16
|
if (isPathBaseDomain) {
|
|
18
|
-
domainPrivateRouter.use('/domain/:domain', boardPrintRouter.routes(), boardPrintRouter.allowedMethods())
|
|
19
17
|
domainPrivateRouter.use(
|
|
20
18
|
'/domain/:domain',
|
|
21
19
|
standaloneBoardServiceRouter.routes(),
|
|
22
20
|
standaloneBoardServiceRouter.allowedMethods()
|
|
23
21
|
)
|
|
24
22
|
} else {
|
|
25
|
-
domainPrivateRouter.use('', boardPrintRouter.routes(), boardPrintRouter.allowedMethods())
|
|
26
23
|
domainPrivateRouter.use('', standaloneBoardServiceRouter.routes(), standaloneBoardServiceRouter.allowedMethods())
|
|
27
24
|
}
|
|
28
25
|
})
|
|
@@ -53,8 +53,11 @@ export class BoardHistory implements HistoryEntityInterface<Board> {
|
|
|
53
53
|
DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
|
|
54
54
|
? 'longtext'
|
|
55
55
|
: DATABASE_TYPE == 'oracle'
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
? 'clob'
|
|
57
|
+
: DATABASE_TYPE == 'mssql'
|
|
58
|
+
? 'nvarchar'
|
|
59
|
+
: 'varchar',
|
|
60
|
+
length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined
|
|
58
61
|
})
|
|
59
62
|
@Field({ nullable: true })
|
|
60
63
|
model?: string
|
|
@@ -65,8 +68,11 @@ export class BoardHistory implements HistoryEntityInterface<Board> {
|
|
|
65
68
|
DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
|
|
66
69
|
? 'longtext'
|
|
67
70
|
: DATABASE_TYPE == 'oracle'
|
|
68
|
-
|
|
69
|
-
|
|
71
|
+
? 'clob'
|
|
72
|
+
: DATABASE_TYPE == 'mssql'
|
|
73
|
+
? 'nvarchar'
|
|
74
|
+
: 'varchar',
|
|
75
|
+
length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined
|
|
70
76
|
})
|
|
71
77
|
@Field({ nullable: true })
|
|
72
78
|
thumbnail?: string
|
|
@@ -117,9 +123,15 @@ export class BoardHistory implements HistoryEntityInterface<Board> {
|
|
|
117
123
|
DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
|
|
118
124
|
? 'enum'
|
|
119
125
|
: DATABASE_TYPE == 'oracle'
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
126
|
+
? 'varchar2'
|
|
127
|
+
: DATABASE_TYPE == 'mssql'
|
|
128
|
+
? 'nvarchar'
|
|
129
|
+
: 'varchar',
|
|
130
|
+
enum:
|
|
131
|
+
DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
|
|
132
|
+
? HistoryActionType
|
|
133
|
+
: undefined,
|
|
134
|
+
length: DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb' ? undefined : 10
|
|
123
135
|
})
|
|
124
136
|
public action!: HistoryActionType
|
|
125
137
|
}
|
|
@@ -62,8 +62,11 @@ export class Board {
|
|
|
62
62
|
DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
|
|
63
63
|
? 'longtext'
|
|
64
64
|
: DATABASE_TYPE == 'oracle'
|
|
65
|
-
|
|
66
|
-
|
|
65
|
+
? 'clob'
|
|
66
|
+
: DATABASE_TYPE == 'mssql'
|
|
67
|
+
? 'nvarchar'
|
|
68
|
+
: 'varchar',
|
|
69
|
+
length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined
|
|
67
70
|
})
|
|
68
71
|
@Field({ nullable: true })
|
|
69
72
|
model?: string
|
|
@@ -74,8 +77,11 @@ export class Board {
|
|
|
74
77
|
DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
|
|
75
78
|
? 'longtext'
|
|
76
79
|
: DATABASE_TYPE == 'oracle'
|
|
77
|
-
|
|
78
|
-
|
|
80
|
+
? 'clob'
|
|
81
|
+
: DATABASE_TYPE == 'mssql'
|
|
82
|
+
? 'nvarchar'
|
|
83
|
+
: 'varchar',
|
|
84
|
+
length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined
|
|
79
85
|
})
|
|
80
86
|
@Field({ nullable: true })
|
|
81
87
|
thumbnail?: string
|
|
@@ -67,7 +67,10 @@ export class BoardTemplate {
|
|
|
67
67
|
? 'longtext'
|
|
68
68
|
: DATABASE_TYPE == 'oracle'
|
|
69
69
|
? 'clob'
|
|
70
|
-
: '
|
|
70
|
+
: DATABASE_TYPE == 'mssql'
|
|
71
|
+
? 'nvarchar'
|
|
72
|
+
: 'varchar',
|
|
73
|
+
length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined
|
|
71
74
|
})
|
|
72
75
|
@Field({ nullable: true })
|
|
73
76
|
model?: string
|
|
@@ -79,7 +82,10 @@ export class BoardTemplate {
|
|
|
79
82
|
? 'longtext'
|
|
80
83
|
: DATABASE_TYPE == 'oracle'
|
|
81
84
|
? 'clob'
|
|
82
|
-
: '
|
|
85
|
+
: DATABASE_TYPE == 'mssql'
|
|
86
|
+
? 'nvarchar'
|
|
87
|
+
: 'varchar',
|
|
88
|
+
length: DATABASE_TYPE == 'mssql' ? 'MAX' : undefined
|
|
83
89
|
})
|
|
84
90
|
@Field({ nullable: true })
|
|
85
91
|
thumbnail?: string
|
|
@@ -69,12 +69,13 @@
|
|
|
69
69
|
const startSubscribingForAutoRefresh = window.startSubscribingForAutoRefresh
|
|
70
70
|
|
|
71
71
|
const board = {
|
|
72
|
-
id: '
|
|
72
|
+
id: (new URL(window.location.href)).pathname.split('/').at(-1),
|
|
73
73
|
model
|
|
74
74
|
}
|
|
75
75
|
|
|
76
76
|
const container = document.querySelector('#scene')
|
|
77
77
|
const viewer = document.createElement('ox-board-viewer')
|
|
78
|
+
viewer.history = true
|
|
78
79
|
viewer.board = board
|
|
79
80
|
viewer.provider = provider
|
|
80
81
|
data && (viewer.data = data)
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* shoot raw data to printer
|
|
3
|
-
*
|
|
4
|
-
* @param printer Printer ID
|
|
5
|
-
* @param command Raw command
|
|
6
|
-
*/
|
|
7
|
-
export declare function printDirect(printer: any, command: any): Promise<void>;
|
|
8
|
-
/**
|
|
9
|
-
* get all installed printers
|
|
10
|
-
*/
|
|
11
|
-
export declare function getPrinters(): any;
|
|
12
|
-
/**
|
|
13
|
-
* get specific printer by name
|
|
14
|
-
* @param printerName printer name
|
|
15
|
-
*/
|
|
16
|
-
export declare function getPrinter(printerName: any): any;
|
|
17
|
-
/**
|
|
18
|
-
* get default printer name
|
|
19
|
-
*/
|
|
20
|
-
export declare function getDefaultPrinterName(): any;
|
|
21
|
-
export declare function getSupportedPrintFormats(): any;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.printDirect = printDirect;
|
|
4
|
-
exports.getPrinters = getPrinters;
|
|
5
|
-
exports.getPrinter = getPrinter;
|
|
6
|
-
exports.getDefaultPrinterName = getDefaultPrinterName;
|
|
7
|
-
exports.getSupportedPrintFormats = getSupportedPrintFormats;
|
|
8
|
-
const env_1 = require("@things-factory/env");
|
|
9
|
-
try {
|
|
10
|
-
var print = require('@thiagoelg/node-printer');
|
|
11
|
-
}
|
|
12
|
-
catch (e) {
|
|
13
|
-
env_1.logger.error(e);
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* shoot raw data to printer
|
|
17
|
-
*
|
|
18
|
-
* @param printer Printer ID
|
|
19
|
-
* @param command Raw command
|
|
20
|
-
*/
|
|
21
|
-
async function printDirect(printer, command) {
|
|
22
|
-
print &&
|
|
23
|
-
(await print.printDirect({
|
|
24
|
-
data: command,
|
|
25
|
-
printer,
|
|
26
|
-
docname: 'RAW print',
|
|
27
|
-
success: function (jobId) {
|
|
28
|
-
console.log(`Job ID: ${jobId}`);
|
|
29
|
-
},
|
|
30
|
-
error: function (error) {
|
|
31
|
-
env_1.logger.error(error);
|
|
32
|
-
}
|
|
33
|
-
}));
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* get all installed printers
|
|
37
|
-
*/
|
|
38
|
-
function getPrinters() {
|
|
39
|
-
return (print === null || print === void 0 ? void 0 : print.getPrinters()) || [];
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* get specific printer by name
|
|
43
|
-
* @param printerName printer name
|
|
44
|
-
*/
|
|
45
|
-
function getPrinter(printerName) {
|
|
46
|
-
return print === null || print === void 0 ? void 0 : print.getPrinter(printerName);
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* get default printer name
|
|
50
|
-
*/
|
|
51
|
-
function getDefaultPrinterName() {
|
|
52
|
-
return print === null || print === void 0 ? void 0 : print.getDefaultPrinterName();
|
|
53
|
-
}
|
|
54
|
-
function getSupportedPrintFormats() {
|
|
55
|
-
return print === null || print === void 0 ? void 0 : print.getSupportedPrintFormats();
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=print.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"print.js","sourceRoot":"","sources":["../../server/controllers/print.ts"],"names":[],"mappings":";;AAcA,kCAaC;AAKD,kCAEC;AAMD,gCAEC;AAKD,sDAEC;AAED,4DAEC;AArDD,6CAA4C;AAE5C,IAAI,CAAC;IACH,IAAI,KAAK,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAA;AAChD,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACX,YAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC;AAED;;;;;GAKG;AACI,KAAK,UAAU,WAAW,CAAC,OAAO,EAAE,OAAO;IAChD,KAAK;QACH,CAAC,MAAM,KAAK,CAAC,WAAW,CAAC;YACvB,IAAI,EAAE,OAAO;YACb,OAAO;YACP,OAAO,EAAE,WAAW;YACpB,OAAO,EAAE,UAAU,KAAK;gBACtB,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,EAAE,CAAC,CAAA;YACjC,CAAC;YACD,KAAK,EAAE,UAAU,KAAK;gBACpB,YAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YACrB,CAAC;SACF,CAAC,CAAC,CAAA;AACP,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW;IACzB,OAAO,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,EAAE,KAAI,EAAE,CAAA;AACnC,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,WAAW;IACpC,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,CAAC,WAAW,CAAC,CAAA;AACvC,CAAC;AAED;;GAEG;AACH,SAAgB,qBAAqB;IACnC,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,qBAAqB,EAAE,CAAA;AACvC,CAAC;AAED,SAAgB,wBAAwB;IACtC,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,wBAAwB,EAAE,CAAA;AAC1C,CAAC","sourcesContent":["import { logger } from '@things-factory/env'\n\ntry {\n var print = require('@thiagoelg/node-printer')\n} catch (e) {\n logger.error(e)\n}\n\n/**\n * shoot raw data to printer\n *\n * @param printer Printer ID\n * @param command Raw command\n */\nexport async function printDirect(printer, command) {\n print &&\n (await print.printDirect({\n data: command,\n printer,\n docname: 'RAW print',\n success: function (jobId) {\n console.log(`Job ID: ${jobId}`)\n },\n error: function (error) {\n logger.error(error)\n }\n }))\n}\n\n/**\n * get all installed printers\n */\nexport function getPrinters() {\n return print?.getPrinters() || []\n}\n\n/**\n * get specific printer by name\n * @param printerName printer name\n */\nexport function getPrinter(printerName) {\n return print?.getPrinter(printerName)\n}\n\n/**\n * get default printer name\n */\nexport function getDefaultPrinterName() {\n return print?.getDefaultPrinterName()\n}\n\nexport function getSupportedPrintFormats() {\n return print?.getSupportedPrintFormats()\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const boardPrintRouter: any;
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.boardPrintRouter = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const koa_router_1 = tslib_1.__importDefault(require("koa-router"));
|
|
6
|
-
const label_command_1 = require("../controllers/label-command");
|
|
7
|
-
const print_1 = require("../controllers/print");
|
|
8
|
-
exports.boardPrintRouter = new koa_router_1.default();
|
|
9
|
-
/**
|
|
10
|
-
* ?printerId=printer_id&data=grf_string
|
|
11
|
-
*/
|
|
12
|
-
exports.boardPrintRouter.get('/print', async (context, next) => {
|
|
13
|
-
let data = Object.keys(context.query).length ? context.query : null;
|
|
14
|
-
context.body = await (0, print_1.printDirect)(data.printerId, data.data);
|
|
15
|
-
});
|
|
16
|
-
/**
|
|
17
|
-
* { printerId: 'printer driver ID', data: 'grf string' }
|
|
18
|
-
*/
|
|
19
|
-
exports.boardPrintRouter.post('/print', async (context, next) => {
|
|
20
|
-
let params = context.request.body;
|
|
21
|
-
context.type = 'text/plain';
|
|
22
|
-
context.body = await (0, print_1.printDirect)(params.printerId, params.data);
|
|
23
|
-
});
|
|
24
|
-
// for webpage scrap => zpl image print(grf format) command for released version board
|
|
25
|
-
exports.boardPrintRouter.get('/print-label/:id', async (context, next) => {
|
|
26
|
-
const { id } = context.params;
|
|
27
|
-
let data = Object.keys(context.query).length ? context.query : null;
|
|
28
|
-
let orientation = data && data.orientation;
|
|
29
|
-
let mirror = data && data.mirror;
|
|
30
|
-
let upsideDown = data && data.upsideDown;
|
|
31
|
-
let grf = await (0, label_command_1.labelcommand)({ id, data, orientation, mirror, upsideDown, context });
|
|
32
|
-
context.type = 'text/plain';
|
|
33
|
-
// TODO: 동기화
|
|
34
|
-
context.body = (0, print_1.printDirect)(data.printerId, grf);
|
|
35
|
-
});
|
|
36
|
-
// for webpage scrap => zpl image print(grf format) command for draft version board
|
|
37
|
-
exports.boardPrintRouter.get('/print-label-draft/:id', async (context, next) => {
|
|
38
|
-
const { id } = context.params;
|
|
39
|
-
let data = Object.keys(context.query).length ? context.query : null;
|
|
40
|
-
let orientation = data && data.orientation;
|
|
41
|
-
let mirror = data && data.mirror;
|
|
42
|
-
let upsideDown = data && data.upsideDown;
|
|
43
|
-
let grf = await (0, label_command_1.labelcommand)({ id, data, orientation, mirror, upsideDown, context, draft: true });
|
|
44
|
-
context.type = 'text/plain';
|
|
45
|
-
// TODO: 동기화
|
|
46
|
-
context.body = (0, print_1.printDirect)(data.printerId, grf);
|
|
47
|
-
});
|
|
48
|
-
//# sourceMappingURL=board-print-router.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"board-print-router.js","sourceRoot":"","sources":["../../server/routers/board-print-router.ts"],"names":[],"mappings":";;;;AAAA,oEAA+B;AAE/B,gEAA2D;AAC3D,gDAAkD;AAErC,QAAA,gBAAgB,GAAG,IAAI,oBAAM,EAAE,CAAA;AAE5C;;GAEG;AACH,wBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACrD,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;IAEnE,OAAO,CAAC,IAAI,GAAG,MAAM,IAAA,mBAAW,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;AAC7D,CAAC,CAAC,CAAA;AAEF;;GAEG;AACH,wBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACtD,IAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAA;IAEjC,OAAO,CAAC,IAAI,GAAG,YAAY,CAAA;IAC3B,OAAO,CAAC,IAAI,GAAG,MAAM,IAAA,mBAAW,EAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;AACjE,CAAC,CAAC,CAAA;AAEF,sFAAsF;AACtF,wBAAgB,CAAC,GAAG,CAAC,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IAC/D,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;IAC7B,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;IAEnE,IAAI,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAA;IAC1C,IAAI,MAAM,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,CAAA;IAChC,IAAI,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC,UAAU,CAAA;IACxC,IAAI,GAAG,GAAG,MAAM,IAAA,4BAAY,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAS,CAAC,CAAA;IAE3F,OAAO,CAAC,IAAI,GAAG,YAAY,CAAA;IAC3B,YAAY;IACZ,OAAO,CAAC,IAAI,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;AACjD,CAAC,CAAC,CAAA;AAEF,mFAAmF;AACnF,wBAAgB,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACrE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAA;IAC7B,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;IAEnE,IAAI,WAAW,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAA;IAC1C,IAAI,MAAM,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,CAAA;IAChC,IAAI,UAAU,GAAG,IAAI,IAAI,IAAI,CAAC,UAAU,CAAA;IACxC,IAAI,GAAG,GAAG,MAAM,IAAA,4BAAY,EAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAS,CAAC,CAAA;IAExG,OAAO,CAAC,IAAI,GAAG,YAAY,CAAA;IAC3B,YAAY;IACZ,OAAO,CAAC,IAAI,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAA;AACjD,CAAC,CAAC,CAAA","sourcesContent":["import Router from 'koa-router'\n\nimport { labelcommand } from '../controllers/label-command'\nimport { printDirect } from '../controllers/print'\n\nexport const boardPrintRouter = new Router()\n\n/**\n * ?printerId=printer_id&data=grf_string\n */\nboardPrintRouter.get('/print', async (context, next) => {\n let data = Object.keys(context.query).length ? context.query : null\n\n context.body = await printDirect(data.printerId, data.data)\n})\n\n/**\n * { printerId: 'printer driver ID', data: 'grf string' }\n */\nboardPrintRouter.post('/print', async (context, next) => {\n let params = context.request.body\n\n context.type = 'text/plain'\n context.body = await printDirect(params.printerId, params.data)\n})\n\n// for webpage scrap => zpl image print(grf format) command for released version board\nboardPrintRouter.get('/print-label/:id', async (context, next) => {\n const { id } = context.params\n let data = Object.keys(context.query).length ? context.query : null\n\n let orientation = data && data.orientation\n let mirror = data && data.mirror\n let upsideDown = data && data.upsideDown\n let grf = await labelcommand({ id, data, orientation, mirror, upsideDown, context } as any)\n\n context.type = 'text/plain'\n // TODO: 동기화\n context.body = printDirect(data.printerId, grf)\n})\n\n// for webpage scrap => zpl image print(grf format) command for draft version board\nboardPrintRouter.get('/print-label-draft/:id', async (context, next) => {\n const { id } = context.params\n let data = Object.keys(context.query).length ? context.query : null\n\n let orientation = data && data.orientation\n let mirror = data && data.mirror\n let upsideDown = data && data.upsideDown\n let grf = await labelcommand({ id, data, orientation, mirror, upsideDown, context, draft: true } as any)\n\n context.type = 'text/plain'\n // TODO: 동기화\n context.body = printDirect(data.printerId, grf)\n})\n"]}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { logger } from '@things-factory/env'
|
|
2
|
-
|
|
3
|
-
try {
|
|
4
|
-
var print = require('@thiagoelg/node-printer')
|
|
5
|
-
} catch (e) {
|
|
6
|
-
logger.error(e)
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* shoot raw data to printer
|
|
11
|
-
*
|
|
12
|
-
* @param printer Printer ID
|
|
13
|
-
* @param command Raw command
|
|
14
|
-
*/
|
|
15
|
-
export async function printDirect(printer, command) {
|
|
16
|
-
print &&
|
|
17
|
-
(await print.printDirect({
|
|
18
|
-
data: command,
|
|
19
|
-
printer,
|
|
20
|
-
docname: 'RAW print',
|
|
21
|
-
success: function (jobId) {
|
|
22
|
-
console.log(`Job ID: ${jobId}`)
|
|
23
|
-
},
|
|
24
|
-
error: function (error) {
|
|
25
|
-
logger.error(error)
|
|
26
|
-
}
|
|
27
|
-
}))
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* get all installed printers
|
|
32
|
-
*/
|
|
33
|
-
export function getPrinters() {
|
|
34
|
-
return print?.getPrinters() || []
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* get specific printer by name
|
|
39
|
-
* @param printerName printer name
|
|
40
|
-
*/
|
|
41
|
-
export function getPrinter(printerName) {
|
|
42
|
-
return print?.getPrinter(printerName)
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* get default printer name
|
|
47
|
-
*/
|
|
48
|
-
export function getDefaultPrinterName() {
|
|
49
|
-
return print?.getDefaultPrinterName()
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export function getSupportedPrintFormats() {
|
|
53
|
-
return print?.getSupportedPrintFormats()
|
|
54
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import Router from 'koa-router'
|
|
2
|
-
|
|
3
|
-
import { labelcommand } from '../controllers/label-command'
|
|
4
|
-
import { printDirect } from '../controllers/print'
|
|
5
|
-
|
|
6
|
-
export const boardPrintRouter = new Router()
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* ?printerId=printer_id&data=grf_string
|
|
10
|
-
*/
|
|
11
|
-
boardPrintRouter.get('/print', async (context, next) => {
|
|
12
|
-
let data = Object.keys(context.query).length ? context.query : null
|
|
13
|
-
|
|
14
|
-
context.body = await printDirect(data.printerId, data.data)
|
|
15
|
-
})
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* { printerId: 'printer driver ID', data: 'grf string' }
|
|
19
|
-
*/
|
|
20
|
-
boardPrintRouter.post('/print', async (context, next) => {
|
|
21
|
-
let params = context.request.body
|
|
22
|
-
|
|
23
|
-
context.type = 'text/plain'
|
|
24
|
-
context.body = await printDirect(params.printerId, params.data)
|
|
25
|
-
})
|
|
26
|
-
|
|
27
|
-
// for webpage scrap => zpl image print(grf format) command for released version board
|
|
28
|
-
boardPrintRouter.get('/print-label/:id', async (context, next) => {
|
|
29
|
-
const { id } = context.params
|
|
30
|
-
let data = Object.keys(context.query).length ? context.query : null
|
|
31
|
-
|
|
32
|
-
let orientation = data && data.orientation
|
|
33
|
-
let mirror = data && data.mirror
|
|
34
|
-
let upsideDown = data && data.upsideDown
|
|
35
|
-
let grf = await labelcommand({ id, data, orientation, mirror, upsideDown, context } as any)
|
|
36
|
-
|
|
37
|
-
context.type = 'text/plain'
|
|
38
|
-
// TODO: 동기화
|
|
39
|
-
context.body = printDirect(data.printerId, grf)
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
// for webpage scrap => zpl image print(grf format) command for draft version board
|
|
43
|
-
boardPrintRouter.get('/print-label-draft/:id', async (context, next) => {
|
|
44
|
-
const { id } = context.params
|
|
45
|
-
let data = Object.keys(context.query).length ? context.query : null
|
|
46
|
-
|
|
47
|
-
let orientation = data && data.orientation
|
|
48
|
-
let mirror = data && data.mirror
|
|
49
|
-
let upsideDown = data && data.upsideDown
|
|
50
|
-
let grf = await labelcommand({ id, data, orientation, mirror, upsideDown, context, draft: true } as any)
|
|
51
|
-
|
|
52
|
-
context.type = 'text/plain'
|
|
53
|
-
// TODO: 동기화
|
|
54
|
-
context.body = printDirect(data.printerId, grf)
|
|
55
|
-
})
|