@things-factory/board-service 4.0.0-y.0 → 4.0.5

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.
Files changed (47) hide show
  1. package/dist-server/controllers/fonts.js +4 -1
  2. package/dist-server/controllers/fonts.js.map +1 -1
  3. package/dist-server/controllers/headless-pool-for-board.js +82 -0
  4. package/dist-server/controllers/headless-pool-for-board.js.map +1 -0
  5. package/dist-server/controllers/headless-pool-for-label.js +146 -0
  6. package/dist-server/controllers/headless-pool-for-label.js.map +1 -0
  7. package/dist-server/controllers/label-command.js +10 -65
  8. package/dist-server/controllers/label-command.js.map +1 -1
  9. package/dist-server/controllers/pdf.js +59 -51
  10. package/dist-server/controllers/pdf.js.map +1 -1
  11. package/dist-server/controllers/screenshot.js +6 -5
  12. package/dist-server/controllers/screenshot.js.map +1 -1
  13. package/dist-server/routers/standalone-board-service-router.js +9 -9
  14. package/dist-server/routers/standalone-board-service-router.js.map +1 -1
  15. package/dist-server/routes.js +6 -4
  16. package/dist-server/routes.js.map +1 -1
  17. package/dist-server/service/board/board.js +18 -3
  18. package/dist-server/service/board/board.js.map +1 -1
  19. package/dist-server/service/group/group-mutation.js +3 -3
  20. package/dist-server/service/group/group-mutation.js.map +1 -1
  21. package/dist-server/service/group/group-query.js +3 -3
  22. package/dist-server/service/group/group-query.js.map +1 -1
  23. package/dist-server/service/play-group/play-group-mutation.js +3 -3
  24. package/dist-server/service/play-group/play-group-mutation.js.map +1 -1
  25. package/dist-server/service/play-group/play-group-query.js +3 -3
  26. package/dist-server/service/play-group/play-group-query.js.map +1 -1
  27. package/dist-server/service/play-group/play-group.js +3 -2
  28. package/dist-server/service/play-group/play-group.js.map +1 -1
  29. package/package.json +6 -5
  30. package/server/controllers/fonts.ts +8 -2
  31. package/server/controllers/headless-pool-for-board.ts +70 -0
  32. package/server/controllers/headless-pool-for-label.ts +125 -0
  33. package/server/controllers/label-command.ts +12 -71
  34. package/server/controllers/pdf.ts +66 -60
  35. package/server/controllers/screenshot.ts +6 -5
  36. package/server/routers/standalone-board-service-router.ts +9 -10
  37. package/server/routes.ts +6 -6
  38. package/server/service/board/board.ts +27 -9
  39. package/server/service/group/group-mutation.ts +7 -6
  40. package/server/service/group/group-query.ts +6 -4
  41. package/server/service/play-group/play-group-mutation.ts +6 -5
  42. package/server/service/play-group/play-group-query.ts +6 -4
  43. package/server/service/play-group/play-group.ts +10 -8
  44. package/views/internal-label-command-view.html +1 -2
  45. package/dist-server/headless-chromium.js +0 -38
  46. package/dist-server/headless-chromium.js.map +0 -1
  47. package/server/headless-chromium.ts +0 -41
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fonts = void 0;
4
4
  const typeorm_1 = require("typeorm");
5
5
  const font_base_1 = require("@things-factory/font-base");
6
- const fonts = () => (0, typeorm_1.getRepository)(font_base_1.Font).find({ select: ['name'] });
6
+ const fonts = async () => {
7
+ const qb = await (0, typeorm_1.getRepository)(font_base_1.Font).createQueryBuilder('FONT');
8
+ return (await qb.select('name').distinct(true).where({ active: true }).getRawMany()).map((f) => f.name);
9
+ };
7
10
  exports.fonts = fonts;
8
11
  //# sourceMappingURL=fonts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../server/controllers/fonts.ts"],"names":[],"mappings":";;;AAAA,qCAAuC;AACvC,yDAAgD;AAEzC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,IAAA,uBAAa,EAAC,gBAAI,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAA5D,QAAA,KAAK,SAAuD"}
1
+ {"version":3,"file":"fonts.js","sourceRoot":"","sources":["../../server/controllers/fonts.ts"],"names":[],"mappings":";;;AAAA,qCAA+E;AAE/E,yDAAgD;AAEzC,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;IAC9B,MAAM,EAAE,GAA6B,MAAM,IAAA,uBAAa,EAAC,gBAAI,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;IACzF,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CACtF,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAChC,CAAA;AACH,CAAC,CAAA;AALY,QAAA,KAAK,SAKjB"}
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.getHeadlessPool = void 0;
23
+ const genericPool = __importStar(require("generic-pool"));
24
+ const env_1 = require("@things-factory/env");
25
+ try {
26
+ var puppeteer = require('puppeteer');
27
+ }
28
+ catch (err) {
29
+ console.error(err);
30
+ }
31
+ var headlessPool;
32
+ function getHeadlessPool() {
33
+ if (!headlessPool) {
34
+ headlessPool = genericPool.createPool({
35
+ create() {
36
+ console.log('headless-pool-for-board about to create');
37
+ return initializeChromium();
38
+ },
39
+ validate(browser) {
40
+ return Promise.race([
41
+ new Promise(res => setTimeout(() => res(false), 1500)),
42
+ browser
43
+ //@ts-ignore
44
+ .version()
45
+ .then(_ => true)
46
+ .catch(_ => false)
47
+ ]);
48
+ },
49
+ destroy(browser) {
50
+ //@ts-ignore
51
+ return browser.close();
52
+ }
53
+ }, {
54
+ min: 2,
55
+ max: 10,
56
+ testOnBorrow: true,
57
+ acquireTimeoutMillis: 15000
58
+ });
59
+ }
60
+ return headlessPool;
61
+ }
62
+ exports.getHeadlessPool = getHeadlessPool;
63
+ const CHROMIUM_PATH = env_1.config.get('CHROMIUM_PATH');
64
+ async function initializeChromium() {
65
+ try {
66
+ if (!puppeteer) {
67
+ return;
68
+ }
69
+ var launchSetting = {
70
+ args: ['--hide-scrollbars', '--mute-audio', '--no-sandbox']
71
+ };
72
+ if (CHROMIUM_PATH) {
73
+ launchSetting['executablePath'] = CHROMIUM_PATH;
74
+ }
75
+ const browser = await puppeteer.launch(launchSetting);
76
+ return browser;
77
+ }
78
+ catch (err) {
79
+ console.error(err);
80
+ }
81
+ }
82
+ //# sourceMappingURL=headless-pool-for-board.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headless-pool-for-board.js","sourceRoot":"","sources":["../../server/controllers/headless-pool-for-board.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA2C;AAE3C,6CAA4C;AAE5C,IAAI;IACF,IAAI,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;CACrC;AAAC,OAAO,GAAG,EAAE;IACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;CACnB;AAED,IAAI,YAAY,CAAA;AAEhB,SAAgB,eAAe;IAC7B,IAAI,CAAC,YAAY,EAAE;QACjB,YAAY,GAAG,WAAW,CAAC,UAAU,CACnC;YACE,MAAM;gBACJ,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAA;gBACtD,OAAO,kBAAkB,EAAE,CAAA;YAC7B,CAAC;YACD,QAAQ,CAAC,OAAO;gBACd,OAAO,OAAO,CAAC,IAAI,CAAC;oBAClB,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;oBACtD,OAAO;wBACL,YAAY;yBACX,OAAO,EAAE;yBACT,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;yBACf,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;iBACrB,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,CAAC,OAAO;gBACb,YAAY;gBACZ,OAAO,OAAO,CAAC,KAAK,EAAE,CAAA;YACxB,CAAC;SACF,EACD;YACE,GAAG,EAAE,CAAC;YACN,GAAG,EAAE,EAAE;YACP,YAAY,EAAE,IAAI;YAClB,oBAAoB,EAAE,KAAK;SAC5B,CACF,CAAA;KACF;IAED,OAAO,YAAY,CAAA;AACrB,CAAC;AAjCD,0CAiCC;AAED,MAAM,aAAa,GAAG,YAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AAEjD,KAAK,UAAU,kBAAkB;IAC/B,IAAI;QACF,IAAI,CAAC,SAAS,EAAE;YACd,OAAM;SACP;QAED,IAAI,aAAa,GAAG;YAClB,IAAI,EAAE,CAAC,mBAAmB,EAAE,cAAc,EAAE,cAAc,CAAC;SAC5D,CAAA;QAED,IAAI,aAAa,EAAE;YACjB,aAAa,CAAC,gBAAgB,CAAC,GAAG,aAAa,CAAA;SAChD;QAED,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;QAErD,OAAO,OAAO,CAAA;KACf;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;KACnB;AACH,CAAC"}
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __asyncValues = (this && this.__asyncValues) || function (o) {
22
+ if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
23
+ var m = o[Symbol.asyncIterator], i;
24
+ return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
25
+ function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
26
+ function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.getHeadlessPool = void 0;
30
+ const genericPool = __importStar(require("generic-pool"));
31
+ const env_1 = require("@things-factory/env");
32
+ const shell_1 = require("@things-factory/shell");
33
+ const fonts_1 = require("./fonts");
34
+ try {
35
+ var puppeteer = require('puppeteer');
36
+ }
37
+ catch (err) {
38
+ console.error(err);
39
+ }
40
+ var headlessPool;
41
+ function getHeadlessPool() {
42
+ if (!headlessPool) {
43
+ headlessPool = genericPool.createPool({
44
+ create() {
45
+ console.log('headless-pool-for-label about to create');
46
+ return initializeScenePage();
47
+ },
48
+ validate({ browser, page }) {
49
+ return Promise.race([
50
+ new Promise(res => setTimeout(() => res(false), 1500)),
51
+ browser
52
+ //@ts-ignore
53
+ .version()
54
+ .then(_ => true)
55
+ .catch(_ => false)
56
+ ]);
57
+ },
58
+ destroy({ browser, page }) {
59
+ //@ts-ignore
60
+ return browser.close();
61
+ }
62
+ }, {
63
+ min: 2,
64
+ max: 10,
65
+ testOnBorrow: true,
66
+ acquireTimeoutMillis: 15000
67
+ });
68
+ setTimeout(async () => {
69
+ var e_1, _a;
70
+ const it = shell_1.pubsub.asyncIterator('notify-font-changed');
71
+ try {
72
+ for (var it_1 = __asyncValues(it), it_1_1; it_1_1 = await it_1.next(), !it_1_1.done;) {
73
+ const data = it_1_1.value;
74
+ headlessPool.clear();
75
+ }
76
+ }
77
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
78
+ finally {
79
+ try {
80
+ if (it_1_1 && !it_1_1.done && (_a = it_1.return)) await _a.call(it_1);
81
+ }
82
+ finally { if (e_1) throw e_1.error; }
83
+ }
84
+ });
85
+ }
86
+ return headlessPool;
87
+ }
88
+ exports.getHeadlessPool = getHeadlessPool;
89
+ const CHROMIUM_PATH = env_1.config.get('CHROMIUM_PATH');
90
+ async function initializeChromium() {
91
+ try {
92
+ if (!puppeteer) {
93
+ return;
94
+ }
95
+ var launchSetting = {
96
+ args: ['--hide-scrollbars', '--mute-audio', '--no-sandbox']
97
+ };
98
+ if (CHROMIUM_PATH) {
99
+ launchSetting['executablePath'] = CHROMIUM_PATH;
100
+ }
101
+ const browser = await puppeteer.launch(launchSetting);
102
+ return browser;
103
+ }
104
+ catch (err) {
105
+ console.error(err);
106
+ }
107
+ }
108
+ async function initializeScenePage() {
109
+ /* get brand new browser for every request */
110
+ const browser = await initializeChromium();
111
+ if (!browser) {
112
+ return;
113
+ }
114
+ const protocol = 'http';
115
+ const host = 'localhost';
116
+ const path = '/internal-label-command-view';
117
+ const port = process.env.PORT;
118
+ const url = `${protocol}://${host}:${port}${path}`;
119
+ const page = await browser.newPage();
120
+ const fontsToUse = await (0, fonts_1.fonts)();
121
+ await page.setRequestInterception(true);
122
+ page.on('console', msg => {
123
+ console.log(`[browser ${msg._type}] ${msg._text}`);
124
+ for (let i = 0; i < msg.args().length; ++i)
125
+ console.log(`${i}: ${msg.args()[i]}`);
126
+ });
127
+ page.on('request', request => {
128
+ if (request.url() === url) {
129
+ request.continue({
130
+ method: 'POST',
131
+ headers: {
132
+ 'Content-Type': 'application/json'
133
+ },
134
+ postData: JSON.stringify({
135
+ fonts: fontsToUse
136
+ })
137
+ });
138
+ }
139
+ else {
140
+ request.continue();
141
+ }
142
+ });
143
+ await page.goto(url, { timeout: 0 });
144
+ return { browser, page };
145
+ }
146
+ //# sourceMappingURL=headless-pool-for-label.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headless-pool-for-label.js","sourceRoot":"","sources":["../../server/controllers/headless-pool-for-label.ts"],"names":[],"mappings":"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"}
@@ -2,54 +2,10 @@
2
2
  /*
3
3
  * Copyright © HatioLab Inc. All rights reserved.
4
4
  */
5
- var __importDefault = (this && this.__importDefault) || function (mod) {
6
- return (mod && mod.__esModule) ? mod : { "default": mod };
7
- };
8
5
  Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.labelcommand = exports.initializeLabelPage = void 0;
10
- const headless_chromium_1 = require("../headless-chromium");
11
- const fonts_1 = require("./fonts");
12
- const v4_1 = __importDefault(require("uuid/v4"));
6
+ exports.labelcommand = void 0;
7
+ const headless_pool_for_label_1 = require("./headless-pool-for-label");
13
8
  const headless_model_1 = require("./headless-model");
14
- var fontsInUse = [], fontsToUse = [], labelPage, browser;
15
- async function initializeLabelPage() {
16
- browser = await (0, headless_chromium_1.initializeChromium)();
17
- if (!browser) {
18
- return;
19
- }
20
- const protocol = 'http';
21
- const host = 'localhost';
22
- const path = '/internal-label-command-view';
23
- const port = process.env.PORT;
24
- const url = `${protocol}://${host}:${port}${path}`;
25
- labelPage = await browser.newPage();
26
- fontsToUse = (await (0, fonts_1.fonts)()).map((f) => f.name);
27
- await labelPage.setRequestInterception(true);
28
- labelPage.on('console', msg => {
29
- console.log(`[browser ${msg._type}] ${msg._text}`);
30
- for (let i = 0; i < msg.args().length; ++i)
31
- console.log(`${i}: ${msg.args()[i]}`);
32
- });
33
- labelPage.on('request', request => {
34
- if (request.url() === url) {
35
- request.continue({
36
- method: 'POST',
37
- headers: {
38
- 'Content-Type': 'application/json'
39
- },
40
- postData: JSON.stringify({
41
- fonts: fontsToUse
42
- })
43
- });
44
- }
45
- else {
46
- request.continue();
47
- }
48
- });
49
- await labelPage.goto(url, { timeout: 0 });
50
- return labelPage;
51
- }
52
- exports.initializeLabelPage = initializeLabelPage;
53
9
  /**
54
10
  * 라벨 출력
55
11
  *
@@ -61,27 +17,15 @@ exports.initializeLabelPage = initializeLabelPage;
61
17
  */
62
18
  const labelcommand = async ({ id, model, data, orientation, mirror = false, upsideDown = false, context }) => {
63
19
  const { domain } = context.state;
64
- if (!browser || (browser && !browser.isConnected())) {
65
- await initializeLabelPage();
20
+ const resource = (await (0, headless_pool_for_label_1.getHeadlessPool)().acquire());
21
+ if (!resource) {
22
+ return;
66
23
  }
24
+ const { page } = resource;
67
25
  var { model } = await (0, headless_model_1.headlessModel)({ domain, model, id });
68
- var fontListChanged = false;
69
- fontsToUse = (await (0, fonts_1.fonts)()).map((f) => {
70
- if (!fontListChanged && !fontsInUse.find(inUse => inUse == f.name)) {
71
- fontListChanged = true;
72
- }
73
- return f.name;
74
- });
75
- var page = labelPage;
76
- if (fontListChanged) {
77
- fontsInUse = fontsToUse;
78
- console.log('[label-command] Refreshing page to load fonts.');
79
- await page.reload();
80
- }
81
- var guid = (0, v4_1.default)();
82
- const grf = await page.evaluate(async (guid, model, data, orientation, mirror, upsideDown) => {
26
+ const grf = await page.evaluate(async (model, data, orientation, mirror, upsideDown) => {
83
27
  //@ts-ignore
84
- let s = createScene(guid, model);
28
+ let s = createScene(model);
85
29
  if (data) {
86
30
  s.data = data;
87
31
  }
@@ -96,7 +40,8 @@ const labelcommand = async ({ id, model, data, orientation, mirror = false, upsi
96
40
  s.dispose();
97
41
  });
98
42
  });
99
- }, guid, model, data, orientation, mirror, upsideDown);
43
+ }, model, data, orientation, mirror, upsideDown);
44
+ (0, headless_pool_for_label_1.getHeadlessPool)().release(resource);
100
45
  return `
101
46
  ^XA
102
47
  ^GFA,${grf}
@@ -1 +1 @@
1
- {"version":3,"file":"label-command.js","sourceRoot":"","sources":["../../server/controllers/label-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"label-command.js","sourceRoot":"","sources":["../../server/controllers/label-command.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,uEAA2D;AAC3D,qDAAgD;AAEhD;;;;;;;;GAQG;AACI,MAAM,YAAY,GAAG,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,GAAG,KAAK,EAAE,UAAU,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;IAClH,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAEhC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAA,yCAAe,GAAE,CAAC,OAAO,EAAE,CAAQ,CAAA;IAC3D,IAAI,CAAC,QAAQ,EAAE;QACb,OAAM;KACP;IAED,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAA;IAEzB,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAA,8BAAa,EAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAA;IAE1D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC7B,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE;QACrD,YAAY;QACZ,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,CAAA;QAC1B,IAAI,IAAI,EAAE;YACR,CAAC,CAAC,IAAI,GAAG,IAAI,CAAA;SACd;QACD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;YAC3B,aAAa;YACb,qBAAqB,CAAC,GAAG,EAAE;gBACzB,aAAa;gBACb,IAAI,GAAG,GAAG,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAA;gBACnE,OAAO,CAAC,GAAG,CAAC,CAAA;gBACZ,aAAa;gBACb,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;gBACpC,CAAC,CAAC,OAAO,EAAE,CAAA;YACb,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,EACD,KAAK,EACL,IAAI,EACJ,WAAW,EACX,MAAM,EACN,UAAU,CACX,CAAA;IAED,IAAA,yCAAe,GAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAEnC,OAAO;;OAEF,GAAG;;IAEN,CAAA;AACJ,CAAC,CAAA;AA7CY,QAAA,YAAY,gBA6CxB"}
@@ -1,20 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.pdf = void 0;
4
- const headless_model_1 = require("./headless-model");
5
4
  const fonts_1 = require("./fonts");
6
- const headless_chromium_1 = require("../headless-chromium");
5
+ const headless_pool_for_board_1 = require("./headless-pool-for-board");
6
+ const headless_model_1 = require("./headless-model");
7
7
  const protocol = 'http';
8
8
  const host = 'localhost';
9
9
  const path = '/internal-board-service-view';
10
10
  const pdf = async ({ id = '', model = null, data = null, width: w = 0, height: h = 0, options = {}, context = {} } = {}) => {
11
- var browser = await (0, headless_chromium_1.initializeChromium)();
11
+ const browser = (await (0, headless_pool_for_board_1.getHeadlessPool)().acquire());
12
12
  if (!browser) {
13
13
  return;
14
14
  }
15
15
  const { domain, user } = context.state;
16
16
  var { model, base } = await (0, headless_model_1.headlessModel)({ domain, id, model });
17
- model.fonts = (await (0, fonts_1.fonts)()).map((font) => font.name);
17
+ model.fonts = await (0, fonts_1.fonts)();
18
18
  let { width, height } = model;
19
19
  width = Number(width);
20
20
  height = Number(height);
@@ -30,54 +30,62 @@ const pdf = async ({ id = '', model = null, data = null, width: w = 0, height: h
30
30
  const port = process.env.PORT ? `:${process.env.PORT}` : '';
31
31
  const url = `${protocol}://${host}${port}${path}`;
32
32
  const page = await browser.newPage();
33
- /* @remember-me width, height should be a integer */
34
- await page.setViewport({ width, height });
35
- await page.setRequestInterception(true);
36
- page.on('console', msg => {
37
- console.log(`[browser ${msg._type}] ${msg._text}`);
38
- for (let i = 0; i < msg.args().length; ++i)
39
- console.log(`${i}: ${msg.args()[i]}`);
40
- });
41
- const token = await (user === null || user === void 0 ? void 0 : user.sign()); // TODO improve performance
42
- page.on('request', request => {
43
- if (request.url() === url) {
44
- request.continue({
45
- method: 'POST',
46
- headers: {
47
- 'Content-Type': 'application/json',
48
- 'x-things-factory-domain': domain === null || domain === void 0 ? void 0 : domain.subdomain,
49
- Authorization: 'Bearer ' + token
50
- },
51
- postData: JSON.stringify({
52
- model,
53
- base
54
- })
55
- });
56
- }
57
- else if (request.url().startsWith(`${protocol}://${host}${port}`)) {
58
- request.continue({
59
- headers: Object.assign(Object.assign({}, request.headers()), { 'x-things-factory-domain': domain === null || domain === void 0 ? void 0 : domain.subdomain, Authorization: 'Bearer ' + token })
60
- });
61
- }
62
- else {
63
- request.continue();
64
- }
65
- });
66
- await page.goto(url);
67
- await page.evaluate(async (data) => {
68
- if (data) {
69
- // @ts-ignore
70
- s.data = data;
71
- }
72
- // data 주입 후 강제 지연시킴.
73
- return new Promise(resolve => {
74
- // @ts-ignore
75
- requestAnimationFrame(() => resolve());
33
+ try {
34
+ /* @remember-me width, height should be a integer */
35
+ await page.setViewport({ width, height });
36
+ await page.setRequestInterception(true);
37
+ page.on('console', msg => {
38
+ console.log(`[browser ${msg._type}] ${msg._text}`);
39
+ for (let i = 0; i < msg.args().length; ++i)
40
+ console.log(`${i}: ${msg.args()[i]}`);
41
+ });
42
+ const token = await (user === null || user === void 0 ? void 0 : user.sign()); // TODO improve performance
43
+ page.on('request', request => {
44
+ if (request.url() === url) {
45
+ request.continue({
46
+ method: 'POST',
47
+ headers: {
48
+ 'Content-Type': 'application/json',
49
+ 'x-things-factory-domain': domain === null || domain === void 0 ? void 0 : domain.subdomain,
50
+ Authorization: 'Bearer ' + token
51
+ },
52
+ postData: JSON.stringify({
53
+ model,
54
+ base
55
+ })
56
+ });
57
+ }
58
+ else if (request.url().startsWith(`${protocol}://${host}${port}`)) {
59
+ request.continue({
60
+ headers: Object.assign(Object.assign({}, request.headers()), { 'x-things-factory-domain': domain === null || domain === void 0 ? void 0 : domain.subdomain, Authorization: 'Bearer ' + token })
61
+ });
62
+ }
63
+ else {
64
+ request.continue();
65
+ }
76
66
  });
77
- }, data);
78
- const pdf = await page.pdf(Object.assign({ format: 'A4' }, options));
79
- page.close();
80
- return pdf;
67
+ await page.goto(url);
68
+ await page.evaluate(async (data) => {
69
+ if (data) {
70
+ // @ts-ignore
71
+ s.data = data;
72
+ }
73
+ // data 주입 후 강제 지연시킴.
74
+ return new Promise(resolve => {
75
+ // @ts-ignore
76
+ requestAnimationFrame(() => resolve());
77
+ });
78
+ }, data);
79
+ const pdf = await page.pdf(Object.assign({ format: 'A4' }, options));
80
+ }
81
+ catch (error) {
82
+ console.log(error);
83
+ }
84
+ finally {
85
+ page.close();
86
+ (0, headless_pool_for_board_1.getHeadlessPool)().release(browser);
87
+ }
88
+ return exports.pdf;
81
89
  };
82
90
  exports.pdf = pdf;
83
91
  //# sourceMappingURL=pdf.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../server/controllers/pdf.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../server/controllers/pdf.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.screenshot = void 0;
4
- const headless_model_1 = require("./headless-model");
5
4
  const fonts_1 = require("./fonts");
6
- const headless_chromium_1 = require("../headless-chromium");
5
+ const headless_pool_for_board_1 = require("./headless-pool-for-board");
6
+ const headless_model_1 = require("./headless-model");
7
7
  const protocol = 'http';
8
8
  const host = 'localhost';
9
9
  const path = '/internal-board-service-view';
10
10
  const screenshot = async ({ id = '', model = null, data = null, width: w = 0, height: h = 0, options = { encoding: 'base64' }, isThumbnail = false, context = {} } = {}) => {
11
- var browser = await (0, headless_chromium_1.initializeChromium)();
11
+ const browser = (await (0, headless_pool_for_board_1.getHeadlessPool)().acquire());
12
12
  var screenshot = null;
13
13
  if (!browser) {
14
14
  return;
15
15
  }
16
16
  const { domain, user } = context.state;
17
17
  var { model, base } = await (0, headless_model_1.headlessModel)({ domain, id, model });
18
- model.fonts = (await (0, fonts_1.fonts)()).map((font) => font.name);
18
+ model.fonts = await (0, fonts_1.fonts)();
19
19
  var { width, height } = model;
20
20
  if (isThumbnail) {
21
21
  var widthRatio = 400 / width, heightRatio = 300 / height;
@@ -32,7 +32,7 @@ const screenshot = async ({ id = '', model = null, data = null, width: w = 0, he
32
32
  /* @remember-me width, height should be a integer */
33
33
  await page.setViewport({ width, height });
34
34
  await page.setRequestInterception(true);
35
- await page.setDefaultTimeout(3000);
35
+ await page.setDefaultTimeout(5000);
36
36
  page.on('console', msg => {
37
37
  console.log(`[browser ${msg._type}] ${msg._text}`);
38
38
  for (let i = 0; i < msg.args().length; ++i)
@@ -82,6 +82,7 @@ const screenshot = async ({ id = '', model = null, data = null, width: w = 0, he
82
82
  }
83
83
  finally {
84
84
  page.close();
85
+ (0, headless_pool_for_board_1.getHeadlessPool)().release(browser);
85
86
  }
86
87
  return screenshot;
87
88
  };
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../server/controllers/screenshot.ts"],"names":[],"mappings":";;;AAAA,qDAAgD;AAChD,mCAA+B;AAC/B,4DAAyD;AAEzD,MAAM,QAAQ,GAAG,MAAM,CAAA;AACvB,MAAM,IAAI,GAAG,WAAW,CAAA;AACxB,MAAM,IAAI,GAAG,8BAA8B,CAAA;AAEpC,MAAM,UAAU,GAAG,KAAK,EAAE,EAC/B,EAAE,GAAG,EAAE,EACP,KAAK,GAAG,IAAI,EACZ,IAAI,GAAG,IAAI,EACX,KAAK,EAAE,CAAC,GAAG,CAAC,EACZ,MAAM,EAAE,CAAC,GAAG,CAAC,EACb,OAAO,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAS,EACvC,WAAW,GAAG,KAAK,EACnB,OAAO,GAAG,EAAS,KACjB,EAAE,EAAE,EAAE;IACR,IAAI,OAAO,GAAG,MAAM,IAAA,sCAAkB,GAAE,CAAA;IACxC,IAAI,UAAU,GAAG,IAAI,CAAA;IAErB,IAAI,CAAC,OAAO,EAAE;QACZ,OAAM;KACP;IACD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAEtC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,8BAAa,EAAC,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,CAAA;IAChE,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,IAAA,aAAK,GAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAc,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEhE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IAE7B,IAAI,WAAW,EAAE;QACf,IAAI,UAAU,GAAG,GAAG,GAAG,KAAK,EAC1B,WAAW,GAAG,GAAG,GAAG,MAAM,CAAA;QAC5B,IAAI,KAAK,GAAG,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAA;QAC/D,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;QACrB,MAAM,GAAG,MAAM,GAAG,KAAK,CAAA;KACxB;IACD,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACtC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA;IAExC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3D,MAAM,GAAG,GAAG,GAAG,QAAQ,MAAM,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,CAAA;IAEjD,IAAI,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;IAElC,IAAI;QACF,oDAAoD;QACpD,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA;QACzC,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;QACvC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QAElC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;YACvB,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC,CAAA;YAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QACnF,CAAC,CAAC,CAAA;QAEF,MAAM,KAAK,GAAG,MAAM,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE,CAAA,CAAA,CAAC,2BAA2B;QAE5D,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE;YAC3B,IAAI,OAAO,CAAC,GAAG,EAAE,KAAK,GAAG,EAAE;gBACzB,OAAO,CAAC,QAAQ,CAAC;oBACf,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,kBAAkB;wBAClC,yBAAyB,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS;wBAC5C,aAAa,EAAE,SAAS,GAAG,KAAK;qBACjC;oBACD,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC;wBACvB,KAAK;wBACL,IAAI;qBACL,CAAC;iBACH,CAAC,CAAA;aACH;iBAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,QAAQ,MAAM,IAAI,GAAG,IAAI,EAAE,CAAC,EAAE;gBACnE,OAAO,CAAC,QAAQ,CAAC;oBACf,OAAO,kCACF,OAAO,CAAC,OAAO,EAAE,KACpB,yBAAyB,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,EAC5C,aAAa,EAAE,SAAS,GAAG,KAAK,GACjC;iBACF,CAAC,CAAA;aACH;iBAAM;gBACL,OAAO,CAAC,QAAQ,EAAE,CAAA;aACnB;QACH,CAAC,CAAC,CAAA;QACF,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAEpB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAC,IAAI,EAAC,EAAE;YAC/B,IAAI,IAAI,EAAE;gBACR,aAAa;gBACb,CAAC,CAAC,IAAI,GAAG,IAAI,CAAA;aACd;YAED,qBAAqB;YACrB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC3B,aAAa;gBACb,qBAAqB,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAA;YACxC,CAAC,CAAC,CAAA;QACJ,CAAC,EAAE,IAAI,CAAC,CAAA;QAER,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;KAC5C;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;KACnB;YAAS;QACR,IAAI,CAAC,KAAK,EAAE,CAAA;KACb;IAED,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AApGY,QAAA,UAAU,cAoGtB"}
1
+ {"version":3,"file":"screenshot.js","sourceRoot":"","sources":["../../server/controllers/screenshot.ts"],"names":[],"mappings":"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"}
@@ -4,23 +4,23 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.standaloneBoardServiceRouter = void 0;
7
+ const board_1 = require("../service/board/board");
7
8
  const koa_router_1 = __importDefault(require("koa-router"));
8
- const typeorm_1 = require("typeorm");
9
9
  const content_disposition_1 = __importDefault(require("content-disposition"));
10
- const auth_base_1 = require("@things-factory/auth-base");
11
- const screenshot_1 = require("../controllers/screenshot");
12
- const pdf_1 = require("../controllers/pdf");
10
+ const fonts_1 = require("../controllers/fonts");
11
+ const typeorm_1 = require("typeorm");
13
12
  const headless_model_1 = require("../controllers/headless-model");
14
13
  const label_command_1 = require("../controllers/label-command");
15
- const fonts_1 = require("../controllers/fonts");
16
- const board_1 = require("../service/board/board");
14
+ const pdf_1 = require("../controllers/pdf");
15
+ const screenshot_1 = require("../controllers/screenshot");
16
+ const auth_base_1 = require("@things-factory/auth-base");
17
17
  exports.standaloneBoardServiceRouter = new koa_router_1.default();
18
18
  // for board headless
19
19
  exports.standaloneBoardServiceRouter.get('/headless/:id', async (context, next) => {
20
20
  const { domain, user } = context.state;
21
21
  const { id } = context.params;
22
22
  const { model, base } = await (0, headless_model_1.headlessModel)({ domain, id });
23
- model.fonts = (await (0, fonts_1.fonts)()).map((font) => font.name);
23
+ model.fonts = await (0, fonts_1.fonts)();
24
24
  (0, auth_base_1.setAccessTokenCookie)(context, await user.sign({ domain }));
25
25
  await context.render('internal-board-service-view', { model, base });
26
26
  });
@@ -48,7 +48,7 @@ exports.standaloneBoardServiceRouter.get('/screenshot/:id', async (context, next
48
48
  const { model, board } = await (0, headless_model_1.headlessModel)({ domain, id });
49
49
  const data = Object.keys(context.query).length ? context.query : null;
50
50
  context.type = 'image/png';
51
- context.set('Content-Disposition', `filename="${board.name}.png"`);
51
+ context.set('Content-Disposition', (0, content_disposition_1.default)(`${board.name}.png`));
52
52
  context.body = await (0, screenshot_1.screenshot)({ id, model, data, options: { encoding: 'binary', type: 'png' }, context });
53
53
  });
54
54
  // for webpage scrap
@@ -67,7 +67,7 @@ exports.standaloneBoardServiceRouter.get('/board/pdf/:id', async (context, next)
67
67
  context
68
68
  });
69
69
  context.type = 'application/pdf';
70
- context.set('Content-Disposition', `filename="${board.name}.pdf"`);
70
+ context.set('Content-Disposition', (0, content_disposition_1.default)(`${board.name}.pdf`));
71
71
  context.body = result;
72
72
  });
73
73
  // for webpage scrap => zpl image print(grf format) command