@happy-dom/server-renderer 19.0.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/LICENSE +21 -0
- package/README.md +70 -0
- package/bin/lib/happy-dom-sr.d.ts +3 -0
- package/bin/lib/happy-dom-sr.d.ts.map +1 -0
- package/bin/lib/happy-dom-sr.js +25 -0
- package/bin/lib/happy-dom-sr.js.map +1 -0
- package/bin/src/happy-dom-sr.ts +30 -0
- package/lib/ServerRenderer.d.ts +36 -0
- package/lib/ServerRenderer.d.ts.map +1 -0
- package/lib/ServerRenderer.js +270 -0
- package/lib/ServerRenderer.js.map +1 -0
- package/lib/ServerRendererBrowser.d.ts +26 -0
- package/lib/ServerRendererBrowser.d.ts.map +1 -0
- package/lib/ServerRendererBrowser.js +244 -0
- package/lib/ServerRendererBrowser.js.map +1 -0
- package/lib/ServerRendererServer.d.ts +22 -0
- package/lib/ServerRendererServer.d.ts.map +1 -0
- package/lib/ServerRendererServer.js +263 -0
- package/lib/ServerRendererServer.js.map +1 -0
- package/lib/ServerRendererWorker.d.ts +10 -0
- package/lib/ServerRendererWorker.d.ts.map +1 -0
- package/lib/ServerRendererWorker.js +25 -0
- package/lib/ServerRendererWorker.js.map +1 -0
- package/lib/config/DefaultServerRendererConfiguration.d.ts +4 -0
- package/lib/config/DefaultServerRendererConfiguration.d.ts.map +1 -0
- package/lib/config/DefaultServerRendererConfiguration.js +40 -0
- package/lib/config/DefaultServerRendererConfiguration.js.map +1 -0
- package/lib/enums/ServerRendererLogLevelEnum.d.ts +9 -0
- package/lib/enums/ServerRendererLogLevelEnum.d.ts.map +1 -0
- package/lib/enums/ServerRendererLogLevelEnum.js +10 -0
- package/lib/enums/ServerRendererLogLevelEnum.js.map +1 -0
- package/lib/index.d.ts +9 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +5 -0
- package/lib/index.js.map +1 -0
- package/lib/types/IOptionalServerRendererConfiguration.d.ts +108 -0
- package/lib/types/IOptionalServerRendererConfiguration.d.ts.map +1 -0
- package/lib/types/IOptionalServerRendererConfiguration.js +2 -0
- package/lib/types/IOptionalServerRendererConfiguration.js.map +1 -0
- package/lib/types/IServerRendererConfiguration.d.ts +108 -0
- package/lib/types/IServerRendererConfiguration.d.ts.map +1 -0
- package/lib/types/IServerRendererConfiguration.js +2 -0
- package/lib/types/IServerRendererConfiguration.js.map +1 -0
- package/lib/types/IServerRendererItem.d.ts +8 -0
- package/lib/types/IServerRendererItem.d.ts.map +1 -0
- package/lib/types/IServerRendererItem.js +2 -0
- package/lib/types/IServerRendererItem.js.map +1 -0
- package/lib/types/IServerRendererResult.d.ts +14 -0
- package/lib/types/IServerRendererResult.d.ts.map +1 -0
- package/lib/types/IServerRendererResult.js +2 -0
- package/lib/types/IServerRendererResult.js.map +1 -0
- package/lib/utilities/BrowserWindowPolyfill.d.ts +13 -0
- package/lib/utilities/BrowserWindowPolyfill.d.ts.map +1 -0
- package/lib/utilities/BrowserWindowPolyfill.js +92 -0
- package/lib/utilities/BrowserWindowPolyfill.js.map +1 -0
- package/lib/utilities/HelpPrinter.d.ts +10 -0
- package/lib/utilities/HelpPrinter.d.ts.map +1 -0
- package/lib/utilities/HelpPrinter.js +32 -0
- package/lib/utilities/HelpPrinter.js.map +1 -0
- package/lib/utilities/HelpPrinterRows.d.ts +3 -0
- package/lib/utilities/HelpPrinterRows.d.ts.map +1 -0
- package/lib/utilities/HelpPrinterRows.js +261 -0
- package/lib/utilities/HelpPrinterRows.js.map +1 -0
- package/lib/utilities/PackageVersion.d.ts +10 -0
- package/lib/utilities/PackageVersion.d.ts.map +1 -0
- package/lib/utilities/PackageVersion.js +13 -0
- package/lib/utilities/PackageVersion.js.map +1 -0
- package/lib/utilities/ProcessArgumentsParser.d.ts +20 -0
- package/lib/utilities/ProcessArgumentsParser.d.ts.map +1 -0
- package/lib/utilities/ProcessArgumentsParser.js +319 -0
- package/lib/utilities/ProcessArgumentsParser.js.map +1 -0
- package/lib/utilities/ServerRendererConfigurationFactory.d.ts +23 -0
- package/lib/utilities/ServerRendererConfigurationFactory.d.ts.map +1 -0
- package/lib/utilities/ServerRendererConfigurationFactory.js +82 -0
- package/lib/utilities/ServerRendererConfigurationFactory.js.map +1 -0
- package/package.json +61 -0
- package/src/ServerRenderer.ts +345 -0
- package/src/ServerRendererBrowser.ts +286 -0
- package/src/ServerRendererServer.ts +337 -0
- package/src/ServerRendererWorker.ts +29 -0
- package/src/config/DefaultServerRendererConfiguration.ts +41 -0
- package/src/enums/ServerRendererLogLevelEnum.ts +9 -0
- package/src/index.ts +17 -0
- package/src/types/IOptionalServerRendererConfiguration.ts +108 -0
- package/src/types/IServerRendererConfiguration.ts +108 -0
- package/src/types/IServerRendererItem.ts +5 -0
- package/src/types/IServerRendererResult.ts +11 -0
- package/src/utilities/BrowserWindowPolyfill.ts +93 -0
- package/src/utilities/HelpPrinter.ts +36 -0
- package/src/utilities/HelpPrinterRows.ts +260 -0
- package/src/utilities/PackageVersion.ts +12 -0
- package/src/utilities/ProcessArgumentsParser.ts +294 -0
- package/src/utilities/ServerRendererConfigurationFactory.ts +91 -0
package/src/index.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import ServerRenderer from './ServerRenderer.js';
|
|
2
|
+
import ServerRendererServer from './ServerRenderer.js';
|
|
3
|
+
import IServerRendererItem from './types/IServerRendererItem.js';
|
|
4
|
+
import IServerRendererResult from './types/IServerRendererResult.js';
|
|
5
|
+
import IServerRendererConfiguration from './types/IServerRendererConfiguration.js';
|
|
6
|
+
import IOptionalServerRendererConfiguration from './types/IOptionalServerRendererConfiguration.js';
|
|
7
|
+
import ServerRendererLogLevelEnum from './enums/ServerRendererLogLevelEnum.js';
|
|
8
|
+
|
|
9
|
+
export {
|
|
10
|
+
ServerRenderer,
|
|
11
|
+
ServerRendererServer,
|
|
12
|
+
IServerRendererItem,
|
|
13
|
+
IServerRendererResult,
|
|
14
|
+
IServerRendererConfiguration,
|
|
15
|
+
IOptionalServerRendererConfiguration,
|
|
16
|
+
ServerRendererLogLevelEnum
|
|
17
|
+
};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type IOptionalBrowserSettings from 'happy-dom/lib/browser/types/IOptionalBrowserSettings.js';
|
|
2
|
+
import ServerRendererLogLevelEnum from '../enums/ServerRendererLogLevelEnum.js';
|
|
3
|
+
import IServerRendererItem from './IServerRendererItem.js';
|
|
4
|
+
|
|
5
|
+
export default interface IOptionalServerRendererConfiguration {
|
|
6
|
+
/**
|
|
7
|
+
* Settings for the browser.
|
|
8
|
+
*/
|
|
9
|
+
browser?: IOptionalBrowserSettings;
|
|
10
|
+
/**
|
|
11
|
+
* Log level for the server renderer.
|
|
12
|
+
*/
|
|
13
|
+
logLevel?: ServerRendererLogLevelEnum;
|
|
14
|
+
/**
|
|
15
|
+
* Enables debugging. This will override "browser.debug.traceWaitUntilComplete".
|
|
16
|
+
*/
|
|
17
|
+
debug?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Enables inspector.
|
|
20
|
+
*/
|
|
21
|
+
inspect?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Shows help information and exits.
|
|
24
|
+
*/
|
|
25
|
+
help?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Output directory.
|
|
28
|
+
*/
|
|
29
|
+
outputDirectory?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Cache settings.
|
|
32
|
+
*/
|
|
33
|
+
cache?: {
|
|
34
|
+
/**
|
|
35
|
+
* Disables all caching.
|
|
36
|
+
*/
|
|
37
|
+
disable?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Directory for caching files.
|
|
40
|
+
*/
|
|
41
|
+
directory?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Warm up by rendering the first item before rendering the rest.
|
|
44
|
+
*/
|
|
45
|
+
warmup?: boolean;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Settings for the worker.
|
|
49
|
+
*/
|
|
50
|
+
worker?: {
|
|
51
|
+
/**
|
|
52
|
+
* Disables the worker.
|
|
53
|
+
*/
|
|
54
|
+
disable?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Maximum concurrency for the worker.
|
|
57
|
+
*/
|
|
58
|
+
maxConcurrency?: number;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Settings for rendering.
|
|
62
|
+
*/
|
|
63
|
+
render?: {
|
|
64
|
+
/**
|
|
65
|
+
* Maximum concurrency for rendering.
|
|
66
|
+
*/
|
|
67
|
+
maxConcurrency?: number;
|
|
68
|
+
/**
|
|
69
|
+
* Timeout for rendering in milliseconds.
|
|
70
|
+
*/
|
|
71
|
+
timeout?: number;
|
|
72
|
+
/**
|
|
73
|
+
* Use incognito context for rendering.
|
|
74
|
+
*/
|
|
75
|
+
incognitoContext?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Render shadow roots with the "serializable" option set to true.
|
|
78
|
+
*/
|
|
79
|
+
serializableShadowRoots?: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Render all shadow roots, including those that are not serializable.
|
|
82
|
+
*/
|
|
83
|
+
allShadowRoots?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Tags to exclude from shadow root rendering.
|
|
86
|
+
*/
|
|
87
|
+
excludeShadowRootTags?: string[] | null;
|
|
88
|
+
/**
|
|
89
|
+
* Disable polyfills used for unimplemented functionality.
|
|
90
|
+
*/
|
|
91
|
+
disablePolyfills?: boolean;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* List of URLs to render.
|
|
95
|
+
*/
|
|
96
|
+
urls?: Array<string | IServerRendererItem> | null;
|
|
97
|
+
/**
|
|
98
|
+
* Proxy server settings.
|
|
99
|
+
*/
|
|
100
|
+
server?: {
|
|
101
|
+
start?: boolean;
|
|
102
|
+
serverURL?: string;
|
|
103
|
+
targetOrigin?: string | null;
|
|
104
|
+
disableCache?: boolean;
|
|
105
|
+
disableCacheQueue?: boolean;
|
|
106
|
+
cacheTime?: number;
|
|
107
|
+
};
|
|
108
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type IBrowserSettings from 'happy-dom/lib/browser/types/IBrowserSettings.js';
|
|
2
|
+
import ServerRendererLogLevelEnum from '../enums/ServerRendererLogLevelEnum.js';
|
|
3
|
+
import IServerRendererItem from './IServerRendererItem.js';
|
|
4
|
+
|
|
5
|
+
export default interface IServerRendererConfiguration {
|
|
6
|
+
/**
|
|
7
|
+
* Settings for the browser.
|
|
8
|
+
*/
|
|
9
|
+
browser: IBrowserSettings;
|
|
10
|
+
/**
|
|
11
|
+
* Log level for the server renderer.
|
|
12
|
+
*/
|
|
13
|
+
logLevel: ServerRendererLogLevelEnum;
|
|
14
|
+
/**
|
|
15
|
+
* Enables debugging. This will override "browser.debug.traceWaitUntilComplete".
|
|
16
|
+
*/
|
|
17
|
+
debug: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Enables inspector.
|
|
20
|
+
*/
|
|
21
|
+
inspect: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Shows help information and exits.
|
|
24
|
+
*/
|
|
25
|
+
help: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Output directory.
|
|
28
|
+
*/
|
|
29
|
+
outputDirectory: string;
|
|
30
|
+
/**
|
|
31
|
+
* Cache settings.
|
|
32
|
+
*/
|
|
33
|
+
cache: {
|
|
34
|
+
/**
|
|
35
|
+
* Disables all caching.
|
|
36
|
+
*/
|
|
37
|
+
disable: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Directory for caching files.
|
|
40
|
+
*/
|
|
41
|
+
directory: string;
|
|
42
|
+
/**
|
|
43
|
+
* Warm up by rendering the first item before rendering the rest.
|
|
44
|
+
*/
|
|
45
|
+
warmup: boolean;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Settings for the worker.
|
|
49
|
+
*/
|
|
50
|
+
worker: {
|
|
51
|
+
/**
|
|
52
|
+
* Disables the worker.
|
|
53
|
+
*/
|
|
54
|
+
disable: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Maximum concurrency for the worker.
|
|
57
|
+
*/
|
|
58
|
+
maxConcurrency: number;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Settings for rendering.
|
|
62
|
+
*/
|
|
63
|
+
render: {
|
|
64
|
+
/**
|
|
65
|
+
* Maximum concurrency for rendering.
|
|
66
|
+
*/
|
|
67
|
+
maxConcurrency: number;
|
|
68
|
+
/**
|
|
69
|
+
* Timeout for rendering in milliseconds.
|
|
70
|
+
*/
|
|
71
|
+
timeout: number;
|
|
72
|
+
/**
|
|
73
|
+
* Use incognito context for rendering.
|
|
74
|
+
*/
|
|
75
|
+
incognitoContext: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* Render shadow roots with the "serializable" option set to true.
|
|
78
|
+
*/
|
|
79
|
+
serializableShadowRoots: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Render all shadow roots, including those that are not serializable.
|
|
82
|
+
*/
|
|
83
|
+
allShadowRoots: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Tags to exclude from shadow root rendering.
|
|
86
|
+
*/
|
|
87
|
+
excludeShadowRootTags: string[] | null;
|
|
88
|
+
/**
|
|
89
|
+
* Disable polyfills used for unimplemented functionality.
|
|
90
|
+
*/
|
|
91
|
+
disablePolyfills: boolean;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* List of URLs to render.
|
|
95
|
+
*/
|
|
96
|
+
urls: Array<string | IServerRendererItem> | null;
|
|
97
|
+
/**
|
|
98
|
+
* Proxy server settings.
|
|
99
|
+
*/
|
|
100
|
+
server: {
|
|
101
|
+
start: boolean;
|
|
102
|
+
serverURL: string;
|
|
103
|
+
targetOrigin: string | null;
|
|
104
|
+
disableCache: boolean;
|
|
105
|
+
disableCacheQueue: boolean;
|
|
106
|
+
cacheTime: number;
|
|
107
|
+
};
|
|
108
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default interface IServerRendererResult {
|
|
2
|
+
url: string;
|
|
3
|
+
content: string | null;
|
|
4
|
+
status: number;
|
|
5
|
+
statusText: string;
|
|
6
|
+
headers: { [key: string]: string };
|
|
7
|
+
outputFile: string | null;
|
|
8
|
+
error: string | null;
|
|
9
|
+
pageErrors: string[];
|
|
10
|
+
pageConsole: string;
|
|
11
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { BrowserWindow } from 'happy-dom';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Browser window polyfill utility.
|
|
5
|
+
*/
|
|
6
|
+
export default class BrowserWindowPolyfill {
|
|
7
|
+
/**
|
|
8
|
+
* Applies polyfills to the window object.
|
|
9
|
+
*
|
|
10
|
+
* @param window Window.
|
|
11
|
+
*/
|
|
12
|
+
public static applyPolyfills(window: BrowserWindow): void {
|
|
13
|
+
/* eslint-disable jsdoc/require-jsdoc */
|
|
14
|
+
window.HTMLCanvasElement.prototype.getContext = () => ({
|
|
15
|
+
resetTransform: () => {},
|
|
16
|
+
fill: () => {},
|
|
17
|
+
getContextAttributes: () => ({}),
|
|
18
|
+
pixelStorei: () => {},
|
|
19
|
+
getParameter: () => ({}),
|
|
20
|
+
getExtension: () => null,
|
|
21
|
+
createTexture: () => ({}),
|
|
22
|
+
activeTexture: () => {},
|
|
23
|
+
bindTexture: () => {},
|
|
24
|
+
texImage2D: () => {},
|
|
25
|
+
texParameteri: () => {},
|
|
26
|
+
createFramebuffer: () => ({}),
|
|
27
|
+
bindFramebuffer: () => {},
|
|
28
|
+
createRenderbuffer: () => ({}),
|
|
29
|
+
bindRenderbuffer: () => {},
|
|
30
|
+
renderbufferStorage: () => {},
|
|
31
|
+
framebufferRenderbuffer: () => {},
|
|
32
|
+
framebufferTexture2D: () => {},
|
|
33
|
+
createBuffer: () => ({}),
|
|
34
|
+
bindBuffer: () => {},
|
|
35
|
+
bufferData: () => {},
|
|
36
|
+
deleteFramebuffer: () => {},
|
|
37
|
+
deleteRenderbuffer: () => {},
|
|
38
|
+
deleteTexture: () => {},
|
|
39
|
+
viewport: () => {},
|
|
40
|
+
depthMask: () => {},
|
|
41
|
+
enable: () => {},
|
|
42
|
+
depthFunc: () => {},
|
|
43
|
+
disable: () => {},
|
|
44
|
+
stencilMask: () => {},
|
|
45
|
+
stencilFunc: () => {},
|
|
46
|
+
stencilOp: () => {},
|
|
47
|
+
colorMask: () => {},
|
|
48
|
+
clearColor: () => {},
|
|
49
|
+
clearDepth: () => {},
|
|
50
|
+
clear: () => {},
|
|
51
|
+
clearStencil: () => {},
|
|
52
|
+
createShader: () => ({}),
|
|
53
|
+
shaderSource: () => ({}),
|
|
54
|
+
compileShader: () => ({}),
|
|
55
|
+
createProgram: () => ({}),
|
|
56
|
+
attachShader: () => ({}),
|
|
57
|
+
linkProgram: () => ({}),
|
|
58
|
+
getProgramParameter: () => ({}),
|
|
59
|
+
deleteShader: () => ({}),
|
|
60
|
+
getUniformLocation: () => ({}),
|
|
61
|
+
useProgram: () => {},
|
|
62
|
+
uniform1i: () => {},
|
|
63
|
+
cullFace: () => {},
|
|
64
|
+
frontFace: () => {},
|
|
65
|
+
drawElements: () => {},
|
|
66
|
+
copyTexImage2D: () => {},
|
|
67
|
+
generateMipmap: () => {},
|
|
68
|
+
uniform1f: () => {},
|
|
69
|
+
uniform2f: () => {},
|
|
70
|
+
uniform3f: () => {},
|
|
71
|
+
uniform4f: () => {},
|
|
72
|
+
uniformMatrix4fv: () => {},
|
|
73
|
+
bufferSubData: () => {},
|
|
74
|
+
drawElementsInstanced: () => {}
|
|
75
|
+
});
|
|
76
|
+
(<any>window).Worker = class {
|
|
77
|
+
public postMessage(): any {}
|
|
78
|
+
public terminate(): any {}
|
|
79
|
+
};
|
|
80
|
+
(<any>window).Path2D = class {
|
|
81
|
+
public addPath(): any {}
|
|
82
|
+
public addPath2D(): any {}
|
|
83
|
+
public closePath(): any {}
|
|
84
|
+
public moveTo(): any {}
|
|
85
|
+
public lineTo(): any {}
|
|
86
|
+
public arc(): any {}
|
|
87
|
+
public rect(): any {}
|
|
88
|
+
public fill(): any {}
|
|
89
|
+
public stroke(): any {}
|
|
90
|
+
};
|
|
91
|
+
/* eslint-enable jsdoc/require-jsdoc */
|
|
92
|
+
}
|
|
93
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import HelpPrinterRows from './HelpPrinterRows.js';
|
|
2
|
+
|
|
3
|
+
/* eslint-disable no-console */
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* CLI help printer.
|
|
7
|
+
*/
|
|
8
|
+
export default class HelpPrinter {
|
|
9
|
+
/**
|
|
10
|
+
* Prints help information.
|
|
11
|
+
*/
|
|
12
|
+
public static print(): void {
|
|
13
|
+
console.log('Happy DOM Server Renderer');
|
|
14
|
+
console.log('========================');
|
|
15
|
+
console.log('');
|
|
16
|
+
console.log('Usage: happy-dom-sr [options]');
|
|
17
|
+
console.log('');
|
|
18
|
+
console.log('Options:');
|
|
19
|
+
console.log('');
|
|
20
|
+
|
|
21
|
+
// Calculate column widths
|
|
22
|
+
const colWidths = [0, 0, 0, 0, 0];
|
|
23
|
+
for (const row of HelpPrinterRows) {
|
|
24
|
+
for (let i = 0; i < row.length; i++) {
|
|
25
|
+
colWidths[i] = Math.max(colWidths[i], row[i].length);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Print table
|
|
30
|
+
for (const row of HelpPrinterRows) {
|
|
31
|
+
console.log('| ' + row.map((cell, i) => cell.padEnd(colWidths[i])).join(' | ') + ' |');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
console.log('');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
export default [
|
|
2
|
+
['Argument', 'Aliases', 'Type', 'Description', 'Default'],
|
|
3
|
+
[
|
|
4
|
+
'-------------------------------------------------',
|
|
5
|
+
'----------------------------------',
|
|
6
|
+
'----------',
|
|
7
|
+
'--------------------------------------------------------------------------------------',
|
|
8
|
+
'---------------------'
|
|
9
|
+
],
|
|
10
|
+
['"<url>"', '', 'string', 'One or more URLs to render.', ''],
|
|
11
|
+
['--help', '-h', 'boolean', 'Displays this help information.', 'false'],
|
|
12
|
+
['--config=<path>', '-c', 'string', 'Path to the configuration file.', ''],
|
|
13
|
+
[
|
|
14
|
+
'--outputDirectory=<path>',
|
|
15
|
+
'-o',
|
|
16
|
+
'string',
|
|
17
|
+
'Directory to save rendered output.',
|
|
18
|
+
'./happy-dom/render'
|
|
19
|
+
],
|
|
20
|
+
['--cache.disable', '', 'boolean', 'Disables fetch response cache.', 'false'],
|
|
21
|
+
['--cache.warmup', '', 'boolean', 'Renders the first URL first to warmup the cache.', 'false'],
|
|
22
|
+
[
|
|
23
|
+
'--cache.directory=<path>',
|
|
24
|
+
'-cd',
|
|
25
|
+
'string',
|
|
26
|
+
'Directory to store the cache.',
|
|
27
|
+
'./happy-dom/cache'
|
|
28
|
+
],
|
|
29
|
+
[
|
|
30
|
+
'--debug',
|
|
31
|
+
'-d',
|
|
32
|
+
'boolean',
|
|
33
|
+
'Enables debug mode which is collected when the rendering has timed out.',
|
|
34
|
+
'false'
|
|
35
|
+
],
|
|
36
|
+
[
|
|
37
|
+
'--inspect',
|
|
38
|
+
'-i',
|
|
39
|
+
'boolean',
|
|
40
|
+
'Enables inspector mode. Opens a Chromium DevTools inspector for each worker.',
|
|
41
|
+
'false'
|
|
42
|
+
],
|
|
43
|
+
[
|
|
44
|
+
'--logLevel=<level>',
|
|
45
|
+
'-l',
|
|
46
|
+
'number',
|
|
47
|
+
'Sets the log level (0-4). 0: none, 1: error, 2: warn, 3: info, 4: debug.',
|
|
48
|
+
'3'
|
|
49
|
+
],
|
|
50
|
+
[
|
|
51
|
+
'--server.start',
|
|
52
|
+
'--server, -s',
|
|
53
|
+
'boolean',
|
|
54
|
+
'Starts the server renderer proxy server.',
|
|
55
|
+
'false'
|
|
56
|
+
],
|
|
57
|
+
[
|
|
58
|
+
'--server.serverURL=<url>',
|
|
59
|
+
'-su',
|
|
60
|
+
'string',
|
|
61
|
+
'URL of the server renderer proxy server.',
|
|
62
|
+
'http://localhost:3000'
|
|
63
|
+
],
|
|
64
|
+
['--server.targetOrigin=<url>', '-st', 'string', 'Target origin (e.g. https://example.com)', ''],
|
|
65
|
+
['--server.disableCache', '-sdc', 'boolean', 'Disables the server memory cache.', 'false'],
|
|
66
|
+
[
|
|
67
|
+
'--server.disableCacheQueue',
|
|
68
|
+
'-sdq',
|
|
69
|
+
'boolean',
|
|
70
|
+
'Disables the server memory cache queue.',
|
|
71
|
+
'false'
|
|
72
|
+
],
|
|
73
|
+
[
|
|
74
|
+
'--server.cacheTime=<ms>',
|
|
75
|
+
'-sct',
|
|
76
|
+
'number',
|
|
77
|
+
'Time in milliseconds to keep items in the server memory cache.',
|
|
78
|
+
'60000'
|
|
79
|
+
],
|
|
80
|
+
[
|
|
81
|
+
'--render.timeout=<ms>',
|
|
82
|
+
'-rt',
|
|
83
|
+
'number',
|
|
84
|
+
'Time in milliseconds to wait before considering the rendering as timed out.',
|
|
85
|
+
'30000'
|
|
86
|
+
],
|
|
87
|
+
[
|
|
88
|
+
'--render.maxConcurrency=<number>',
|
|
89
|
+
'',
|
|
90
|
+
'number',
|
|
91
|
+
'Maximum number of concurrent renderings inside a worker.',
|
|
92
|
+
'10'
|
|
93
|
+
],
|
|
94
|
+
[
|
|
95
|
+
'--render.incognitoContext',
|
|
96
|
+
'',
|
|
97
|
+
'boolean',
|
|
98
|
+
'Enables incognito context for each rendering.',
|
|
99
|
+
'false'
|
|
100
|
+
],
|
|
101
|
+
['--render.serializableShadowRoots', '', 'boolean', 'Render serializable shadow roots.', 'false'],
|
|
102
|
+
['--render.allShadowRoots', '', 'boolean', 'Render all shadow roots.', 'false'],
|
|
103
|
+
[
|
|
104
|
+
'--render.excludeShadowRootTags=<tags>',
|
|
105
|
+
'',
|
|
106
|
+
'string[]',
|
|
107
|
+
'Comma-separated list of tags to exclude shadow root rendering for.',
|
|
108
|
+
''
|
|
109
|
+
],
|
|
110
|
+
['--render.disablePolyfills', '', 'boolean', 'Disables polyfills.', 'false'],
|
|
111
|
+
['--worker.disable', '', 'boolean', 'Disables workers.', 'false'],
|
|
112
|
+
[
|
|
113
|
+
'--worker.maxConcurrency=<number>',
|
|
114
|
+
'',
|
|
115
|
+
'number',
|
|
116
|
+
'Maximum number of concurrent workers. 50% of CPU threads by default.',
|
|
117
|
+
''
|
|
118
|
+
],
|
|
119
|
+
['--browser.viewport.width=<number>', '-vw', 'number', 'Sets the viewport width.', '1024'],
|
|
120
|
+
['--browser.viewport.height=<number>', '-vh', 'number', 'Sets the viewport height.', '768'],
|
|
121
|
+
[
|
|
122
|
+
'--browser.viewport.devicePixelRatio=<number>',
|
|
123
|
+
'',
|
|
124
|
+
'number',
|
|
125
|
+
'Sets the device pixel ratio.',
|
|
126
|
+
'1'
|
|
127
|
+
],
|
|
128
|
+
[
|
|
129
|
+
'--browser.disableJavascriptEvaluation',
|
|
130
|
+
'',
|
|
131
|
+
'boolean',
|
|
132
|
+
'Disables JavaScript evaluation.',
|
|
133
|
+
'false'
|
|
134
|
+
],
|
|
135
|
+
[
|
|
136
|
+
'--browser.disableJavaScriptFileLoading',
|
|
137
|
+
'',
|
|
138
|
+
'boolean',
|
|
139
|
+
'Disables JavaScript file loading.',
|
|
140
|
+
'false'
|
|
141
|
+
],
|
|
142
|
+
['--browser.disableCSSFileLoading', '', 'boolean', 'Disables CSS file loading.', 'false'],
|
|
143
|
+
[
|
|
144
|
+
'--browser.disableComputedStyleRendering',
|
|
145
|
+
'',
|
|
146
|
+
'boolean',
|
|
147
|
+
'Disables computed style rendering.',
|
|
148
|
+
'false'
|
|
149
|
+
],
|
|
150
|
+
[
|
|
151
|
+
'--browser.timer.maxTimeout',
|
|
152
|
+
'',
|
|
153
|
+
'boolean',
|
|
154
|
+
'Maximum value for setTimeout and setInterval.',
|
|
155
|
+
''
|
|
156
|
+
],
|
|
157
|
+
['--browser.timer.maxIntervalTime', '', 'boolean', 'Maximum interval time for setInterval.', ''],
|
|
158
|
+
[
|
|
159
|
+
'--browser.timer.maxIntervalIterations',
|
|
160
|
+
'',
|
|
161
|
+
'boolean',
|
|
162
|
+
'Maximum interval iterations for setInterval.',
|
|
163
|
+
''
|
|
164
|
+
],
|
|
165
|
+
['--browser.timer.preventTimerLoops', '', 'boolean', 'Prevents timer loops.', 'false'],
|
|
166
|
+
[
|
|
167
|
+
'--browser.fetch.disableSameOriginPolicy',
|
|
168
|
+
'',
|
|
169
|
+
'boolean',
|
|
170
|
+
'Disables same-origin policy for fetch requests.',
|
|
171
|
+
'false'
|
|
172
|
+
],
|
|
173
|
+
[
|
|
174
|
+
'--browser.fetch.disableStrictSSL',
|
|
175
|
+
'',
|
|
176
|
+
'boolean',
|
|
177
|
+
'Disables strict SSL for fetch requests.',
|
|
178
|
+
'false'
|
|
179
|
+
],
|
|
180
|
+
[
|
|
181
|
+
'--browser.fetch.requestHeaders=<value>',
|
|
182
|
+
'--browser.fetch.requestHeader, -rh',
|
|
183
|
+
'string',
|
|
184
|
+
'Request header. E.g. -rh="Header:Value" or -rh="^https://e.com/[a-z]{2}/|Header:Value"',
|
|
185
|
+
''
|
|
186
|
+
],
|
|
187
|
+
[
|
|
188
|
+
'--browser.fetch.virtualServers=<value>',
|
|
189
|
+
'--browser.fetch.virtualServer, -vs',
|
|
190
|
+
'string',
|
|
191
|
+
'Setup a virtual server. E.g. -vs="^https://e.com/[a-z]{2}/|./build"',
|
|
192
|
+
''
|
|
193
|
+
],
|
|
194
|
+
[
|
|
195
|
+
'--browser.navigation.disableMainFrameNavigation',
|
|
196
|
+
'',
|
|
197
|
+
'boolean',
|
|
198
|
+
'Disables main frame navigation.',
|
|
199
|
+
'false'
|
|
200
|
+
],
|
|
201
|
+
[
|
|
202
|
+
'--browser.navigation.disableChildFrameNavigation',
|
|
203
|
+
'',
|
|
204
|
+
'boolean',
|
|
205
|
+
'Disables child frame navigation.',
|
|
206
|
+
'false'
|
|
207
|
+
],
|
|
208
|
+
[
|
|
209
|
+
'--browser.navigation.disableChildPageNavigation',
|
|
210
|
+
'',
|
|
211
|
+
'boolean',
|
|
212
|
+
'Disables child page navigation.',
|
|
213
|
+
'false'
|
|
214
|
+
],
|
|
215
|
+
[
|
|
216
|
+
'--browser.navigation.disableFallbackToSetURL',
|
|
217
|
+
'',
|
|
218
|
+
'boolean',
|
|
219
|
+
'Disables fallback to set the location of the window.',
|
|
220
|
+
'false'
|
|
221
|
+
],
|
|
222
|
+
[
|
|
223
|
+
'--browser.navigation.crossOriginPolicy=<policy>',
|
|
224
|
+
'',
|
|
225
|
+
'string',
|
|
226
|
+
'Sets the cross-origin navigation policy. "anyOrigin", "sameOrigin" or "strictOrigin".',
|
|
227
|
+
'"anyOrigin"'
|
|
228
|
+
],
|
|
229
|
+
['--browser.navigator.userAgent=<value>', '', 'string', 'Sets the user agent.', ''],
|
|
230
|
+
[
|
|
231
|
+
'--browser.navigator.maxTouchPoints=<points>',
|
|
232
|
+
'',
|
|
233
|
+
'number',
|
|
234
|
+
'Sets the maximum touch points.',
|
|
235
|
+
'0'
|
|
236
|
+
],
|
|
237
|
+
[
|
|
238
|
+
'--browser.device.prefersColorScheme=<value>',
|
|
239
|
+
'',
|
|
240
|
+
'string',
|
|
241
|
+
'Sets the preferred color scheme.',
|
|
242
|
+
'"light"'
|
|
243
|
+
],
|
|
244
|
+
[
|
|
245
|
+
'--browser.device.prefersReducedMotion=<value>',
|
|
246
|
+
'',
|
|
247
|
+
'string',
|
|
248
|
+
'Sets the preferred reduced motion.',
|
|
249
|
+
'"no-preference"'
|
|
250
|
+
],
|
|
251
|
+
['--browser.device.mediaType=<type>', '', 'string', 'Sets the media type.', '"screen"'],
|
|
252
|
+
['--browser.device.forcedColors=<value>', '', 'string', 'Sets the forced colors.', '"none"'],
|
|
253
|
+
[
|
|
254
|
+
'--browser.debug.traceWaitUntilComplete=<ms>',
|
|
255
|
+
'',
|
|
256
|
+
'number',
|
|
257
|
+
'Throw an error with trace info about waitUntilComplete().',
|
|
258
|
+
''
|
|
259
|
+
]
|
|
260
|
+
];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package version.
|
|
3
|
+
*/
|
|
4
|
+
export default class PackageVersion {
|
|
5
|
+
/**
|
|
6
|
+
* Prints help information.
|
|
7
|
+
*/
|
|
8
|
+
public static async getVersion(): Promise<string> {
|
|
9
|
+
const packageJson = await import('../../package.json', { with: { type: 'json' } });
|
|
10
|
+
return packageJson.default['version'];
|
|
11
|
+
}
|
|
12
|
+
}
|