- Update
authorfield in package.json (currently "Your Name") - Update
repository.urlin package.json (currently has placeholder) - Verify
versionnumber follows semver - Review
descriptionfor accuracy - Check
keywordsare relevant
- Review index.js for any hardcoded values
- Ensure no API keys or secrets are exposed
- Verify all console.log statements are appropriate for production
- Check error handling is comprehensive
- Run
npm auditto check for vulnerabilities - Review dependencies are up to date
- Ensure the generated sync hash is cryptographically secure
- Verify config files are stored securely in user's home directory
- Test
synchronizer initcommand - Test
synchronizer startcommand (requires Docker) - Test
synchronizer servicecommand - Test on different operating systems if possible
- Verify the CLI works when installed globally
- README.md is complete and accurate
- Installation instructions are clear
- Usage examples are provided
- Any prerequisites (Docker) are documented
# Run the pre-publish check
node pre-publish-check.js
# Check what files will be published
npm pack --dry-run
# Review the package contents
npm pack
tar -tzf synchronizer-cli-1.0.0.tgz
rm synchronizer-cli-1.0.0.tgz# Login to npm (if not already)
npm login
# Verify you're logged in
npm whoami# Do a dry run first
npm publish --dry-run
# If everything looks good, publish
npm publish
# For scoped packages (if you decide to use one)
# npm publish --access public# Check the package on npm
npm view synchronizer-cli
# Test installation
npm install -g synchronizer-cli
# Verify the CLI works
synchronizer --version
synchronizer --helpBased on the files field in package.json, only these files will be published:
index.js- The main CLI scriptREADME.md- Documentationpackage.json- Package metadata (always included)
The following are explicitly excluded:
node_modules/- Dependencies are installed by userspackage-lock.json- Not needed for libraries.npmignore- Not publishedpre-publish-check.js- Development toolDEPLOYMENT_CHECKLIST.md- This file
-
Sync Hash Generation: The app generates a unique sync hash using:
- Optional user-provided name
- System hostname
- Random 8-byte secret
- SHA-256 hashing
-
Config Storage: User configurations are stored in
~/.synchronizer-cli/config.json- Contains sensitive data (keys, wallets)
- Should have appropriate file permissions
-
Docker Security: The app runs Docker containers
- Uses official
cdrakep/synqchronizer:latestimage - Passes sensitive data as command-line arguments (consider using environment variables instead)
- Uses official
- Add
--versionflag support - Add more robust error handling for Docker operations
- Consider using environment variables instead of CLI args for sensitive data
- Add update notifications
- Add config backup/restore functionality
- Add support for multiple configurations/profiles
- Consider adding tests
- Add TypeScript types or JSDoc comments
If you need to unpublish (only works within 72 hours):
npm unpublish synchronizer-cli@1.0.0To deprecate a version:
npm deprecate synchronizer-cli@1.0.0 "Critical bug, please update"