{
  "name": "TTRPGPlayer",
  "version": "1.0.26",
  "description": "TTRPG Player — редактор и проигрыватель НРИ",
  "main": "dist/main/index.cjs",
  "scripts": {
    "dev": "node scripts/dev.mjs",
    "build": "node scripts/build.mjs --production",
    "build:dev": "node scripts/build.mjs",
    "build:obfuscate": "node scripts/build.mjs --production --obfuscate",
    "lint": "eslint . --max-warnings 0",
    "typecheck": "tsc -p tsconfig.eslint.json --noEmit",
    "test": "tsx --test app/renderer/shared/ui/controls.tooltip.test.ts app/renderer/editor/state/projectState.race.test.ts app/renderer/editor/fileDrop.test.ts app/shared/graph/sceneListOrder.test.ts app/renderer/editor/graph/sceneCardById.test.ts app/renderer/editor/i18n/editorMessages.locale.test.ts app/renderer/editor/sceneDescriptionHtml.test.ts app/shared/graph/storylineExportImport.test.ts app/shared/foundry/foundryGraph.test.ts app/shared/ipc/contracts.mediaRemoval.test.ts app/shared/effectEraserHitTest.test.ts app/shared/fieldEffectEraser.test.ts app/renderer/control/controlApp.effectsPanel.test.ts app/renderer/control/controlApp.audioPerf.networkRegression.test.ts app/renderer/control/controlApp.brushPerf.networkRegression.test.ts app/renderer/shared/useAssetImageUrl.cache.test.ts app/renderer/shared/sceneOverlay/sceneOverlayHost.test.ts app/renderer/shared/effects/PxiEffectsOverlay.pointer.test.ts app/main/windows/createWindows.editorClose.test.ts app/main/safeConsole.test.ts app/main/windows/bootWindow.test.ts app/main/effects/effectsStore.test.ts app/main/effects/sceneDarknessStore.test.ts app/main/project/assetPrune.test.ts app/main/project/optimizeImageImport.test.ts app/main/project/scenePreviewThumbnail.test.ts app/main/project/fsRetry.test.ts app/main/project/zipRead.test.ts app/main/project/replaceFileAtomic.test.ts app/main/project/zipStore.legacyContract.test.ts app/shared/package.build.test.ts app/shared/license/canonicalJson.test.ts app/shared/license/productKey.test.ts app/shared/license/licenseService.networkRegression.test.ts app/shared/video/videoPlaybackPerf.networkRegression.test.ts app/shared/video/videoPlaybackLoop.networkRegression.test.ts app/main/license/verifyLicenseToken.test.ts app/main/license/machineFingerprint.test.ts && node --test scripts/build-env.test.mjs scripts/obfuscate-main.test.mjs scripts/release-mac-prep.test.mjs",
    "format": "prettier . --check",
    "format:write": "prettier . --write",
    "postinstall": "patch-package",
    "release:info": "node scripts/print-release-info.mjs",
    "pack": "npm run build && node scripts/release-win-prep.mjs && electron-builder",
    "pack:dir": "npm run build && node scripts/release-win-prep.mjs && electron-builder --dir",
    "pack:mac": "npm run build && node scripts/release-mac-prep.mjs && electron-builder --mac",
    "pack:win": "npm run build && node scripts/release-win-prep.mjs && electron-builder --win",
    "pack:linux": "node scripts/release-linux-pack.mjs",
    "release": "powershell -ExecutionPolicy Bypass -File scripts/ttrpg-release/release.ps1",
    "release:all": "powershell -ExecutionPolicy Bypass -File scripts/ttrpg-release/release-all.ps1",
    "prepare:release": "powershell -ExecutionPolicy Bypass -File scripts/ttrpg-release/prepare-release.ps1",
    "publish:updates": "powershell -ExecutionPolicy Bypass -File scripts/ttrpg-release/publish.ps1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "type": "module",
  "dependencies": {
    "@fontsource/inter": "^5.2.8",
    "@tiptap/extension-placeholder": "^3.27.4",
    "@tiptap/react": "^3.27.4",
    "@tiptap/starter-kit": "^3.27.4",
    "classic-level": "^3.0.0",
    "electron-updater": "^6.6.2",
    "ffmpeg-static": "^5.3.0",
    "pixi.js": "^8.18.1",
    "react": "^19.2.5",
    "react-dom": "^19.2.5",
    "reactflow": "^11.11.4",
    "sharp": "^0.34.5"
  },
  "devDependencies": {
    "@eslint/js": "^9.39.4",
    "@resvg/resvg-js": "^2.6.2",
    "@rollup/plugin-strip": "^3.0.4",
    "@types/node": "^25.6.0",
    "@types/react": "^19.2.14",
    "@types/react-dom": "^19.2.3",
    "@types/yauzl": "^2.10.3",
    "@types/yazl": "^3.3.1",
    "@vitejs/plugin-react": "^6.0.1",
    "babel-plugin-react-compiler": "^1.0.0",
    "electron": "^41.2.0",
    "electron-builder": "^26.8.1",
    "esbuild": "^0.28.0",
    "eslint": "^9.39.4",
    "eslint-config-prettier": "^10.1.8",
    "eslint-import-resolver-typescript": "^4.4.4",
    "eslint-plugin-import": "^2.32.0",
    "eslint-plugin-jsx-a11y": "^6.10.2",
    "eslint-plugin-prettier": "^5.5.5",
    "eslint-plugin-react": "^7.37.5",
    "eslint-plugin-react-hooks": "^7.0.1",
    "eslint-plugin-unicorn": "^64.0.0",
    "javascript-obfuscator": "^4.2.2",
    "patch-package": "^8.0.1",
    "prettier": "^3.8.3",
    "to-ico": "^1.1.2",
    "tsx": "^4.21.0",
    "typescript": "^6.0.2",
    "typescript-eslint": "^8.58.2",
    "vite": "^8.0.8",
    "yauzl": "^3.3.0",
    "yazl": "^3.3.1"
  },
  "build": {
    "appId": "com.ttrpgplayer.app",
    "productName": "TTRPGPlayer",
    "copyright": "Copyright © TTRPGPlayer",
    "directories": {
      "output": "release",
      "buildResources": "build"
    },
    "extraResources": [
      {
        "from": "build/icon.ico",
        "to": "branding/icon.ico"
      }
    ],
    "files": [
      "dist/**/*",
      "package.json"
    ],
    "asar": true,
    "asarUnpack": [
      "dist/preload/**",
      "dist/renderer/app-pack-icon.png",
      "dist/renderer/app-window-icon.png",
      "node_modules/sharp/**",
      "node_modules/@img/**",
      "node_modules/ffmpeg-static/**",
      "node_modules/classic-level/**",
      "node_modules/abstract-level/**",
      "node_modules/level-supports/**",
      "node_modules/level-transcoder/**",
      "node_modules/module-error/**",
      "node_modules/buffer/**",
      "node_modules/napi-macros/**"
    ],
    "toolsets": {
      "appimage": "1.0.2"
    },
    "mac": {
      "category": "public.app-category.games",
      "artifactName": "${productName}-${arch}.${ext}",
      "target": [
        {
          "target": "dmg",
          "arch": [
            "x64",
            "arm64"
          ]
        },
        {
          "target": "zip",
          "arch": [
            "x64",
            "arm64"
          ]
        }
      ],
      "icon": "build/icon.png"
    },
    "win": {
      "target": [
        {
          "target": "nsis",
          "arch": [
            "x64"
          ]
        },
        {
          "target": "zip",
          "arch": [
            "x64"
          ]
        }
      ],
      "icon": "build/icon.ico"
    },
    "linux": {
      "target": [
        {
          "target": "AppImage",
          "arch": [
            "x64",
            "arm64"
          ]
        }
      ],
      "category": "Game",
      "maintainer": "TTRPGPlayer",
      "synopsis": "TTRPG Player — tabletop RPG editor and player",
      "icon": "build/icon.png"
    },
    "appImage": {
      "artifactName": "${productName}-${arch}.${ext}"
    },
    "dmg": {
      "artifactName": "${productName}-${arch}.${ext}"
    },
    "nsis": {
      "oneClick": false,
      "allowToChangeInstallationDirectory": true,
      "deleteAppDataOnUninstall": false,
      "artifactName": "${productName}-Setup.${ext}"
    },
    "publish": {
      "provider": "generic",
      "url": "https://updates.ttrpgplayer.ru/"
    }
  }
}
