@automattic/jetpack-critical-css-gen 1.0.5 → 1.0.7

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/CHANGELOG.md CHANGED
@@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.0.7] - 2025-03-05
9
+ ### Changed
10
+ - Update dependencies. [#41847]
11
+
12
+ ### Fixed
13
+ - Prevent invalid URLs from breaking the whole process. [#41946]
14
+
15
+ ## [1.0.6] - 2025-02-12
16
+ ### Changed
17
+ - Updated package dependencies. [#41286]
18
+
8
19
  ## [1.0.5] - 2025-01-23
9
20
  ### Changed
10
21
  - Internal updates.
@@ -48,6 +59,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
48
59
  ### Added
49
60
  - Initial version. [#38429]
50
61
 
62
+ [1.0.7]: https://github.com/Automattic/jetpack-critical-css-gen/compare/v1.0.6...v1.0.7
63
+ [1.0.6]: https://github.com/Automattic/jetpack-critical-css-gen/compare/v1.0.5...v1.0.6
51
64
  [1.0.5]: https://github.com/Automattic/jetpack-critical-css-gen/compare/v1.0.4...v1.0.5
52
65
  [1.0.4]: https://github.com/Automattic/jetpack-critical-css-gen/compare/v1.0.3...v1.0.4
53
66
  [1.0.3]: https://github.com/Automattic/jetpack-critical-css-gen/compare/v1.0.2...v1.0.3
@@ -22,8 +22,9 @@ export declare class BrowserInterfaceIframe extends BrowserInterface {
22
22
  cleanup(): Promise<void>;
23
23
  fetch(url: string, options: RequestInit, _role: 'css' | 'html'): Promise<Response>;
24
24
  runInPage<ReturnType>(pageUrl: string, viewport: Viewport | null, method: BrowserRunnable<ReturnType>, ...args: unknown[]): Promise<ReturnType>;
25
- addGetParameters(rawUrl: string): string;
25
+ addGetParameters(url: URL): string;
26
26
  diagnoseUrlError(url: string): Promise<UrlError | null>;
27
+ is404Page(url: string): Promise<boolean>;
27
28
  sameOrigin(url: string): boolean;
28
29
  loadPage(rawUrl: string): Promise<void>;
29
30
  resize({ width, height }: Viewport): Promise<unknown>;
@@ -1,5 +1,5 @@
1
1
  import { BrowserInterface } from './browser-interface.js';
2
- import { CrossDomainError, HttpError, LoadTimeoutError, RedirectError, UrlVerifyError, UnknownError, XFrameDenyError, } from './errors.js';
2
+ import { CrossDomainError, HttpError, LoadTimeoutError, RedirectError, UrlVerifyError, UnknownError, XFrameDenyError, InvalidURLError, } from './errors.js';
3
3
  const defaultLoadTimeout = 60 * 1000;
4
4
  export class BrowserInterfaceIframe extends BrowserInterface {
5
5
  constructor({ requestGetParameters, loadTimeout, verifyPage, allowScripts, }) {
@@ -38,12 +38,11 @@ export class BrowserInterfaceIframe extends BrowserInterface {
38
38
  // Pass the iframe window object to the evaluating method.
39
39
  return method({ innerWindow: this.iframe.contentWindow, args });
40
40
  }
41
- addGetParameters(rawUrl) {
42
- const urlObject = new URL(rawUrl);
41
+ addGetParameters(url) {
43
42
  for (const key of Object.keys(this.requestGetParameters)) {
44
- urlObject.searchParams.append(key, this.requestGetParameters[key]);
43
+ url.searchParams.append(key, this.requestGetParameters[key]);
45
44
  }
46
- return urlObject.toString();
45
+ return url.toString();
47
46
  }
48
47
  async diagnoseUrlError(url) {
49
48
  try {
@@ -67,6 +66,10 @@ export class BrowserInterfaceIframe extends BrowserInterface {
67
66
  return new UnknownError({ url, message: err.message });
68
67
  }
69
68
  }
69
+ async is404Page(url) {
70
+ const response = await this.fetch(url, { redirect: 'manual' }, 'html');
71
+ return response.status === 404;
72
+ }
70
73
  sameOrigin(url) {
71
74
  return new URL(url).origin === window.location.origin;
72
75
  }
@@ -74,7 +77,16 @@ export class BrowserInterfaceIframe extends BrowserInterface {
74
77
  if (rawUrl === this.currentUrl) {
75
78
  return;
76
79
  }
77
- const fullUrl = this.addGetParameters(rawUrl);
80
+ // Make sure URL is valid.
81
+ let url;
82
+ try {
83
+ url = new URL(rawUrl);
84
+ }
85
+ catch (err) {
86
+ this.trackUrlError(rawUrl, err);
87
+ throw new InvalidURLError({ url: rawUrl });
88
+ }
89
+ const fullUrl = this.addGetParameters(url);
78
90
  return new Promise((resolve, rawReject) => {
79
91
  // Track all URL errors.
80
92
  const reject = err => {
@@ -96,6 +108,11 @@ export class BrowserInterfaceIframe extends BrowserInterface {
96
108
  try {
97
109
  this.iframe.onload = null;
98
110
  clearTimeout(timeoutId);
111
+ // Check HTTP status code first.
112
+ const is404 = await this.is404Page(fullUrl);
113
+ if (is404) {
114
+ throw new HttpError({ url, code: 404 });
115
+ }
99
116
  // Verify the inner document is readable.
100
117
  if (!this.iframe.contentDocument || !this.iframe.contentWindow) {
101
118
  throw ((await this.diagnoseUrlError(fullUrl)) || new CrossDomainError({ url: fullUrl }));
@@ -1 +1 @@
1
- {"version":3,"file":"browser-interface-iframe.js","sourceRoot":"","sources":["../src/browser-interface-iframe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-interface-iframe.js","sourceRoot":"","sources":["../src/browser-interface-iframe.ts"],"names":[],"mappings":"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"}
package/build/errors.d.ts CHANGED
@@ -99,3 +99,11 @@ export declare class XFrameDenyError extends UrlError {
99
99
  url: any;
100
100
  });
101
101
  }
102
+ /**
103
+ * InvalidURLError - Indicates that a requested URL is invalid.
104
+ */
105
+ export declare class InvalidURLError extends UrlError {
106
+ constructor({ url }: {
107
+ url: string;
108
+ });
109
+ }
package/build/errors.js CHANGED
@@ -100,4 +100,12 @@ export class XFrameDenyError extends UrlError {
100
100
  super('XFrameDenyError', { url }, `Failed to load ${url} due to the "X-Frame-Options: DENY" header`);
101
101
  }
102
102
  }
103
+ /**
104
+ * InvalidURLError - Indicates that a requested URL is invalid.
105
+ */
106
+ export class InvalidURLError extends UrlError {
107
+ constructor({ url }) {
108
+ super('InvalidURLError', { url }, `Invalid URL: ${url}`);
109
+ }
110
+ }
103
111
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@automattic/jetpack-critical-css-gen",
4
- "version": "1.0.5",
4
+ "version": "1.0.7",
5
5
  "description": "A flexible Critical CSS Generator that supports multiple URLs and viewports, with both server-side and client-side generation capabilities.",
6
6
  "homepage": "https://github.com/Automattic/jetpack/tree/HEAD/projects/js-packages/critical-css-gen/#readme",
7
7
  "bugs": {
@@ -20,7 +20,8 @@
20
20
  "clean": "rm -rf build/",
21
21
  "clean:test": "rm -rf tests/build/",
22
22
  "test": "pnpm build && pnpm build:test && NODE_ENV=test NODE_PATH=./node_modules jest --forceExit --config=tests/config/jest.config.js",
23
- "test-coverage": "pnpm run test --coverage"
23
+ "test-coverage": "pnpm run test --coverage",
24
+ "watch": "tsc --watch"
24
25
  },
25
26
  "main": "./build/browser.js",
26
27
  "devDependencies": {
@@ -42,7 +43,7 @@
42
43
  "tslib": "2.5.0",
43
44
  "typescript": "5.0.4",
44
45
  "webpack": "5.94.0",
45
- "webpack-cli": "4.9.1",
46
+ "webpack-cli": "6.0.1",
46
47
  "webpack-dev-middleware": "5.3.4"
47
48
  },
48
49
  "exports": {