@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
|
@@ -0,0 +1,261 @@
|
|
|
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
|
+
];
|
|
261
|
+
//# sourceMappingURL=HelpPrinterRows.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HelpPrinterRows.js","sourceRoot":"","sources":["../../src/utilities/HelpPrinterRows.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageVersion.d.ts","sourceRoot":"","sources":["../../src/utilities/PackageVersion.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAClC;;OAEG;WACiB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAIjD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Package version.
|
|
3
|
+
*/
|
|
4
|
+
export default class PackageVersion {
|
|
5
|
+
/**
|
|
6
|
+
* Prints help information.
|
|
7
|
+
*/
|
|
8
|
+
static async getVersion() {
|
|
9
|
+
const packageJson = await import('../../package.json', { with: { type: 'json' } });
|
|
10
|
+
return packageJson.default['version'];
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=PackageVersion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageVersion.js","sourceRoot":"","sources":["../../src/utilities/PackageVersion.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IAClC;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,UAAU;QAC7B,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACnF,OAAO,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;CACD"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import IServerRendererConfiguration from '../types/IServerRendererConfiguration.js';
|
|
2
|
+
/**
|
|
3
|
+
* CLI process arguments parser.
|
|
4
|
+
*/
|
|
5
|
+
export default class ProcessArgumentsParser {
|
|
6
|
+
/**
|
|
7
|
+
* Returns configuration from process arguments.
|
|
8
|
+
*
|
|
9
|
+
* @param args Arguments.
|
|
10
|
+
*/
|
|
11
|
+
static getConfiguration(args: string[]): Promise<IServerRendererConfiguration>;
|
|
12
|
+
/**
|
|
13
|
+
* Strips quotes from value.
|
|
14
|
+
*
|
|
15
|
+
* @param value Value.
|
|
16
|
+
* @returns Stripped value.
|
|
17
|
+
*/
|
|
18
|
+
private static stripQuotes;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=ProcessArgumentsParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessArgumentsParser.d.ts","sourceRoot":"","sources":["../../src/utilities/ProcessArgumentsParser.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,MAAM,0CAA0C,CAAC;AAMpF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAsB;IAC1C;;;;OAIG;WACiB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC;IAyQ3F;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;CAM1B"}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
import DefaultServerRendererConfiguration from '../config/DefaultServerRendererConfiguration.js';
|
|
2
|
+
import Path from 'path';
|
|
3
|
+
import { BrowserNavigationCrossOriginPolicyEnum } from 'happy-dom';
|
|
4
|
+
import ServerRendererLogLevelEnum from '../enums/ServerRendererLogLevelEnum.js';
|
|
5
|
+
/**
|
|
6
|
+
* CLI process arguments parser.
|
|
7
|
+
*/
|
|
8
|
+
export default class ProcessArgumentsParser {
|
|
9
|
+
/**
|
|
10
|
+
* Returns configuration from process arguments.
|
|
11
|
+
*
|
|
12
|
+
* @param args Arguments.
|
|
13
|
+
*/
|
|
14
|
+
static async getConfiguration(args) {
|
|
15
|
+
let config = JSON.parse(JSON.stringify(DefaultServerRendererConfiguration));
|
|
16
|
+
for (const arg of args) {
|
|
17
|
+
if (arg[0] === '-') {
|
|
18
|
+
if (arg.startsWith('--config=') || arg.startsWith('-c=')) {
|
|
19
|
+
config = (await import(Path.resolve(this.stripQuotes(arg.split('=')[1])))).default;
|
|
20
|
+
}
|
|
21
|
+
else if (arg === '--help' || arg === '-h') {
|
|
22
|
+
config.help = true;
|
|
23
|
+
}
|
|
24
|
+
else if (arg === '--browser.disableJavaScriptEvaluation') {
|
|
25
|
+
config.browser.disableJavaScriptEvaluation = true;
|
|
26
|
+
}
|
|
27
|
+
else if (arg === '--browser.disableJavaScriptFileLoading') {
|
|
28
|
+
config.browser.disableJavaScriptFileLoading = true;
|
|
29
|
+
}
|
|
30
|
+
else if (arg === '--browser.disableCSSFileLoading') {
|
|
31
|
+
config.browser.disableCSSFileLoading = true;
|
|
32
|
+
}
|
|
33
|
+
else if (arg === '--browser.disableComputedStyleRendering') {
|
|
34
|
+
config.browser.disableComputedStyleRendering = true;
|
|
35
|
+
}
|
|
36
|
+
else if (arg === '--browser.handleDisabledFileLoadingAsSuccess') {
|
|
37
|
+
config.browser.handleDisabledFileLoadingAsSuccess = true;
|
|
38
|
+
}
|
|
39
|
+
else if (arg.startsWith('--browser.timer.maxTimeout=')) {
|
|
40
|
+
config.browser.timer.maxTimeout = Number(arg.split('=')[1]);
|
|
41
|
+
if (isNaN(config.browser.timer.maxTimeout)) {
|
|
42
|
+
throw new Error(`Invalid value for ${arg.split('=')[0]}`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
else if (arg.startsWith('--browser.timer.maxIntervalTime=')) {
|
|
46
|
+
config.browser.timer.maxIntervalTime = Number(arg.split('=')[1]);
|
|
47
|
+
if (isNaN(config.browser.timer.maxIntervalTime)) {
|
|
48
|
+
throw new Error(`Invalid value for ${arg.split('=')[0]}`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else if (arg.startsWith('--browser.timer.maxIntervalIterations=')) {
|
|
52
|
+
config.browser.timer.maxIntervalIterations = Number(arg.split('=')[1]);
|
|
53
|
+
if (isNaN(config.browser.timer.maxIntervalIterations)) {
|
|
54
|
+
throw new Error(`Invalid value for ${arg.split('=')[0]}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
else if (arg === '--browser.timer.preventTimerLoops') {
|
|
58
|
+
config.browser.timer.preventTimerLoops = true;
|
|
59
|
+
}
|
|
60
|
+
else if (arg === '--browser.fetch.disableSameOriginPolicy') {
|
|
61
|
+
config.browser.fetch.disableSameOriginPolicy = true;
|
|
62
|
+
}
|
|
63
|
+
else if (arg === '--browser.fetch.disableStrictSSL') {
|
|
64
|
+
config.browser.fetch.disableStrictSSL = true;
|
|
65
|
+
}
|
|
66
|
+
else if (arg.startsWith('--browser.fetch.interceptor=')) {
|
|
67
|
+
throw new Error('The setting "browser.fetch.interceptor" can\'t be set via command line.');
|
|
68
|
+
}
|
|
69
|
+
else if (arg.startsWith('--browser.fetch.requestHeader=') ||
|
|
70
|
+
arg.startsWith('--browser.fetch.requestHeaders=') ||
|
|
71
|
+
arg.startsWith('-rh=')) {
|
|
72
|
+
const parts = this.stripQuotes(arg.split('=')[1]).split('|');
|
|
73
|
+
const url = parts.length === 2 ? parts[0].trim() : null;
|
|
74
|
+
const header = parts.length === 2 ? parts[1] : parts[0];
|
|
75
|
+
const [key, value] = header.split(':');
|
|
76
|
+
let hasRequestHeaders = false;
|
|
77
|
+
if (!config.browser.fetch.requestHeaders) {
|
|
78
|
+
config.browser.fetch.requestHeaders = [];
|
|
79
|
+
}
|
|
80
|
+
for (const requestHeaders of config.browser.fetch.requestHeaders) {
|
|
81
|
+
if ((!url && !requestHeaders.url) ||
|
|
82
|
+
(url && requestHeaders.url instanceof RegExp && requestHeaders.url.test(url))) {
|
|
83
|
+
hasRequestHeaders = true;
|
|
84
|
+
requestHeaders.headers[key.trim()] = (value || '').trim();
|
|
85
|
+
break;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (!hasRequestHeaders) {
|
|
89
|
+
config.browser.fetch.requestHeaders.push({
|
|
90
|
+
url: url ? new RegExp(url) : null,
|
|
91
|
+
headers: {
|
|
92
|
+
[key.trim()]: (value || '').trim()
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
else if (arg.startsWith('--browser.fetch.virtualServer=') ||
|
|
98
|
+
arg.startsWith('--browser.fetch.virtualServers=') ||
|
|
99
|
+
arg.startsWith('-vs=')) {
|
|
100
|
+
const parts = this.stripQuotes(arg.split('=')[1]).split('|');
|
|
101
|
+
if (parts.length !== 2) {
|
|
102
|
+
throw new Error(`Invalid value for ${arg.split('=')[0]}`);
|
|
103
|
+
}
|
|
104
|
+
if (!config.browser.fetch.virtualServers) {
|
|
105
|
+
config.browser.fetch.virtualServers = [];
|
|
106
|
+
}
|
|
107
|
+
config.browser.fetch.virtualServers.push({
|
|
108
|
+
url: new RegExp(parts[0].trim()),
|
|
109
|
+
directory: parts[1].trim()
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
else if (arg === '--browser.navigation.disableMainFrameNavigation') {
|
|
113
|
+
config.browser.navigation.disableMainFrameNavigation = true;
|
|
114
|
+
}
|
|
115
|
+
else if (arg === '--browser.navigation.disableChildFrameNavigation') {
|
|
116
|
+
config.browser.navigation.disableChildFrameNavigation = true;
|
|
117
|
+
}
|
|
118
|
+
else if (arg === '--browser.navigation.disableChildPageNavigation') {
|
|
119
|
+
config.browser.navigation.disableChildPageNavigation = true;
|
|
120
|
+
}
|
|
121
|
+
else if (arg === '--browser.navigation.disableFallbackToSetURL') {
|
|
122
|
+
config.browser.navigation.disableFallbackToSetURL = true;
|
|
123
|
+
}
|
|
124
|
+
else if (arg.startsWith('--browser.navigation.crossOriginPolicy=')) {
|
|
125
|
+
const value = arg.split('=')[1];
|
|
126
|
+
if (BrowserNavigationCrossOriginPolicyEnum[value] === undefined) {
|
|
127
|
+
throw new Error(`Invalid value for ${arg.split('=')[0]}`);
|
|
128
|
+
}
|
|
129
|
+
config.browser.navigation.crossOriginPolicy = (value);
|
|
130
|
+
}
|
|
131
|
+
else if (arg.startsWith('--browser.navigation.beforeContentCallback=')) {
|
|
132
|
+
throw new Error('The setting "browser.navigation.beforeContentCallback" can\'t be set via command line.');
|
|
133
|
+
}
|
|
134
|
+
else if (arg.startsWith('--browser.navigator.userAgent=')) {
|
|
135
|
+
config.browser.navigator.userAgent = arg.split('=')[1];
|
|
136
|
+
}
|
|
137
|
+
else if (arg.startsWith('--browser.navigator.maxTouchPoints=')) {
|
|
138
|
+
const value = Number(arg.split('=')[1]);
|
|
139
|
+
if (isNaN(value)) {
|
|
140
|
+
throw new Error(`Invalid value for ${arg.split('=')[0]}`);
|
|
141
|
+
}
|
|
142
|
+
config.browser.navigator.maxTouchPoints = value;
|
|
143
|
+
}
|
|
144
|
+
else if (arg.startsWith('--browser.device.prefersColorScheme=')) {
|
|
145
|
+
config.browser.device.prefersColorScheme = arg.split('=')[1];
|
|
146
|
+
}
|
|
147
|
+
else if (arg.startsWith('--browser.device.prefersReducedMotion=')) {
|
|
148
|
+
config.browser.device.prefersReducedMotion = arg.split('=')[1];
|
|
149
|
+
}
|
|
150
|
+
else if (arg.startsWith('--browser.device.mediaType=')) {
|
|
151
|
+
config.browser.device.mediaType = arg.split('=')[1];
|
|
152
|
+
}
|
|
153
|
+
else if (arg.startsWith('--browser.device.forcedColors=')) {
|
|
154
|
+
config.browser.device.forcedColors = arg.split('=')[1];
|
|
155
|
+
}
|
|
156
|
+
else if (arg.startsWith('--browser.debug.traceWaitUntilComplete=')) {
|
|
157
|
+
const value = Number(arg.split('=')[1]);
|
|
158
|
+
if (isNaN(value)) {
|
|
159
|
+
throw new Error(`Invalid value for ${arg.split('=')[0]}`);
|
|
160
|
+
}
|
|
161
|
+
config.browser.debug.traceWaitUntilComplete = value;
|
|
162
|
+
}
|
|
163
|
+
else if (arg.startsWith('--browser.viewport.width=') || arg.startsWith('-vw=')) {
|
|
164
|
+
const value = Number(arg.split('=')[1]);
|
|
165
|
+
if (isNaN(value)) {
|
|
166
|
+
throw new Error(`Invalid value for ${arg.split('=')[0]}`);
|
|
167
|
+
}
|
|
168
|
+
config.browser.viewport.width = value;
|
|
169
|
+
}
|
|
170
|
+
else if (arg.startsWith('--browser.viewport.height=') || arg.startsWith('-vh=')) {
|
|
171
|
+
const value = Number(arg.split('=')[1]);
|
|
172
|
+
if (isNaN(value)) {
|
|
173
|
+
throw new Error(`Invalid value for ${arg.split('=')[0]}`);
|
|
174
|
+
}
|
|
175
|
+
config.browser.viewport.height = value;
|
|
176
|
+
}
|
|
177
|
+
else if (arg.startsWith('--browser.viewport.devicePixelRatio=')) {
|
|
178
|
+
const value = Number(arg.split('=')[1]);
|
|
179
|
+
if (isNaN(value)) {
|
|
180
|
+
throw new Error(`Invalid value for ${arg.split('=')[0]}`);
|
|
181
|
+
}
|
|
182
|
+
config.browser.viewport.devicePixelRatio = value;
|
|
183
|
+
}
|
|
184
|
+
else if (arg === '--cache.disable') {
|
|
185
|
+
config.cache.disable = true;
|
|
186
|
+
}
|
|
187
|
+
else if (arg.startsWith('--cache.directory=') || arg.startsWith('-cd=')) {
|
|
188
|
+
config.cache.directory = this.stripQuotes(arg.split('=')[1]);
|
|
189
|
+
}
|
|
190
|
+
else if (arg === '--cache.warmup') {
|
|
191
|
+
config.cache.warmup = true;
|
|
192
|
+
}
|
|
193
|
+
else if (arg.startsWith('--logLevel=') || arg.startsWith('-l=')) {
|
|
194
|
+
const value = Number(arg.split('=')[1]);
|
|
195
|
+
if (isNaN(value) || ServerRendererLogLevelEnum[value] === undefined) {
|
|
196
|
+
throw new Error(`Invalid value for ${arg.split('=')[0]}`);
|
|
197
|
+
}
|
|
198
|
+
config.logLevel = value;
|
|
199
|
+
}
|
|
200
|
+
else if (arg === '--worker.disable') {
|
|
201
|
+
config.worker.disable = true;
|
|
202
|
+
}
|
|
203
|
+
else if (arg.startsWith('--worker.maxConcurrency=')) {
|
|
204
|
+
const value = Number(arg.split('=')[1]);
|
|
205
|
+
if (isNaN(value)) {
|
|
206
|
+
throw new Error(`Invalid value for ${arg.split('=')[0]}`);
|
|
207
|
+
}
|
|
208
|
+
config.worker.maxConcurrency = value;
|
|
209
|
+
}
|
|
210
|
+
else if (arg.startsWith('--render.maxConcurrency=')) {
|
|
211
|
+
const value = Number(arg.split('=')[1]);
|
|
212
|
+
if (isNaN(value)) {
|
|
213
|
+
throw new Error(`Invalid value for ${arg.split('=')[0]}`);
|
|
214
|
+
}
|
|
215
|
+
config.render.maxConcurrency = value;
|
|
216
|
+
}
|
|
217
|
+
else if (arg.startsWith('--render.timeout=') || arg.startsWith('-rt=')) {
|
|
218
|
+
const value = Number(arg.split('=')[1]);
|
|
219
|
+
if (isNaN(value)) {
|
|
220
|
+
throw new Error(`Invalid value for ${arg.split('=')[0]}`);
|
|
221
|
+
}
|
|
222
|
+
config.render.timeout = value;
|
|
223
|
+
}
|
|
224
|
+
else if (arg === '--render.incognitoContext') {
|
|
225
|
+
config.render.incognitoContext = true;
|
|
226
|
+
}
|
|
227
|
+
else if (arg === '--render.serializableShadowRoots') {
|
|
228
|
+
config.render.serializableShadowRoots = true;
|
|
229
|
+
}
|
|
230
|
+
else if (arg === '--render.allShadowRoots') {
|
|
231
|
+
config.render.allShadowRoots = true;
|
|
232
|
+
}
|
|
233
|
+
else if (arg.startsWith('--render.excludeShadowRootTags=')) {
|
|
234
|
+
const value = arg.split('=')[1];
|
|
235
|
+
config.render.excludeShadowRootTags = value.split(',');
|
|
236
|
+
}
|
|
237
|
+
else if (arg === '--render.disablePolyfills') {
|
|
238
|
+
config.render.disablePolyfills = true;
|
|
239
|
+
}
|
|
240
|
+
else if (arg === '--debug' || arg === '-d') {
|
|
241
|
+
config.debug = true;
|
|
242
|
+
}
|
|
243
|
+
else if (arg === '--inspect' || arg === '-i') {
|
|
244
|
+
config.inspect = true;
|
|
245
|
+
}
|
|
246
|
+
else if (arg.startsWith('--outputDirectory=') || arg.startsWith('-o=')) {
|
|
247
|
+
config.outputDirectory = this.stripQuotes(arg.split('=')[1]);
|
|
248
|
+
}
|
|
249
|
+
else if (arg.startsWith('--server.serverURL=') || arg.startsWith('-su=')) {
|
|
250
|
+
config.server.serverURL = this.stripQuotes(arg.split('=')[1]);
|
|
251
|
+
}
|
|
252
|
+
else if (arg.startsWith('--server.targetOrigin=') || arg.startsWith('-st=')) {
|
|
253
|
+
config.server.targetOrigin = this.stripQuotes(arg.split('=')[1]);
|
|
254
|
+
}
|
|
255
|
+
else if (arg === '--server.disableCache' || arg === '-sdc') {
|
|
256
|
+
config.server.disableCache = true;
|
|
257
|
+
}
|
|
258
|
+
else if (arg === '--server.disableCacheQueue' || arg === '-sdq') {
|
|
259
|
+
config.server.disableCacheQueue = true;
|
|
260
|
+
}
|
|
261
|
+
else if (arg.startsWith('--server.cacheTime=') || arg.startsWith('-sct=')) {
|
|
262
|
+
const value = Number(arg.split('=')[1]);
|
|
263
|
+
if (isNaN(value)) {
|
|
264
|
+
throw new Error(`Invalid value for ${arg.split('=')[0]}`);
|
|
265
|
+
}
|
|
266
|
+
config.server.cacheTime = value;
|
|
267
|
+
}
|
|
268
|
+
else if (arg === '--server.start' || arg === '--server' || arg === '-s') {
|
|
269
|
+
config.server.start = true;
|
|
270
|
+
}
|
|
271
|
+
else if (arg.startsWith('--urls=')) {
|
|
272
|
+
throw new Error('URLs shouldn\'t be set by "--urls=". Instead set them with quotes without an argument name. E.g. "https://example.com/page" "https://example.com/another/page"');
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
else if (arg) {
|
|
276
|
+
const urlString = arg[0] === '"' && arg[arg.length - 1] === '"' ? arg.substring(1, arg.length - 1) : arg;
|
|
277
|
+
let url = null;
|
|
278
|
+
try {
|
|
279
|
+
url = new URL(urlString);
|
|
280
|
+
}
|
|
281
|
+
catch (e) {
|
|
282
|
+
// Ignore
|
|
283
|
+
}
|
|
284
|
+
if (url) {
|
|
285
|
+
// We need to replace the first slash to make the path relative to the current directory
|
|
286
|
+
const item = {
|
|
287
|
+
url: url.href,
|
|
288
|
+
outputFile: url.pathname.replace('/', '')
|
|
289
|
+
};
|
|
290
|
+
const parts = item.outputFile.split('/');
|
|
291
|
+
if (!parts[parts.length - 1].includes('.')) {
|
|
292
|
+
if (parts[parts.length - 1]) {
|
|
293
|
+
item.outputFile += '/';
|
|
294
|
+
}
|
|
295
|
+
item.outputFile += 'index.html';
|
|
296
|
+
}
|
|
297
|
+
if (!config.urls) {
|
|
298
|
+
config.urls = [];
|
|
299
|
+
}
|
|
300
|
+
config.urls.push(item);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
return config;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Strips quotes from value.
|
|
308
|
+
*
|
|
309
|
+
* @param value Value.
|
|
310
|
+
* @returns Stripped value.
|
|
311
|
+
*/
|
|
312
|
+
static stripQuotes(value) {
|
|
313
|
+
if (value[0] === '"' && value[value.length - 1] === '"') {
|
|
314
|
+
return value.substring(1, value.length - 1);
|
|
315
|
+
}
|
|
316
|
+
return value;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
//# sourceMappingURL=ProcessArgumentsParser.js.map
|