mirror of
https://github.com/lrnselfreliance/wrolpi.git
synced 2026-10-26 19:01:39 -04:00
`semantic-ui-react`, `react-semantic-toasts-2` and `semantic-ui-offline` are
gone from package.json, the lockfile and node_modules -- 19 MB of dependencies
that nothing had imported since the migration finished.
Four things still referenced them and would have broken on uninstall. None was
caught by a build or by jest:
Four test files still ran `jest.mock('react-semantic-toasts-2', ...)` for
components that no longer use it. A jest.mock of a module that does not exist
throws, so the packages could not have come out without this.
`src/components/Download.cy.js` and `cypress/support/component.js` both
imported semantic.min.css. The support file now loads what the app loads --
index.css, the font and token stylesheets, and Mantine's.
The ratchet changes job rather than being deleted. An import of a missing module
fails loudly now, but three quieter mistakes would not: a `className="ui button"`
that styles nothing, a file reaching back through Theme.tsx, and someone
reinstalling a package to "just use one Semantic component". It asserts all
three, plus that package.json names nothing matching /semantic/i.
Two pre-existing problems in the cypress component harness surfaced while
checking the uninstall had not broken it, both fixed because that file had to be
edited anyway:
It imported `react-router-dom`, which is not installed -- this app is on
react-router v7. Dates to 5621d473, so the component suite has been
un-runnable since well before this migration.
Its mount helper supplied no MantineProvider, so every library component threw
-- the same gap test-utils.js had for jest.
The component specs now load and four pass; eleven assertions are still written
against markup from before they stopped running. Repairing those is its own
piece of work, deliberately not bundled in here. The e2e suite is unaffected:
43/43.
80 lines
2 KiB
JSON
80 lines
2 KiB
JSON
{
|
|
"name": "wrolpi-app",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"dependencies": {
|
|
"@acalcutt/maplibre-contour-pmtiles": "^0.1.2",
|
|
"@artsy/fresnel": "^8.5.0",
|
|
"@cypress/react18": "^2.0.1",
|
|
"@mantine/core": "^8.3.18",
|
|
"@mantine/hooks": "^8.3.18",
|
|
"@mantine/notifications": "^8.3.18",
|
|
"@tabler/icons-react": "^3.46.0",
|
|
"@testing-library/react": "^13.4.0",
|
|
"@testing-library/user-event": "^13.5.0",
|
|
"cypress": "^15.20.0",
|
|
"esptool-js": "^0.6.0",
|
|
"lodash": "^4.18.1",
|
|
"maplibre-gl": "^5.24.0",
|
|
"mathjs": "^15.2.0",
|
|
"pmtiles": "^4.4.1",
|
|
"protomaps-themes-base": "^4.5.0",
|
|
"query-string": "^9.4.1",
|
|
"react": "^18.2.0",
|
|
"react-colorful": "^5.8.0",
|
|
"react-dom": "^18.2.0",
|
|
"react-dropzone": "^14.2.3",
|
|
"react-hotkeys-hook": "^5.3.3",
|
|
"react-qr-code": "^2.2.0",
|
|
"react-router": "^7.18.2",
|
|
"react-scripts": "5.0.1",
|
|
"react-stl-viewer": "^2.5.0",
|
|
"three": "^0.185",
|
|
"web-vitals": "^5.3.0"
|
|
},
|
|
"scripts": {
|
|
"start": "react-scripts start",
|
|
"build": "BROWSERSLIST_IGNORE_OLD_DATA=true react-scripts build",
|
|
"test": "react-scripts test",
|
|
"eject": "react-scripts eject",
|
|
"cy:run": "cypress run",
|
|
"cy:open": "cypress open"
|
|
},
|
|
"eslintConfig": {
|
|
"extends": [
|
|
"react-app"
|
|
]
|
|
},
|
|
"browserslist": {
|
|
"production": [
|
|
">0.2%",
|
|
"not dead",
|
|
"not op_mini all"
|
|
],
|
|
"development": [
|
|
"last 1 chrome version",
|
|
"last 1 firefox version",
|
|
"last 1 safari version"
|
|
]
|
|
},
|
|
"devDependencies": {
|
|
"@testing-library/dom": "^10.4.1",
|
|
"@testing-library/jest-dom": "^7.0.0",
|
|
"@types/lodash": "^4.17.24",
|
|
"@types/node": "^26.1.2",
|
|
"@types/react": "^18.3.17",
|
|
"@types/react-dom": "^18.3.5",
|
|
"typescript": "^5.9.3"
|
|
},
|
|
"jest": {
|
|
"transformIgnorePatterns": [
|
|
"node_modules/(?!(react-hotkeys-hook)/)"
|
|
]
|
|
},
|
|
"overrides": {
|
|
"react-scripts": {
|
|
"typescript": "$typescript"
|
|
},
|
|
"fork-ts-checker-webpack-plugin": "^6.5.3"
|
|
}
|
|
}
|