@happy-dom/server-renderer 20.0.11 → 20.1.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.
Files changed (72) hide show
  1. package/lib/ServerRenderer.d.ts +3 -3
  2. package/lib/ServerRenderer.d.ts.map +1 -1
  3. package/lib/ServerRenderer.js +27 -13
  4. package/lib/ServerRenderer.js.map +1 -1
  5. package/lib/ServerRendererBrowser.d.ts.map +1 -1
  6. package/lib/ServerRendererBrowser.js +7 -133
  7. package/lib/ServerRendererBrowser.js.map +1 -1
  8. package/lib/{ServerRendererWorker.d.ts → ServerRendererBrowserWorker.d.ts} +2 -2
  9. package/lib/ServerRendererBrowserWorker.d.ts.map +1 -0
  10. package/lib/{ServerRendererWorker.js → ServerRendererBrowserWorker.js} +3 -3
  11. package/lib/ServerRendererBrowserWorker.js.map +1 -0
  12. package/lib/ServerRendererPage.d.ts +24 -0
  13. package/lib/ServerRendererPage.d.ts.map +1 -0
  14. package/lib/ServerRendererPage.js +234 -0
  15. package/lib/ServerRendererPage.js.map +1 -0
  16. package/lib/ServerRendererPageWorker.d.ts +15 -0
  17. package/lib/ServerRendererPageWorker.d.ts.map +1 -0
  18. package/lib/ServerRendererPageWorker.js +38 -0
  19. package/lib/ServerRendererPageWorker.js.map +1 -0
  20. package/lib/ServerRendererServer.d.ts.map +1 -1
  21. package/lib/ServerRendererServer.js +0 -4
  22. package/lib/ServerRendererServer.js.map +1 -1
  23. package/lib/config/DefaultServerRendererConfiguration.d.ts.map +1 -1
  24. package/lib/config/DefaultServerRendererConfiguration.js +6 -6
  25. package/lib/config/DefaultServerRendererConfiguration.js.map +1 -1
  26. package/lib/enums/ServerRendererModeEnum.d.ts +6 -0
  27. package/lib/enums/ServerRendererModeEnum.d.ts.map +1 -0
  28. package/lib/enums/ServerRendererModeEnum.js +9 -0
  29. package/lib/enums/ServerRendererModeEnum.js.map +1 -0
  30. package/lib/index.d.ts +2 -1
  31. package/lib/index.d.ts.map +1 -1
  32. package/lib/index.js +2 -1
  33. package/lib/index.js.map +1 -1
  34. package/lib/types/IOptionalServerRendererConfiguration.d.ts +11 -2
  35. package/lib/types/IOptionalServerRendererConfiguration.d.ts.map +1 -1
  36. package/lib/types/IServerRendererConfiguration.d.ts +11 -2
  37. package/lib/types/IServerRendererConfiguration.d.ts.map +1 -1
  38. package/lib/types/IServerRendererItem.d.ts +2 -1
  39. package/lib/types/IServerRendererItem.d.ts.map +1 -1
  40. package/lib/types/IServerRendererResult.d.ts +4 -4
  41. package/lib/types/IServerRendererResult.d.ts.map +1 -1
  42. package/lib/utilities/BrowserWindowPolyfill.d.ts.map +1 -1
  43. package/lib/utilities/BrowserWindowPolyfill.js +2 -2
  44. package/lib/utilities/BrowserWindowPolyfill.js.map +1 -1
  45. package/lib/utilities/HelpPrinterRows.d.ts.map +1 -1
  46. package/lib/utilities/HelpPrinterRows.js +25 -4
  47. package/lib/utilities/HelpPrinterRows.js.map +1 -1
  48. package/lib/utilities/ProcessArgumentsParser.d.ts.map +1 -1
  49. package/lib/utilities/ProcessArgumentsParser.js +86 -22
  50. package/lib/utilities/ProcessArgumentsParser.js.map +1 -1
  51. package/lib/utilities/ServerRendererConfigurationFactory.js +1 -1
  52. package/lib/utilities/ServerRendererConfigurationFactory.js.map +1 -1
  53. package/package.json +3 -2
  54. package/src/ServerRenderer.ts +36 -13
  55. package/src/ServerRendererBrowser.ts +7 -151
  56. package/src/{ServerRendererWorker.ts → ServerRendererBrowserWorker.ts} +2 -2
  57. package/src/ServerRendererPage.ts +279 -0
  58. package/src/ServerRendererPageWorker.ts +55 -0
  59. package/src/ServerRendererServer.ts +3 -8
  60. package/src/config/DefaultServerRendererConfiguration.ts +6 -6
  61. package/src/enums/ServerRendererModeEnum.ts +8 -0
  62. package/src/index.ts +3 -1
  63. package/src/types/IOptionalServerRendererConfiguration.ts +21 -2
  64. package/src/types/IServerRendererConfiguration.ts +20 -2
  65. package/src/types/IServerRendererItem.ts +2 -1
  66. package/src/types/IServerRendererResult.ts +4 -4
  67. package/src/utilities/BrowserWindowPolyfill.ts +3 -2
  68. package/src/utilities/HelpPrinterRows.ts +25 -4
  69. package/src/utilities/ProcessArgumentsParser.ts +93 -24
  70. package/src/utilities/ServerRendererConfigurationFactory.ts +1 -1
  71. package/lib/ServerRendererWorker.d.ts.map +0 -1
  72. package/lib/ServerRendererWorker.js.map +0 -1
@@ -13,13 +13,13 @@ export default class ServerRenderer {
13
13
  */
14
14
  constructor(configuration?: IOptionalServerRendererConfiguration);
15
15
  /**
16
- * Renders URLs.
16
+ * Server renders URLs or HTML strings.
17
17
  *
18
- * @param [urls] URLs to render.
18
+ * @param [renderItems] List render items. Each item can be a URL string or an object specifying the URL or HTML string along with additional options.
19
19
  * @param [options] Options.
20
20
  * @param [options.keepAlive] Keep the workers and browser alive. This is useful when using the renderer in a server. The workers can be closed with the `close()` method.
21
21
  */
22
- render(urls?: Array<string | IServerRendererItem> | null, options?: {
22
+ render(renderItems?: Array<string | IServerRendererItem> | null, options?: {
23
23
  keepAlive?: boolean;
24
24
  }): Promise<IServerRendererResult[]>;
25
25
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ServerRenderer.d.ts","sourceRoot":"","sources":["../src/ServerRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,oCAAoC,MAAM,iDAAiD,CAAC;AACnG,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;AAEjE,OAAO,qBAAqB,MAAM,kCAAkC,CAAC;AAgBrE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;;IASlC;;;;OAIG;gBACS,aAAa,CAAC,EAAE,oCAAoC;IAShE;;;;;;OAMG;IACU,MAAM,CAClB,IAAI,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,GAAG,IAAI,EACjD,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/B,OAAO,CAAC,qBAAqB,EAAE,CAAC;IA8FnC;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA+InC;;;;OAIG;IACH,OAAO,CAAC,aAAa;CA6CrB"}
1
+ {"version":3,"file":"ServerRenderer.d.ts","sourceRoot":"","sources":["../src/ServerRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,oCAAoC,MAAM,iDAAiD,CAAC;AACnG,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;AAEjE,OAAO,qBAAqB,MAAM,kCAAkC,CAAC;AAiBrE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;;IASlC;;;;OAIG;gBACS,aAAa,CAAC,EAAE,oCAAoC;IAShE;;;;;;OAMG;IACU,MAAM,CAClB,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC,GAAG,IAAI,EACxD,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/B,OAAO,CAAC,qBAAqB,EAAE,CAAC;IA2GnC;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAwJnC;;;;OAIG;IACH,OAAO,CAAC,aAAa;CA6CrB"}
@@ -6,6 +6,7 @@ import Inspector from 'node:inspector';
6
6
  import ServerRendererBrowser from './ServerRendererBrowser.js';
7
7
  // eslint-disable-next-line import/no-named-as-default
8
8
  import Chalk from 'chalk';
9
+ import ServerRendererModeEnum from './enums/ServerRendererModeEnum.js';
9
10
  /**
10
11
  * Server renderer.
11
12
  */
@@ -30,16 +31,16 @@ export default class ServerRenderer {
30
31
  }
31
32
  }
32
33
  /**
33
- * Renders URLs.
34
+ * Server renders URLs or HTML strings.
34
35
  *
35
- * @param [urls] URLs to render.
36
+ * @param [renderItems] List render items. Each item can be a URL string or an object specifying the URL or HTML string along with additional options.
36
37
  * @param [options] Options.
37
38
  * @param [options.keepAlive] Keep the workers and browser alive. This is useful when using the renderer in a server. The workers can be closed with the `close()` method.
38
39
  */
39
- async render(urls, options) {
40
+ async render(renderItems, options) {
40
41
  const startTime = performance.now();
41
42
  const configuration = this.#configuration;
42
- const items = urls || configuration.urls;
43
+ const items = renderItems || configuration.renderItems;
43
44
  const parsedItems = [];
44
45
  if (!items || !items.length) {
45
46
  if (configuration.logLevel >= ServerRendererLogLevelEnum.info) {
@@ -55,6 +56,7 @@ export default class ServerRenderer {
55
56
  else {
56
57
  parsedItems.push({
57
58
  url: item.url,
59
+ html: item.html,
58
60
  outputFile: item.outputFile
59
61
  ? Path.join(configuration.outputDirectory, item.outputFile)
60
62
  : null,
@@ -63,12 +65,16 @@ export default class ServerRenderer {
63
65
  }
64
66
  }
65
67
  if (configuration.logLevel >= ServerRendererLogLevelEnum.info) {
68
+ if (configuration.inspect) {
69
+ // eslint-disable-next-line no-console
70
+ console.log(Chalk.blue(Chalk.bold(`\n🔍 Inspector enabled`)));
71
+ }
66
72
  if (configuration.debug) {
67
73
  // eslint-disable-next-line no-console
68
- console.log(Chalk.blue(Chalk.bold(`🔨 Debug mode enabled\n`)));
74
+ console.log(Chalk.blue(Chalk.bold(`\n🔨 Debug mode enabled`)));
69
75
  }
70
76
  // eslint-disable-next-line no-console
71
- console.log(Chalk.bold(`Rendering ${parsedItems.length} page${parsedItems.length > 1 ? 's' : ''}...\n`));
77
+ console.log(Chalk.bold(`\nRendering ${parsedItems.length} page${parsedItems.length > 1 ? 's' : ''}...\n`));
72
78
  }
73
79
  let results = [];
74
80
  if (!configuration.cache.disable && configuration.cache.warmup) {
@@ -76,7 +82,7 @@ export default class ServerRenderer {
76
82
  if (item) {
77
83
  if (configuration.logLevel >= ServerRendererLogLevelEnum.info) {
78
84
  // eslint-disable-next-line no-console
79
- console.log('Warming up cache...\n');
85
+ console.log('\nWarming up cache...\n');
80
86
  }
81
87
  results = results.concat(await this.#runInWorker([item]));
82
88
  if (configuration.logLevel >= ServerRendererLogLevelEnum.info) {
@@ -88,7 +94,10 @@ export default class ServerRenderer {
88
94
  if (parsedItems.length) {
89
95
  const promises = [];
90
96
  while (parsedItems.length) {
91
- const chunk = parsedItems.splice(0, configuration.render.maxConcurrency);
97
+ const maxConcurrency = configuration.render.mode === ServerRendererModeEnum.page
98
+ ? 1
99
+ : configuration.render.maxConcurrency;
100
+ const chunk = parsedItems.splice(0, maxConcurrency);
92
101
  promises.push(this.#runInWorker(chunk).then((chunkResults) => {
93
102
  results = results.concat(chunkResults);
94
103
  }));
@@ -96,9 +105,9 @@ export default class ServerRenderer {
96
105
  await Promise.all(promises);
97
106
  }
98
107
  if (configuration.logLevel >= ServerRendererLogLevelEnum.info) {
99
- const time = Math.round((performance.now() - startTime) / 1000);
108
+ const time = (performance.now() - startTime) / 1000;
100
109
  const minutes = Math.floor(time / 60);
101
- const seconds = time % 60;
110
+ const seconds = Math.round((time % 60) * 100) / 100;
102
111
  // eslint-disable-next-line no-console
103
112
  console.log(Chalk.bold(`\nRendered ${items.length} page${items.length > 1 ? 's' : ''} in ${minutes ? `${minutes} minutes and ` : ''}${seconds} seconds\n`));
104
113
  }
@@ -133,6 +142,9 @@ export default class ServerRenderer {
133
142
  async #runInWorker(items) {
134
143
  const configuration = this.#configuration;
135
144
  if (configuration.worker.disable) {
145
+ if (configuration.render.mode === ServerRendererModeEnum.page) {
146
+ throw new Error('Page rendering mode cannot be used when worker threads are disabled. Please enable worker threads or use browser rendering mode.');
147
+ }
136
148
  if (!this.#browser) {
137
149
  this.#browser = new ServerRendererBrowser(configuration);
138
150
  }
@@ -147,8 +159,10 @@ export default class ServerRenderer {
147
159
  this.#workerPool.waiting.push({ items, resolve, reject });
148
160
  return;
149
161
  }
150
- const worker = new Worker(new URL('ServerRendererWorker.js', import.meta.url), {
151
- execArgv: ['--disallow-code-generation-from-strings', '--frozen-intrinsics'],
162
+ const script = configuration.render.mode === ServerRendererModeEnum.page
163
+ ? 'ServerRendererPageWorker.js'
164
+ : 'ServerRendererBrowserWorker.js';
165
+ const worker = new Worker(new URL(script, import.meta.url), {
152
166
  workerData: {
153
167
  configuration: configuration
154
168
  }
@@ -187,7 +201,7 @@ export default class ServerRenderer {
187
201
  }
188
202
  done();
189
203
  resolve(items.map((item) => ({
190
- url: item.url,
204
+ url: item.url || null,
191
205
  content: null,
192
206
  status: 200,
193
207
  statusText: 'OK',
@@ -1 +1 @@
1
- {"version":3,"file":"ServerRenderer.js","sourceRoot":"","sources":["../src/ServerRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServerRenderer.js","sourceRoot":"","sources":["../src/ServerRenderer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ServerRendererBrowser.d.ts","sourceRoot":"","sources":["../src/ServerRendererBrowser.ts"],"names":[],"mappings":"AAEA,OAAO,4BAA4B,MAAM,yCAAyC,CAAC;AAGnF,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;AACjE,OAAO,qBAAqB,MAAM,kCAAkC,CAAC;AAIrE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;;IAMzC;;;;OAIG;gBACS,aAAa,EAAE,4BAA4B;IAevD;;;;OAIG;IACU,MAAM,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAkCnF;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA4MnC"}
1
+ {"version":3,"file":"ServerRendererBrowser.d.ts","sourceRoot":"","sources":["../src/ServerRendererBrowser.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,MAAM,yCAAyC,CAAC;AACnF,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;AACjE,OAAO,qBAAqB,MAAM,kCAAkC,CAAC;AAGrE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;;IAMzC;;;;OAIG;gBACS,aAAa,EAAE,4BAA4B;IAgBvD;;;;OAIG;IACU,MAAM,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAkCnF;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA+DnC"}
@@ -1,8 +1,5 @@
1
1
  import Browser from 'happy-dom/lib/browser/Browser.js';
2
- import HTMLSerializer from 'happy-dom/lib/html-serializer/HTMLSerializer.js';
3
- import FS from 'fs';
4
- import Path from 'path';
5
- import BrowserWindowPolyfill from './utilities/BrowserWindowPolyfill.js';
2
+ import ServerRendererPage from './ServerRendererPage.js';
6
3
  /**
7
4
  * Server renderer browser.
8
5
  */
@@ -10,7 +7,7 @@ export default class ServerRendererBrowser {
10
7
  #configuration;
11
8
  #browser;
12
9
  #isCacheLoaded = false;
13
- #createdDirectories = new Set();
10
+ #pageRenderer;
14
11
  /**
15
12
  * Constructor.
16
13
  *
@@ -28,6 +25,7 @@ export default class ServerRendererBrowser {
28
25
  }
29
26
  : configuration.browser;
30
27
  this.#browser = new Browser({ settings });
28
+ this.#pageRenderer = new ServerRendererPage(configuration);
31
29
  }
32
30
  /**
33
31
  * Renders URLs.
@@ -44,7 +42,7 @@ export default class ServerRendererBrowser {
44
42
  const chunk = items.splice(0, this.#configuration.render.maxConcurrency);
45
43
  const promises = [];
46
44
  for (const url of chunk) {
47
- promises.push(this.#renderURL(browser, url).then((result) => {
45
+ promises.push(this.#renderPage(browser, url).then((result) => {
48
46
  results.push(result);
49
47
  }));
50
48
  }
@@ -54,7 +52,7 @@ export default class ServerRendererBrowser {
54
52
  else {
55
53
  const promises = [];
56
54
  for (const url of items) {
57
- promises.push(this.#renderURL(browser, url));
55
+ promises.push(this.#renderPage(browser, url));
58
56
  }
59
57
  results = await Promise.all(promises);
60
58
  }
@@ -75,7 +73,7 @@ export default class ServerRendererBrowser {
75
73
  * @param browser Browser.
76
74
  * @param item Item.
77
75
  */
78
- async #renderURL(browser, item) {
76
+ async #renderPage(browser, item) {
79
77
  const responseCache = browser.defaultContext.responseCache;
80
78
  const preflightResponseCache = browser.defaultContext.preflightResponseCache;
81
79
  const configuration = this.#configuration;
@@ -89,131 +87,7 @@ export default class ServerRendererBrowser {
89
87
  // @ts-ignore
90
88
  context.preflightResponseCache = preflightResponseCache;
91
89
  }
92
- const pageErrors = [];
93
- const response = (await page.goto(item.url, {
94
- timeout: configuration.render.timeout,
95
- headers: item.headers,
96
- beforeContentCallback(window) {
97
- window.addEventListener('error', (event) => {
98
- if (event.error) {
99
- pageErrors.push(event.error.stack);
100
- }
101
- });
102
- if (!configuration.render.disablePolyfills) {
103
- BrowserWindowPolyfill.applyPolyfills(window);
104
- }
105
- }
106
- }));
107
- const headers = {};
108
- for (const [key, value] of response.headers) {
109
- if (key !== 'content-encoding') {
110
- headers[key] = value;
111
- }
112
- }
113
- if (!response.ok) {
114
- const pageConsole = page.virtualConsolePrinter.readAsString();
115
- await page.close();
116
- return {
117
- url: item.url,
118
- content: null,
119
- status: response.status,
120
- statusText: response.statusText,
121
- headers,
122
- outputFile: item.outputFile ?? null,
123
- error: `Failed to render page ${item.url} (${response.status} ${response.statusText})`,
124
- pageConsole,
125
- pageErrors
126
- };
127
- }
128
- let timeoutError = null;
129
- const timeout = this.#browser.settings.debug.traceWaitUntilComplete === -1
130
- ? setTimeout(() => {
131
- timeoutError = `The page was not rendered within the defined time of ${configuration.render.timeout}ms and the operation was aborted. You can increase this value with the "render.timeout" setting.\n\nThe page may contain scripts with timer loops that prevent it from completing. You can debug open handles by setting "debug" to true, or prevent timer loops by setting "browser.timer.preventTimerLoops" to true. Read more about this in the documentation.`;
132
- page.abort();
133
- }, configuration.render.timeout)
134
- : null;
135
- try {
136
- await page.waitUntilComplete();
137
- }
138
- catch (error) {
139
- const pageConsole = page.virtualConsolePrinter.readAsString();
140
- await page.close();
141
- return {
142
- url: item.url,
143
- content: null,
144
- status: response.status,
145
- statusText: response.statusText,
146
- headers,
147
- outputFile: item.outputFile ?? null,
148
- error: error.stack,
149
- pageConsole,
150
- pageErrors
151
- };
152
- }
153
- // Wait for errors to be printed
154
- await new Promise((resolve) => setTimeout(resolve, 10));
155
- if (timeout) {
156
- clearTimeout(timeout);
157
- }
158
- const pageConsole = page.virtualConsolePrinter.readAsString();
159
- if (timeoutError) {
160
- page.close();
161
- return {
162
- url: item.url,
163
- content: null,
164
- status: response.status,
165
- statusText: response.statusText,
166
- headers,
167
- outputFile: null,
168
- error: timeoutError,
169
- pageConsole,
170
- pageErrors
171
- };
172
- }
173
- const serializer = new HTMLSerializer({
174
- allShadowRoots: configuration.render.allShadowRoots,
175
- serializableShadowRoots: configuration.render.serializableShadowRoots,
176
- excludeShadowRootTags: configuration.render.excludeShadowRootTags
177
- });
178
- const result = serializer.serializeToString(page.mainFrame.document);
179
- await page.close();
180
- if (!item.outputFile) {
181
- return {
182
- url: item.url,
183
- content: result,
184
- status: response.status,
185
- statusText: response.statusText,
186
- headers,
187
- outputFile: null,
188
- error: null,
189
- pageConsole,
190
- pageErrors
191
- };
192
- }
193
- const directory = Path.dirname(item.outputFile);
194
- if (!this.#createdDirectories.has(directory)) {
195
- this.#createdDirectories.add(directory);
196
- try {
197
- await FS.promises.mkdir(directory, {
198
- recursive: true
199
- });
200
- }
201
- catch {
202
- // Ignore
203
- }
204
- }
205
- await FS.promises.writeFile(item.outputFile, result);
206
- return {
207
- url: item.url,
208
- content: null,
209
- status: response.status,
210
- statusText: response.statusText,
211
- headers,
212
- outputFile: item.outputFile,
213
- error: null,
214
- pageConsole,
215
- pageErrors
216
- };
90
+ return this.#pageRenderer.render(page, item);
217
91
  }
218
92
  /**
219
93
  * Loads cache from disk.
@@ -1 +1 @@
1
- {"version":3,"file":"ServerRendererBrowser.js","sourceRoot":"","sources":["../src/ServerRendererBrowser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServerRendererBrowser.js","sourceRoot":"","sources":["../src/ServerRendererBrowser.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,kCAAkC,CAAC;AAIvD,OAAO,kBAAkB,MAAM,yBAAyB,CAAC;AAEzD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;IACzC,cAAc,CAA+B;IAC7C,QAAQ,CAAU;IAClB,cAAc,GAAY,KAAK,CAAC;IAChC,aAAa,CAAqB;IAElC;;;;OAIG;IACH,YAAY,aAA2C;QACtD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,MAAM,QAAQ,GACb,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,sBAAsB,KAAK,CAAC,CAAC;YAChF,CAAC,CAAC;gBACA,GAAG,aAAa,CAAC,OAAO;gBACxB,KAAK,EAAE;oBACN,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK;oBAC9B,sBAAsB,EAAE,aAAa,CAAC,MAAM,CAAC,OAAO;iBACpD;aACD;YACF,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,MAAM,CAAC,KAA4B;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE9B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,OAAgC,CAAC;QAErC,IAAI,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC9D,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;gBACrB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBACzE,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;oBACzB,QAAQ,CAAC,IAAI,CACZ,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;wBAC9C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACtB,CAAC,CAAC,CACF,CAAC;gBACH,CAAC;gBACD,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC7B,CAAC;QACF,CAAC;aAAM,CAAC;YACP,MAAM,QAAQ,GAAG,EAAE,CAAC;YACpB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACzB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAC/C,CAAC;YACD,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE/B,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK;QACjB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAK,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,OAAgB,EAAE,IAAyB;QAC5D,MAAM,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC;QAC3D,MAAM,sBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC,sBAAsB,CAAC;QAC7E,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,MAAM,OAAO,GACZ,aAAa,CAAC,MAAM,CAAC,gBAAgB,IAAI,aAAa,CAAC,KAAK,CAAC,OAAO;YACnE,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE;YAC/B,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAE/B,IAAI,aAAa,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YAC3E,aAAa;YACb,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;YACtC,aAAa;YACb,OAAO,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;QACzD,CAAC;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,OAAgB;QAChC,IACC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO;YACjC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS;YACpC,IAAI,CAAC,cAAc,EAClB,CAAC;YACF,OAAO;QACR,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,MAAM,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACjG,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,OAAgB;QAChC,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YAC/E,OAAO;QACR,CAAC;QAED,MAAM,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACjG,CAAC;CACD"}
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * Server renderer worker.
3
3
  */
4
- export default class ServerRendererWorker {
4
+ export default class ServerRendererBrowserWorker {
5
5
  /**
6
6
  * Connects to the worker.
7
7
  */
8
8
  static connect(): Promise<void>;
9
9
  }
10
- //# sourceMappingURL=ServerRendererWorker.d.ts.map
10
+ //# sourceMappingURL=ServerRendererBrowserWorker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerRendererBrowserWorker.d.ts","sourceRoot":"","sources":["../src/ServerRendererBrowserWorker.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA2B;IAC/C;;OAEG;WACiB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAe5C"}
@@ -4,7 +4,7 @@ import Inspector from 'node:inspector';
4
4
  /**
5
5
  * Server renderer worker.
6
6
  */
7
- export default class ServerRendererWorker {
7
+ export default class ServerRendererBrowserWorker {
8
8
  /**
9
9
  * Connects to the worker.
10
10
  */
@@ -21,5 +21,5 @@ export default class ServerRendererWorker {
21
21
  });
22
22
  }
23
23
  }
24
- ServerRendererWorker.connect();
25
- //# sourceMappingURL=ServerRendererWorker.js.map
24
+ ServerRendererBrowserWorker.connect();
25
+ //# sourceMappingURL=ServerRendererBrowserWorker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerRendererBrowserWorker.js","sourceRoot":"","sources":["../src/ServerRendererBrowserWorker.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,SAAS,MAAM,gBAAgB,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA2B;IAC/C;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,OAAO;QAC1B,MAAM,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC;QAErC,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,SAAS,CAAC,eAAe,EAAE,CAAC;QAC7B,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAEzD,UAAU,EAAE,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAC7C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5C,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AAED,2BAA2B,CAAC,OAAO,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import IServerRendererItem from './types/IServerRendererItem.js';
2
+ import IServerRendererResult from './types/IServerRendererResult.js';
3
+ import { IBrowserPage } from 'happy-dom';
4
+ import IServerRendererConfiguration from './types/IServerRendererConfiguration.js';
5
+ /**
6
+ * Server renderer page.
7
+ */
8
+ export default class ServerRendererPage {
9
+ #private;
10
+ /**
11
+ * Constructor.
12
+ *
13
+ * @param configuration Configuration.
14
+ */
15
+ constructor(configuration: IServerRendererConfiguration);
16
+ /**
17
+ * Renders a page.
18
+ *
19
+ * @param page Browser page.
20
+ * @param item Item.
21
+ */
22
+ render(page: IBrowserPage, item: IServerRendererItem): Promise<IServerRendererResult>;
23
+ }
24
+ //# sourceMappingURL=ServerRendererPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerRendererPage.d.ts","sourceRoot":"","sources":["../src/ServerRendererPage.ts"],"names":[],"mappings":"AAGA,OAAO,mBAAmB,MAAM,gCAAgC,CAAC;AACjE,OAAO,qBAAqB,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAc,YAAY,EAAY,MAAM,WAAW,CAAC;AAE/D,OAAO,4BAA4B,MAAM,yCAAyC,CAAC;AAMnF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;;IAKtC;;;;OAIG;gBACS,aAAa,EAAE,4BAA4B;IAIvD;;;;;OAKG;IACU,MAAM,CAClB,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,mBAAmB,GACvB,OAAO,CAAC,qBAAqB,CAAC;CA+OjC"}