UNPKG

nuqs

Version:

Type-safe search params state manager for React - Like useState, but stored in the URL query string

213 lines (212 loc) 6.01 kB
{ "name": "nuqs", "version": "2.8.9", "description": "Type-safe search params state manager for React - Like useState, but stored in the URL query string", "license": "MIT", "author": { "name": "François Best", "email": "contact@francoisbest.com", "url": "https://francoisbest.com" }, "funding": "https://github.com/sponsors/franky47", "repository": { "type": "git", "url": "git+https://github.com/47ng/nuqs.git", "directory": "packages/nuqs" }, "homepage": "https://nuqs.dev", "keywords": [ "url state", "url", "querystring", "query string", "search params", "next-usequerystate", "useQueryState", "useQueryStates", "nextjs", "react", "remix", "react-router", "tanstack-router" ], "publishConfig": { "access": "public", "provenance": true }, "files": [ "dist/", "server.d.ts", "testing.d.ts", "adapters/react.d.ts", "adapters/next.d.ts", "adapters/next/app.d.ts", "adapters/next/pages.d.ts", "adapters/remix.d.ts", "adapters/react-router.d.ts", "adapters/react-router/v6.d.ts", "adapters/react-router/v7.d.ts", "adapters/tanstack-router.d.ts", "adapters/custom.d.ts", "adapters/testing.d.ts" ], "type": "module", "sideEffects": false, "module": "dist/index.js", "types": "dist/index.d.ts", "exports": { "./package.json": "./package.json", ".": { "types": "./dist/index.d.ts", "import": "./dist/index.js", "default": "./dist/index.js" }, "./server": { "types": "./dist/server.d.ts", "import": "./dist/server.js", "default": "./dist/server.js" }, "./testing": { "types": "./dist/testing.d.ts", "import": "./dist/testing.js", "default": "./dist/testing.js" }, "./adapters/react": { "types": "./dist/adapters/react.d.ts", "import": "./dist/adapters/react.js", "default": "./dist/adapters/react.js" }, "./adapters/next": { "types": "./dist/adapters/next.d.ts", "import": "./dist/adapters/next.js", "default": "./dist/adapters/next.js" }, "./adapters/next/app": { "types": "./dist/adapters/next/app.d.ts", "import": "./dist/adapters/next/app.js", "default": "./dist/adapters/next/app.js" }, "./adapters/next/pages": { "types": "./dist/adapters/next/pages.d.ts", "import": "./dist/adapters/next/pages.js", "default": "./dist/adapters/next/pages.js" }, "./adapters/remix": { "types": "./dist/adapters/remix.d.ts", "import": "./dist/adapters/remix.js", "default": "./dist/adapters/remix.js" }, "./adapters/react-router": { "types": "./dist/adapters/react-router.d.ts", "import": "./dist/adapters/react-router.js", "default": "./dist/adapters/react-router.js" }, "./adapters/react-router/v6": { "types": "./dist/adapters/react-router/v6.d.ts", "import": "./dist/adapters/react-router/v6.js", "default": "./dist/adapters/react-router/v6.js" }, "./adapters/react-router/v7": { "types": "./dist/adapters/react-router/v7.d.ts", "import": "./dist/adapters/react-router/v7.js", "default": "./dist/adapters/react-router/v7.js" }, "./adapters/tanstack-router": { "types": "./dist/adapters/tanstack-router.d.ts", "import": "./dist/adapters/tanstack-router.js", "default": "./dist/adapters/tanstack-router.js" }, "./adapters/custom": { "types": "./dist/adapters/custom.d.ts", "import": "./dist/adapters/custom.js", "default": "./dist/adapters/custom.js" }, "./adapters/testing": { "types": "./dist/adapters/testing.d.ts", "import": "./dist/adapters/testing.js", "default": "./dist/adapters/testing.js" } }, "scripts": { "dev": "tsdown --watch", "build": "tsdown", "build:size-json": "size-limit --json > size.json", "test": "pnpm run --stream '/^test:/'", "test:unit": "vitest run --project unit", "test:browser": "vitest run --project browser --browser.headless", "test:types": "vitest run --project types", "test:size": "size-limit", "prepack": "./scripts/prepack.sh" }, "dependencies": { "@standard-schema/spec": "1.0.0" }, "peerDependencies": { "@remix-run/react": ">=2", "@tanstack/react-router": "^1", "next": ">=14.2.0", "react": ">=18.2.0 || ^19.0.0-0", "react-router": "^5 || ^6 || ^7", "react-router-dom": "^5 || ^6 || ^7" }, "peerDependenciesMeta": { "@remix-run/react": { "optional": true }, "@tanstack/react-router": { "optional": true }, "next": { "optional": true }, "react-router": { "optional": true }, "react-router-dom": { "optional": true } }, "devDependencies": { "@remix-run/react": "^2.17.4", "@size-limit/preset-small-lib": "^12.0.0", "@types/node": "^24.10.10", "@types/react": "catalog:react19", "@types/react-dom": "catalog:react19", "@vitejs/plugin-react": "^5.1.3", "@vitest/browser-playwright": "^4.0.18", "@vitest/coverage-v8": "^4.0.18", "arktype": "^2.1.29", "fast-check": "^4.5.3", "next": "catalog:next", "playwright": "catalog:e2e", "react": "catalog:react19", "react-dom": "catalog:react19", "react-router-dom": "6.30.3", "size-limit": "^12.0.0", "tsdown": "^0.20.1", "typescript": "^5.9.3", "valibot": "^1.2.0", "vitest": "^4.0.18", "vitest-browser-react": "2.0.4", "vitest-package-exports": "^1.1.2", "zod": "^4.3.6" }, "size-limit": [ { "name": "Client", "path": "dist/index.js", "limit": "6 kB" }, { "name": "Client (minimal tree-shaken)", "path": "dist/index.js", "limit": "4.5 kB", "import": "{ useQueryStates, parseAsInteger }" }, { "name": "Server", "path": "dist/server.js", "limit": "3.5 kB" } ] }