@shad0wz7/nestjs-pdf 2.5.4 → 3.0.1
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/README.md +47 -32
- package/dist/index.cjs +1217 -2332
- package/dist/index.d.cts +56 -25
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +56 -25
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1219 -2322
- package/dist/index.mjs.map +1 -1
- package/package.json +26 -66
package/dist/index.d.cts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { DynamicModule, InjectionToken, ModuleMetadata, OnModuleDestroy, OnModuleInit, OptionalFactoryDependency } from "@nestjs/common";
|
|
2
|
-
import { HandlebarsOptions } from "@gboutte/nestjs-hbs/dist/handlebars-options.interface";
|
|
3
2
|
import { Browser } from "@puppeteer/browsers";
|
|
4
3
|
import { MJMLParsingOptions } from "mjml-core";
|
|
5
4
|
import { Browser as Browser$1, BrowserContext, PDFOptions } from "puppeteer";
|
|
6
5
|
import { Data, Options } from "ejs";
|
|
7
6
|
import { EtaConfig } from "eta";
|
|
7
|
+
import Handlebars from "handlebars";
|
|
8
8
|
import { EscapeFunction } from "mustache";
|
|
9
9
|
import { ConfigureOptions } from "nunjucks";
|
|
10
10
|
import { LocalsObject, Options as Options$1 } from "pug";
|
|
11
|
-
import { HandlebarsService } from "@gboutte/nestjs-hbs";
|
|
12
11
|
//#region src/helpers/getRelativePath.helper.d.ts
|
|
13
12
|
/**
|
|
14
13
|
* Get the relative path to a value from the module directory.
|
|
@@ -19,7 +18,7 @@ import { HandlebarsService } from "@gboutte/nestjs-hbs";
|
|
|
19
18
|
* getRelativePathToValue(__dirname, './templates/my-template.hbs');
|
|
20
19
|
* // returns 'context/pdf/templates/my-template.hbs' if the current working directory is '/
|
|
21
20
|
*/
|
|
22
|
-
declare function getRelativePathToValue(moduleDir: string, relativeToModule: string): string;
|
|
21
|
+
export declare function getRelativePathToValue(moduleDir: string, relativeToModule: string): string;
|
|
23
22
|
//#endregion
|
|
24
23
|
//#region src/puppeteer/browser/browser.service.d.ts
|
|
25
24
|
declare enum BrowserTag {
|
|
@@ -55,16 +54,14 @@ declare class BrowserService implements OnModuleDestroy {
|
|
|
55
54
|
markJobFinished(): Promise<void>;
|
|
56
55
|
recycleBrowserIfNeeded(): Promise<void>;
|
|
57
56
|
private cleanupCacheBestEffort;
|
|
58
|
-
install(lock?: boolean): Promise<import("@puppeteer/browsers"
|
|
57
|
+
install(lock?: boolean): Promise<import("@puppeteer/browsers").InstalledBrowser | null | undefined>;
|
|
59
58
|
private loadBrowser;
|
|
60
|
-
setBrowser(browser: Browser): void;
|
|
61
59
|
getBrowser(): Browser;
|
|
62
60
|
private loadBrowserTag;
|
|
63
61
|
private loadBuildId;
|
|
64
62
|
setBrowserTag(browserTag: BrowserTag): void;
|
|
65
63
|
getBrowserTag(): BrowserTag;
|
|
66
64
|
getBuildId(): string | undefined;
|
|
67
|
-
setBuildId(value: string | undefined): void;
|
|
68
65
|
private loadUseLockedBrowser;
|
|
69
66
|
hasBrowserInstalled(browser: Browser, buildId: string): Promise<boolean>;
|
|
70
67
|
getExecutablePath(): Promise<string>;
|
|
@@ -74,16 +71,16 @@ declare class BrowserService implements OnModuleDestroy {
|
|
|
74
71
|
}
|
|
75
72
|
//#endregion
|
|
76
73
|
//#region src/puppeteer/engines/ejs/ejs.service.d.ts
|
|
77
|
-
interface EjsOptions extends Omit<Options, 'async'> {
|
|
74
|
+
export interface EjsOptions extends Omit<Options, 'async'> {
|
|
78
75
|
async?: boolean;
|
|
79
76
|
}
|
|
80
|
-
declare class EjsService {
|
|
77
|
+
export declare class EjsService {
|
|
81
78
|
render(template: string, data?: Data, options?: EjsOptions): Promise<string>;
|
|
82
79
|
renderFile(filePath: string, data?: Data, options?: EjsOptions): Promise<string>;
|
|
83
80
|
}
|
|
84
81
|
//#endregion
|
|
85
82
|
//#region src/puppeteer/engines/eta/eta.service.d.ts
|
|
86
|
-
interface EtaOptions extends Partial<EtaConfig> {
|
|
83
|
+
export interface EtaOptions extends Partial<EtaConfig> {
|
|
87
84
|
cache?: boolean;
|
|
88
85
|
autoEscape?: boolean;
|
|
89
86
|
varName?: string;
|
|
@@ -91,7 +88,7 @@ interface EtaOptions extends Partial<EtaConfig> {
|
|
|
91
88
|
useWith?: boolean;
|
|
92
89
|
plugins?: Array<any>;
|
|
93
90
|
}
|
|
94
|
-
declare class EtaService {
|
|
91
|
+
export declare class EtaService {
|
|
95
92
|
private readonly eta;
|
|
96
93
|
private readonly templateCache;
|
|
97
94
|
private readonly maxCacheSize;
|
|
@@ -123,12 +120,47 @@ declare class EtaService {
|
|
|
123
120
|
getCacheSize(): number;
|
|
124
121
|
}
|
|
125
122
|
//#endregion
|
|
123
|
+
//#region src/puppeteer/engines/handlebars/handlebars.service.d.ts
|
|
124
|
+
export type HandlebarsHelper = {
|
|
125
|
+
name: string;
|
|
126
|
+
fn: Handlebars.HelperDelegate;
|
|
127
|
+
};
|
|
128
|
+
export interface HandlebarsOptions {
|
|
129
|
+
/** Base directory (relative to `process.cwd()`) used to resolve files passed to `renderFile`. */
|
|
130
|
+
templateDirectory?: string;
|
|
131
|
+
/** Directory (relative to `process.cwd()`) whose files are each registered as a partial. */
|
|
132
|
+
partialDirectory?: string;
|
|
133
|
+
/**
|
|
134
|
+
* Runtime options forwarded to the compiled template function.
|
|
135
|
+
* `helpers` and `partials` are excluded on purpose: register helpers via
|
|
136
|
+
* `helpers` and partials via `partialDirectory`.
|
|
137
|
+
*/
|
|
138
|
+
templateOptions?: Omit<Handlebars.RuntimeOptions, 'helpers' | 'partials'>;
|
|
139
|
+
/** Options forwarded to `Handlebars.compile`. */
|
|
140
|
+
compileOptions?: CompileOptions;
|
|
141
|
+
/** Custom helpers registered on the isolated Handlebars environment for this render. */
|
|
142
|
+
helpers?: Array<HandlebarsHelper>;
|
|
143
|
+
}
|
|
144
|
+
export declare class HandlebarsService {
|
|
145
|
+
private cachedOptions?;
|
|
146
|
+
private cachedEnv?;
|
|
147
|
+
render(template: string, parameters?: unknown, options?: HandlebarsOptions): string;
|
|
148
|
+
renderFile(file: string, parameters?: unknown, options?: HandlebarsOptions): string;
|
|
149
|
+
/**
|
|
150
|
+
* Build an isolated Handlebars environment with the given helpers/partials so
|
|
151
|
+
* nothing leaks into the global Handlebars. Memoised for the common case where
|
|
152
|
+
* the same options object is reused across calls (e.g. the module `hbsOptions`).
|
|
153
|
+
*/
|
|
154
|
+
private getEnv;
|
|
155
|
+
private registerPartials;
|
|
156
|
+
}
|
|
157
|
+
//#endregion
|
|
126
158
|
//#region src/puppeteer/engines/mustache/mustache.service.d.ts
|
|
127
|
-
interface MustacheOptions {
|
|
159
|
+
export interface MustacheOptions {
|
|
128
160
|
tags?: [string, string];
|
|
129
161
|
escape?: EscapeFunction;
|
|
130
162
|
}
|
|
131
|
-
declare class MustacheService {
|
|
163
|
+
export declare class MustacheService {
|
|
132
164
|
private readonly templateCache;
|
|
133
165
|
private readonly maxCacheSize;
|
|
134
166
|
/**
|
|
@@ -159,28 +191,28 @@ declare class MustacheService {
|
|
|
159
191
|
}
|
|
160
192
|
//#endregion
|
|
161
193
|
//#region src/puppeteer/engines/nunjucks/nunjucks.service.d.ts
|
|
162
|
-
interface NunjucksOptions extends Partial<ConfigureOptions> {
|
|
194
|
+
export interface NunjucksOptions extends Partial<ConfigureOptions> {
|
|
163
195
|
noCache?: boolean;
|
|
164
196
|
watch?: boolean;
|
|
165
197
|
throwOnUndefined?: boolean;
|
|
166
198
|
trimBlocks?: boolean;
|
|
167
199
|
lstripBlocks?: boolean;
|
|
168
200
|
}
|
|
169
|
-
declare class NunjucksService {
|
|
201
|
+
export declare class NunjucksService {
|
|
170
202
|
constructor();
|
|
171
203
|
render(template: string, data?: Record<string, unknown>, options?: NunjucksOptions): string;
|
|
172
204
|
renderFile(filePath: string, data?: Record<string, unknown>, options?: NunjucksOptions): string;
|
|
173
205
|
}
|
|
174
206
|
//#endregion
|
|
175
207
|
//#region src/puppeteer/engines/pug/pug.service.d.ts
|
|
176
|
-
type PugOptions = Options$1;
|
|
177
|
-
declare class PugService {
|
|
208
|
+
export type PugOptions = Options$1;
|
|
209
|
+
export declare class PugService {
|
|
178
210
|
render(template: string, data?: LocalsObject, options?: PugOptions): string;
|
|
179
211
|
renderFile(filePath: string, data?: LocalsObject, options?: PugOptions): string;
|
|
180
212
|
}
|
|
181
213
|
//#endregion
|
|
182
214
|
//#region src/puppeteer/puppeteer-parameters.interface.d.ts
|
|
183
|
-
interface PuppeteerParameters {
|
|
215
|
+
export interface PuppeteerParameters {
|
|
184
216
|
pdfOptions?: PDFOptions;
|
|
185
217
|
hbsOptions?: HandlebarsOptions;
|
|
186
218
|
mjmlOptions?: MJMLParsingOptions;
|
|
@@ -202,23 +234,23 @@ interface PuppeteerParameters {
|
|
|
202
234
|
}
|
|
203
235
|
//#endregion
|
|
204
236
|
//#region src/nestjs-pdf.module.d.ts
|
|
205
|
-
interface PdfLibModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
237
|
+
export interface PdfLibModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
206
238
|
inject?: Array<any>;
|
|
207
239
|
useFactory: (...args: Array<any>) => any;
|
|
208
240
|
}
|
|
209
|
-
declare class NestjsPdfModule {
|
|
241
|
+
export declare class NestjsPdfModule {
|
|
210
242
|
static forRoot(options: PuppeteerParameters): DynamicModule;
|
|
211
243
|
static forRootAsync(options: PdfLibModuleAsyncOptions): DynamicModule;
|
|
212
244
|
}
|
|
213
245
|
//#endregion
|
|
214
246
|
//#region src/puppeteer/engines/mjml/mjml.service.d.ts
|
|
215
|
-
declare class MjmlService {
|
|
247
|
+
export declare class MjmlService {
|
|
216
248
|
render(template: string, options?: MJMLParsingOptions): Promise<string>;
|
|
217
249
|
renderFile(filePath: string, options?: MJMLParsingOptions): Promise<string>;
|
|
218
250
|
}
|
|
219
251
|
//#endregion
|
|
220
252
|
//#region src/puppeteer/puppeteer.service.d.ts
|
|
221
|
-
declare class PuppeteerService {
|
|
253
|
+
export declare class PuppeteerService {
|
|
222
254
|
private readonly browserService;
|
|
223
255
|
private readonly options;
|
|
224
256
|
private readonly hbsService?;
|
|
@@ -248,7 +280,7 @@ declare class PuppeteerService {
|
|
|
248
280
|
}
|
|
249
281
|
//#endregion
|
|
250
282
|
//#region src/nestjs-pdf.service.d.ts
|
|
251
|
-
declare class NestjsPdfService {
|
|
283
|
+
export declare class NestjsPdfService {
|
|
252
284
|
private readonly puppeteerService;
|
|
253
285
|
constructor(puppeteerService: PuppeteerService);
|
|
254
286
|
/**
|
|
@@ -394,11 +426,11 @@ declare class NestjsPdfService {
|
|
|
394
426
|
}
|
|
395
427
|
//#endregion
|
|
396
428
|
//#region src/puppeteer/puppeteer.module.d.ts
|
|
397
|
-
interface PuppeteerModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
429
|
+
export interface PuppeteerModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
398
430
|
inject?: Array<InjectionToken | OptionalFactoryDependency>;
|
|
399
431
|
useFactory: (...args: Array<any>) => Promise<PuppeteerParameters> | PuppeteerParameters;
|
|
400
432
|
}
|
|
401
|
-
declare class PuppeteerModule implements OnModuleInit {
|
|
433
|
+
export declare class PuppeteerModule implements OnModuleInit {
|
|
402
434
|
private readonly browserService;
|
|
403
435
|
private readonly pdfParams;
|
|
404
436
|
constructor(browserService: BrowserService, pdfParams: PuppeteerParameters);
|
|
@@ -407,5 +439,4 @@ declare class PuppeteerModule implements OnModuleInit {
|
|
|
407
439
|
static forRootAsync(options: PuppeteerModuleAsyncOptions): DynamicModule;
|
|
408
440
|
}
|
|
409
441
|
//#endregion
|
|
410
|
-
export { EjsOptions, EjsService, EtaOptions, EtaService, MjmlService, MustacheOptions, MustacheService, NestjsPdfModule, NestjsPdfService, NunjucksOptions, NunjucksService, PdfLibModuleAsyncOptions, PugOptions, PugService, PuppeteerModule, PuppeteerModuleAsyncOptions, PuppeteerParameters, PuppeteerService, getRelativePathToValue };
|
|
411
442
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/helpers/getRelativePath.helper.ts","../src/puppeteer/browser/browser.service.ts","../src/puppeteer/engines/ejs/ejs.service.ts","../src/puppeteer/engines/eta/eta.service.ts","../src/puppeteer/engines/mustache/mustache.service.ts","../src/puppeteer/engines/nunjucks/nunjucks.service.ts","../src/puppeteer/engines/pug/pug.service.ts","../src/puppeteer/puppeteer-parameters.interface.ts","../src/nestjs-pdf.module.ts","../src/puppeteer/engines/mjml/mjml.service.ts","../src/puppeteer/puppeteer.service.ts","../src/nestjs-pdf.service.ts","../src/puppeteer/puppeteer.module.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/helpers/getRelativePath.helper.ts","../src/puppeteer/browser/browser.service.ts","../src/puppeteer/engines/ejs/ejs.service.ts","../src/puppeteer/engines/eta/eta.service.ts","../src/puppeteer/engines/handlebars/handlebars.service.ts","../src/puppeteer/engines/mustache/mustache.service.ts","../src/puppeteer/engines/nunjucks/nunjucks.service.ts","../src/puppeteer/engines/pug/pug.service.ts","../src/puppeteer/puppeteer-parameters.interface.ts","../src/nestjs-pdf.module.ts","../src/puppeteer/engines/mjml/mjml.service.ts","../src/puppeteer/puppeteer.service.ts","../src/nestjs-pdf.service.ts","../src/puppeteer/puppeteer.module.ts"],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { DynamicModule, InjectionToken, ModuleMetadata, OnModuleDestroy, OnModuleInit, OptionalFactoryDependency } from "@nestjs/common";
|
|
2
|
-
import { HandlebarsService } from "@gboutte/nestjs-hbs";
|
|
3
2
|
import { Browser } from "@puppeteer/browsers";
|
|
4
3
|
import { Browser as Browser$1, BrowserContext, PDFOptions } from "puppeteer";
|
|
5
4
|
import { Data, Options } from "ejs";
|
|
6
5
|
import { EtaConfig } from "eta";
|
|
6
|
+
import Handlebars from "handlebars";
|
|
7
7
|
import { EscapeFunction } from "mustache";
|
|
8
8
|
import { ConfigureOptions } from "nunjucks";
|
|
9
9
|
import { LocalsObject, Options as Options$1 } from "pug";
|
|
10
|
-
import { HandlebarsOptions } from "@gboutte/nestjs-hbs/dist/handlebars-options.interface";
|
|
11
10
|
import { MJMLParsingOptions } from "mjml-core";
|
|
12
11
|
//#region src/helpers/getRelativePath.helper.d.ts
|
|
13
12
|
/**
|
|
@@ -19,7 +18,7 @@ import { MJMLParsingOptions } from "mjml-core";
|
|
|
19
18
|
* getRelativePathToValue(__dirname, './templates/my-template.hbs');
|
|
20
19
|
* // returns 'context/pdf/templates/my-template.hbs' if the current working directory is '/
|
|
21
20
|
*/
|
|
22
|
-
declare function getRelativePathToValue(moduleDir: string, relativeToModule: string): string;
|
|
21
|
+
export declare function getRelativePathToValue(moduleDir: string, relativeToModule: string): string;
|
|
23
22
|
//#endregion
|
|
24
23
|
//#region src/puppeteer/browser/browser.service.d.ts
|
|
25
24
|
declare enum BrowserTag {
|
|
@@ -55,16 +54,14 @@ declare class BrowserService implements OnModuleDestroy {
|
|
|
55
54
|
markJobFinished(): Promise<void>;
|
|
56
55
|
recycleBrowserIfNeeded(): Promise<void>;
|
|
57
56
|
private cleanupCacheBestEffort;
|
|
58
|
-
install(lock?: boolean): Promise<import("@puppeteer/browsers"
|
|
57
|
+
install(lock?: boolean): Promise<import("@puppeteer/browsers").InstalledBrowser | null | undefined>;
|
|
59
58
|
private loadBrowser;
|
|
60
|
-
setBrowser(browser: Browser): void;
|
|
61
59
|
getBrowser(): Browser;
|
|
62
60
|
private loadBrowserTag;
|
|
63
61
|
private loadBuildId;
|
|
64
62
|
setBrowserTag(browserTag: BrowserTag): void;
|
|
65
63
|
getBrowserTag(): BrowserTag;
|
|
66
64
|
getBuildId(): string | undefined;
|
|
67
|
-
setBuildId(value: string | undefined): void;
|
|
68
65
|
private loadUseLockedBrowser;
|
|
69
66
|
hasBrowserInstalled(browser: Browser, buildId: string): Promise<boolean>;
|
|
70
67
|
getExecutablePath(): Promise<string>;
|
|
@@ -74,16 +71,16 @@ declare class BrowserService implements OnModuleDestroy {
|
|
|
74
71
|
}
|
|
75
72
|
//#endregion
|
|
76
73
|
//#region src/puppeteer/engines/ejs/ejs.service.d.ts
|
|
77
|
-
interface EjsOptions extends Omit<Options, 'async'> {
|
|
74
|
+
export interface EjsOptions extends Omit<Options, 'async'> {
|
|
78
75
|
async?: boolean;
|
|
79
76
|
}
|
|
80
|
-
declare class EjsService {
|
|
77
|
+
export declare class EjsService {
|
|
81
78
|
render(template: string, data?: Data, options?: EjsOptions): Promise<string>;
|
|
82
79
|
renderFile(filePath: string, data?: Data, options?: EjsOptions): Promise<string>;
|
|
83
80
|
}
|
|
84
81
|
//#endregion
|
|
85
82
|
//#region src/puppeteer/engines/eta/eta.service.d.ts
|
|
86
|
-
interface EtaOptions extends Partial<EtaConfig> {
|
|
83
|
+
export interface EtaOptions extends Partial<EtaConfig> {
|
|
87
84
|
cache?: boolean;
|
|
88
85
|
autoEscape?: boolean;
|
|
89
86
|
varName?: string;
|
|
@@ -91,7 +88,7 @@ interface EtaOptions extends Partial<EtaConfig> {
|
|
|
91
88
|
useWith?: boolean;
|
|
92
89
|
plugins?: Array<any>;
|
|
93
90
|
}
|
|
94
|
-
declare class EtaService {
|
|
91
|
+
export declare class EtaService {
|
|
95
92
|
private readonly eta;
|
|
96
93
|
private readonly templateCache;
|
|
97
94
|
private readonly maxCacheSize;
|
|
@@ -123,12 +120,47 @@ declare class EtaService {
|
|
|
123
120
|
getCacheSize(): number;
|
|
124
121
|
}
|
|
125
122
|
//#endregion
|
|
123
|
+
//#region src/puppeteer/engines/handlebars/handlebars.service.d.ts
|
|
124
|
+
export type HandlebarsHelper = {
|
|
125
|
+
name: string;
|
|
126
|
+
fn: Handlebars.HelperDelegate;
|
|
127
|
+
};
|
|
128
|
+
export interface HandlebarsOptions {
|
|
129
|
+
/** Base directory (relative to `process.cwd()`) used to resolve files passed to `renderFile`. */
|
|
130
|
+
templateDirectory?: string;
|
|
131
|
+
/** Directory (relative to `process.cwd()`) whose files are each registered as a partial. */
|
|
132
|
+
partialDirectory?: string;
|
|
133
|
+
/**
|
|
134
|
+
* Runtime options forwarded to the compiled template function.
|
|
135
|
+
* `helpers` and `partials` are excluded on purpose: register helpers via
|
|
136
|
+
* `helpers` and partials via `partialDirectory`.
|
|
137
|
+
*/
|
|
138
|
+
templateOptions?: Omit<Handlebars.RuntimeOptions, 'helpers' | 'partials'>;
|
|
139
|
+
/** Options forwarded to `Handlebars.compile`. */
|
|
140
|
+
compileOptions?: CompileOptions;
|
|
141
|
+
/** Custom helpers registered on the isolated Handlebars environment for this render. */
|
|
142
|
+
helpers?: Array<HandlebarsHelper>;
|
|
143
|
+
}
|
|
144
|
+
export declare class HandlebarsService {
|
|
145
|
+
private cachedOptions?;
|
|
146
|
+
private cachedEnv?;
|
|
147
|
+
render(template: string, parameters?: unknown, options?: HandlebarsOptions): string;
|
|
148
|
+
renderFile(file: string, parameters?: unknown, options?: HandlebarsOptions): string;
|
|
149
|
+
/**
|
|
150
|
+
* Build an isolated Handlebars environment with the given helpers/partials so
|
|
151
|
+
* nothing leaks into the global Handlebars. Memoised for the common case where
|
|
152
|
+
* the same options object is reused across calls (e.g. the module `hbsOptions`).
|
|
153
|
+
*/
|
|
154
|
+
private getEnv;
|
|
155
|
+
private registerPartials;
|
|
156
|
+
}
|
|
157
|
+
//#endregion
|
|
126
158
|
//#region src/puppeteer/engines/mustache/mustache.service.d.ts
|
|
127
|
-
interface MustacheOptions {
|
|
159
|
+
export interface MustacheOptions {
|
|
128
160
|
tags?: [string, string];
|
|
129
161
|
escape?: EscapeFunction;
|
|
130
162
|
}
|
|
131
|
-
declare class MustacheService {
|
|
163
|
+
export declare class MustacheService {
|
|
132
164
|
private readonly templateCache;
|
|
133
165
|
private readonly maxCacheSize;
|
|
134
166
|
/**
|
|
@@ -159,28 +191,28 @@ declare class MustacheService {
|
|
|
159
191
|
}
|
|
160
192
|
//#endregion
|
|
161
193
|
//#region src/puppeteer/engines/nunjucks/nunjucks.service.d.ts
|
|
162
|
-
interface NunjucksOptions extends Partial<ConfigureOptions> {
|
|
194
|
+
export interface NunjucksOptions extends Partial<ConfigureOptions> {
|
|
163
195
|
noCache?: boolean;
|
|
164
196
|
watch?: boolean;
|
|
165
197
|
throwOnUndefined?: boolean;
|
|
166
198
|
trimBlocks?: boolean;
|
|
167
199
|
lstripBlocks?: boolean;
|
|
168
200
|
}
|
|
169
|
-
declare class NunjucksService {
|
|
201
|
+
export declare class NunjucksService {
|
|
170
202
|
constructor();
|
|
171
203
|
render(template: string, data?: Record<string, unknown>, options?: NunjucksOptions): string;
|
|
172
204
|
renderFile(filePath: string, data?: Record<string, unknown>, options?: NunjucksOptions): string;
|
|
173
205
|
}
|
|
174
206
|
//#endregion
|
|
175
207
|
//#region src/puppeteer/engines/pug/pug.service.d.ts
|
|
176
|
-
type PugOptions = Options$1;
|
|
177
|
-
declare class PugService {
|
|
208
|
+
export type PugOptions = Options$1;
|
|
209
|
+
export declare class PugService {
|
|
178
210
|
render(template: string, data?: LocalsObject, options?: PugOptions): string;
|
|
179
211
|
renderFile(filePath: string, data?: LocalsObject, options?: PugOptions): string;
|
|
180
212
|
}
|
|
181
213
|
//#endregion
|
|
182
214
|
//#region src/puppeteer/puppeteer-parameters.interface.d.ts
|
|
183
|
-
interface PuppeteerParameters {
|
|
215
|
+
export interface PuppeteerParameters {
|
|
184
216
|
pdfOptions?: PDFOptions;
|
|
185
217
|
hbsOptions?: HandlebarsOptions;
|
|
186
218
|
mjmlOptions?: MJMLParsingOptions;
|
|
@@ -202,23 +234,23 @@ interface PuppeteerParameters {
|
|
|
202
234
|
}
|
|
203
235
|
//#endregion
|
|
204
236
|
//#region src/nestjs-pdf.module.d.ts
|
|
205
|
-
interface PdfLibModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
237
|
+
export interface PdfLibModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
206
238
|
inject?: Array<any>;
|
|
207
239
|
useFactory: (...args: Array<any>) => any;
|
|
208
240
|
}
|
|
209
|
-
declare class NestjsPdfModule {
|
|
241
|
+
export declare class NestjsPdfModule {
|
|
210
242
|
static forRoot(options: PuppeteerParameters): DynamicModule;
|
|
211
243
|
static forRootAsync(options: PdfLibModuleAsyncOptions): DynamicModule;
|
|
212
244
|
}
|
|
213
245
|
//#endregion
|
|
214
246
|
//#region src/puppeteer/engines/mjml/mjml.service.d.ts
|
|
215
|
-
declare class MjmlService {
|
|
247
|
+
export declare class MjmlService {
|
|
216
248
|
render(template: string, options?: MJMLParsingOptions): Promise<string>;
|
|
217
249
|
renderFile(filePath: string, options?: MJMLParsingOptions): Promise<string>;
|
|
218
250
|
}
|
|
219
251
|
//#endregion
|
|
220
252
|
//#region src/puppeteer/puppeteer.service.d.ts
|
|
221
|
-
declare class PuppeteerService {
|
|
253
|
+
export declare class PuppeteerService {
|
|
222
254
|
private readonly browserService;
|
|
223
255
|
private readonly options;
|
|
224
256
|
private readonly hbsService?;
|
|
@@ -248,7 +280,7 @@ declare class PuppeteerService {
|
|
|
248
280
|
}
|
|
249
281
|
//#endregion
|
|
250
282
|
//#region src/nestjs-pdf.service.d.ts
|
|
251
|
-
declare class NestjsPdfService {
|
|
283
|
+
export declare class NestjsPdfService {
|
|
252
284
|
private readonly puppeteerService;
|
|
253
285
|
constructor(puppeteerService: PuppeteerService);
|
|
254
286
|
/**
|
|
@@ -394,11 +426,11 @@ declare class NestjsPdfService {
|
|
|
394
426
|
}
|
|
395
427
|
//#endregion
|
|
396
428
|
//#region src/puppeteer/puppeteer.module.d.ts
|
|
397
|
-
interface PuppeteerModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
429
|
+
export interface PuppeteerModuleAsyncOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
398
430
|
inject?: Array<InjectionToken | OptionalFactoryDependency>;
|
|
399
431
|
useFactory: (...args: Array<any>) => Promise<PuppeteerParameters> | PuppeteerParameters;
|
|
400
432
|
}
|
|
401
|
-
declare class PuppeteerModule implements OnModuleInit {
|
|
433
|
+
export declare class PuppeteerModule implements OnModuleInit {
|
|
402
434
|
private readonly browserService;
|
|
403
435
|
private readonly pdfParams;
|
|
404
436
|
constructor(browserService: BrowserService, pdfParams: PuppeteerParameters);
|
|
@@ -407,5 +439,4 @@ declare class PuppeteerModule implements OnModuleInit {
|
|
|
407
439
|
static forRootAsync(options: PuppeteerModuleAsyncOptions): DynamicModule;
|
|
408
440
|
}
|
|
409
441
|
//#endregion
|
|
410
|
-
export { EjsOptions, EjsService, EtaOptions, EtaService, MjmlService, MustacheOptions, MustacheService, NestjsPdfModule, NestjsPdfService, NunjucksOptions, NunjucksService, PdfLibModuleAsyncOptions, PugOptions, PugService, PuppeteerModule, PuppeteerModuleAsyncOptions, PuppeteerParameters, PuppeteerService, getRelativePathToValue };
|
|
411
442
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/helpers/getRelativePath.helper.ts","../src/puppeteer/browser/browser.service.ts","../src/puppeteer/engines/ejs/ejs.service.ts","../src/puppeteer/engines/eta/eta.service.ts","../src/puppeteer/engines/mustache/mustache.service.ts","../src/puppeteer/engines/nunjucks/nunjucks.service.ts","../src/puppeteer/engines/pug/pug.service.ts","../src/puppeteer/puppeteer-parameters.interface.ts","../src/nestjs-pdf.module.ts","../src/puppeteer/engines/mjml/mjml.service.ts","../src/puppeteer/puppeteer.service.ts","../src/nestjs-pdf.service.ts","../src/puppeteer/puppeteer.module.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/helpers/getRelativePath.helper.ts","../src/puppeteer/browser/browser.service.ts","../src/puppeteer/engines/ejs/ejs.service.ts","../src/puppeteer/engines/eta/eta.service.ts","../src/puppeteer/engines/handlebars/handlebars.service.ts","../src/puppeteer/engines/mustache/mustache.service.ts","../src/puppeteer/engines/nunjucks/nunjucks.service.ts","../src/puppeteer/engines/pug/pug.service.ts","../src/puppeteer/puppeteer-parameters.interface.ts","../src/nestjs-pdf.module.ts","../src/puppeteer/engines/mjml/mjml.service.ts","../src/puppeteer/puppeteer.service.ts","../src/nestjs-pdf.service.ts","../src/puppeteer/puppeteer.module.ts"],"mappings":"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"}
|