{
  "name": "xrblocks",
  "version": "0.24.0",
  "description": "XR Blocks SDK",
  "main": "build/xrblocks.js",
  "types": "build/xrblocks.d.ts",
  "type": "module",
  "bin": {
    "xrblocks-remote-control": "./src/addons/remote-control/server/relay.js",
    "xrblocks-mcp": "./src/addons/mcp/server/bin.js"
  },
  "scripts": {
    "dev": "concurrently \"npm:build:watch\" \"npm:serve\"",
    "start": "npm run dev",
    "build:watch": "rolldown -c -w",
    "serve": "http-server --cors -c-1 -a 127.0.0.1 -p 8080",
    "build": "echo \"Building xrblocks.js...\" && rolldown -c",
    "build:sdk": "XRBLOCKS_BUILD=sdk rolldown -c",
    "build:check-imports": "node tools/check-bundle-imports.js",
    "build:check-types": "node tools/check-consumer-types.js",
    "prepare": "npm run build",
    "lint": "oxlint src tools",
    "format": "npm run format:fix",
    "format:check": "prettier \"**/*.{cjs,html,js,json,md,mdx,ts,css}\" --check",
    "format:fix": "prettier \"**/*.{cjs,html,js,json,md,mdx,ts,css}\" --write",
    "test": "vitest run",
    "test:coverage": "vitest run --coverage",
    "test:watch": "vitest",
    "test:e2e": "playwright test --config e2e/playwright.config.ts"
  },
  "files": [
    "build",
    "skills",
    "src"
  ],
  "repository": {
    "type": "git",
    "url": "git+https://github.com/google/xrblocks.git"
  },
  "author": "XR Blocks authors",
  "license": "Apache-2.0",
  "exports": {
    ".": "./build/xrblocks.js",
    "./addons/*": "./build/addons/*"
  },
  "homepage": "https://xrblocks.github.io",
  "devDependencies": {
    "@dimforge/rapier3d": "^0.19.2",
    "@dimforge/rapier3d-simd-compat": "^0.17.3",
    "@emnapi/core": "^1.11.1",
    "@emnapi/runtime": "^1.11.1",
    "@google/genai": "^2.27.0",
    "@iwer/sem": "^2.5.0",
    "@litertjs/core": "^2.5.3",
    "@mediapipe/tasks-audio": "^0.10.35",
    "@mediapipe/tasks-vision": "^0.10.34",
    "@modelcontextprotocol/sdk": "^1.30.0",
    "@playwright/test": "^1.63.0",
    "@pmndrs/uikit": "1.0.64",
    "@preact/signals-core": "^1.14.0",
    "@sparkjsdev/spark": "^2.2.0",
    "@types/dom-speech-recognition": "^0.0.7",
    "@types/node": "^25.0.8",
    "@types/three": "^0.186.0",
    "@types/webxr": "^0.5.23",
    "@vitest/coverage-v8": "^4.1.11",
    "@webgpu/types": "^0.1.74",
    "concurrently": "^10.0.3",
    "flatbuffers": "25.9.23",
    "glob": "^11.0.3",
    "http-server": "^14.1.1",
    "iwer": "^2.5.0",
    "js-aruco2": "2.0.0",
    "jsdom": "^27.0.1",
    "lit": "^3.3.1",
    "marked": "14.1.4",
    "openai": "^6.7.0",
    "oxlint": "^1.51.0",
    "prettier": "^3.6.2",
    "rolldown": "^1.2.11",
    "rolldown-plugin-dts": "^0.28.6",
    "three-mesh-bvh": "^0.9.10",
    "typescript": "^7.0.2",
    "vitest": "^4.1.11",
    "ws": "^8.18.3"
  },
  "peerDependencies": {
    "@google/genai": "*",
    "@litertjs/core": "*",
    "@mediapipe/tasks-audio": "*",
    "@mediapipe/tasks-vision": "*",
    "@pmndrs/uikit": "1.0.64",
    "@preact/signals-core": "^1.14.0",
    "@sparkjsdev/spark": "*",
    "@types/three": "*",
    "@webgpu/types": "*",
    "lit": "^3.3.1",
    "openai": "*",
    "three": "^0.186.0",
    "three-mesh-bvh": "*",
    "three-pathfinding": "^1.3.0"
  },
  "peerDependenciesMeta": {
    "@google/genai": {
      "optional": true
    },
    "@litertjs/core": {
      "optional": true
    },
    "@mediapipe/tasks-audio": {
      "optional": true
    },
    "@mediapipe/tasks-vision": {
      "optional": true
    },
    "@sparkjsdev/spark": {
      "optional": true
    },
    "@types/three": {
      "optional": true
    },
    "@webgpu/types": {
      "optional": true
    },
    "lit": {
      "optional": true
    },
    "openai": {
      "optional": true
    },
    "three-mesh-bvh": {
      "optional": true
    },
    "three-pathfinding": {
      "optional": true
    },
    "ws": {
      "optional": true
    }
  }
}
