* fix: avoid false offline results in Electron instance probes Use Chromium networking with one abortable deadline per direct-host attempt. Retry unreachable selector probes once while preserving identity, auth and compatibility checks, and clean up response bodies on every exit. Add regression coverage and document the native probe invariants. * fix: declare Electron probe's zod dependency Declare the existing workspace zod version as an Electron runtime dependency so probe imports do not rely on root hoisting. Update only the matching lockfile workspace entry, without changing resolved versions or parsing behavior.
171 lines
5.6 KiB
JSON
171 lines
5.6 KiB
JSON
{
|
|
"name": "@openchamber/electron",
|
|
"version": "1.22.2",
|
|
"private": true,
|
|
"description": "Electron desktop runtime for OpenChamber",
|
|
"author": "OpenChamber",
|
|
"type": "module",
|
|
"main": "./dist-bundle/main.mjs",
|
|
"dependencies": {
|
|
"@openchamber/web": "workspace:*",
|
|
"electron-context-menu": "^4.1.2",
|
|
"electron-log": "^5.4.3",
|
|
"electron-updater": "^6.8.3",
|
|
"zod": "^4.3.6"
|
|
},
|
|
"devDependencies": {
|
|
"@electron/rebuild": "^4.2.0",
|
|
"electron": "^43.3.0",
|
|
"electron-builder": "^26.0.0",
|
|
"node-abi": "^4.33.0"
|
|
},
|
|
"trustedDependencies": [
|
|
"electron"
|
|
],
|
|
"desktopPrerequisites": [
|
|
"Electron runtime dependencies installed via bun install",
|
|
"Bun available for sidecar compilation",
|
|
"macOS: Xcode + build tools for notarized packaging",
|
|
"Windows: NSIS installed for installer creation",
|
|
"Linux: native x64 or arm64 host (no cross-arch packaging); FUSE/libfuse2 to run AppImages, or APPIMAGE_EXTRACT_AND_RUN=1"
|
|
],
|
|
"scripts": {
|
|
"dev": "node ./scripts/electron-dev.mjs",
|
|
"build:web-assets": "node ./scripts/build-web-assets.mjs",
|
|
"build": "bun -e \"process.exit(0)\"",
|
|
"ensure:electron": "node ./scripts/ensure-electron.mjs",
|
|
"prepare:opencode-cli": "node ./scripts/prepare-opencode-cli.mjs",
|
|
"verify:opencode-cli": "node ./scripts/verify-opencode-cli.mjs --staged",
|
|
"verify:opencode-cli:packaged": "node ./scripts/verify-opencode-cli.mjs --packaged",
|
|
"verify:linux-appimage": "node ./scripts/verify-linux-appimage.mjs",
|
|
"bundle:main": "bun ./scripts/bundle-main.mjs",
|
|
"generate:macos-icon": "node ./scripts/generate-macos-icon-assets.cjs",
|
|
"rebuild:native": "node ./scripts/rebuild-native.mjs",
|
|
"test": "node ../../scripts/run-isolated-tests.mjs .",
|
|
"test:architecture": "node --test ./startup-url-selection.test.mjs ./scripts/target-architecture.test.mjs ./scripts/verify-linux-appimage.test.mjs ./scripts/verify-update-manifest.test.mjs ./scripts/ensure-electron.test.mjs",
|
|
"test:updater": "node --test ./updater-capability.test.mjs ./updater-channel.test.mjs ./updater-check.test.mjs ./updater-feed.test.mjs ./scripts/finalize-latest-yml.test.mjs ./scripts/updater-e2e-fixture.test.mjs",
|
|
"test:linux-desktop": "node --test ./linux-autostart.test.mjs && node ./scripts/smoke-linux-app-discovery.mjs && node ./scripts/smoke-path-open-utils.mjs",
|
|
"updater:e2e:fixture": "node ./scripts/updater-e2e-fixture.mjs",
|
|
"verify:update-manifest": "node ./scripts/verify-update-manifest.mjs",
|
|
"package": "bun run build:web-assets && bun run prepare:opencode-cli && bun run bundle:main && bun run rebuild:native && node ./scripts/package.mjs",
|
|
"finalize:latest-yml": "node ./scripts/finalize-latest-yml.mjs",
|
|
"type-check": "node --check ./main.mjs && node --check ./preload.mjs",
|
|
"lint": "node -e \"process.exit(0)\""
|
|
},
|
|
"build": {
|
|
"appId": "dev.openchamber.desktop",
|
|
"productName": "OpenChamber",
|
|
"files": [
|
|
"dist-bundle/main.mjs",
|
|
"preload.mjs"
|
|
],
|
|
"extraResources": [
|
|
{
|
|
"from": "resources/web-dist",
|
|
"to": "web-dist"
|
|
},
|
|
{
|
|
"from": "resources/icons/icon.ico",
|
|
"to": "icons/icon.ico"
|
|
},
|
|
{
|
|
"from": "resources/icons/icon.png",
|
|
"to": "icons/icon.png"
|
|
},
|
|
{
|
|
"from": "resources/icons/tray",
|
|
"to": "icons/tray"
|
|
},
|
|
{
|
|
"from": "resources/opencode-cli",
|
|
"to": "opencode-cli"
|
|
}
|
|
],
|
|
"afterPack": "scripts/after-pack.cjs",
|
|
"directories": {
|
|
"buildResources": "resources/icons",
|
|
"output": "dist"
|
|
},
|
|
"artifactName": "${productName}-${version}-${arch}.${ext}",
|
|
"npmRebuild": false,
|
|
"mac": {
|
|
"category": "public.app-category.developer-tools",
|
|
"icon": "resources/icons/icon.icns",
|
|
"artifactName": "${productName}-${version}-mac-${arch}.${ext}",
|
|
"extendInfo": {
|
|
"CFBundleIconName": "AppIcon"
|
|
},
|
|
"hardenedRuntime": true,
|
|
"gatekeeperAssess": false,
|
|
"entitlements": "resources/entitlements.mac.plist",
|
|
"entitlementsInherit": "resources/entitlements.mac.plist",
|
|
"notarize": true,
|
|
"target": [
|
|
"dmg",
|
|
"zip"
|
|
]
|
|
},
|
|
"win": {
|
|
"icon": "resources/icons/icon.ico",
|
|
"target": [
|
|
"nsis"
|
|
],
|
|
"verifyUpdateCodeSignature": false,
|
|
"artifactName": "${productName}-${version}-win-${arch}.${ext}"
|
|
},
|
|
"linux": {
|
|
"target": [
|
|
"AppImage"
|
|
],
|
|
"category": "Development",
|
|
"icon": "resources/icons/icon.png",
|
|
"executableName": "openchamber",
|
|
"artifactName": "${productName}-${version}-linux-${arch}.${ext}",
|
|
"desktop": {
|
|
"entry": {
|
|
"Name": "OpenChamber",
|
|
"Comment": "Desktop runtime for OpenChamber",
|
|
"Icon": "openchamber",
|
|
"StartupWMClass": "openchamber"
|
|
}
|
|
}
|
|
},
|
|
"nsis": {
|
|
"oneClick": true,
|
|
"perMachine": false,
|
|
"installerIcon": "resources/icons/icon.ico",
|
|
"uninstallerIcon": "resources/icons/icon.ico",
|
|
"installerHeaderIcon": "resources/icons/icon.ico"
|
|
},
|
|
"dmg": {
|
|
"sign": true,
|
|
"title": "${productName} ${version}",
|
|
"backgroundColor": "#FFFCF0",
|
|
"iconSize": 100,
|
|
"iconTextSize": 13,
|
|
"window": {
|
|
"width": 540,
|
|
"height": 340
|
|
},
|
|
"contents": [
|
|
{
|
|
"x": 180,
|
|
"y": 140,
|
|
"type": "file"
|
|
},
|
|
{
|
|
"x": 360,
|
|
"y": 140,
|
|
"type": "link",
|
|
"path": "/Applications"
|
|
}
|
|
]
|
|
},
|
|
"publish": {
|
|
"provider": "github",
|
|
"owner": "openchamber",
|
|
"repo": "openchamber"
|
|
}
|
|
}
|
|
}
|