mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-19 22:09:37 +00:00
fix: replace @bgotink/playwright-coverage with monocart-coverage-reports
Removes 242-line patch that was needed to fix Vite sourcemap resolution. monocart-coverage-reports handles V8 coverage and sourcemap resolution natively without patches.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import type { APIRequestContext, Locator, Page } from '@playwright/test'
|
||||
import { test as base } from '@playwright/test'
|
||||
import { config as dotenvConfig } from 'dotenv'
|
||||
import { promises as fs } from 'fs'
|
||||
import MCR from 'monocart-coverage-reports'
|
||||
|
||||
import { NodeBadgeMode } from '../../src/types/nodeSource'
|
||||
import { ComfyActionbar } from '@e2e/helpers/actionbar'
|
||||
@@ -402,44 +402,25 @@ export class ComfyPage {
|
||||
export const testComfySnapToGridGridSize = 50
|
||||
|
||||
const COLLECT_COVERAGE = process.env.COLLECT_COVERAGE === 'true'
|
||||
const COVERAGE_ATTACHMENT = '@bgotink/playwright-coverage'
|
||||
|
||||
export const comfyPageFixture = base.extend<{
|
||||
comfyPage: ComfyPage
|
||||
comfyMouse: ComfyMouse
|
||||
collectCoverage: boolean
|
||||
}>({
|
||||
collectCoverage: [COLLECT_COVERAGE, { option: true }],
|
||||
|
||||
page: async ({ page, collectCoverage, browserName }, use, testInfo) => {
|
||||
if (browserName !== 'chromium' || !collectCoverage) {
|
||||
page: async ({ page, browserName }, use) => {
|
||||
if (browserName !== 'chromium' || !COLLECT_COVERAGE) {
|
||||
return use(page)
|
||||
}
|
||||
|
||||
await page.coverage.startJSCoverage({ resetOnNavigation: false })
|
||||
await use(page)
|
||||
const entries = await page.coverage.stopJSCoverage()
|
||||
const coverage = await page.coverage.stopJSCoverage()
|
||||
|
||||
// Fetch source text for network-loaded scripts that V8 didn't capture
|
||||
for (const entry of entries) {
|
||||
if (typeof entry.source !== 'string' && entry.url.startsWith('http')) {
|
||||
try {
|
||||
const resp = await fetch(entry.url)
|
||||
if (resp.ok)
|
||||
(entry as Record<string, unknown>).source = await resp.text()
|
||||
} catch {
|
||||
// skip unreachable scripts
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const resultFile = testInfo.outputPath('v8-coverage.json')
|
||||
await fs.writeFile(resultFile, JSON.stringify({ result: entries }))
|
||||
testInfo.attachments.push({
|
||||
name: COVERAGE_ATTACHMENT,
|
||||
contentType: 'application/json',
|
||||
path: resultFile
|
||||
const mcr = MCR({
|
||||
outputDir: './coverage/playwright',
|
||||
reports: []
|
||||
})
|
||||
await mcr.add(coverage)
|
||||
},
|
||||
|
||||
comfyPage: async ({ page, request }, use, testInfo) => {
|
||||
|
||||
@@ -1,15 +1,29 @@
|
||||
import { config as dotenvConfig } from 'dotenv'
|
||||
import MCR from 'monocart-coverage-reports'
|
||||
|
||||
import { writePerfReport } from './helpers/perfReporter'
|
||||
import { restorePath } from './utils/backupUtils'
|
||||
|
||||
dotenvConfig()
|
||||
|
||||
export default function globalTeardown() {
|
||||
export default async function globalTeardown() {
|
||||
writePerfReport()
|
||||
|
||||
if (!process.env.CI && process.env.TEST_COMFYUI_DIR) {
|
||||
restorePath([process.env.TEST_COMFYUI_DIR, 'user'])
|
||||
restorePath([process.env.TEST_COMFYUI_DIR, 'models'])
|
||||
}
|
||||
|
||||
if (process.env.COLLECT_COVERAGE === 'true') {
|
||||
const mcr = MCR({
|
||||
outputDir: './coverage/playwright',
|
||||
reports: [['lcovonly', { file: 'coverage.lcov' }], ['text-summary']],
|
||||
sourceFilter: {
|
||||
'**/node_modules/**': false,
|
||||
'**/browser_tests/**': false,
|
||||
'**/*': true
|
||||
}
|
||||
})
|
||||
await mcr.generate()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -124,7 +124,6 @@
|
||||
"zod-validation-error": "catalog:"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@bgotink/playwright-coverage": "catalog:",
|
||||
"@eslint/js": "catalog:",
|
||||
"@intlify/eslint-plugin-vue-i18n": "catalog:",
|
||||
"@lobehub/i18n-cli": "catalog:",
|
||||
@@ -176,6 +175,7 @@
|
||||
"lint-staged": "catalog:",
|
||||
"markdown-table": "catalog:",
|
||||
"mixpanel-browser": "catalog:",
|
||||
"monocart-coverage-reports": "catalog:",
|
||||
"nx": "catalog:",
|
||||
"oxfmt": "catalog:",
|
||||
"oxlint": "catalog:",
|
||||
@@ -221,9 +221,6 @@
|
||||
"sharp",
|
||||
"unrs-resolver",
|
||||
"vue-demi"
|
||||
],
|
||||
"patchedDependencies": {
|
||||
"@bgotink/playwright-coverage@0.3.2": "patches/@bgotink__playwright-coverage@0.3.2.patch"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,242 +0,0 @@
|
||||
diff --git a/lib/data.js b/lib/data.js
|
||||
index c11873c7084264208c01abd66ee4a5c43e9e9aee..0858ce94961c27e880dbe6226b44a36e4553ed2f 100644
|
||||
--- a/lib/data.js
|
||||
+++ b/lib/data.js
|
||||
@@ -49,6 +49,28 @@ const v8_to_istanbul_1 = __importDefault(require("v8-to-istanbul"));
|
||||
const convertSourceMap = __importStar(require("convert-source-map"));
|
||||
exports.attachmentName = '@bgotink/playwright-coverage';
|
||||
const fetch = import('node-fetch');
|
||||
+async function tryReadLocalSourceMap(url) {
|
||||
+ try {
|
||||
+ const parsed = new url_1.URL(url);
|
||||
+ const urlPath = parsed.pathname.replace(/^\//, '');
|
||||
+ const candidates = [
|
||||
+ (0, path_1.join)(process.cwd(), 'dist', urlPath),
|
||||
+ (0, path_1.join)(process.cwd(), urlPath),
|
||||
+ ];
|
||||
+ for (const candidate of candidates) {
|
||||
+ try {
|
||||
+ return await fs_1.promises.readFile(candidate, 'utf8');
|
||||
+ }
|
||||
+ catch {
|
||||
+ // try next candidate
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ catch {
|
||||
+ // invalid URL
|
||||
+ }
|
||||
+ return null;
|
||||
+}
|
||||
async function getSourceMap(url, source) {
|
||||
const inlineMap = convertSourceMap.fromSource(source);
|
||||
if (inlineMap != null) {
|
||||
@@ -72,10 +94,19 @@ async function getSourceMap(url, source) {
|
||||
return dataString;
|
||||
}
|
||||
default: {
|
||||
- const response = await (await fetch).default(resolved.href, {
|
||||
- method: 'GET',
|
||||
- });
|
||||
- return await response.text();
|
||||
+ try {
|
||||
+ const response = await (await fetch).default(resolved.href, {
|
||||
+ method: 'GET',
|
||||
+ });
|
||||
+ return await response.text();
|
||||
+ }
|
||||
+ catch {
|
||||
+ const local = await tryReadLocalSourceMap(resolved.href);
|
||||
+ if (local != null) {
|
||||
+ return local;
|
||||
+ }
|
||||
+ throw new Error(`Failed to fetch sourcemap: ${resolved.href}`);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -94,6 +125,15 @@ async function getSourceMap(url, source) {
|
||||
return (await response.json());
|
||||
}
|
||||
catch {
|
||||
+ try {
|
||||
+ const local = await tryReadLocalSourceMap(`${url}.map`);
|
||||
+ if (local != null) {
|
||||
+ return JSON.parse(local);
|
||||
+ }
|
||||
+ }
|
||||
+ catch {
|
||||
+ // ignore
|
||||
+ }
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
@@ -104,10 +144,40 @@ async function convertToIstanbulCoverage(v8Coverage, sources, sourceMaps, exclud
|
||||
const istanbulCoverage = (0, istanbul_lib_coverage_1.createCoverageMap)({});
|
||||
for (const script of v8Coverage.result) {
|
||||
const source = sources.get(script.url);
|
||||
- const sourceMap = sourceMaps.get(script.url);
|
||||
+ let sourceMap = sourceMaps.get(script.url);
|
||||
if (source == null || !(sourceMap === null || sourceMap === void 0 ? void 0 : sourceMap.mappings)) {
|
||||
continue;
|
||||
}
|
||||
+ // Rewrite sourcemap sources from build-output-relative paths to
|
||||
+ // project-relative paths. Vite emits sources like "../../src/foo.ts"
|
||||
+ // relative to dist/assets/. Resolve them against the script URL to
|
||||
+ // get server-absolute paths, then strip the origin.
|
||||
+ if (sourceMap.sources != null) {
|
||||
+ const scriptUrl = script.url;
|
||||
+ try {
|
||||
+ const origin = new url_1.URL(scriptUrl).origin;
|
||||
+ sourceMap = {
|
||||
+ ...sourceMap,
|
||||
+ sources: sourceMap.sources.map(s => {
|
||||
+ if (s == null)
|
||||
+ return s;
|
||||
+ try {
|
||||
+ const resolved = new url_1.URL(s, scriptUrl).href;
|
||||
+ if (resolved.startsWith(origin + '/')) {
|
||||
+ return resolved.slice(origin.length + 1);
|
||||
+ }
|
||||
+ }
|
||||
+ catch {
|
||||
+ // not a valid URL combo
|
||||
+ }
|
||||
+ return s;
|
||||
+ }),
|
||||
+ };
|
||||
+ }
|
||||
+ catch {
|
||||
+ // scriptUrl is not a valid URL — skip rewriting
|
||||
+ }
|
||||
+ }
|
||||
function sanitizePath(path) {
|
||||
let url;
|
||||
try {
|
||||
diff --git a/src/data.ts b/src/data.ts
|
||||
index 539a70e5bde5c2ab8644b0bfa3ff52625cf4490e..29bc26bf729cbf9496594d9b9e91745a095658c5 100644
|
||||
--- a/src/data.ts
|
||||
+++ b/src/data.ts
|
||||
@@ -12,6 +12,33 @@ export const attachmentName = '@bgotink/playwright-coverage';
|
||||
|
||||
const fetch = import('node-fetch');
|
||||
|
||||
+/**
|
||||
+ * Try to read a sourcemap from the local filesystem by mapping a URL path
|
||||
+ * (e.g. /assets/index-abc.js.map) to a local file (e.g. dist/assets/index-abc.js.map).
|
||||
+ * Falls back to common build output directories.
|
||||
+ */
|
||||
+async function tryReadLocalSourceMap(url: string): Promise<string | null> {
|
||||
+ try {
|
||||
+ const parsed = new URL(url);
|
||||
+ // Try mapping URL pathname to dist/ directory
|
||||
+ const urlPath = parsed.pathname.replace(/^\//, '');
|
||||
+ const candidates = [
|
||||
+ join(process.cwd(), 'dist', urlPath),
|
||||
+ join(process.cwd(), urlPath),
|
||||
+ ];
|
||||
+ for (const candidate of candidates) {
|
||||
+ try {
|
||||
+ return await fs.readFile(candidate, 'utf8');
|
||||
+ } catch {
|
||||
+ // try next candidate
|
||||
+ }
|
||||
+ }
|
||||
+ } catch {
|
||||
+ // invalid URL
|
||||
+ }
|
||||
+ return null;
|
||||
+}
|
||||
+
|
||||
export async function getSourceMap(
|
||||
url: string,
|
||||
source: string,
|
||||
@@ -44,13 +71,23 @@ export async function getSourceMap(
|
||||
return dataString;
|
||||
}
|
||||
default: {
|
||||
- const response = await (
|
||||
- await fetch
|
||||
- ).default(resolved.href, {
|
||||
- method: 'GET',
|
||||
- });
|
||||
+ // Try HTTP fetch first, fall back to reading from local filesystem
|
||||
+ try {
|
||||
+ const response = await (
|
||||
+ await fetch
|
||||
+ ).default(resolved.href, {
|
||||
+ method: 'GET',
|
||||
+ });
|
||||
|
||||
- return await response.text();
|
||||
+ return await response.text();
|
||||
+ } catch {
|
||||
+ // HTTP fetch failed — try reading from local dist/ directory
|
||||
+ const local = await tryReadLocalSourceMap(resolved.href);
|
||||
+ if (local != null) {
|
||||
+ return local;
|
||||
+ }
|
||||
+ throw new Error(`Failed to fetch sourcemap: ${resolved.href}`);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -73,6 +110,15 @@ export async function getSourceMap(
|
||||
|
||||
return (await response.json()) as EncodedSourceMap;
|
||||
} catch {
|
||||
+ // HTTP fetch failed — try reading from local dist/ directory
|
||||
+ try {
|
||||
+ const local = await tryReadLocalSourceMap(`${url}.map`);
|
||||
+ if (local != null) {
|
||||
+ return JSON.parse(local) as EncodedSourceMap;
|
||||
+ }
|
||||
+ } catch {
|
||||
+ // ignore
|
||||
+ }
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
@@ -102,12 +148,41 @@ export async function convertToIstanbulCoverage(
|
||||
|
||||
for (const script of v8Coverage.result) {
|
||||
const source = sources.get(script.url);
|
||||
- const sourceMap = sourceMaps.get(script.url);
|
||||
+ let sourceMap = sourceMaps.get(script.url);
|
||||
|
||||
if (source == null || !sourceMap?.mappings) {
|
||||
continue;
|
||||
}
|
||||
|
||||
+ // Rewrite sourcemap sources from build-output-relative paths to
|
||||
+ // project-relative paths. Vite emits sources like "../../src/foo.ts"
|
||||
+ // relative to dist/assets/. Resolve them against the script URL to
|
||||
+ // get server-absolute paths, then strip the origin to get
|
||||
+ // project-relative paths (e.g. "src/foo.ts").
|
||||
+ if (sourceMap.sources != null) {
|
||||
+ const scriptUrl = script.url;
|
||||
+ try {
|
||||
+ const origin = new URL(scriptUrl).origin;
|
||||
+ sourceMap = {
|
||||
+ ...sourceMap,
|
||||
+ sources: sourceMap.sources.map(s => {
|
||||
+ if (s == null) return s;
|
||||
+ try {
|
||||
+ const resolved = new URL(s, scriptUrl).href;
|
||||
+ if (resolved.startsWith(origin + '/')) {
|
||||
+ return resolved.slice(origin.length + 1);
|
||||
+ }
|
||||
+ } catch {
|
||||
+ // not a valid URL combo
|
||||
+ }
|
||||
+ return s;
|
||||
+ }),
|
||||
+ };
|
||||
+ } catch {
|
||||
+ // scriptUrl is not a valid URL — skip rewriting
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
function sanitizePath(path: string) {
|
||||
let url;
|
||||
|
||||
@@ -1,24 +1,14 @@
|
||||
import path from 'path'
|
||||
import { fileURLToPath } from 'url'
|
||||
|
||||
import { defineCoverageReporterConfig } from '@bgotink/playwright-coverage'
|
||||
import { defineConfig, devices } from '@playwright/test'
|
||||
import type { PlaywrightTestConfig } from '@playwright/test'
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url))
|
||||
const COLLECT_COVERAGE = process.env.COLLECT_COVERAGE === 'true'
|
||||
|
||||
const maybeLocalOptions: PlaywrightTestConfig = process.env.PLAYWRIGHT_LOCAL
|
||||
? {
|
||||
// VERY HELPFUL: Skip screenshot tests locally
|
||||
// grep: process.env.CI ? undefined : /^(?!.*screenshot).*$/,
|
||||
timeout: 30_000, // Longer timeout for breakpoints
|
||||
retries: 0, // No retries while debugging. Increase if writing new tests. that may be flaky.
|
||||
workers: 1, // Single worker for easier debugging. Increase to match CPU cores if you want to run a lot of tests in parallel.
|
||||
|
||||
timeout: 30_000,
|
||||
retries: 0,
|
||||
workers: 1,
|
||||
use: {
|
||||
trace: 'on', // Always capture traces (CI uses 'on-first-retry')
|
||||
video: 'on' // Always record video (CI uses 'retain-on-failure')
|
||||
trace: 'on',
|
||||
video: 'on'
|
||||
}
|
||||
}
|
||||
: {
|
||||
@@ -32,24 +22,7 @@ export default defineConfig({
|
||||
testDir: './browser_tests',
|
||||
fullyParallel: true,
|
||||
forbidOnly: !!process.env.CI,
|
||||
reporter: COLLECT_COVERAGE
|
||||
? [
|
||||
['html'],
|
||||
[
|
||||
'@bgotink/playwright-coverage',
|
||||
defineCoverageReporterConfig({
|
||||
sourceRoot: __dirname,
|
||||
exclude: ['**/node_modules/**', '**/browser_tests/**'],
|
||||
resultDir: path.join(__dirname, 'coverage/playwright'),
|
||||
reports: [
|
||||
['html'],
|
||||
['lcovonly', { file: 'coverage.lcov' }],
|
||||
['text-summary', { file: null }]
|
||||
]
|
||||
})
|
||||
]
|
||||
]
|
||||
: 'html',
|
||||
reporter: 'html',
|
||||
...maybeLocalOptions,
|
||||
|
||||
globalSetup: './browser_tests/globalSetup.ts',
|
||||
@@ -60,7 +33,7 @@ export default defineConfig({
|
||||
name: 'chromium',
|
||||
use: { ...devices['Desktop Chrome'] },
|
||||
timeout: 15000,
|
||||
grepInvert: /@mobile|@perf|@audit|@cloud/ // Run all tests except those tagged with @mobile, @perf, @audit, or @cloud
|
||||
grepInvert: /@mobile|@perf|@audit|@cloud/
|
||||
},
|
||||
|
||||
{
|
||||
@@ -89,60 +62,28 @@ export default defineConfig({
|
||||
name: 'chromium-2x',
|
||||
use: { ...devices['Desktop Chrome'], deviceScaleFactor: 2 },
|
||||
timeout: 15000,
|
||||
grep: /@2x/ // Run all tests tagged with @2x
|
||||
grep: /@2x/
|
||||
},
|
||||
|
||||
{
|
||||
name: 'chromium-0.5x',
|
||||
use: { ...devices['Desktop Chrome'], deviceScaleFactor: 0.5 },
|
||||
timeout: 15000,
|
||||
grep: /@0.5x/ // Run all tests tagged with @0.5x
|
||||
grep: /@0.5x/
|
||||
},
|
||||
|
||||
// {
|
||||
// name: 'firefox',
|
||||
// use: { ...devices['Desktop Firefox'] },
|
||||
// },
|
||||
|
||||
// {
|
||||
// name: 'webkit',
|
||||
// use: { ...devices['Desktop Safari'] },
|
||||
// },
|
||||
|
||||
{
|
||||
name: 'cloud',
|
||||
use: { ...devices['Desktop Chrome'] },
|
||||
timeout: 15000,
|
||||
grep: /@cloud/, // Run only tests tagged with @cloud
|
||||
grepInvert: /@oss/ // Exclude tests tagged with @oss
|
||||
grep: /@cloud/,
|
||||
grepInvert: /@oss/
|
||||
},
|
||||
|
||||
/* Test against mobile viewports. */
|
||||
{
|
||||
name: 'mobile-chrome',
|
||||
use: { ...devices['Pixel 5'], hasTouch: true },
|
||||
grep: /@mobile/ // Run only tests tagged with @mobile
|
||||
grep: /@mobile/
|
||||
}
|
||||
// {
|
||||
// name: 'Mobile Safari',
|
||||
// use: { ...devices['iPhone 12'] },
|
||||
// },
|
||||
|
||||
/* Test against branded browsers. */
|
||||
// {
|
||||
// name: 'Microsoft Edge',
|
||||
// use: { ...devices['Desktop Edge'], channel: 'msedge' },
|
||||
// },
|
||||
// {
|
||||
// name: 'Google Chrome',
|
||||
// use: { ...devices['Desktop Chrome'], channel: 'chrome' },
|
||||
// },
|
||||
]
|
||||
|
||||
/* Run your local dev server before starting the tests */
|
||||
// webServer: {
|
||||
// command: 'pnpm dev',
|
||||
// url: 'http://127.0.0.1:5173',
|
||||
// reuseExistingServer: !process.env.CI,
|
||||
// },
|
||||
})
|
||||
|
||||
154
pnpm-lock.yaml
generated
154
pnpm-lock.yaml
generated
@@ -15,9 +15,6 @@ catalogs:
|
||||
'@astrojs/vue':
|
||||
specifier: ^5.0.0
|
||||
version: 5.1.4
|
||||
'@bgotink/playwright-coverage':
|
||||
specifier: ^0.3.2
|
||||
version: 0.3.2
|
||||
'@comfyorg/comfyui-electron-types':
|
||||
specifier: 0.6.2
|
||||
version: 0.6.2
|
||||
@@ -279,6 +276,9 @@ catalogs:
|
||||
mixpanel-browser:
|
||||
specifier: ^2.71.0
|
||||
version: 2.71.0
|
||||
monocart-coverage-reports:
|
||||
specifier: ^2.12.9
|
||||
version: 2.12.9
|
||||
nx:
|
||||
specifier: 22.6.1
|
||||
version: 22.6.1
|
||||
@@ -406,11 +406,6 @@ catalogs:
|
||||
overrides:
|
||||
vite: ^8.0.0
|
||||
|
||||
patchedDependencies:
|
||||
'@bgotink/playwright-coverage@0.3.2':
|
||||
hash: 64bb8e9343c74159293ceaf6f3bef88888c6e98149c458b3db33392ab4238565
|
||||
path: patches/@bgotink__playwright-coverage@0.3.2.patch
|
||||
|
||||
importers:
|
||||
|
||||
.:
|
||||
@@ -617,9 +612,6 @@ importers:
|
||||
specifier: 'catalog:'
|
||||
version: 3.3.0(zod@3.25.76)
|
||||
devDependencies:
|
||||
'@bgotink/playwright-coverage':
|
||||
specifier: 'catalog:'
|
||||
version: 0.3.2(patch_hash=64bb8e9343c74159293ceaf6f3bef88888c6e98149c458b3db33392ab4238565)(@playwright/test@1.58.1)
|
||||
'@eslint/js':
|
||||
specifier: 'catalog:'
|
||||
version: 9.39.1
|
||||
@@ -773,6 +765,9 @@ importers:
|
||||
mixpanel-browser:
|
||||
specifier: 'catalog:'
|
||||
version: 2.71.0
|
||||
monocart-coverage-reports:
|
||||
specifier: 'catalog:'
|
||||
version: 2.12.9
|
||||
nx:
|
||||
specifier: 'catalog:'
|
||||
version: 22.6.1
|
||||
@@ -1675,18 +1670,10 @@ packages:
|
||||
resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@bcoe/v8-coverage@0.2.3':
|
||||
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
|
||||
|
||||
'@bcoe/v8-coverage@1.0.2':
|
||||
resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==}
|
||||
engines: {node: '>=18'}
|
||||
|
||||
'@bgotink/playwright-coverage@0.3.2':
|
||||
resolution: {integrity: sha512-F6ow6TD2LpELb+qD4MrmUj4TyP48JByQ/PNu6gehRLRtnU1mwXCnqfpT8AQ0bGiqS73EEg6Ifa5ts5DPSYYU8w==}
|
||||
peerDependencies:
|
||||
'@playwright/test': ^1.14.1
|
||||
|
||||
'@cacheable/memory@2.0.6':
|
||||
resolution: {integrity: sha512-7e8SScMocHxcAb8YhtkbMhGG+EKLRIficb1F5sjvhSYsWTZGxvg4KIDp8kgxnV2PUJ3ddPe6J9QESjKvBWRDkg==}
|
||||
|
||||
@@ -4359,9 +4346,6 @@ packages:
|
||||
'@types/hast@3.0.4':
|
||||
resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==}
|
||||
|
||||
'@types/istanbul-lib-coverage@2.0.6':
|
||||
resolution: {integrity: sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==}
|
||||
|
||||
'@types/jsdom@21.1.7':
|
||||
resolution: {integrity: sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==}
|
||||
|
||||
@@ -5019,6 +5003,14 @@ packages:
|
||||
peerDependencies:
|
||||
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
|
||||
|
||||
acorn-loose@8.5.2:
|
||||
resolution: {integrity: sha512-PPvV6g8UGMGgjrMu+n/f9E/tCSkNQ2Y97eFvuVdJfG11+xdIeDcLyNdC8SHcrHbRqkfwLASdplyR6B6sKM1U4A==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
|
||||
acorn-walk@8.3.5:
|
||||
resolution: {integrity: sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
|
||||
acorn@7.4.1:
|
||||
resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
@@ -5536,9 +5528,6 @@ packages:
|
||||
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
comlink@4.4.2:
|
||||
resolution: {integrity: sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==}
|
||||
|
||||
comma-separated-tokens@2.0.3:
|
||||
resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==}
|
||||
|
||||
@@ -5606,6 +5595,9 @@ packages:
|
||||
resolution: {integrity: sha512-5IKcdX0nnYavi6G7TtOhwkYzyjfJlatbjMjuLSfE2kYT5pMDOilZ4OvMhi637CcDICTmz3wARPoyhqyX1Y+XvA==}
|
||||
engines: {node: ^14.18.0 || >=16.10.0}
|
||||
|
||||
console-grid@2.2.3:
|
||||
resolution: {integrity: sha512-+mecFacaFxGl+1G31IsCx41taUXuW2FxX+4xIE0TIPhgML+Jb9JFcBWGhhWerd1/vhScubdmHqTwOhB0KCUUAg==}
|
||||
|
||||
constantinople@4.0.1:
|
||||
resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==}
|
||||
|
||||
@@ -5713,10 +5705,6 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
data-uri-to-buffer@4.0.1:
|
||||
resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==}
|
||||
engines: {node: '>= 12'}
|
||||
|
||||
data-urls@6.0.0:
|
||||
resolution: {integrity: sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==}
|
||||
engines: {node: '>=20'}
|
||||
@@ -5939,6 +5927,9 @@ packages:
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
|
||||
eight-colors@1.3.3:
|
||||
resolution: {integrity: sha512-4B54S2Qi4pJjeHmCbDIsveQZWQ/TSSQng4ixYJ9/SYHHpeS5nYK0pzcHvWzWUfRsvJQjwoIENhAwqg59thQceg==}
|
||||
|
||||
ejs@3.1.10:
|
||||
resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -6368,10 +6359,6 @@ packages:
|
||||
picomatch:
|
||||
optional: true
|
||||
|
||||
fetch-blob@3.2.0:
|
||||
resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
|
||||
engines: {node: ^12.20 || >= 14.13}
|
||||
|
||||
fflate@0.4.8:
|
||||
resolution: {integrity: sha512-FJqqoDBR00Mdj9ppamLa/Y7vxm+PRmNWA67N846RvsoYVMKB4q3y/de5PA7gUmRMYK/8CMz2GDZQmCRN1wBcWA==}
|
||||
|
||||
@@ -6469,10 +6456,6 @@ packages:
|
||||
resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==}
|
||||
engines: {node: '>= 12.20'}
|
||||
|
||||
formdata-polyfill@4.0.10:
|
||||
resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
|
||||
engines: {node: '>=12.20.0'}
|
||||
|
||||
front-matter@4.0.2:
|
||||
resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==}
|
||||
|
||||
@@ -7493,6 +7476,9 @@ packages:
|
||||
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
|
||||
hasBin: true
|
||||
|
||||
lz-utils@2.1.0:
|
||||
resolution: {integrity: sha512-CMkfimAypidTtWjNDxY8a1bc1mJdyEh04V2FfEQ5Zh8Nx4v7k850EYa+dOWGn9hKG5xOyHP5MkuduAZCTHRvJw==}
|
||||
|
||||
magic-string-ast@1.0.3:
|
||||
resolution: {integrity: sha512-CvkkH1i81zl7mmb94DsRiFeG9V2fR2JeuK8yDgS8oiZSFa++wWLEgZ5ufEOyLHbvSbD1gTRKv9NdX69Rnvr9JA==}
|
||||
engines: {node: '>=20.19.0'}
|
||||
@@ -7769,6 +7755,13 @@ packages:
|
||||
resolution: {integrity: sha512-4W79zekKGyYU4JXVmB78DOscMFaJth2gGhgfTl2alWE4rNe3nf4N2pqenQ0rEtIewrnD79M687Ouba3YGTLOvg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
monocart-coverage-reports@2.12.9:
|
||||
resolution: {integrity: sha512-vtFqbC3Egl4nVa1FSIrQvMPO6HZtb9lo+3IW7/crdvrLNW2IH8lUsxaK0TsKNmMO2mhFWwqQywLV2CZelqPgwA==}
|
||||
hasBin: true
|
||||
|
||||
monocart-locator@1.0.2:
|
||||
resolution: {integrity: sha512-v8W5hJLcWMIxLCcSi/MHh+VeefI+ycFmGz23Froer9QzWjrbg4J3gFJBuI/T1VLNoYxF47bVPPxq8ZlNX4gVCw==}
|
||||
|
||||
mrmime@2.0.1:
|
||||
resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==}
|
||||
engines: {node: '>=10'}
|
||||
@@ -7828,10 +7821,6 @@ packages:
|
||||
encoding:
|
||||
optional: true
|
||||
|
||||
node-fetch@3.3.2:
|
||||
resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==}
|
||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||
|
||||
node-html-parser@5.4.2:
|
||||
resolution: {integrity: sha512-RaBPP3+51hPne/OolXxcz89iYvQvKOydaqoePpOgXcrOKZhjVIzmpKZz+Hd/RBO2/zN2q6CNJhQzucVz+u3Jyw==}
|
||||
|
||||
@@ -9458,10 +9447,6 @@ packages:
|
||||
resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==}
|
||||
hasBin: true
|
||||
|
||||
v8-to-istanbul@9.3.0:
|
||||
resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==}
|
||||
engines: {node: '>=10.12.0'}
|
||||
|
||||
valibot@1.2.0:
|
||||
resolution: {integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==}
|
||||
peerDependencies:
|
||||
@@ -9732,10 +9717,6 @@ packages:
|
||||
web-namespaces@2.0.1:
|
||||
resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==}
|
||||
|
||||
web-streams-polyfill@3.3.3:
|
||||
resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==}
|
||||
engines: {node: '>= 8'}
|
||||
|
||||
web-streams-polyfill@4.0.0-beta.3:
|
||||
resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==}
|
||||
engines: {node: '>= 14'}
|
||||
@@ -10931,23 +10912,8 @@ snapshots:
|
||||
'@babel/helper-string-parser': 7.27.1
|
||||
'@babel/helper-validator-identifier': 7.28.5
|
||||
|
||||
'@bcoe/v8-coverage@0.2.3': {}
|
||||
|
||||
'@bcoe/v8-coverage@1.0.2': {}
|
||||
|
||||
'@bgotink/playwright-coverage@0.3.2(patch_hash=64bb8e9343c74159293ceaf6f3bef88888c6e98149c458b3db33392ab4238565)(@playwright/test@1.58.1)':
|
||||
dependencies:
|
||||
'@bcoe/v8-coverage': 0.2.3
|
||||
'@playwright/test': 1.58.1
|
||||
comlink: 4.4.2
|
||||
convert-source-map: 2.0.0
|
||||
istanbul-lib-coverage: 3.2.2
|
||||
istanbul-lib-report: 3.0.1
|
||||
istanbul-reports: 3.2.0
|
||||
micromatch: 4.0.8
|
||||
node-fetch: 3.3.2
|
||||
v8-to-istanbul: 9.3.0
|
||||
|
||||
'@cacheable/memory@2.0.6':
|
||||
dependencies:
|
||||
'@cacheable/utils': 2.3.2
|
||||
@@ -13463,8 +13429,6 @@ snapshots:
|
||||
dependencies:
|
||||
'@types/unist': 3.0.3
|
||||
|
||||
'@types/istanbul-lib-coverage@2.0.6': {}
|
||||
|
||||
'@types/jsdom@21.1.7':
|
||||
dependencies:
|
||||
'@types/node': 25.0.3
|
||||
@@ -14238,6 +14202,14 @@ snapshots:
|
||||
dependencies:
|
||||
acorn: 8.16.0
|
||||
|
||||
acorn-loose@8.5.2:
|
||||
dependencies:
|
||||
acorn: 8.16.0
|
||||
|
||||
acorn-walk@8.3.5:
|
||||
dependencies:
|
||||
acorn: 8.16.0
|
||||
|
||||
acorn@7.4.1: {}
|
||||
|
||||
acorn@8.16.0: {}
|
||||
@@ -14907,8 +14879,6 @@ snapshots:
|
||||
dependencies:
|
||||
delayed-stream: 1.0.0
|
||||
|
||||
comlink@4.4.2: {}
|
||||
|
||||
comma-separated-tokens@2.0.3: {}
|
||||
|
||||
commander@10.0.1: {}
|
||||
@@ -14965,6 +14935,8 @@ snapshots:
|
||||
|
||||
consola@3.4.2: {}
|
||||
|
||||
console-grid@2.2.3: {}
|
||||
|
||||
constantinople@4.0.1:
|
||||
dependencies:
|
||||
'@babel/parser': 7.29.0
|
||||
@@ -15076,8 +15048,6 @@ snapshots:
|
||||
optionalDependencies:
|
||||
typescript: 5.9.3
|
||||
|
||||
data-uri-to-buffer@4.0.1: {}
|
||||
|
||||
data-urls@6.0.0:
|
||||
dependencies:
|
||||
whatwg-mimetype: 4.0.0
|
||||
@@ -15309,6 +15279,8 @@ snapshots:
|
||||
minimatch: 9.0.1
|
||||
semver: 7.7.4
|
||||
|
||||
eight-colors@1.3.3: {}
|
||||
|
||||
ejs@3.1.10:
|
||||
dependencies:
|
||||
jake: 10.9.2
|
||||
@@ -15892,11 +15864,6 @@ snapshots:
|
||||
optionalDependencies:
|
||||
picomatch: 4.0.3
|
||||
|
||||
fetch-blob@3.2.0:
|
||||
dependencies:
|
||||
node-domexception: 1.0.0
|
||||
web-streams-polyfill: 3.3.3
|
||||
|
||||
fflate@0.4.8: {}
|
||||
|
||||
fflate@0.8.2: {}
|
||||
@@ -16020,10 +15987,6 @@ snapshots:
|
||||
node-domexception: 1.0.0
|
||||
web-streams-polyfill: 4.0.0-beta.3
|
||||
|
||||
formdata-polyfill@4.0.10:
|
||||
dependencies:
|
||||
fetch-blob: 3.2.0
|
||||
|
||||
front-matter@4.0.2:
|
||||
dependencies:
|
||||
js-yaml: 3.14.2
|
||||
@@ -17093,6 +17056,8 @@ snapshots:
|
||||
|
||||
lz-string@1.5.0: {}
|
||||
|
||||
lz-utils@2.1.0: {}
|
||||
|
||||
magic-string-ast@1.0.3:
|
||||
dependencies:
|
||||
magic-string: 0.30.21
|
||||
@@ -17565,6 +17530,23 @@ snapshots:
|
||||
|
||||
modern-tar@0.7.3: {}
|
||||
|
||||
monocart-coverage-reports@2.12.9:
|
||||
dependencies:
|
||||
acorn: 8.16.0
|
||||
acorn-loose: 8.5.2
|
||||
acorn-walk: 8.3.5
|
||||
commander: 14.0.3
|
||||
console-grid: 2.2.3
|
||||
eight-colors: 1.3.3
|
||||
foreground-child: 3.3.1
|
||||
istanbul-lib-coverage: 3.2.2
|
||||
istanbul-lib-report: 3.0.1
|
||||
istanbul-reports: 3.2.0
|
||||
lz-utils: 2.1.0
|
||||
monocart-locator: 1.0.2
|
||||
|
||||
monocart-locator@1.0.2: {}
|
||||
|
||||
mrmime@2.0.1: {}
|
||||
|
||||
ms@2.1.3: {}
|
||||
@@ -17603,12 +17585,6 @@ snapshots:
|
||||
dependencies:
|
||||
whatwg-url: 5.0.0
|
||||
|
||||
node-fetch@3.3.2:
|
||||
dependencies:
|
||||
data-uri-to-buffer: 4.0.1
|
||||
fetch-blob: 3.2.0
|
||||
formdata-polyfill: 4.0.10
|
||||
|
||||
node-html-parser@5.4.2:
|
||||
dependencies:
|
||||
css-select: 4.3.0
|
||||
@@ -19692,12 +19668,6 @@ snapshots:
|
||||
|
||||
uuid@11.1.0: {}
|
||||
|
||||
v8-to-istanbul@9.3.0:
|
||||
dependencies:
|
||||
'@jridgewell/trace-mapping': 0.3.31
|
||||
'@types/istanbul-lib-coverage': 2.0.6
|
||||
convert-source-map: 2.0.0
|
||||
|
||||
valibot@1.2.0(typescript@5.9.3):
|
||||
optionalDependencies:
|
||||
typescript: 5.9.3
|
||||
@@ -20091,8 +20061,6 @@ snapshots:
|
||||
|
||||
web-namespaces@2.0.1: {}
|
||||
|
||||
web-streams-polyfill@3.3.3: {}
|
||||
|
||||
web-streams-polyfill@4.0.0-beta.3: {}
|
||||
|
||||
web-vitals@4.2.4: {}
|
||||
|
||||
@@ -6,7 +6,6 @@ catalog:
|
||||
'@alloc/quick-lru': ^5.2.0
|
||||
'@astrojs/sitemap': ^3.7.1
|
||||
'@astrojs/vue': ^5.0.0
|
||||
'@bgotink/playwright-coverage': ^0.3.2
|
||||
'@comfyorg/comfyui-electron-types': 0.6.2
|
||||
'@eslint/js': ^9.39.1
|
||||
'@formkit/auto-animate': ^0.9.0
|
||||
@@ -94,6 +93,7 @@ catalog:
|
||||
lint-staged: ^16.2.7
|
||||
markdown-table: ^3.0.4
|
||||
mixpanel-browser: ^2.71.0
|
||||
monocart-coverage-reports: ^2.12.9
|
||||
nx: 22.6.1
|
||||
oxfmt: ^0.40.0
|
||||
oxlint: ^1.55.0
|
||||
|
||||
Reference in New Issue
Block a user