{
	"name": "openscreen",
	"private": true,
	"version": "1.4.11",
	"type": "module",
	"packageManager": "npm@10.9.4",
	"engines": {
		"node": "22.22.1",
		"npm": "10.9.4"
	},
	"author": {
		"name": "Sid",
		"email": "svaddem@asu.edu"
	},
	"scripts": {
		"dev": "vite",
		"build": "tsc && vite build && electron-builder --config electron-builder.json5",
		"lint": "biome check .",
		"lint:fix": "biome check --write .",
		"format": "biome format --write .",
		"i18n:check": "node scripts/i18n-check.mjs",
		"preview": "vite preview",
		"build:native:mac": "node scripts/build-macos-screencapturekit-helper.mjs",
		"build:mac": "npm run build:native:mac && tsc && vite build && electron-builder --mac --config electron-builder.json5",
		"build:native:win": "node scripts/build-windows-wgc-helper.mjs",
		"build:ocr:win": "node scripts/build-windows-ocr-service.mjs",
		"build:win": "npm run build:native:win && npm run build:ocr:win && tsc && vite build && electron-builder --win --config electron-builder.json5 --config.npmRebuild=false",
		"build:win:private-trust": "npm run build:native:win && npm run build:ocr:win && tsc && vite build && electron-builder --win --config electron-builder.private-trust.cjs --config.npmRebuild=false",
		"sign:win:private-trust": "node scripts/sign-windows-private-trust.mjs",
		"build:linux": "tsc && vite build && electron-builder --linux AppImage deb pacman --config electron-builder.json5 --config.npmRebuild=false",
		"test": "vitest --run",
		"test:watch": "vitest",
		"test:cursor-native:win": "node scripts/test-windows-native-cursor.mjs",
		"test:wgc-helper:win": "node scripts/test-windows-wgc-helper.mjs",
		"test:wgc-window:win": "node scripts/test-windows-wgc-helper.mjs --window",
		"test:wgc-audio:win": "node scripts/test-windows-wgc-helper.mjs --system-audio",
		"test:wgc-mic:win": "node scripts/test-windows-wgc-helper.mjs --microphone",
		"test:wgc-mixed-audio:win": "node scripts/test-windows-wgc-helper.mjs --system-audio --microphone",
		"test:wgc-webcam:win": "node scripts/test-windows-wgc-helper.mjs --webcam",
		"test:wgc-full:win": "node scripts/test-windows-wgc-helper.mjs --webcam --system-audio --microphone",
		"ocr:paddle": "python -m uvicorn tools.ocr.paddle_ocr_service:app --host 127.0.0.1 --port 8866",
		"capture:openscreen-preview": "node scripts/capture-openscreen-preview.mjs",
		"inspect:cursor-click-bounce": "node scripts/inspect-native-cursor-click-bounce.mjs",
		"build-vite": "tsc && vite build",
		"test:browser": "vitest --config vitest.browser.config.ts --run",
		"test:browser:install": "playwright install --with-deps chromium-headless-shell",
		"test:e2e": "playwright test",
		"test:e2e:windows-native-checklist": "playwright test tests/e2e/windows-native-checklist.spec.ts",
		"prepare": "husky"
	},
	"dependencies": {
		"@fix-webm-duration/fix": "^1.0.1",
		"@pixi/filter-drop-shadow": "^5.2.0",
		"@radix-ui/react-accordion": "^1.2.12",
		"@radix-ui/react-dialog": "^1.1.15",
		"@radix-ui/react-dropdown-menu": "^2.1.16",
		"@radix-ui/react-popover": "^1.1.15",
		"@radix-ui/react-select": "^2.2.6",
		"@radix-ui/react-slider": "^1.3.6",
		"@radix-ui/react-slot": "^1.2.4",
		"@radix-ui/react-switch": "^1.2.6",
		"@radix-ui/react-tabs": "^1.1.13",
		"@radix-ui/react-toggle": "^1.1.10",
		"@radix-ui/react-toggle-group": "^1.1.11",
		"@radix-ui/react-tooltip": "^1.2.8",
		"@types/gif.js": "^0.2.5",
		"@uiw/color-convert": "^2.10.1",
		"@uiw/react-color-block": "^2.10.1",
		"@uiw/react-color-colorful": "^2.9.2",
		"class-variance-authority": "^0.7.1",
		"clsx": "^2.1.1",
		"dnd-timeline": "^2.4.0",
		"electron-updater": "^6.8.3",
		"emoji-picker-react": "^4.18.0",
		"fix-webm-duration": "^1.0.6",
		"gif.js": "^0.2.0",
		"gsap": "^3.15.0",
		"lucide-react": "^0.545.0",
		"mediabunny": "^1.40.1",
		"motion": "^12.38.0",
		"mp4box": "^2.3.0",
		"pixi-filters": "^6.1.5",
		"pixi.js": "^8.18.1",
		"react": "^18.3.1",
		"react-dom": "^18.3.1",
		"react-icons": "^5.6.0",
		"react-resizable-panels": "^3.0.6",
		"react-rnd": "^10.5.3",
		"sonner": "^2.0.7",
		"tailwind-merge": "^3.5.0",
		"tailwindcss-animate": "^1.0.7",
		"uuid": "^13.0.0",
		"web-demuxer": "^4.0.0"
	},
	"devDependencies": {
		"@biomejs/biome": "^2.4.12",
		"@electron/rebuild": "^4.0.4",
		"@playwright/test": "^1.59.1",
		"@testing-library/jest-dom": "^6.9.1",
		"@testing-library/react": "^16.3.2",
		"@testing-library/user-event": "^14.6.1",
		"@types/node": "^22.19.17",
		"@types/react": "^18.3.28",
		"@types/react-dom": "^18.3.7",
		"@vitejs/plugin-react": "^5.2.0",
		"@vitest/browser": "^4.1.4",
		"@vitest/browser-playwright": "^4.1.4",
		"autoprefixer": "^10.5.0",
		"electron": "^41.2.1",
		"electron-builder": "^26.8.1",
		"esbuild": "^0.27.0",
		"fast-check": "^4.7.0",
		"husky": "^9.1.7",
		"jsdom": "^29.0.2",
		"lint-staged": "^16.4.0",
		"postcss": "^8.5.10",
		"tailwindcss": "^3.4.19",
		"terser": "^5.46.1",
		"typescript": "^5.9.3",
		"vite": "^7.3.2",
		"vite-plugin-electron": "^0.29.1",
		"vite-plugin-electron-renderer": "^0.14.6",
		"vitest": "^4.1.4"
	},
	"main": "dist-electron/main.js",
	"lint-staged": {
		"*.{ts,tsx,js,jsx,mts,cts,json}": "biome check --no-errors-on-unmatched"
	}
}
