{"owner":"apollographql","repo":"apollo-client","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md"],"skills":{"CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Apollo Client Overview\n\nApollo Client is a comprehensive caching GraphQL client for TypeScript/JavaScript. The project is maintained at version 4.x.x and uses a monorepo structure with npm workspaces.\n\n## Common Development Commands\n\n### Build Commands\n\n- `npm run build` - Build the entire project\n- `npm run build -w codegen` - Build specific workspace (e.g., codegen)\n\n### Testing Commands\n\n- `npm test` - Run all tests with Jest\n- `npm run test:type-benches` - Run type benchmarks\n- `npm run test:memory` - Run memory tests\n\n### Code Quality Commands\n\n- `npm run typecheck` - Run TypeScript type checking\n- `npm run lint` - Run ESLint with extended rules\n- `npm run format` - Format code with Prettier\n- `npm run check:format` - Check if code is formatted correctly\n- `npm run knip` - Check for unused files/exports\n- `npm run madge` - Check for circular dependencies\n\n### Documentation & API\n\n- `npm run extract-api` - Generate API documentation\n- `npm run typedoc` - Generate TypeDoc documentation\n- `npm run docmodel` - Generate API documentation model\n\n### Release & Publishing\n\n- `npx changeset` - Create a changeset for your changes\n\n## High-Level Architecture\n\n### Core Modules\n\n1. **Core (`src/core/`)** - Main Apollo Client implementation\n\n   - `ApolloClient.ts` - Main client class\n   - `ObservableQuery.ts` - Observable query implementation\n   - `QueryManager.ts` - Query lifecycle management\n\n2. **Cache (`src/cache/`)** - Caching layer\n\n   - `inmemory/` - InMemoryCache implementation (default cache)\n   - `core/` - Base cache abstractions\n\n3. **Link (`src/link/`)** - Network layer abstraction\n\n   - `http/` - HTTP link for GraphQL over HTTP\n   - `batch/` - Batch link for combining queries\n   - `error/` - Error handling link\n   - `schema/` - Schema link for local execution\n   - `ws/` - WebSocket link for subscriptions\n\n4. **React Integration (`src/react/`)** - React hooks and components\n\n   - `hooks/` - React hooks (useQuery, useMutation, etc.)\n   - `ssr/` - Server-side rendering support\n   - `context/` - React context providers\n\n5. **Utilities (`src/utilities/`)** - Shared utilities\n\n   - `graphql/` - GraphQL document utilities\n   - `internal/` - Internal utilities\n   - `invariant/` - Error handling utilities\n\n6. **Testing (`src/testing/`)** - Testing utilities\n\n   - `core/` - Core testing utilities\n   - `react/` - React testing utilities (MockedProvider)\n\n7. **Masking (`src/masking/`)** - Data masking for fragment colocation\n\n8. **Local State (`src/local-state/`)** - Local state management\n\n### TypeScript Configuration\n\n- Uses TypeScript 5.7.3 with strict mode enabled\n- Module resolution: NodeNext\n- Target: ESNext\n- Separate tsconfig files for different purposes:\n  - `tsconfig.json` - Main configuration\n  - `tsconfig.build.json` - Build configuration\n  - `tsconfig.tests.json` - Test configuration\n\n### Testing Infrastructure\n\n- Jest with ts-jest for testing\n- Custom test environment extending jsdom\n- React Testing Library for React component tests\n- Multiple React version testing (17, 18, 19)\n- Coverage reporting with lcov\n\n### Build System\n\n- Uses custom build script (`config/build.ts`)\n- API Extractor for API documentation\n- Size limit checking for bundle size\n- Source map verification\n- Publint for package publishing validation\n\n### Code Organization Patterns\n\n1. **Exports** - All public exports go through index files\n2. **Internal APIs** - Use `@apollo/client/*/internal` paths\n3. **Environment-specific builds** - Production/development variants\n4. **Type safety** - Heavy use of TypeScript generics and type inference\n5. **Reactive programming** - Uses RxJS for observables\n6. **Immutability** - Emphasizes immutable data structures\n\n### Contributing Guidelines\n\n- All changes require a changeset (`npx changeset`)\n- PRs should include tests for bug fixes\n- Follow existing code style (enforced by ESLint/Prettier)\n- Large features need design discussion first\n- Code review required from core contributors\n\n### Important Notes\n\n- This is a monorepo with workspaces: main package, codegen, and codemods\n- The project is currently at version 4.x.x (release candidate)\n- Supports multiple peer dependencies (React 17/18/19, GraphQL 16)\n- Uses patch-package for dependency patches\n- Has extensive CI checks that must pass before merging\n\n## Additional Instructions\n\n@.claude/documentation.md\n@.claude/hooks.md\n"},"files":{"CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Apollo Client Overview\n\nApollo Client is a comprehensive caching GraphQL client for TypeScript/JavaScript. The project is maintained at version 4.x.x and uses a monorepo structure with npm workspaces.\n\n## Common Development Commands\n\n### Build Commands\n\n- `npm run build` - Build the entire project\n- `npm run build -w codegen` - Build specific workspace (e.g., codegen)\n\n### Testing Commands\n\n- `npm test` - Run all tests with Jest\n- `npm run test:type-benches` - Run type benchmarks\n- `npm run test:memory` - Run memory tests\n\n### Code Quality Commands\n\n- `npm run typecheck` - Run TypeScript type checking\n- `npm run lint` - Run ESLint with extended rules\n- `npm run format` - Format code with Prettier\n- `npm run check:format` - Check if code is formatted correctly\n- `npm run knip` - Check for unused files/exports\n- `npm run madge` - Check for circular dependencies\n\n### Documentation & API\n\n- `npm run extract-api` - Generate API documentation\n- `npm run typedoc` - Generate TypeDoc documentation\n- `npm run docmodel` - Generate API documentation model\n\n### Release & Publishing\n\n- `npx changeset` - Create a changeset for your changes\n\n## High-Level Architecture\n\n### Core Modules\n\n1. **Core (`src/core/`)** - Main Apollo Client implementation\n\n   - `ApolloClient.ts` - Main client class\n   - `ObservableQuery.ts` - Observable query implementation\n   - `QueryManager.ts` - Query lifecycle management\n\n2. **Cache (`src/cache/`)** - Caching layer\n\n   - `inmemory/` - InMemoryCache implementation (default cache)\n   - `core/` - Base cache abstractions\n\n3. **Link (`src/link/`)** - Network layer abstraction\n\n   - `http/` - HTTP link for GraphQL over HTTP\n   - `batch/` - Batch link for combining queries\n   - `error/` - Error handling link\n   - `schema/` - Schema link for local execution\n   - `ws/` - WebSocket link for subscriptions\n\n4. **React Integration (`src/react/`)** - React hooks and components\n\n   - `hooks/` - React hooks (useQuery, useMutation, etc.)\n   - `ssr/` - Server-side rendering support\n   - `context/` - React context providers\n\n5. **Utilities (`src/utilities/`)** - Shared utilities\n\n   - `graphql/` - GraphQL document utilities\n   - `internal/` - Internal utilities\n   - `invariant/` - Error handling utilities\n\n6. **Testing (`src/testing/`)** - Testing utilities\n\n   - `core/` - Core testing utilities\n   - `react/` - React testing utilities (MockedProvider)\n\n7. **Masking (`src/masking/`)** - Data masking for fragment colocation\n\n8. **Local State (`src/local-state/`)** - Local state management\n\n### TypeScript Configuration\n\n- Uses TypeScript 5.7.3 with strict mode enabled\n- Module resolution: NodeNext\n- Target: ESNext\n- Separate tsconfig files for different purposes:\n  - `tsconfig.json` - Main configuration\n  - `tsconfig.build.json` - Build configuration\n  - `tsconfig.tests.json` - Test configuration\n\n### Testing Infrastructure\n\n- Jest with ts-jest for testing\n- Custom test environment extending jsdom\n- React Testing Library for React component tests\n- Multiple React version testing (17, 18, 19)\n- Coverage reporting with lcov\n\n### Build System\n\n- Uses custom build script (`config/build.ts`)\n- API Extractor for API documentation\n- Size limit checking for bundle size\n- Source map verification\n- Publint for package publishing validation\n\n### Code Organization Patterns\n\n1. **Exports** - All public exports go through index files\n2. **Internal APIs** - Use `@apollo/client/*/internal` paths\n3. **Environment-specific builds** - Production/development variants\n4. **Type safety** - Heavy use of TypeScript generics and type inference\n5. **Reactive programming** - Uses RxJS for observables\n6. **Immutability** - Emphasizes immutable data structures\n\n### Contributing Guidelines\n\n- All changes require a changeset (`npx changeset`)\n- PRs should include tests for bug fixes\n- Follow existing code style (enforced by ESLint/Prettier)\n- Large features need design discussion first\n- Code review required from core contributors\n\n### Important Notes\n\n- This is a monorepo with workspaces: main package, codegen, and codemods\n- The project is currently at version 4.x.x (release candidate)\n- Supports multiple peer dependencies (React 17/18/19, GraphQL 16)\n- Uses patch-package for dependency patches\n- Has extensive CI checks that must pass before merging\n\n## Additional Instructions\n\n@.claude/documentation.md\n@.claude/hooks.md\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Apollo Client Overview\n\nApollo Client is a comprehensive caching GraphQL client for TypeScript/JavaScript. The project is maintained at version 4.x.x and uses a monorepo structure with npm workspaces.\n\n## Common Development Commands\n\n### Build Commands\n\n- `npm run build` - Build the entire project\n- `npm run build -w codegen` - Build specific workspace (e.g., codegen)\n\n### Testing Commands\n\n- `npm test` - Run all tests with Jest\n- `npm run test:type-benches` - Run type benchmarks\n- `npm run test:memory` - Run memory tests\n\n### Code Quality Commands\n\n- `npm run typecheck` - Run TypeScript type checking\n- `npm run lint` - Run ESLint with extended rules\n- `npm run format` - Format code with Prettier\n- `npm run check:format` - Check if code is formatted correctly\n- `npm run knip` - Check for unused files/exports\n- `npm run madge` - Check for circular dependencies\n\n### Documentation & API\n\n- `npm run extract-api` - Generate API documentation\n- `npm run typedoc` - Generate TypeDoc documentation\n- `npm run docmodel` - Generate API documentation model\n\n### Release & Publishing\n\n- `npx changeset` - Create a changeset for your changes\n\n## High-Level Architecture\n\n### Core Modules\n\n1. **Core (`src/core/`)** - Main Apollo Client implementation\n\n   - `ApolloClient.ts` - Main client class\n   - `ObservableQuery.ts` - Observable query implementation\n   - `QueryManager.ts` - Query lifecycle management\n\n2. **Cache (`src/cache/`)** - Caching layer\n\n   - `inmemory/` - InMemoryCache implementation (default cache)\n   - `core/` - Base cache abstractions\n\n3. **Link (`src/link/`)** - Network layer abstraction\n\n   - `http/` - HTTP link for GraphQL over HTTP\n   - `batch/` - Batch link for combining queries\n   - `error/` - Error handling link\n   - `schema/` - Schema link for local execution\n   - `ws/` - WebSocket link for subscriptions\n\n4. **React Integration (`src/react/`)** - React hooks and components\n\n   - `hooks/` - React hooks (useQuery, useMutation, etc.)\n   - `ssr/` - Server-side rendering support\n   - `context/` - React context providers\n\n5. **Utilities (`src/utilities/`)** - Shared utilities\n\n   - `graphql/` - GraphQL document utilities\n   - `internal/` - Internal utilities\n   - `invariant/` - Error handling utilities\n\n6. **Testing (`src/testing/`)** - Testing utilities\n\n   - `core/` - Core testing utilities\n   - `react/` - React testing utilities (MockedProvider)\n\n7. **Masking (`src/masking/`)** - Data masking for fragment colocation\n\n8. **Local State (`src/local-state/`)** - Local state management\n\n### TypeScript Configuration\n\n- Uses TypeScript 5.7.3 with strict mode enabled\n- Module resolution: NodeNext\n- Target: ESNext\n- Separate tsconfig files for different purposes:\n  - `tsconfig.json` - Main configuration\n  - `tsconfig.build.json` - Build configuration\n  - `tsconfig.tests.json` - Test configuration\n\n### Testing Infrastructure\n\n- Jest with ts-jest for testing\n- Custom test environment extending jsdom\n- React Testing Library for React component tests\n- Multiple React version testing (17, 18, 19)\n- Coverage reporting with lcov\n\n### Build System\n\n- Uses custom build script (`config/build.ts`)\n- API Extractor for API documentation\n- Size limit checking for bundle size\n- Source map verification\n- Publint for package publishing validation\n\n### Code Organization Patterns\n\n1. **Exports** - All public exports go through index files\n2. **Internal APIs** - Use `@apollo/client/*/internal` paths\n3. **Environment-specific builds** - Production/development variants\n4. **Type safety** - Heavy use of TypeScript generics and type inference\n5. **Reactive programming** - Uses RxJS for observables\n6. **Immutability** - Emphasizes immutable data structures\n\n### Contributing Guidelines\n\n- All changes require a changeset (`npx changeset`)\n- PRs should include tests for bug fixes\n- Follow existing code style (enforced by ESLint/Prettier)\n- Large features need design discussion first\n- Code review required from core contributors\n\n### Important Notes\n\n- This is a monorepo with workspaces: main package, codegen, and codemods\n- The project is currently at version 4.x.x (release candidate)\n- Supports multiple peer dependencies (React 17/18/19, GraphQL 16)\n- Uses patch-package for dependency patches\n- Has extensive CI checks that must pass before merging\n\n## Additional Instructions\n\n@.claude/documentation.md\n@.claude/hooks.md\n","category":"root","tokens":1122}]}