@percy/core
Advanced tools
Comparing version 1.30.7-beta.0 to 1.30.7-beta.1
import logger from '@percy/logger'; | ||
import Queue from './queue.js'; | ||
import Page from './page.js'; | ||
import { normalizeURL, hostnameMatches, createResource, createRootResource, createPercyCSSResource, createLogResource, yieldAll, snapshotLogName, waitForTimeout, withRetries, waitForSelectorInsideBrowser } from './utils.js'; | ||
import { normalizeURL, hostnameMatches, createResource, createRootResource, createPercyCSSResource, createLogResource, yieldAll, snapshotLogName, waitForTimeout, withRetries, waitForSelectorInsideBrowser, isGzipped } from './utils.js'; | ||
import { sha256hash } from '@percy/client/utils'; | ||
@@ -225,4 +225,8 @@ import Pako from 'pako'; | ||
for (let index = 0; index < resources.length; index++) { | ||
resources[index].content = Pako.gzip(resources[index].content); | ||
resources[index].sha = sha256hash(resources[index].content); | ||
const alreadyZipped = isGzipped(resources[index].content); | ||
/* istanbul ignore next: very hard to mock true */ | ||
if (!alreadyZipped) { | ||
resources[index].content = Pako.gzip(resources[index].content); | ||
resources[index].sha = sha256hash(resources[index].content); | ||
} | ||
} | ||
@@ -229,0 +233,0 @@ } |
@@ -392,2 +392,16 @@ import EventEmitter from 'events'; | ||
} | ||
// It checks if content is already gzipped or not. | ||
// We don't want to gzip already gzipped content. | ||
export function isGzipped(content) { | ||
if (!(content instanceof Uint8Array || content instanceof ArrayBuffer)) { | ||
return false; | ||
} | ||
// Ensure content is a Uint8Array | ||
const data = content instanceof ArrayBuffer ? new Uint8Array(content) : content; | ||
// Gzip magic number: 0x1f8b | ||
return data.length > 2 && data[0] === 0x1f && data[1] === 0x8b; | ||
} | ||
const RESERVED_CHARACTERS = { | ||
@@ -394,0 +408,0 @@ '%3A': ':', |
{ | ||
"name": "@percy/core", | ||
"version": "1.30.7-beta.0", | ||
"version": "1.30.7-beta.1", | ||
"license": "MIT", | ||
@@ -46,7 +46,7 @@ "repository": { | ||
"dependencies": { | ||
"@percy/client": "1.30.7-beta.0", | ||
"@percy/config": "1.30.7-beta.0", | ||
"@percy/dom": "1.30.7-beta.0", | ||
"@percy/logger": "1.30.7-beta.0", | ||
"@percy/webdriver-utils": "1.30.7-beta.0", | ||
"@percy/client": "1.30.7-beta.1", | ||
"@percy/config": "1.30.7-beta.1", | ||
"@percy/dom": "1.30.7-beta.1", | ||
"@percy/logger": "1.30.7-beta.1", | ||
"@percy/webdriver-utils": "1.30.7-beta.1", | ||
"content-disposition": "^0.5.4", | ||
@@ -64,3 +64,3 @@ "cross-spawn": "^7.0.3", | ||
}, | ||
"gitHead": "4d589cecf982efeab69ea82881844447369a2af4" | ||
"gitHead": "b9a15ba7853ff350b7d7b7c3364700e70ca66643" | ||
} |
416132
5645
+ Added@percy/client@1.30.7-beta.1(transitive)
+ Added@percy/config@1.30.7-beta.1(transitive)
+ Added@percy/dom@1.30.7-beta.1(transitive)
+ Added@percy/env@1.30.7-beta.1(transitive)
+ Added@percy/logger@1.30.7-beta.1(transitive)
+ Added@percy/sdk-utils@1.30.7-beta.1(transitive)
+ Added@percy/webdriver-utils@1.30.7-beta.1(transitive)
+ Added@types/node@22.12.0(transitive)
+ Addedfastq@1.18.0(transitive)
- Removed@percy/client@1.30.7-beta.0(transitive)
- Removed@percy/config@1.30.7-beta.0(transitive)
- Removed@percy/dom@1.30.7-beta.0(transitive)
- Removed@percy/env@1.30.7-beta.0(transitive)
- Removed@percy/logger@1.30.7-beta.0(transitive)
- Removed@percy/sdk-utils@1.30.7-beta.0(transitive)
- Removed@percy/webdriver-utils@1.30.7-beta.0(transitive)
- Removed@types/node@22.13.0(transitive)
- Removedfastq@1.19.0(transitive)
Updated@percy/client@1.30.7-beta.1
Updated@percy/config@1.30.7-beta.1
Updated@percy/dom@1.30.7-beta.1
Updated@percy/logger@1.30.7-beta.1