{
  "name": "@twofold/framework",
  "version": "0.0.76",
  "description": "",
  "type": "module",
  "bin": {
    "twofold": "./dist/backend/bin.js"
  },
  "files": [
    "dist",
    "src"
  ],
  "types": "src/types/global.d.ts",
  "exports": {
    ".": {
      "types": "./src/types/global.d.ts"
    },
    "./types": "./src/types/importable.ts",
    "./twofold-framework": "./src/client/components/twofold-framework.tsx",
    "./link": "./src/client/components/link.tsx",
    "./use-router": "./src/client/hooks/use-router.ts",
    "./use-optimistic-route": "./src/client/hooks/use-optimistic-route.ts",
    "./cookies": "./src/client/http/cookies.ts",
    "./not-found": "./src/client/http/not-found.ts",
    "./unauthorized": "./src/client/http/unauthorized.ts",
    "./redirect": "./src/client/http/redirect.ts",
    "./encryption": "./dist/backend/encryption.js",
    "./context/page": "./src/client/server-context/page.ts",
    "./flash": {
      "react-server": "./src/client/actions/flash.ts",
      "default": "./src/client/actions/flash-client.ts"
    }
  },
  "keywords": [],
  "author": "Ryan Toronto",
  "license": "ISC",
  "engines": {
    "node": ">=22.20.0"
  },
  "devDependencies": {
    "@eslint/js": "^9.37.0",
    "@types/babel__core": "^7.20.5",
    "@types/etag": "^1.8.4",
    "@types/mime-types": "^3.0.1",
    "@types/node": "^22.16.5",
    "@types/picomatch": "^4.0.2",
    "@types/react": "^19.2.10",
    "@types/react-dom": "^19.2.3",
    "cookie": "^1.0.2",
    "eslint": "^9.38.0",
    "eslint-plugin-react": "^7.37.5",
    "eslint-plugin-react-hooks": "^7.0.0",
    "globals": "^16.4.0",
    "nodemon": "^3.1.10",
    "typescript": "^5.9.3",
    "typescript-eslint": "^8.45.0",
    "vitest": "^3.2.4"
  },
  "peerDependencies": {
    "react": "19.2.4",
    "react-dom": "19.2.4",
    "react-server-dom-webpack": "19.2.4",
    "tailwindcss": ">=4.0.0",
    "zod": ">=4.0.0"
  },
  "peerDependenciesMeta": {
    "zod": {
      "optional": true
    }
  },
  "dependencies": {
    "@babel/core": "^7.28.4",
    "@hattip/adapter-node": "^0.0.49",
    "@hattip/compose": "^0.0.49",
    "@hattip/cookie": "^0.0.49",
    "@hattip/headers": "^0.0.49",
    "@hattip/response": "^0.0.49",
    "@hattip/router": "^0.0.49",
    "@hattip/static": "^0.0.49",
    "@ryanto/esbuild-plugin-tailwind": "^0.0.3",
    "@tailwindcss/node": "4.1.14",
    "@tailwindcss/oxide": "4.1.14",
    "babel-plugin-react-compiler": "19.1.0-rc.3",
    "chokidar": "^4.0.3",
    "client-only": "^0.0.1",
    "commander": "^14.0.1",
    "dotenv": "^17.2.3",
    "esbuild": "0.27.2",
    "etag": "^1.8.1",
    "jiti": "^2.6.1",
    "kleur": "^4.1.5",
    "mime-types": "^3.0.1",
    "minimatch": "^10.0.3",
    "picomatch": "^4.0.3",
    "react-refresh": "^0.18.0",
    "rolldown": "1.0.0-beta.53",
    "serialize-error": "^12.0.0",
    "server-only": "^0.0.1",
    "urlpattern-polyfill": "10.1.0",
    "xxhash-wasm": "^1.1.0",
    "zod": "4.1.11",
    "@twofold/client-component-transforms": "0.0.8",
    "@twofold/server-function-transforms": "0.0.15"
  },
  "scripts": {
    "dev": "nodemon --exec \"pnpm run compile\" --watch src -e ts,tsx",
    "compile": "pnpm node compile.js",
    "lint": "eslint . && pnpm lint:backend && pnpm lint:client",
    "lint:backend": "tsc --noEmit -p src/backend/tsconfig.json",
    "lint:client": "tsc --noEmit -p src/client/tsconfig.json"
  }
}