Tablet Command Sync Settings
npm install tabletcommand-sync-settingsA TypeScript library for managing and formatting user settings in the Tablet Command ecosystem. This package centralizes the logic for computing user-specific settings by merging department configurations, user preferences, agency settings, and environmental configurations.
``bash`
npm run build
`bash`
npm test
`bash`
npm run lint
Before publishing a new version, follow these steps to keep dependencies up to date:
#### 1. Install npm-check-updates (one-time setup)
`bash`
npm i -g npm-check-updates
#### 2. Update Minor Versions
Run this command in the same folder where package.json is located:
`bash`
npx ncu -i --target minor
Review and select packages that are safe to update, such as:
- Development tools: cspell, eslint, mocha, chai, @types/*tabletcommand-backend-models
- Internal packages: (e.g., 7.4.15 → 7.4.34)
#### 3. Check for Major Version Updates
Run without the --target minor flag to see all available upgrades:
`bash`
npx ncu -i
Evaluate each major version upgrade carefully:
##### Examples of Safe to Upgrade
- uuid: Compatible upgrades from v9 → v10 → v11 → v12 → latest
- mocha/chai: Generally compatible across versions
- Development dependencies: Usually safe to upgrade
##### Proceed with Caution
- @types/node: Match your Node.js environment version
- Example: If running Node.js 22.x, use @types/node ^22.x.x, NOT ^25.x.x
- @esri/@arcgis packages: Do NOT upgrade without testing - breaking changes common
- redis packages: Incompatible changes between major versions
- Note: Current test mocking libraries don't support the latest Node.js Redis package
#### 4. Track Outdated Dependencies
For packages that cannot be safely upgraded:
- Create a story to track the outdated dependency
- Document why it can't be upgraded
- Note possible solutions or blockers
#### 5. Verify Security Alerts
After updating and pushing changes, verify that Dependabot alerts are cleared:
https://github.com/TabletCommand/tabletcommand-sync-settings/security/dependabot
- Always test after upgrading dependencies
- Review changelogs for major version bumps
- Run the full test suite before publishing
- Keep @types/node` aligned with your Node.js version
- Document any upgrade blockers or compatibility issues
https://github.com/TabletCommand/tabletcommand-sync-settings