UNPKG

expo-router

Version:

Expo Router is a file-based router for React Native and web applications.

389 lines • 11.3 kB
{ "name": "expo-router", "version": "58.0.30", "description": "Expo Router is a file-based router for React Native and web applications.", "keywords": [ "expo", "react-native" ], "homepage": "https://docs.expo.dev/routing/introduction/", "bugs": { "url": "https://github.com/expo/expo/issues" }, "license": "MIT", "author": "650 Industries, Inc.", "repository": { "type": "git", "url": "https://github.com/expo/expo.git", "directory": "packages/expo-router" }, "files": [ "link", "android", "!android/.gitignore", "!android/build/**", "local-maven-repo", "assets", "build", "internal", "vendor", "_ctx-html.js", "_ctx-shared.js", "_ctx.*", "_error.js", "app.plugin.js", "babel.js", "entry-classic.js", "entry.js", "expo-module.config.json", "index.d.ts", "ios", "node", "plugin", "rsc", "_async-server-import.js" ], "sideEffects": [ "rsc/entry.js", "entry-classic.js", "entry.js" ], "main": "build/index.js", "types": "build/index.d.ts", "exports": { ".": { "types": { "expo-source": "./src/index.tsx", "default": "./build/index.d.ts" }, "expo-source": "./src/index.tsx", "default": "./build/index.js" }, "./internal/*": { "types": { "expo-source": "./src/internal/*.ts", "default": "./build/internal/*.d.ts" }, "expo-source": "./src/internal/*.ts", "default": "./build/internal/*.js" }, "./build/Route": { "types": { "expo-source": "./src/Route.tsx", "default": "./build/Route.d.ts" }, "expo-source": "./src/Route.tsx", "default": "./build/Route.js" }, "./build/matchers": { "types": { "expo-source": "./src/matchers.tsx", "default": "./build/matchers.d.ts" }, "expo-source": "./src/matchers.tsx", "default": "./build/matchers.js" }, "./build/*.js": { "types": { "expo-source": "./src/*.ts", "default": "./build/*.d.ts" }, "expo-source": "./src/*.ts", "default": "./build/*.js" }, "./build/*": { "types": { "expo-source": "./src/*.ts", "default": "./build/*.d.ts" }, "expo-source": "./src/*.ts", "default": "./build/*.js" }, "./drawer": { "types": { "expo-source": "./src/layouts/Drawer.tsx", "default": "./build/layouts/Drawer.d.ts" }, "expo-source": "./src/layouts/Drawer.tsx", "default": "./build/layouts/Drawer.js" }, "./head": { "types": { "expo-source": "./src/head/index.ts", "default": "./build/head/index.d.ts" }, "expo-source": "./src/head/index.ts", "default": "./build/head/index.js" }, "./html": { "types": { "expo-source": "./src/html.ts", "default": "./build/html.d.ts" }, "expo-source": "./src/html.ts", "default": "./build/html.js" }, "./js-stack": { "types": { "expo-source": "./src/layouts/JSStack.tsx", "default": "./build/layouts/JSStack.d.ts" }, "expo-source": "./src/layouts/JSStack.tsx", "default": "./build/layouts/JSStack.js" }, "./js-tabs": { "types": { "expo-source": "./src/layouts/Tabs.tsx", "default": "./build/layouts/Tabs.d.ts" }, "expo-source": "./src/layouts/Tabs.tsx", "default": "./build/layouts/Tabs.js" }, "./js-top-tabs": { "types": { "expo-source": "./src/layouts/TopTabs.tsx", "default": "./build/layouts/TopTabs.d.ts" }, "expo-source": "./src/layouts/TopTabs.tsx", "default": "./build/layouts/TopTabs.js" }, "./native-stack": { "types": { "expo-source": "./src/react-navigation/native-stack/index.tsx", "default": "./build/react-navigation/native-stack/index.d.ts" }, "expo-source": "./src/react-navigation/native-stack/index.tsx", "default": "./build/react-navigation/native-stack/index.js" }, "./react-navigation": { "types": { "expo-source": "./src/react-navigation/index.ts", "default": "./build/react-navigation/index.d.ts" }, "expo-source": "./src/react-navigation/index.ts", "default": "./build/react-navigation/index.js" }, "./server": { "types": { "expo-source": "./src/server/index.ts", "default": "./build/server/index.d.ts" }, "expo-source": "./src/server/index.ts", "default": "./build/server/index.js" }, "./stack": { "types": { "expo-source": "./src/stack.ts", "default": "./build/stack.d.ts" }, "expo-source": "./src/stack.ts", "default": "./build/stack.js" }, "./tabs": { "types": { "expo-source": "./src/layouts/Tabs.tsx", "default": "./build/layouts/Tabs.d.ts" }, "expo-source": "./src/layouts/Tabs.tsx", "default": "./build/layouts/Tabs.js" }, "./testing-library": { "types": { "expo-source": "./src/testing-library/index.tsx", "default": "./build/testing-library/index.d.ts" }, "expo-source": "./src/testing-library/index.tsx", "default": "./build/testing-library/index.js" }, "./ui": { "types": { "expo-source": "./src/ui/index.ts", "default": "./build/ui/index.d.ts" }, "expo-source": "./src/ui/index.ts", "default": "./build/ui/index.js" }, "./native-tabs": { "types": { "expo-source": "./src/native-tabs/index.ts", "default": "./build/native-tabs/index.d.ts" }, "expo-source": "./src/native-tabs/index.ts", "default": "./build/native-tabs/index.js" }, "./unstable-native-tabs": { "types": { "expo-source": "./src/unstable-native-tabs.ts", "default": "./build/unstable-native-tabs.d.ts" }, "expo-source": "./src/unstable-native-tabs.ts", "default": "./build/unstable-native-tabs.js" }, "./unstable-split-view": { "types": { "expo-source": "./src/split-view/index.ts", "default": "./build/split-view/index.d.ts" }, "expo-source": "./src/split-view/index.ts", "default": "./build/split-view/index.js" }, "./rsc": { "types": { "expo-source": "./src/rsc/exports.tsx", "default": "./build/rsc/exports.d.ts" }, "expo-source": "./src/rsc/exports.tsx", "default": "./build/rsc/exports.js" }, "./rsc/internal": { "types": { "expo-source": "./src/rsc/router/host.tsx", "default": "./build/rsc/router/host.d.ts" }, "expo-source": "./src/rsc/router/host.tsx", "default": "./build/rsc/router/host.js" }, "./link": { "types": "./link/index.d.ts", "default": "./link/index.js" }, "./rsc/headers": { "types": "./rsc/headers.d.ts", "default": "./rsc/headers.js" }, "./rsc/headers.js": { "types": "./rsc/headers.d.ts", "default": "./rsc/headers.js" }, "./_ctx-html": "./_ctx-html.js", "./_ctx-shared": "./_ctx-shared.js", "./_ctx": { "types": "./_ctx.d.ts", "browser": "./_ctx.web.js", "default": "./_ctx.js" }, "./_error.js": "./_error.js", "./_error": "./_error.js", "./entry-classic.js": "./entry-classic.js", "./entry-classic": "./entry-classic.js", "./entry.js": "./entry.js", "./entry": "./entry.js", "./rsc/entry": "./rsc/entry.js", "./rsc/entry.js": "./rsc/entry.js", "./assets/*": "./assets/*", "./app.plugin.js": "./app.plugin.js", "./plugin": "./plugin/build/index.js", "./package.json": "./package.json" }, "dependencies": { "@expo/log-box": "^58.0.15", "@expo/metro-runtime": "^58.0.17", "@expo/schema-utils": "^58.0.3", "@radix-ui/react-slot": "^1.2.0", "@radix-ui/react-tabs": "^1.1.12", "@react-native-masked-view/masked-view": "^0.3.2", "@react-native/normalize-colors": "0.88.1", "client-only": "^0.0.1", "expo-glass-effect": "^58.0.5", "expo-server": "^58.0.6", "expo-status-bar": "^58.0.4", "nanoid": "^3.3.18", "react-fast-compare": "^3.2.2", "react-is": "^19.1.0", "react-native-drawer-layout": "^4.2.12", "react-native-screens": "^4.30.1 || ^5.0.0-alpha.3", "server-only": "^0.0.1", "sf-symbols-typescript": "^2.1.0", "standard-navigation": "^0.0.5" }, "devDependencies": { "@expo/ui": "^58.0.27", "@jest/globals": "^30.0.0", "@testing-library/dom": "^10.4.0", "@testing-library/jest-dom": "^6.9.1", "@testing-library/react": "^16.3.0", "@testing-library/react-native": "^14.0.1", "@testing-library/user-event": "^14.6.1", "@types/jest": "^30.0.0", "@types/node": "^22.14.0", "@types/react": "~19.3.0", "@types/react-dom": "^19.1.7", "@types/react-is": "^19.0.0", "expect": "^30.0.0", "expect-type": "^1.3.0", "expo-symbols": "^58.0.4", "immer": "^10.1.1", "react-native-gesture-handler": "~3.2.1", "react-native-pager-view": "^8.0.2", "react-native-reanimated": "4.7.0", "react-native-safe-area-context": "~5.9.1", "react-native-tab-view": "^4.3.0", "react-native-web": "~0.21.4", "react-native-worklets": "0.13.0", "react-server-dom-webpack": "~19.0.8" }, "peerDependencies": { "@expo/log-box": "^58.0.15", "@expo/metro-runtime": "^58.0.17", "@expo/ui": "^58.0.27", "@testing-library/react-native": ">= 14.0.0", "expo": "*", "expo-constants": "^58.0.15", "expo-linking": "^58.0.16", "expo-symbols": "^58.0.4", "react": "*", "react-dom": "*", "react-native": "*", "react-native-gesture-handler": "*", "react-native-reanimated": "*", "react-native-safe-area-context": ">= 5.4.0", "react-native-screens": "^4.30.1 || ^5.0.0-alpha.3", "react-native-web": "*", "react-native-worklets": "*", "react-server-dom-webpack": "~19.0.4 || ~19.1.5 || ~19.2.4 || ~19.3.0" }, "peerDependenciesMeta": { "@expo/ui": { "optional": true }, "expo-symbols": { "optional": true }, "@testing-library/react-native": { "optional": true }, "react-dom": { "optional": true }, "react-native-gesture-handler": { "optional": true }, "react-native-reanimated": { "optional": true }, "react-native-web": { "optional": true }, "react-native-worklets": { "optional": true }, "react-server-dom-webpack": { "optional": true } }, "scripts": { "precompile-android": "et prebuild-android-package-for-publish", "build": "pnpm run build:lib && pnpm run build:plugin", "build:lib": "expo-build cjs:src", "build:plugin": "expo-build --base plugin cjs:src", "clean": "expo-module clean", "lint": "oxlint --config oxlint.config.mjs .", "format": "expo-module format", "swift:format": "../../scripts/swift-format.sh", "swift:lint": "../../scripts/swift-format.sh --lint", "test": "jest", "expo-module": "expo-module", "depscheck": "expo-module depscheck", "typecheck": "tsc -b tsconfig.all.json" } }