{
  "name": "knuth-plass-wrap",
  "version": "2.0.0",
  "type": "module",
  "description": "Unicode-aware Knuth-Plass line breaking for the web, powered by HarfBuzz WASM",
  "license": "MIT",
  "author": "Brian Meek",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/currentspace/knuth-plass-wrap.git"
  },
  "homepage": "https://knuth-plass-wrap.current.space",
  "bugs": {
    "url": "https://github.com/currentspace/knuth-plass-wrap/issues"
  },
  "main": "dist/index.cjs",
  "module": "dist/index.js",
  "types": "dist/pkg-index.d.ts",
  "unpkg": "dist/knuth-plass-wrap.umd.js",
  "jsdelivr": "dist/knuth-plass-wrap.umd.js",
  "exports": {
    ".": {
      "types": "./dist/pkg-index.d.ts",
      "import": "./dist/index.js",
      "require": "./dist/index.cjs"
    },
    "./core": {
      "types": "./dist/core/index.d.ts",
      "import": "./dist/core.js",
      "require": "./dist/core.cjs"
    },
    "./react": {
      "types": "./dist/react/index.d.ts",
      "import": "./dist/react.js",
      "require": "./dist/react.cjs"
    },
    "./node": {
      "types": "./dist/core/wasm-node.d.ts",
      "import": "./dist/core-node.js",
      "require": "./dist/core-node.cjs"
    },
    "./wasm/*": "./dist/wasm/*"
  },
  "files": [
    "CHANGELOG.md",
    "dist/*.js",
    "dist/*.cjs",
    "dist/*.d.ts",
    "dist/*.d.ts.map",
    "dist/core/",
    "dist/react/",
    "dist/lib/",
    "dist/wasm/",
    "dist/knuth-plass-wrap.umd.js"
  ],
  "sideEffects": false,
  "keywords": [
    "knuth-plass",
    "line-breaking",
    "typography",
    "justification",
    "harfbuzz",
    "wasm",
    "react",
    "text-layout"
  ],
  "scripts": {
    "dev": "vite",
    "build:wasm": "cd wasm && wasm-pack build --target web --release",
    "build:lib": "vite build && vite build --mode umd && tsc -p tsconfig.build.json",
    "build": "pnpm build:wasm && pnpm build:lib",
    "build:demo": "vite build --mode demo",
    "preview": "vite preview",
    "screenshot": "node --import tsx scripts/screenshot.ts",
    "generate:presets": "node --import tsx scripts/generate-preset-pngs.ts",
    "lint": "eslint .",
    "typecheck": "tsc --noEmit",
    "test": "cd wasm && cargo test",
    "test:hypher": "cd crates/hypher-dynamic && cargo test",
    "test:harfrust": "cargo check --manifest-path crates/harfrust-lite/Cargo.toml --no-default-features --features std && cargo check --manifest-path crates/harfrust-lite/Cargo.toml --all-features && cargo test --manifest-path crates/harfrust-lite/Cargo.toml --no-default-features --features std",
    "test:ssr": "node --import tsx scripts/test-ssr.ts",
    "test:e2e": "node --import tsx scripts/test-all-presets.ts",
    "test:e2e:pw": "playwright test",
    "test:all": "pnpm build && pnpm lint && pnpm typecheck && pnpm test && pnpm test:hypher && pnpm test:harfrust && pnpm test:ssr && pnpm test:e2e && pnpm test:e2e:pw",
    "release:check": "pnpm test:all && node scripts/publish-npm-release.mjs --dry-run",
    "release:publish:npm": "node scripts/publish-npm-release.mjs",
    "release:latest": "node scripts/release-latest.mjs",
    "prepublishOnly": "pnpm build"
  },
  "peerDependencies": {
    "react": "^19.0.0"
  },
  "peerDependenciesMeta": {
    "react": {
      "optional": true
    }
  },
  "devDependencies": {
    "@eslint/js": "^9.39.3",
    "@playwright/test": "^1.58.2",
    "@types/node": "^25.3.0",
    "@types/react": "^19.1.0",
    "@types/react-dom": "^19.1.0",
    "@vitejs/plugin-react": "^4.4.1",
    "eslint": "^9.39.3",
    "eslint-plugin-react": "^7.37.5",
    "eslint-plugin-react-hooks": "^7.0.1",
    "eslint-plugin-react-refresh": "^0.5.2",
    "globals": "^16.5.0",
    "hyphen": "^1.14.1",
    "jiti": "^2.6.1",
    "playwright": "^1.52.0",
    "react": "^19.1.0",
    "react-dom": "^19.1.0",
    "tsx": "^4.19.0",
    "typescript": "^5.8.0",
    "typescript-eslint": "^8.56.1",
    "vite": "^6.3.0"
  },
  "dependencies": {
    "wawoff2": "^2.0.1"
  }
}
