{"owner":"clientIO","repo":"joint","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## Project Overview\n\nJointJS is a JavaScript/TypeScript diagramming library for building visual and no-code/low-code applications. It's a Yarn workspace monorepo with multiple packages.\n\n**Stack:** Node 22.14.0, Yarn 4.18.0, TypeScript 5.8, Grunt (build), QUnit/Jest/Karma (testing)\n\n## Common Commands\n\n```bash\n# Install dependencies\nyarn install\n\n# Build distribution files (runs Grunt)\nyarn dist\n\n# Run all tests (QUnit + Jest + TypeScript checks)\nyarn test\n\n# Run specific test types\nyarn test-server       # Server-side tests (Node.js)\nyarn test-client       # Client-side tests (Browser with Karma)\nyarn test-ts           # TypeScript type definition tests\nyarn test-e2e          # End-to-end tests (Puppeteer)\n\n# Linting\nyarn lint              # Check all packages\nyarn lint-fix          # Auto-fix errors\n\n# Build bundles\nyarn build\nyarn build-bundles\n```\n\n### Running Single Tests\n\nFor joint-core QUnit tests, use Grunt directly:\n```bash\ncd packages/joint-core\ngrunt test:server --file=test/jointjs/paper.js  # Single test file\n```\n\nFor joint-react Jest tests:\n```bash\ncd packages/joint-react\nyarn test -- --testPathPattern=\"ComponentName\"\n```\n\n## Architecture\n\n### Monorepo Packages (`/packages`)\n\n- **@joint/core** - Main diagramming library (MVC architecture, SVG rendering)\n- **@joint/react** - React bindings and hooks (Vite + Storybook)\n- **@joint/layout-directed-graph** - Graph layout algorithms\n- **@joint/layout-msagl** - Microsoft MSAGL layout integration\n- **@joint/shapes-general** - General-purpose diagram shapes\n- **@joint/eslint-config** - Shared ESLint configuration\n\n### Core Library Structure (`/packages/joint-core/src`)\n\nThe library follows an MVC pattern:\n\n- **`mvc/`** - Base MVC components: Model, View, Collection, Events, Dom\n- **`dia/`** - Diagramming API built on MVC:\n  - `Graph.mjs` - Graph data structure and cell management\n  - `Paper.mjs` - SVG canvas and rendering engine\n  - `Element.mjs` / `ElementView.mjs` - Diagram nodes\n  - `Link.mjs` / `LinkView.mjs` - Connections between elements\n- **`g/`** - Geometry library (points, lines, curves, polygons, matrices)\n- **`V/`** - Vectorizer for SVG manipulation\n- **`connectors/`** - Link path strategies (line, curve, bezier, jumpover)\n- **`routers/`** - Link routing algorithms (manhattan, orthogonal, metro)\n- **`anchors/`** - Connection point anchors on elements\n- **`highlighters/`** - Visual highlighting mechanisms\n- **`linkTools/`**, **`elementTools/`** - Interactive manipulation tools\n- **`alg/`** - Graph algorithms (DFS, BFS, shortest path)\n\n### Main Export (`/packages/joint-core/src/core.mjs`)\n\n```javascript\nexport { anchors, linkAnchors, connectionPoints, connectionStrategies,\n         connectors, dia, highlighters, mvc, routers, util,\n         linkTools, elementTools, V, g };\n```\n\n## Test Organization\n\n- **`/packages/joint-core/test/jointjs/`** - QUnit tests for core functionality\n- **`/packages/joint-core/test/geometry/`** - Geometry library tests\n- **`/packages/joint-core/test/vectorizer/`** - SVG vectorizer tests\n- **`/packages/joint-core/test/ts/`** - TypeScript definition validation\n- **`/packages/joint-core/test/e2e/`** - Puppeteer E2E tests\n- **`/packages/joint-react/`** - Jest tests with @testing-library/react\n\n## Key Patterns\n\n- **Change tracking:** Models emit `change:*` events; `changeId` event triggers only when ID actually changes\n- **Workspace commands:** Use `yarn workspaces foreach --all -tvv run <cmd>` for cross-package operations\n- **TypeScript:** Strict mode enabled with `noUnusedLocals`, `noUnusedParameters`, `noImplicitReturns`\n- **ESLint:** Uses flat config format (v9) via `@joint/eslint-config`\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## Project Overview\n\nJointJS is a JavaScript/TypeScript diagramming library for building visual and no-code/low-code applications. It's a Yarn workspace monorepo with multiple packages.\n\n**Stack:** Node 22.14.0, Yarn 4.18.0, TypeScript 5.8, Grunt (build), QUnit/Jest/Karma (testing)\n\n## Common Commands\n\n```bash\n# Install dependencies\nyarn install\n\n# Build distribution files (runs Grunt)\nyarn dist\n\n# Run all tests (QUnit + Jest + TypeScript checks)\nyarn test\n\n# Run specific test types\nyarn test-server       # Server-side tests (Node.js)\nyarn test-client       # Client-side tests (Browser with Karma)\nyarn test-ts           # TypeScript type definition tests\nyarn test-e2e          # End-to-end tests (Puppeteer)\n\n# Linting\nyarn lint              # Check all packages\nyarn lint-fix          # Auto-fix errors\n\n# Build bundles\nyarn build\nyarn build-bundles\n```\n\n### Running Single Tests\n\nFor joint-core QUnit tests, use Grunt directly:\n```bash\ncd packages/joint-core\ngrunt test:server --file=test/jointjs/paper.js  # Single test file\n```\n\nFor joint-react Jest tests:\n```bash\ncd packages/joint-react\nyarn test -- --testPathPattern=\"ComponentName\"\n```\n\n## Architecture\n\n### Monorepo Packages (`/packages`)\n\n- **@joint/core** - Main diagramming library (MVC architecture, SVG rendering)\n- **@joint/react** - React bindings and hooks (Vite + Storybook)\n- **@joint/layout-directed-graph** - Graph layout algorithms\n- **@joint/layout-msagl** - Microsoft MSAGL layout integration\n- **@joint/shapes-general** - General-purpose diagram shapes\n- **@joint/eslint-config** - Shared ESLint configuration\n\n### Core Library Structure (`/packages/joint-core/src`)\n\nThe library follows an MVC pattern:\n\n- **`mvc/`** - Base MVC components: Model, View, Collection, Events, Dom\n- **`dia/`** - Diagramming API built on MVC:\n  - `Graph.mjs` - Graph data structure and cell management\n  - `Paper.mjs` - SVG canvas and rendering engine\n  - `Element.mjs` / `ElementView.mjs` - Diagram nodes\n  - `Link.mjs` / `LinkView.mjs` - Connections between elements\n- **`g/`** - Geometry library (points, lines, curves, polygons, matrices)\n- **`V/`** - Vectorizer for SVG manipulation\n- **`connectors/`** - Link path strategies (line, curve, bezier, jumpover)\n- **`routers/`** - Link routing algorithms (manhattan, orthogonal, metro)\n- **`anchors/`** - Connection point anchors on elements\n- **`highlighters/`** - Visual highlighting mechanisms\n- **`linkTools/`**, **`elementTools/`** - Interactive manipulation tools\n- **`alg/`** - Graph algorithms (DFS, BFS, shortest path)\n\n### Main Export (`/packages/joint-core/src/core.mjs`)\n\n```javascript\nexport { anchors, linkAnchors, connectionPoints, connectionStrategies,\n         connectors, dia, highlighters, mvc, routers, util,\n         linkTools, elementTools, V, g };\n```\n\n## Test Organization\n\n- **`/packages/joint-core/test/jointjs/`** - QUnit tests for core functionality\n- **`/packages/joint-core/test/geometry/`** - Geometry library tests\n- **`/packages/joint-core/test/vectorizer/`** - SVG vectorizer tests\n- **`/packages/joint-core/test/ts/`** - TypeScript definition validation\n- **`/packages/joint-core/test/e2e/`** - Puppeteer E2E tests\n- **`/packages/joint-react/`** - Jest tests with @testing-library/react\n\n## Key Patterns\n\n- **Change tracking:** Models emit `change:*` events; `changeId` event triggers only when ID actually changes\n- **Workspace commands:** Use `yarn workspaces foreach --all -tvv run <cmd>` for cross-package operations\n- **TypeScript:** Strict mode enabled with `noUnusedLocals`, `noUnusedParameters`, `noImplicitReturns`\n- **ESLint:** Uses flat config format (v9) via `@joint/eslint-config`\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## Project Overview\n\nJointJS is a JavaScript/TypeScript diagramming library for building visual and no-code/low-code applications. It's a Yarn workspace monorepo with multiple packages.\n\n**Stack:** Node 22.14.0, Yarn 4.18.0, TypeScript 5.8, Grunt (build), QUnit/Jest/Karma (testing)\n\n## Common Commands\n\n```bash\n# Install dependencies\nyarn install\n\n# Build distribution files (runs Grunt)\nyarn dist\n\n# Run all tests (QUnit + Jest + TypeScript checks)\nyarn test\n\n# Run specific test types\nyarn test-server       # Server-side tests (Node.js)\nyarn test-client       # Client-side tests (Browser with Karma)\nyarn test-ts           # TypeScript type definition tests\nyarn test-e2e          # End-to-end tests (Puppeteer)\n\n# Linting\nyarn lint              # Check all packages\nyarn lint-fix          # Auto-fix errors\n\n# Build bundles\nyarn build\nyarn build-bundles\n```\n\n### Running Single Tests\n\nFor joint-core QUnit tests, use Grunt directly:\n```bash\ncd packages/joint-core\ngrunt test:server --file=test/jointjs/paper.js  # Single test file\n```\n\nFor joint-react Jest tests:\n```bash\ncd packages/joint-react\nyarn test -- --testPathPattern=\"ComponentName\"\n```\n\n## Architecture\n\n### Monorepo Packages (`/packages`)\n\n- **@joint/core** - Main diagramming library (MVC architecture, SVG rendering)\n- **@joint/react** - React bindings and hooks (Vite + Storybook)\n- **@joint/layout-directed-graph** - Graph layout algorithms\n- **@joint/layout-msagl** - Microsoft MSAGL layout integration\n- **@joint/shapes-general** - General-purpose diagram shapes\n- **@joint/eslint-config** - Shared ESLint configuration\n\n### Core Library Structure (`/packages/joint-core/src`)\n\nThe library follows an MVC pattern:\n\n- **`mvc/`** - Base MVC components: Model, View, Collection, Events, Dom\n- **`dia/`** - Diagramming API built on MVC:\n  - `Graph.mjs` - Graph data structure and cell management\n  - `Paper.mjs` - SVG canvas and rendering engine\n  - `Element.mjs` / `ElementView.mjs` - Diagram nodes\n  - `Link.mjs` / `LinkView.mjs` - Connections between elements\n- **`g/`** - Geometry library (points, lines, curves, polygons, matrices)\n- **`V/`** - Vectorizer for SVG manipulation\n- **`connectors/`** - Link path strategies (line, curve, bezier, jumpover)\n- **`routers/`** - Link routing algorithms (manhattan, orthogonal, metro)\n- **`anchors/`** - Connection point anchors on elements\n- **`highlighters/`** - Visual highlighting mechanisms\n- **`linkTools/`**, **`elementTools/`** - Interactive manipulation tools\n- **`alg/`** - Graph algorithms (DFS, BFS, shortest path)\n\n### Main Export (`/packages/joint-core/src/core.mjs`)\n\n```javascript\nexport { anchors, linkAnchors, connectionPoints, connectionStrategies,\n         connectors, dia, highlighters, mvc, routers, util,\n         linkTools, elementTools, V, g };\n```\n\n## Test Organization\n\n- **`/packages/joint-core/test/jointjs/`** - QUnit tests for core functionality\n- **`/packages/joint-core/test/geometry/`** - Geometry library tests\n- **`/packages/joint-core/test/vectorizer/`** - SVG vectorizer tests\n- **`/packages/joint-core/test/ts/`** - TypeScript definition validation\n- **`/packages/joint-core/test/e2e/`** - Puppeteer E2E tests\n- **`/packages/joint-react/`** - Jest tests with @testing-library/react\n\n## Key Patterns\n\n- **Change tracking:** Models emit `change:*` events; `changeId` event triggers only when ID actually changes\n- **Workspace commands:** Use `yarn workspaces foreach --all -tvv run <cmd>` for cross-package operations\n- **TypeScript:** Strict mode enabled with `noUnusedLocals`, `noUnusedParameters`, `noImplicitReturns`\n- **ESLint:** Uses flat config format (v9) via `@joint/eslint-config`\n","category":"root","tokens":941}]}