|
| 1 | +# collect-js-react-private Dependency Map |
| 2 | + |
| 3 | +## Project Structure |
| 4 | + |
| 5 | +`@vgs/collect-js-react` is a React wrapper library for VGS Collect.js. It is a |
| 6 | +single-package Node.js project (yarn v1) that publishes a compiled library with |
| 7 | +no runtime dependencies. |
| 8 | + |
| 9 | +- `src/` — Library source (React components: Fields, Form, Session, provider) |
| 10 | +- `src/tests/` — Unit tests (Jest + Testing Library) |
| 11 | +- `examples/demo/` — Demo app (Vite + React) |
| 12 | +- `examples/compat/` — Cross-version compatibility test fixtures (React 16–19) |
| 13 | +- `scripts/` — Build/release scripts |
| 14 | + |
| 15 | +**Key characteristic:** The `dependencies` field is empty — all npm packages are |
| 16 | +either `peerDependencies` (react, react-dom) or `devDependencies`. This means |
| 17 | +Renovate updates only affect the dev/build/test toolchain, not the published |
| 18 | +package's runtime behavior. |
| 19 | + |
| 20 | +## Dependency Categories |
| 21 | + |
| 22 | +### Always Low Risk (Auto-merge Candidates) |
| 23 | + |
| 24 | +| Pattern | Example | Reason | |
| 25 | +|---------|---------|--------| |
| 26 | +| Type definition packages | `@types/jest`, `@types/node`, `@types/react`, `@types/react-dom` | Type-only, no runtime impact | |
| 27 | +| Test-only dependencies | `@testing-library/dom`, `@testing-library/jest-dom`, `@testing-library/react`, `@testing-library/user-event`, `jest`, `ts-jest` | Test scope only, unit tests validate correctness | |
| 28 | +| Lint/format tools | `prettier`, `eslint-config-prettier`, `eslint-config-standard`, `eslint-config-standard-react` | Code style only, no runtime impact | |
| 29 | +| ESLint plugins (patch/minor) | `eslint-plugin-prettier`, `eslint-plugin-promise`, `eslint-plugin-node`, `eslint-plugin-import`, `eslint-plugin-react` | Lint rules only | |
| 30 | +| Build utilities | `cross-env`, `npm-run-all` | Script runners, no build output impact | |
| 31 | +| Compat-test React aliases | `react-16`, `react-17`, `react-18`, `react-19`, `react-dom-16`, `react-dom-17`, `react-dom-18`, `react-dom-19` | Only used in compat test fixtures | |
| 32 | + |
| 33 | +### Needs Quick Review |
| 34 | + |
| 35 | +| Pattern | Example | Reason | Expected Test Coverage | |
| 36 | +|---------|---------|--------|----------------------| |
| 37 | +| Babel plugins | `@babel/eslint-parser`, `@babel/plugin-transform-react-jsx` | Used in ESLint parsing and JSX transform; minor bumps safe | Lint + build tests | |
| 38 | +| ESLint core (minor) | `eslint` | Lint engine — minor/patch safe | `test:lint` script | |
| 39 | +| TypeScript (patch) | `typescript` | Compiler — patch bumps safe, minor may flag new errors | `build` + `test:unit` | |
| 40 | +| Playwright | `playwright-core` | UI compat tests only | `compat:test:ui` scripts | |
| 41 | +| Replacement packages | `npm-run-all2`, `eslint-plugin-n` | Drop-in replacements for deprecated packages | Full test suite | |
| 42 | + |
| 43 | +### Needs Deep Review |
| 44 | + |
| 45 | +| Pattern | Example | Reason | Expected Test Coverage | |
| 46 | +|---------|---------|--------|----------------------| |
| 47 | +| React / React DOM (peer dep range) | `react`, `react-dom` (dev install) | Dev install matches peer dep range; major bumps affect compat testing | Unit + compat build/UI tests | |
| 48 | +| VGS Collect.js SDK | `@vgs/collect-js` | Core upstream SDK this library wraps — API changes directly affect library behavior | Unit tests + compat tests | |
| 49 | +| TypeScript (major) | `typescript` | Major bumps can break compilation | Build + all tests | |
| 50 | +| Build toolchain | `tsdown`, `vite`, `@vitejs/plugin-react` | Produce the published dist artifacts — changes can affect output bundles | `build`, `demo:build`, `compat:build` | |
| 51 | +| ESLint core (major) | `eslint`, `@typescript-eslint/*` | Major bumps may require config migration | `test:lint` | |
| 52 | +| react-router-dom | `react-router-dom` | Used in demo app; major bumps need migration | `demo:build` | |
| 53 | + |
| 54 | +## Historical Patterns (from PR analysis) |
| 55 | + |
| 56 | +There are currently 10 open Renovate PRs, mostly minor/patch bumps to dev |
| 57 | +tooling: |
| 58 | + |
| 59 | +- **Lint plugins**: eslint-plugin-react, eslint-plugin-import (minor bumps) |
| 60 | +- **Build tools**: postcss (resolution override), typescript (patch), prettier (patch) |
| 61 | +- **Babel**: @babel/plugin-transform-react-jsx (patch) |
| 62 | +- **Replacements**: npm-run-all → npm-run-all2, eslint-plugin-node → eslint-plugin-n |
| 63 | +- **Pin dependencies**: Two PRs to pin react monorepo and other floating deps |
| 64 | + |
| 65 | +The volume is moderate. Most PRs are low-risk dev tooling updates that have been |
| 66 | +open since January 2026, suggesting no active review cadence is in place. |
| 67 | + |
| 68 | +## Renovate Configuration |
| 69 | + |
| 70 | +The `renovate.json` is minimal — it contains only the JSON schema reference and |
| 71 | +no custom configuration: |
| 72 | + |
| 73 | +```json |
| 74 | +{ |
| 75 | + "$schema": "https://docs.renovatebot.com/renovate-schema.json" |
| 76 | +} |
| 77 | +``` |
| 78 | + |
| 79 | +This means Renovate uses the default preset with no custom grouping, automerge |
| 80 | +rules, package rules, or label configuration. The `renovate` label seen on |
| 81 | +existing PRs is likely applied by an org-level Renovate config or default |
| 82 | +behavior. |
0 commit comments