{
  "name": "blacktrigram",
  "version": "0.7.45",
  "description": "Black Trigram (흑괘) - Korean Martial Arts Combat Simulator. Reusable game systems, combat mechanics, animation framework, and Korean martial arts data built with React, Three.js, and TypeScript.",
  "type": "module",
  "main": "./lib/index.js",
  "module": "./lib/index.js",
  "types": "./lib/index.d.ts",
  "sideEffects": [
    "**/*.css"
  ],
  "exports": {
    ".": {
      "types": "./lib/index.d.ts",
      "import": "./lib/index.js"
    },
    "./systems": {
      "types": "./lib/systems/index.d.ts",
      "import": "./lib/systems/index.js"
    },
    "./types": {
      "types": "./lib/types/index.d.ts",
      "import": "./lib/types/index.js"
    },
    "./audio": {
      "types": "./lib/audio/index.d.ts",
      "import": "./lib/audio/index.js"
    },
    "./utils": {
      "types": "./lib/utils/index.d.ts",
      "import": "./lib/utils/index.js"
    },
    "./components": {
      "types": "./lib/components/index.d.ts",
      "import": "./lib/components/index.js"
    },
    "./hooks": {
      "types": "./lib/hooks/index.d.ts",
      "import": "./lib/hooks/index.js"
    },
    "./data": {
      "types": "./lib/data/index.d.ts",
      "import": "./lib/data/index.js"
    }
  },
  "files": [
    "lib",
    "README.md",
    "LICENSE",
    "SECURITY.md",
    "ARCHITECTURE.md",
    "SECURITY_ARCHITECTURE.md",
    "COMBAT_ARCHITECTURE.md",
    "DATA_MODEL.md",
    "THREAT_MODEL.md",
    "ISMS_REFERENCE_MAPPING.md",
    "CONTROLS.md",
    "CRA-ASSESSMENT.md"
  ],
  "keywords": [
    "korean-martial-arts",
    "combat-simulator",
    "threejs",
    "react",
    "game-engine",
    "trigram",
    "vital-points",
    "hapkido",
    "taekwondo",
    "animation-system",
    "3d-combat",
    "i-ching",
    "typescript",
    "webgl",
    "react-three-fiber",
    "gamedev",
    "fighting-game",
    "martial-arts",
    "game-ai",
    "physics-engine",
    "state-machine",
    "cyberpunk",
    "korean"
  ],
  "author": "Hack23 AB",
  "license": "Apache-2.0",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/Hack23/blacktrigram.git"
  },
  "bugs": {
    "url": "https://github.com/Hack23/blacktrigram/issues"
  },
  "homepage": "https://hack23.github.io/blacktrigram/",
  "publishConfig": {
    "access": "public",
    "provenance": true,
    "registry": "https://registry.npmjs.org/"
  },
  "engines": {
    "node": ">=26.0.0",
    "npm": ">=11.0.0"
  },
  "scripts": {
    "dev": "vite --host --open",
    "build": "tsc -b && vite build --mode production",
    "build:analyze": "tsc -b && vite build --mode production && npx vite-bundle-analyzer dist/assets/*.js",
    "build:production": "NODE_ENV=production tsc -b && vite build --mode production --minify esbuild",
    "build:profile": "tsc -b && vite build --mode production --profile --minify esbuild",
    "build:stats": "tsc -b && vite build --mode production && npx vite-bundle-analyzer dist/assets/*.js",
    "build:fast": "tsc -b --incremental && vite build --mode production --minify esbuild",
    "build:lib": "rm -rf lib && tsc -p tsconfig.lib.json && tsc-alias -p tsconfig.lib.json && vite build --config vite.lib.config.ts",
    "prepublishOnly": "npm run lint && npm run check && npm run test && npm run build:lib",
    "check": "tsc -b",
    "check:test": "tsc -p tsconfig.test.json --noEmit",
    "test:check": "tsc -p tsconfig.test.json --noEmit",
    "check:all": "tsc -b && tsc -p tsconfig.test.json --noEmit",
    "lint": "eslint .",
    "preview": "vite preview --host",
    "preview:analyze": "vite preview --host --mode analyze",
    "test": "NODE_OPTIONS='--max-old-space-size=8192' vitest run",
    "test:systems": "vitest run src/systems",
    "test:systems:watch": "vitest src/systems",
    "test:systems:ui": "vitest --ui src/systems",
    "test:systems:coverage": "vitest run --coverage src/systems",
    "test:ai-integration": "vitest run src/systems/ai/__tests__/AI-Combat-Integration.test.ts",
    "test:ai-performance": "vitest bench src/systems/ai/__tests__/AI-Performance.bench.ts --run",
    "cypress:install": "cypress install",
    "cypress:verify": "cypress verify",
    "coverage": "NODE_OPTIONS='--max-old-space-size=8192' vitest run --coverage --coverage.reportOnFailure ",
    "test:ci": "vitest run --coverage",
    "test:e2e": "mkdir -p cypress/results && start-server-and-test dev http://localhost:5173 'cypress run --browser chrome'",
    "test:e2e:ci": "mkdir -p cypress/results && start-server-and-test dev http://localhost:5173 'cypress run --headless --browser chrome'",
    "test:e2e:screens": "mkdir -p cypress/results && start-server-and-test dev http://localhost:5173 'cypress run --browser chrome --spec \"cypress/e2e/screens/*.cy.ts\"'",
    "test:e2e:screens:ci": "mkdir -p cypress/results && start-server-and-test dev http://localhost:5173 'cypress run --headless --browser chrome --spec \"cypress/e2e/screens/*.cy.ts\"'",
    "test:e2e:smoke": "mkdir -p cypress/results && start-server-and-test dev http://localhost:5173 'cypress run --browser chrome --spec \"cypress/e2e/app.cy.ts,cypress/e2e/game-journey.cy.ts\"'",
    "test:e2e:smoke:ci": "mkdir -p cypress/results && start-server-and-test dev http://localhost:5173 'cypress run --headless --browser chrome --spec \"cypress/e2e/app.cy.ts,cypress/e2e/game-journey.cy.ts\"'",
    "test:e2e:webgl": "mkdir -p cypress/results && start-server-and-test dev http://localhost:5173 'cypress run --browser chrome --spec \"cypress/e2e/webgl-verification.cy.ts\"'",
    "test:e2e:webgl:ci": "mkdir -p cypress/results && start-server-and-test dev http://localhost:5173 'cypress run --headless --browser chrome --spec \"cypress/e2e/webgl-verification.cy.ts\"'",
    "compress": "gzip -k dist/assets/*.js && gzip -k dist/assets/*.css",
    "find:unused": "npm run knip",
    "test:licenses": "license-compliance --direct --allow 'MIT;ISC;0BSD;BSD-2-Clause;BSD-3-Clause;Apache-2.0;Unlicense;CC0-1.0'",
    "validate:mcp": "bash scripts/validate-mcp-config.sh",
    "docs": "typedoc --options typedoc.json",
    "docs:sitemap": "node generate-sitemaps.js",
    "build:test-reports": "node scripts/copy-test-reports.js",
    "test:reliability": "node scripts/generate-reliability-report.cjs",
    "test:e2ereportmerge": "npx mochawesome-merge build/cypress/mochawesome/*.json > build/cypress/mochawesome-all.json",
    "test:e2ereporthtmlall": "npx marge -f index.html -o build/cypress/mochawesome build/cypress/mochawesome-all.json",
    "merge-test-reports": "node --experimental-json-modules ./cypress/support/plugins/merge-reports.js",
    "docs:dependencies": "mkdir -p docs/dependencies && depcruise --config .dependency-cruiser.cjs --output-type dot src | dot -T svg > docs/dependencies/module-dependencies.svg || echo 'Dependency diagram generation failed - continuing' && touch docs/dependencies/module-dependencies.svg",
    "docs:diagrams": "node scripts/generate-architecture-diagrams.js",
    "knip": "knip",
    "gen:sfx:11": "npx tsx scripts/generate_sfx.ts",
    "gen:image:openai": "npx tsx scripts/generate_image_openai.ts",
    "gen:video:openai": "npx tsx scripts/generate_video_openai.ts",
    "gen:image:bedrock": "npx tsx scripts/generate_image_bedrock.ts",
    "gen:video:bedrock": "npx tsx scripts/generate_video_bedrock.ts",
    "gen:music:suno": "npx tsx scripts/generate_music_suno.ts",
    "gen:sprites:archetype": "npx tsx scripts/generate_archetype_sprites.ts",
    "audit:assets": "npx tsx scripts/audit-assets.ts",
    "audit:assets:verbose": "npx tsx scripts/audit-assets.ts --verbose",
    "audit:events": "npx tsx scripts/audit-event-listeners.ts",
    "audit:events:verbose": "npx tsx scripts/audit-event-listeners.ts --verbose",
    "audit:memory": "npx tsx scripts/audit-memory-efficiency.ts",
    "audit:memory:verbose": "npx tsx scripts/audit-memory-efficiency.ts --verbose",
    "audit:memory:fix-report": "npx tsx scripts/audit-memory-efficiency.ts --fix-report",
    "audit:physical": "npx tsx scripts/validate-physical-attributes.ts",
    "audit:threejs": "npx tsx scripts/audit-threejs-disposal.ts",
    "audit:threejs:verbose": "npx tsx scripts/audit-threejs-disposal.ts --verbose",
    "audit:threejs:fix-report": "npx tsx scripts/audit-threejs-disposal.ts --fix-report",
    "audit:threejs:v2": "npx tsx scripts/audit-threejs-disposal-v2.ts",
    "audit:threejs:v2:verbose": "npx tsx scripts/audit-threejs-disposal-v2.ts --verbose",
    "audit:threejs:v2:json": "npx tsx scripts/audit-threejs-disposal-v2.ts --json",
    "screenshots:capture": "start-server-and-test dev http://localhost:5173 'npx tsx scripts/capture-screenshots.ts'",
    "screenshots:capture:ci": "start-server-and-test preview http://localhost:4173 'BASE_URL=http://localhost:4173 npx tsx scripts/capture-screenshots.ts'",
    "screenshots:post": "npx tsx scripts/post-screenshots-to-pr.ts",
    "screenshots:all": "npm run screenshots:capture && npm run screenshots:post"
  },
  "peerDependencies": {
    "@react-three/drei": "10.0.0",
    "@react-three/fiber": "9.0.0",
    "@react-three/postprocessing": "3.0.0",
    "postprocessing": "6.0.0",
    "react": "19.0.0",
    "react-dom": "19.0.0",
    "three": "0.184.0"
  },
  "devDependencies": {
    "@aws-sdk/client-bedrock-runtime": "3.1045.0",
    "@eslint/js": "10.0.1",
    "@react-three/drei": "10.7.7",
    "@react-three/fiber": "9.6.1",
    "@react-three/postprocessing": "3.0.4",
    "@testing-library/dom": "10.4.1",
    "@testing-library/jest-dom": "6.9.1",
    "@testing-library/react": "16.3.2",
    "@testing-library/user-event": "14.6.1",
    "@types/node": "25.7.0",
    "@types/react": "19.2.14",
    "@types/react-dom": "19.2.3",
    "@types/three": "0.184.1",
    "@vitejs/plugin-react": "6.0.1",
    "@vitest/coverage-v8": "4.1.6",
    "@vitest/ui": "4.1.6",
    "cypress": "15.15.0",
    "cypress-junit-reporter": "1.3.1",
    "cypress-multi-reporters": "2.0.5",
    "cypress-wait-until": "3.0.2",
    "dependency-cruiser": "17.4.0",
    "dotenv": "17.4.2",
    "eslint": "10.3.0",
    "eslint-plugin-react-hooks": "7.1.1",
    "eslint-plugin-react-refresh": "0.5.2",
    "globals": "17.6.0",
    "jest-axe": "10.0.0",
    "jsdom": "29.1.1",
    "knip": "6.13.1",
    "license-compliance": "3.0.1",
    "mocha-junit-reporter": "2.2.1",
    "mochawesome": "7.1.4",
    "mochawesome-merge": "5.1.1",
    "mochawesome-report-generator": "6.3.2",
    "openai": "6.37.0",
    "playwright": "1.60.0",
    "postprocessing": "6.39.1",
    "react": "19.2.6",
    "react-dom": "19.2.6",
    "start-server-and-test": "3.0.5",
    "three": "0.184.0",
    "ts-morph": "28.0.0",
    "ts-node": "10.9.2",
    "tsc-alias": "1.8.17",
    "tsx": "4.21.0",
    "typedoc": "0.28.19",
    "typedoc-plugin-markdown": "4.11.0",
    "typedoc-plugin-mermaid": "1.12.0",
    "typedoc-plugin-missing-exports": "4.1.3",
    "typescript": "6.0.3",
    "typescript-eslint": "8.59.3",
    "vite": "8.0.12",
    "vite-bundle-analyzer": "1.3.8",
    "vite-tsconfig-paths": "6.1.1",
    "vitest": "4.1.6"
  },
  "overrides": {
    "eslint-plugin-react-hooks": {
      "eslint": "$eslint"
    },
    "glob": "13.0.1",
    "three": "0.184.0",
    "@types/three": "0.184.1"
  }
}
