{ "name": "jotai", "description": "👻 Primitive and flexible state management for React", "private": true, "type": "commonjs", "version": "2.10.2", "main": "./index.js", "types": "./index.d.ts", "typesVersions": { ">=4.8": { "esm/*": [ "esm/*" ], "*": [ "*" ] }, ">=3.8": { "esm/*": [ "ts3.8/*" ], "*": [ "ts3.8/*" ] }, "*": { "esm/*": [ "ts_version_3.8_and_above_is_required.d.ts" ], "*": [ "ts_version_3.8_and_above_is_required.d.ts" ] } }, "exports": { "./package.json": "./package.json", ".": { "import": { "types": "./esm/index.d.mts", "default": "./esm/index.mjs" }, "default": { "types": "./index.d.ts", "default": "./index.js" } }, "./*": { "import": { "types": "./esm/*.d.mts", "default": "./esm/*.mjs" }, "default": { "types": "./*.d.ts", "default": "./*.js" } } }, "files": [ "**" ], "sideEffects": false, "scripts": { "prebuild": "shx rm -rf dist", "build": "pnpm run prebuild && pnpm run '/^build:.*/' && pnpm run postbuild", "build-watch": "pnpm run '/^build:.*/' --watch", "build:base": "rollup -c", "build:utils": "rollup -c --config-utils", "build:babel:plugin-debug-label": "rollup -c --config-babel_plugin-debug-label", "build:babel:plugin-react-refresh": "rollup -c --config-babel_plugin-react-refresh", "build:babel:preset": "rollup -c --config-babel_preset", "build:vanilla": "rollup -c --config-vanilla", "build:vanilla:utils": "rollup -c --config-vanilla_utils", "build:react": "rollup -c --config-react --client-only", "build:react:utils": "rollup -c --config-react_utils --client-only", "postbuild": "pnpm patch-d-ts && pnpm copy && pnpm patch-ts3.8 && pnpm patch-old-ts && pnpm patch-esm-ts && pnpm patch-readme", "prettier": "prettier '*.{js,json,md}' '{src,tests,benchmarks,docs}/**/*.{ts,tsx,md,mdx}' --write", "eslint": "eslint --fix --no-eslintrc --c .eslintrc.json '*.{js,ts}' '{src,tests,benchmarks}/**/*.{ts,tsx}'", "test": "pnpm run '/^test:.*/'", "test:format": "prettier '*.{js,json,md}' '{src,tests,benchmarks,docs}/**/*.{ts,tsx,md,mdx}' --list-different", "test:types": "tsc --noEmit", "test:lint": "eslint --no-eslintrc --c .eslintrc.json '*.{js,ts}' '{src,tests,benchmarks}/**/*.{ts,tsx}'", "test:spec": "vitest run", "test-build:spec": "vitest run", "patch-d-ts": "node -e \"var {entries}=require('./rollup.config.js');require('shelljs').find('dist/**/*.d.ts').forEach(f=>{entries.forEach(({find,replacement})=>require('shelljs').sed('-i',new RegExp(' from \\''+find.source.slice(0,-1)+'\\';$'),' from \\''+replacement+'\\';',f));require('shelljs').sed('-i',/ from '(\\.[^']+)\\.ts';$/,' from \\'\\$1\\';',f)})\"", "copy": "shx cp -r dist/src/* dist/esm && shx cp -r dist/src/* dist && shx rm -rf dist/src && shx rm -rf dist/{src,tests} && downlevel-dts dist dist/ts3.8 --to=3.8 && shx cp package.json readme.md LICENSE dist && json -I -f dist/package.json -e \"this.private=false; this.devDependencies=undefined; this.optionalDependencies=undefined; this.scripts=undefined; this.prettier=undefined;\"", "patch-ts3.8": "node -e \"require('shelljs').find('dist/ts3.8/**/*.d.ts').forEach(f=>require('fs').appendFileSync(f,'declare type Awaited<T> = T extends Promise<infer V> ? V : T;'))\"", "patch-old-ts": "shx touch dist/ts_version_3.8_and_above_is_required.d.ts", "patch-esm-ts": "node -e \"require('shelljs').find('dist/esm/**/*.d.ts').forEach(f=>{var f2=f.replace(/\\.ts$/,'.mts');require('fs').renameSync(f,f2);require('shelljs').sed('-i',/ from '(\\.[^']+)';$/,' from \\'\\$1.mjs\\';',f2);require('shelljs').sed('-i',/^declare module '(\\.[^']+)'/,'declare module \\'\\$1.mjs\\'',f2)})\"", "patch-readme": "shx sed -i 's/.*Jotai \\(dark mode\\).*//' dist/readme.md" }, "engines": { "node": ">=12.20.0" }, "prettier": { "semi": false, "singleQuote": true }, "repository": { "type": "git", "url": "git+https://github.com/pmndrs/jotai.git" }, "keywords": [ "react", "state", "manager", "management", "recoil", "store" ], "author": "Daishi Kato", "contributors": [], "license": "MIT", "bugs": { "url": "https://github.com/pmndrs/jotai/issues" }, "homepage": "https://github.com/pmndrs/jotai", "packageManager": "pnpm@8.15.0", "devDependencies": { "@babel/core": "^7.26.0", "@babel/plugin-transform-react-jsx": "^7.25.9", "@babel/plugin-transform-typescript": "^7.25.9", "@babel/preset-env": "^7.26.0", "@babel/template": "^7.25.9", "@rollup/plugin-alias": "^5.1.1", "@rollup/plugin-babel": "^6.0.4", "@rollup/plugin-node-resolve": "^15.3.0", "@rollup/plugin-replace": "^6.0.1", "@rollup/plugin-terser": "^0.4.4", "@rollup/plugin-typescript": "^12.1.1", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.0.1", "@testing-library/user-event": "^14.5.2", "@types/babel__core": "^7.20.5", "@types/babel__template": "^7.4.4", "@types/node": "^22.9.0", "@types/react": "^18.3.12", "@types/react-dom": "^18.3.1", "@typescript-eslint/eslint-plugin": "^8.13.0", "@typescript-eslint/parser": "^8.13.0", "@vitest/coverage-v8": "^2.1.4", "@vitest/eslint-plugin": "^1.1.8", "@vitest/ui": "^2.1.4", "benny": "^3.7.1", "downlevel-dts": "^0.11.0", "esbuild": "^0.24.0", "eslint": "8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-import-resolver-alias": "^1.1.2", "eslint-plugin-import": "^2.31.0", "eslint-plugin-prettier": "^5.2.1", "eslint-plugin-react": "^7.37.2", "eslint-plugin-react-compiler": "19.0.0-beta-a7bf2bd-20241110", "eslint-plugin-react-hooks": "^5.0.0", "eslint-plugin-testing-library": "^6.4.0", "jest-leak-detector": "^29.7.0", "jsdom": "^25.0.1", "json": "^11.0.0", "prettier": "^3.3.3", "react": "19.0.0-rc.0", "react-dom": "19.0.0-rc.0", "rollup": "^4.25.0", "rollup-plugin-banner2": "^1.3.0", "rollup-plugin-esbuild": "^6.1.1", "rxjs": "^7.8.1", "shelljs": "^0.8.5", "shx": "^0.3.4", "ts-expect": "^1.3.0", "typescript": "^5.6.3", "vitest": "^2.1.4", "wonka": "^6.3.4" }, "peerDependencies": { "@types/react": ">=17.0.0", "react": ">=17.0.0" }, "peerDependenciesMeta": { "@types/react": { "optional": true }, "react": { "optional": true } }}