3.4 KiB
Publishing FromChat Protocol
This guide explains how to publish the @fromchat/protocol package to npm or GitHub Packages.
Prerequisites
- npm account: Create one at npmjs.com
- GitHub account: For GitHub Packages
- Node.js: Version 18 or higher
Publishing to npm
Important: Scoped Package Setup
The package uses the @fromchat scope. You have two options:
Option A: Create an npm organization (Recommended)
- Go to npmjs.com/org/create
- Create an organization named
fromchat - Add yourself as a member
- Then proceed with publishing below
Option B: Use unscoped package name
If you prefer not to create an organization, change the package name in package.json:
{
"name": "fromchat-protocol" // Remove the @fromchat/ scope
}
Then update all imports in your codebase from @fromchat/protocol to fromchat-protocol.
1. Build the package
cd frontend/packages/fromchat-protocol
npm run build
This compiles TypeScript to JavaScript in the dist/ directory.
2. Login to npm
npm login
Enter your npm username, password, and email.
3. Publish
If using scoped package (@fromchat/protocol):
npm publish --access public
If using unscoped package (fromchat-protocol):
npm publish
The --access public flag is required for scoped packages (packages starting with @).
4. Verify
Check your package at: https://www.npmjs.com/package/@fromchat/protocol
5. Update version for future releases
# Patch version (1.0.0 -> 1.0.1)
npm version patch
# Minor version (1.0.0 -> 1.1.0)
npm version minor
# Major version (1.0.0 -> 2.0.0)
npm version major
# Then publish
npm publish --access public
Publishing to GitHub Packages
1. Create a GitHub Personal Access Token
- Go to GitHub Settings → Developer settings → Personal access tokens → Tokens (classic)
- Generate a new token with
write:packagesandread:packagespermissions - Save the token securely
2. Configure npm to use GitHub Packages
Create or edit ~/.npmrc:
@fromchat:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=YOUR_GITHUB_TOKEN
Or add to package.json:
{
"publishConfig": {
"registry": "https://npm.pkg.github.com"
}
}
3. Update package.json
Update the repository URL to match your GitHub repository:
{
"repository": {
"type": "git",
"url": "https://github.com/YOUR_USERNAME/YOUR_REPO.git",
"directory": "frontend/packages/fromchat-protocol"
}
}
4. Build and publish
cd frontend/packages/fromchat-protocol
npm run build
npm publish
5. Install from GitHub Packages
Users can install your package with:
npm install @fromchat/protocol@npm:@fromchat/protocol
Or add to .npmrc:
@fromchat:registry=https://npm.pkg.github.com
Using the Published Package
From npm
npm install @fromchat/protocol
import { FromChatProtocol } from "@fromchat/protocol";
From GitHub Packages
npm install @fromchat/protocol@npm:@fromchat/protocol
Notes
- The package is built to
dist/directory - Source files in
src/are excluded from the published package - Only
dist/andREADME.mdare included in the published package - The package uses ES modules (ESM) format
- TypeScript definitions are included in
dist/