@spinajs/templates-pdf 2.0.250 → 2.0.252
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/lib/cjs/config/pdf.d.ts +1 -1
- package/lib/cjs/config/pdf.js +1 -1
- package/lib/cjs/config/pdf.js.map +1 -1
- package/lib/cjs/index.d.ts +12 -2
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +14 -2
- package/lib/cjs/index.js.map +1 -1
- package/lib/mjs/config/pdf.d.ts +1 -1
- package/lib/mjs/config/pdf.js +1 -1
- package/lib/mjs/config/pdf.js.map +1 -1
- package/lib/mjs/index.d.ts +12 -2
- package/lib/mjs/index.d.ts.map +1 -1
- package/lib/mjs/index.js +14 -2
- package/lib/mjs/index.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +6 -6
package/lib/cjs/config/pdf.d.ts
CHANGED
package/lib/cjs/config/pdf.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../../src/config/pdf.ts"],"names":[],"mappings":";;AAAA,MAAM,GAAG,GAAG;IACV,SAAS,EAAE;QACT,GAAG,EAAE;YACH,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../../src/config/pdf.ts"],"names":[],"mappings":";;AAAA,MAAM,GAAG,GAAG;IACV,SAAS,EAAE;QACT,GAAG,EAAE;YACH,MAAM,EAAE;gBACN,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;aACxB;YACD,IAAI,EAAE;gBACJ,QAAQ,EAAE,IAAI;aACf;YACD,OAAO,EAAE,EAAE;SACZ;KACF;CACF,CAAC;AAEF,kBAAe,GAAG,CAAC"}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -5,21 +5,31 @@ import { IInstanceCheck } from '@spinajs/di';
|
|
|
5
5
|
import { Log } from '@spinajs/log';
|
|
6
6
|
import * as http from 'http';
|
|
7
7
|
import '@spinajs/templates-pug';
|
|
8
|
+
interface IPdfRendererOptions {
|
|
9
|
+
static: {
|
|
10
|
+
portRange: number[];
|
|
11
|
+
};
|
|
12
|
+
args: any;
|
|
13
|
+
options: any;
|
|
14
|
+
renderDurationWarning: number;
|
|
15
|
+
}
|
|
8
16
|
export declare class PdfRenderer extends TemplateRenderer implements IInstanceCheck {
|
|
9
17
|
protected pdfOptions: PDFOptions;
|
|
10
18
|
/**
|
|
11
19
|
* General options from configuration
|
|
12
20
|
*/
|
|
13
|
-
protected Options:
|
|
21
|
+
protected Options: IPdfRendererOptions;
|
|
14
22
|
protected Log: Log;
|
|
15
23
|
protected TemplatingService: Templates;
|
|
24
|
+
protected static USED_PORTS: number[];
|
|
16
25
|
get Type(): string;
|
|
17
26
|
get Extension(): string;
|
|
18
27
|
constructor(pdfOptions: PDFOptions);
|
|
19
28
|
__checkInstance__(creationOptions: any): boolean;
|
|
20
|
-
renderToFile(template: string, model:
|
|
29
|
+
renderToFile(template: string, model: any, filePath: string, language?: string): Promise<void>;
|
|
21
30
|
render(_templateName: string, _model: unknown, _language?: string): Promise<string>;
|
|
22
31
|
protected compile(_path: string): Promise<void>;
|
|
23
32
|
protected runLocalServer(basePath: string): Promise<http.Server>;
|
|
24
33
|
}
|
|
34
|
+
export {};
|
|
25
35
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAW,UAAU,EAAwB,MAAM,WAAW,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,cAAc,EAA4C,MAAM,aAAa,CAAC;AAEvF,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,OAAO,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAW,UAAU,EAAwB,MAAM,WAAW,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,cAAc,EAA4C,MAAM,aAAa,CAAC;AAEvF,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,OAAO,wBAAwB,CAAC;AAIhC,UAAU,mBAAmB;IAC3B,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,GAAG,CAAC;IACb,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,qBAEa,WAAY,SAAQ,gBAAiB,YAAW,cAAc;IAuB7D,SAAS,CAAC,UAAU,EAAE,UAAU;IAtB5C;;OAEG;IAEH,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;IAGvC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,iBAAiB,EAAE,SAAS,CAAC;IAEvC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IAE3C,IAAW,IAAI,WAEd;IAED,IAAW,SAAS,WAEnB;gBAEqB,UAAU,EAAE,UAAU;IAI5C,iBAAiB,CAAC,eAAe,EAAE,GAAG,GAAG,OAAO;IAInC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiE9F,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;cAKhF,OAAO,CAAC,KAAK,EAAE,MAAM;cAErB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;CAsBvE"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -23,6 +23,7 @@ const log_1 = require("@spinajs/log");
|
|
|
23
23
|
const express_1 = __importDefault(require("express"));
|
|
24
24
|
const cors_1 = __importDefault(require("cors"));
|
|
25
25
|
require("@spinajs/templates-pug");
|
|
26
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
26
27
|
let PdfRenderer = class PdfRenderer extends templates_1.TemplateRenderer {
|
|
27
28
|
get Type() {
|
|
28
29
|
return 'pdf';
|
|
@@ -44,11 +45,19 @@ let PdfRenderer = class PdfRenderer extends templates_1.TemplateRenderer {
|
|
|
44
45
|
this.Log.timeStart(`pdf-template-rendering-${filePath}`);
|
|
45
46
|
this.Log.trace(`Rendering pdf template ${template} to file ${filePath}`);
|
|
46
47
|
const templateBasePath = (0, path_1.dirname)(template);
|
|
47
|
-
const compiledTemplate = await this.TemplatingService.render((0, path_1.join)(templateBasePath, (0, path_1.basename)(template, '.pdf')) + '.pug', model, language);
|
|
48
48
|
// fire up local http server for serving images etc
|
|
49
49
|
// becouse chromium prevents from reading local files when not
|
|
50
50
|
// rendering file with file:// protocol for security reasons
|
|
51
51
|
server = await this.runLocalServer(templateBasePath);
|
|
52
|
+
const httpPort = server.address().port;
|
|
53
|
+
const compiledTemplate = await this.TemplatingService.render((0, path_1.join)(templateBasePath, (0, path_1.basename)(template, '.pdf')) + '.pug', {
|
|
54
|
+
// add template temporary server port
|
|
55
|
+
// so we can use it to render images in template
|
|
56
|
+
__http_template_port__: httpPort,
|
|
57
|
+
// for convinience add full url to local http server
|
|
58
|
+
__http_template_address__: `http://localhost:${httpPort}`,
|
|
59
|
+
...model,
|
|
60
|
+
}, language);
|
|
52
61
|
browser = await puppeteer_1.default.launch(this.Options.args);
|
|
53
62
|
const page = await browser.newPage();
|
|
54
63
|
page
|
|
@@ -93,7 +102,9 @@ let PdfRenderer = class PdfRenderer extends templates_1.TemplateRenderer {
|
|
|
93
102
|
app.use(express_1.default.static(basePath));
|
|
94
103
|
return new Promise((resolve, reject) => {
|
|
95
104
|
app
|
|
96
|
-
|
|
105
|
+
// if no port is provided express will choose random port to start ( avaible )
|
|
106
|
+
// it not, we will get random from range in config
|
|
107
|
+
.listen(this.Options.static.portRange.length === 0 ? 0 : lodash_1.default.random(this.Options.static.portRange[0], this.Options.static.portRange[1]), function () {
|
|
97
108
|
self.Log.trace(`PDF image server started`);
|
|
98
109
|
self.Log.trace(`PDF static file dir at ${basePath}`);
|
|
99
110
|
resolve(this);
|
|
@@ -106,6 +117,7 @@ let PdfRenderer = class PdfRenderer extends templates_1.TemplateRenderer {
|
|
|
106
117
|
}
|
|
107
118
|
};
|
|
108
119
|
exports.PdfRenderer = PdfRenderer;
|
|
120
|
+
PdfRenderer.USED_PORTS = [];
|
|
109
121
|
__decorate([
|
|
110
122
|
(0, configuration_1.Config)('templates.pdf'),
|
|
111
123
|
__metadata("design:type", Object)
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0DAAsE;AACtE,oDAAmD;AACnD,kDAAiE;AACjE,0DAAgD;AAChD,oCAAuF;AACvF,+BAA+C;AAC/C,sCAA2C;AAC3C,sDAA8B;AAE9B,gDAAwB;AAExB,kCAAgC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/config/pdf.d.ts
CHANGED
package/lib/mjs/config/pdf.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../../src/config/pdf.ts"],"names":[],"mappings":"AAAA,MAAM,GAAG,GAAG;IACV,SAAS,EAAE;QACT,GAAG,EAAE;YACH,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"pdf.js","sourceRoot":"","sources":["../../../src/config/pdf.ts"],"names":[],"mappings":"AAAA,MAAM,GAAG,GAAG;IACV,SAAS,EAAE;QACT,GAAG,EAAE;YACH,MAAM,EAAE;gBACN,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;aACxB;YACD,IAAI,EAAE;gBACJ,QAAQ,EAAE,IAAI;aACf;YACD,OAAO,EAAE,EAAE;SACZ;KACF;CACF,CAAC;AAEF,eAAe,GAAG,CAAC"}
|
package/lib/mjs/index.d.ts
CHANGED
|
@@ -5,21 +5,31 @@ import { IInstanceCheck } from '@spinajs/di';
|
|
|
5
5
|
import { Log } from '@spinajs/log';
|
|
6
6
|
import * as http from 'http';
|
|
7
7
|
import '@spinajs/templates-pug';
|
|
8
|
+
interface IPdfRendererOptions {
|
|
9
|
+
static: {
|
|
10
|
+
portRange: number[];
|
|
11
|
+
};
|
|
12
|
+
args: any;
|
|
13
|
+
options: any;
|
|
14
|
+
renderDurationWarning: number;
|
|
15
|
+
}
|
|
8
16
|
export declare class PdfRenderer extends TemplateRenderer implements IInstanceCheck {
|
|
9
17
|
protected pdfOptions: PDFOptions;
|
|
10
18
|
/**
|
|
11
19
|
* General options from configuration
|
|
12
20
|
*/
|
|
13
|
-
protected Options:
|
|
21
|
+
protected Options: IPdfRendererOptions;
|
|
14
22
|
protected Log: Log;
|
|
15
23
|
protected TemplatingService: Templates;
|
|
24
|
+
protected static USED_PORTS: number[];
|
|
16
25
|
get Type(): string;
|
|
17
26
|
get Extension(): string;
|
|
18
27
|
constructor(pdfOptions: PDFOptions);
|
|
19
28
|
__checkInstance__(creationOptions: any): boolean;
|
|
20
|
-
renderToFile(template: string, model:
|
|
29
|
+
renderToFile(template: string, model: any, filePath: string, language?: string): Promise<void>;
|
|
21
30
|
render(_templateName: string, _model: unknown, _language?: string): Promise<string>;
|
|
22
31
|
protected compile(_path: string): Promise<void>;
|
|
23
32
|
protected runLocalServer(basePath: string): Promise<http.Server>;
|
|
24
33
|
}
|
|
34
|
+
export {};
|
|
25
35
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/mjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAW,UAAU,EAAwB,MAAM,WAAW,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,cAAc,EAA4C,MAAM,aAAa,CAAC;AAEvF,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,OAAO,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA,OAAO,EAAW,UAAU,EAAwB,MAAM,WAAW,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAE,cAAc,EAA4C,MAAM,aAAa,CAAC;AAEvF,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,OAAO,wBAAwB,CAAC;AAIhC,UAAU,mBAAmB;IAC3B,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB,CAAC;IACF,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,EAAE,GAAG,CAAC;IACb,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,qBAEa,WAAY,SAAQ,gBAAiB,YAAW,cAAc;IAuB7D,SAAS,CAAC,UAAU,EAAE,UAAU;IAtB5C;;OAEG;IAEH,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;IAGvC,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,iBAAiB,EAAE,SAAS,CAAC;IAEvC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IAE3C,IAAW,IAAI,WAEd;IAED,IAAW,SAAS,WAEnB;gBAEqB,UAAU,EAAE,UAAU;IAI5C,iBAAiB,CAAC,eAAe,EAAE,GAAG,GAAG,OAAO;IAInC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiE9F,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;cAKhF,OAAO,CAAC,KAAK,EAAE,MAAM;cAErB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;CAsBvE"}
|
package/lib/mjs/index.js
CHANGED
|
@@ -17,6 +17,7 @@ import { Log, Logger } from '@spinajs/log';
|
|
|
17
17
|
import Express from 'express';
|
|
18
18
|
import cors from 'cors';
|
|
19
19
|
import '@spinajs/templates-pug';
|
|
20
|
+
import _ from 'lodash';
|
|
20
21
|
let PdfRenderer = class PdfRenderer extends TemplateRenderer {
|
|
21
22
|
get Type() {
|
|
22
23
|
return 'pdf';
|
|
@@ -38,11 +39,19 @@ let PdfRenderer = class PdfRenderer extends TemplateRenderer {
|
|
|
38
39
|
this.Log.timeStart(`pdf-template-rendering-${filePath}`);
|
|
39
40
|
this.Log.trace(`Rendering pdf template ${template} to file ${filePath}`);
|
|
40
41
|
const templateBasePath = dirname(template);
|
|
41
|
-
const compiledTemplate = await this.TemplatingService.render(join(templateBasePath, basename(template, '.pdf')) + '.pug', model, language);
|
|
42
42
|
// fire up local http server for serving images etc
|
|
43
43
|
// becouse chromium prevents from reading local files when not
|
|
44
44
|
// rendering file with file:// protocol for security reasons
|
|
45
45
|
server = await this.runLocalServer(templateBasePath);
|
|
46
|
+
const httpPort = server.address().port;
|
|
47
|
+
const compiledTemplate = await this.TemplatingService.render(join(templateBasePath, basename(template, '.pdf')) + '.pug', {
|
|
48
|
+
// add template temporary server port
|
|
49
|
+
// so we can use it to render images in template
|
|
50
|
+
__http_template_port__: httpPort,
|
|
51
|
+
// for convinience add full url to local http server
|
|
52
|
+
__http_template_address__: `http://localhost:${httpPort}`,
|
|
53
|
+
...model,
|
|
54
|
+
}, language);
|
|
46
55
|
browser = await puppeteer.launch(this.Options.args);
|
|
47
56
|
const page = await browser.newPage();
|
|
48
57
|
page
|
|
@@ -87,7 +96,9 @@ let PdfRenderer = class PdfRenderer extends TemplateRenderer {
|
|
|
87
96
|
app.use(Express.static(basePath));
|
|
88
97
|
return new Promise((resolve, reject) => {
|
|
89
98
|
app
|
|
90
|
-
|
|
99
|
+
// if no port is provided express will choose random port to start ( avaible )
|
|
100
|
+
// it not, we will get random from range in config
|
|
101
|
+
.listen(this.Options.static.portRange.length === 0 ? 0 : _.random(this.Options.static.portRange[0], this.Options.static.portRange[1]), function () {
|
|
91
102
|
self.Log.trace(`PDF image server started`);
|
|
92
103
|
self.Log.trace(`PDF static file dir at ${basePath}`);
|
|
93
104
|
resolve(this);
|
|
@@ -99,6 +110,7 @@ let PdfRenderer = class PdfRenderer extends TemplateRenderer {
|
|
|
99
110
|
});
|
|
100
111
|
}
|
|
101
112
|
};
|
|
113
|
+
PdfRenderer.USED_PORTS = [];
|
|
102
114
|
__decorate([
|
|
103
115
|
Config('templates.pdf'),
|
|
104
116
|
__metadata("design:type", Object)
|
package/lib/mjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAuB,OAAO,IAAI,SAAS,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAkB,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|