{
  "name": "happy-opfs",
  "description": "A browser-compatible file system module based on OPFS, inspired by Deno fs APIs. Supports async/sync operations, streaming zip/unzip, and Result-based error handling.",
  "author": "jiang115jie@gmail.com",
  "license": "MIT",
  "version": "2.2.0",
  "type": "module",
  "main": "dist/main.cjs",
  "module": "dist/main.mjs",
  "types": "dist/types.d.ts",
  "exports": {
    ".": {
      "import": {
        "types": "./dist/types.d.ts",
        "default": "./dist/main.mjs"
      },
      "require": {
        "types": "./dist/types.d.cts",
        "default": "./dist/main.cjs"
      },
      "default": "./dist/main.mjs"
    },
    "./package.json": "./package.json"
  },
  "files": [
    "LICENSE",
    "README.md",
    "CHANGELOG.md",
    "dist"
  ],
  "sideEffects": false,
  "scripts": {
    "check": "pnpm exec tsc --noEmit",
    "lint": "pnpm exec eslint .",
    "prebuild": "pnpm run check && pnpm run lint",
    "build": "node build.ts && pnpm exec rollup --config rollup.config.ts",
    "verify:package": "pnpm run build && node verify_package.ts",
    "docs": "pnpm exec typedoc",
    "prepublishOnly": "pnpm run verify:package",
    "playwright:install": "pnpm exec playwright install chromium-headless-shell",
    "pretest": "pnpm exec msw init tests/public --save=false",
    "test": "pnpm exec vitest run --coverage",
    "test:watch": "pnpm exec vitest watch",
    "test:ui": "pnpm exec vitest --ui",
    "prebench": "pnpm exec msw init benchmarks/public --save=false",
    "bench": "pnpm exec vite --config benchmarks/vite.config.ts",
    "prebench:run": "pnpm run prebench",
    "bench:run": "node benchmarks/playwright.ts",
    "bench:vitest": "pnpm exec vitest bench --run",
    "eg": "pnpm exec vite --config examples/vite.config.ts"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/JiangJie/happy-opfs.git"
  },
  "keywords": [
    "browser",
    "filesystem",
    "file",
    "directory",
    "opfs",
    "origin-private-file-system",
    "storage",
    "deno",
    "worker",
    "sync",
    "async",
    "stream",
    "upload",
    "download",
    "zip",
    "unzip",
    "typescript"
  ],
  "devDependencies": {
    "@arethetypeswrong/cli": "^0.18.5",
    "@eslint/js": "^10.0.1",
    "@stylistic/eslint-plugin": "^5.10.0",
    "@vitest/browser-playwright": "^4.1.10",
    "@vitest/coverage-v8": "^4.1.10",
    "@vitest/ui": "^4.1.10",
    "eslint": "^10.8.0",
    "msw": "^2.15.0",
    "playwright": "^1.62.0",
    "publint": "^0.3.22",
    "rollup": "^4.62.2",
    "rollup-plugin-dts": "^6.4.1",
    "typedoc": "^0.28.20",
    "typescript": "^6.0.3",
    "typescript-eslint": "^8.65.0",
    "vite": "^8.1.5",
    "vite-plugin-mkcert": "^2.1.0",
    "vitest": "^4.1.10"
  },
  "dependencies": {
    "@happy-ts/fetch-t": "^1.10.0",
    "@std/path": "npm:@jsr/std__path@^1.1.6",
    "fflate": "^0.8.3",
    "happy-rusty": "^1.10.0",
    "tiny-future": "^1.2.0"
  }
}