{ "name": "world-of-claudecraft", "version": "0.42.2", "private": true, "license": "MIT", "author": { "name": "Levy Street", "email": "woc@levystreet.com" }, "type": "module", "main": "electron/main.cjs", "description": "World of Claudecraft: a classic-style micro-MMO + headless RL training environment", "scripts": { "dev": "vite", "release:check": "node scripts/release_version.mjs check", "release:prepare": "node scripts/release_version.mjs prepare", "version:sync": "node scripts/version_sync.mjs", "version": "node scripts/version_sync.mjs && git add android/app/build.gradle ios/App/App.xcodeproj/project.pbxproj", "build:bundle": "node scripts/build_bundle_pregen.mjs && vite build && node scripts/check_backdrop_survival.mjs && node scripts/build_media_manifest.mjs emit", "build": "npm run i18n:gen && npm run wiki:content && npm run build:bundle", "wiki:content": "node scripts/wiki/build_content.mjs", "wiki:stills": "node scripts/wiki/render_model_stills.mjs", "sitemap:build": "node scripts/build_sitemap.mjs", "build:native": "VITE_NATIVE_APP=1 VITE_API_ORIGIN=${VITE_API_ORIGIN:-https://worldofclaudecraft.com} npm run build && node scripts/build_media_manifest.mjs prune", "native:sync": "npm run build:native && npx cap sync", "ota:publish": "node scripts/ota/publish_bundle.mjs", "native:open:ios": "npm run native:sync && npx cap open ios", "native:open:android": "npm run native:sync && npx cap open android", "electron:dev": "node scripts/electron-dev.mjs", "electron:pack": "node scripts/electron-build.mjs pack", "electron:pack:steam": "node scripts/electron-build.mjs pack steam", "electron:pack:epic": "node scripts/electron-build.mjs pack epic", "electron:build": "node scripts/electron-build.mjs build", "electron:build:steam": "node scripts/electron-build.mjs build steam", "electron:build:epic": "node scripts/electron-build.mjs build epic", "epic:bpt-upload": "node scripts/epic-bpt-upload.mjs", "preview": "vite preview", "format": "biome format --write .", "format:check": "biome format .", "lint": "biome lint .", "lint:fix": "biome lint --write .", "check": "biome check .", "check:fix": "biome check --write .", "ci:changed": "node scripts/ci_changed.mjs", "check:admin": "svelte-check --tsconfig ./tsconfig.admin.json", "check:ts": "tsc --noEmit --incremental --tsBuildInfoFile node_modules/.cache/tsc/buildinfo.json", "check:ts:bot": "tsc -p tsconfig.bot.json", "check:types": "npm run check:ts && npm run check:admin && npm run check:ts:bot", "pretest": "node scripts/pretest.mjs", "test": "vitest run", "test:browser": "vitest run --config vitest.browser.config.ts", "test:related": "vitest related --run --passWithNoTests", "test:changed": "vitest run --passWithNoTests --changed", "test:turbo": "node scripts/test_turbo_experimental.mjs", "test:bun": "node scripts/test_bun_experimental.mjs", "gate": "node scripts/gate.mjs", "gate:fast": "node scripts/gate_fast.mjs", "security:scan": "node scripts/malware_scan.mjs", "security:gate": "node scripts/malware_scan.mjs --gate", "new:endpoint": "node scripts/new_endpoint.mjs", "i18n:build": "node scripts/i18n_build.mjs", "i18n:admin": "node scripts/i18n_admin_build.mjs", "i18n:scan": "node scripts/i18n_scan.mjs", "i18n:gen": "npm run i18n:build && npm run i18n:admin && npm run i18n:scan", "i18n:hash": "node scripts/i18n_resolved_hash.mjs", "i18n:worklist": "node scripts/i18n_fill_worklist.mjs", "perf:tour": "node scripts/perf_tour.mjs", "perf:crowd": "node scripts/crowd_fps_bench.mjs", "perf:prewarm": "node scripts/prewarm_travel_bench.mjs", "perf:baseline": "node scripts/perf_baseline.mjs", "ops:cpu-monitor": "node scripts/prod_cpu_monitor.mjs", "feel:smoke": "node scripts/feel_smoke.mjs", "asset:budget": "node scripts/asset_budget.mjs", "assets:mapbg": "node scripts/build_map_backgrounds.mjs", "assets:items": "node scripts/convert_item_icons_webp.mjs", "assets:skills": "node scripts/convert_skill_icons_webp.mjs", "assets:chrome": "node scripts/convert_chrome_icons_webp.mjs", "assets:deeds": "node scripts/convert_deed_icons_webp.mjs", "assets:professions": "node scripts/convert_profession_icons_webp.mjs", "build:env": "esbuild headless/env_server.ts --bundle --platform=node --format=cjs --outfile=dist-env/env_server.cjs", "env": "npm run build:env && node dist-env/env_server.cjs", "bench": "npm run build:env && node dist-env/env_server.cjs --bench", "perf:load": "node scripts/server_load_jitter.mjs", "perf:professions": "node scripts/load_professions.mjs", "audit:quests": "node scripts/quest_audit_graph.mjs", "audit:zone1": "npm run audit:quests", "db:up": "docker compose up -d --wait postgres", "db:down": "docker compose down", "db:cleanup-zone1-removed": "tsx scripts/cleanup_removed_zone1_content.ts", "db:migrate-old-cragmaw-pelt": "tsx scripts/migrate_old_cragmaw_pelt.ts", "build:server": "node scripts/build_server.mjs", "server": "npm run build:server && node dist-server/server.cjs", "build:bot": "node scripts/build_bot.mjs", "bot": "npm run build:bot && node dist-bot/bot.cjs", "realms": "npm run build:server && node scripts/dev-realms.mjs", "admin:grant": "node scripts/grant_admin.mjs", "voices:gen": "node scripts/gen_npc_voices.mjs", "voices:lines": "node scripts/gen_npc_lines.mjs", "sfx:gen": "node scripts/gen_sfx.mjs", "sfx:ui": "node scripts/gen_ui_sfx.mjs", "sfx:manifest": "node scripts/build_sfx_manifest.mjs", "sfx:check": "node scripts/sfx_conform.mjs", "sfx:conform": "node scripts/sfx_conform.mjs --fix", "sfx:studio": "node scripts/sfx_studio/index.mjs", "sfx:studio:smoke": "node scripts/sfx_studio/e2e.mjs", "wiki:seed": "node scripts/mediawiki/build_seed.mjs", "sim:nythraxis-matrix": "tsx scripts/nythraxis_matrix.ts", "sim:healing": "tsx scripts/healing_montecarlo.ts", "sim:rift": "tsx scripts/rift_montecarlo.ts" }, "dependencies": { "@aws-sdk/client-sesv2": "^3.1084.0", "@capacitor/app": "^8.1.0", "@capacitor/browser": "^8.0.3", "@capgo/capacitor-updater": "^8.51.2", "@noble/curves": "^1.9.7", "@reown/appkit": "1.8.22", "@reown/appkit-adapter-solana": "1.8.22", "@solana/wallet-standard-chains": "^1.1.2", "@solana/wallet-standard-features": "^1.4.0", "@wallet-standard/app": "^1.1.1", "@wallet-standard/base": "^1.1.1", "@wallet-standard/features": "^1.1.1", "bs58": "^6.0.0", "electron-log": "^5.4.4", "electron-updater": "^6.8.9", "n8ao": "^2.0.0", "obscenity": "^0.4.6", "pg": "^8.21.0", "postprocessing": "6.39.4", "prom-client": "15.1.3", "three": "0.185.1", "tweetnacl": "1.0.3", "ws": "^8.21.0" }, "devDependencies": { "@biomejs/biome": "2.5.4", "@capacitor/android": "^8.4.0", "@capacitor/cli": "^8.4.0", "@capacitor/core": "^8.4.0", "@capacitor/ios": "^8.4.0", "@gltf-transform/cli": "^4.4.0", "@sveltejs/vite-plugin-svelte": "^7.1.2", "@testing-library/jest-dom": "^6.9.1", "@testing-library/svelte": "^5.4.2", "@types/node": "^26.1.1", "@types/pg": "^8.20.0", "@types/three": "^0.185.4", "@types/ws": "^8.18.1", "@typescript/native": "npm:typescript@^7.0.2", "@vitest/browser": "4.1.11", "@vitest/browser-playwright": "4.1.11", "axe-core": "4.12.1", "electron": "^43.3.0", "electron-builder": "^26.15.7", "esbuild": "^0.28.1", "ffmpeg-static": "^5.3.0", "ffprobe-static": "^3.1.0", "happy-dom": "^20.11.1", "jsdom": "^29.1.1", "lightningcss": "1.32.0", "playwright": "1.61.1", "puppeteer-core": "^25.1.0", "sharp": "^0.35.4", "svelte": "^5.56.3", "svelte-check": "^4.6.0", "tsx": "^4.22.4", "turbo": "2.10.8", "typescript": "npm:@typescript/typescript6@^6.0.2", "vite": "^8.0.16", "vitest": "4.1.11" }, "optionalDependencies": { "steamworks.js": "^0.4.0" }, "build": { "appId": "com.worldofclaudecraft.desktop", "productName": "World of ClaudeCraft", "icon": "build/icon.png", "files": [ "dist/**", "electron/**", "build/icon.png", "build/icon.ico", "build/icon.icns", "package.json", "!node_modules/**", "!dist/models/**", "!dist/textures/**", "!dist/env/**", "!dist/vfx/**", "!dist/*.pdf", "!dist/press.html", "!dist/merch.html", "!dist/links.html", "!dist/CLAUDE.md", "!dist/guide-stills/**" ], "directories": { "buildResources": "build", "output": "release" }, "electronFuses": { "runAsNode": false, "enableCookieEncryption": true, "enableNodeOptionsEnvironmentVariable": false, "enableNodeCliInspectArguments": false, "grantFileProtocolExtraPrivileges": false, "onlyLoadAppFromAsar": true, "enableEmbeddedAsarIntegrityValidation": true }, "protocols": [ { "name": "World of ClaudeCraft Login", "schemes": [ "worldofclaudecraft" ] } ], "mac": { "category": "public.app-category.games", "icon": "build/icon.icns", "hardenedRuntime": true, "gatekeeperAssess": false, "entitlements": "build/entitlements.mac.plist", "entitlementsInherit": "build/entitlements.mac.plist", "target": [ { "target": "dmg", "arch": [ "universal" ] }, { "target": "zip", "arch": [ "universal" ] } ] }, "win": { "icon": "build/icon.ico", "target": [ { "target": "nsis", "arch": [ "x64", "arm64" ] }, { "target": "zip", "arch": [ "x64", "arm64" ] } ] }, "nsis": { "include": "build/installer.nsh", "buildUniversalInstaller": false }, "linux": { "category": "Game", "icon": "build/icon.png", "target": [ { "target": "AppImage", "arch": [ "x64", "arm64" ] }, { "target": "deb", "arch": [ "x64", "arm64" ] } ] }, "artifactName": "${name}-${version}-${os}-${arch}.${ext}", "publish": { "provider": "generic", "url": "https://updates.worldofclaudecraft.com/desktop" } }, "allowScripts": { "sharp@0.35.3": true, "ffmpeg-static@5.3.0": true, "ffprobe-static@3.1.0": true }, "packageManager": "pnpm@10.34.5", "pnpm": { "overrides": { "axios@1": "^1.19.0", "brace-expansion@1": "^1.1.18", "brace-expansion@2": "^2.1.4", "brace-expansion@5": "^5.0.9", "@xmldom/xmldom@0.8": "^0.8.15", "@xmldom/xmldom@0.9": "^0.9.12", "fast-uri@3": "^3.1.6", "js-yaml@4": "^4.3.2", "nanoid@3": "^3.3.17", "postcss@8": "^8.5.25", "sharp@0.34": "^0.35.4", "stream-json@1": "^1.9.1", "tar@7": "^7.5.22", "undici@6": "^6.28.0", "undici@7": "^7.29.0" }, "auditConfig": { "ignoreGhsas": [ "GHSA-3gc7-fjrx-p6mg", "GHSA-w5hq-g745-h8pq", "GHSA-528h-pc64-c93x" ] }, "onlyBuiltDependencies": [ "esbuild", "ffmpeg-static", "ffprobe-static", "sharp", "bufferutil", "utf-8-validate", "bigint-buffer", "electron-winstaller", "fsevents", "@reown/appkit" ], "patchedDependencies": { "three@0.185.1": "patches/three@0.185.1.patch" } } }