Files
web/frontend/packages/fromchat-protocol/PUBLISHING.md
T

3.4 KiB

Publishing FromChat Protocol

This guide explains how to publish the @fromchat/protocol package to npm or GitHub Packages.

Prerequisites

  1. npm account: Create one at npmjs.com
  2. GitHub account: For GitHub Packages
  3. 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)

  1. Go to npmjs.com/org/create
  2. Create an organization named fromchat
  3. Add yourself as a member
  4. 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

  1. Go to GitHub Settings → Developer settings → Personal access tokens → Tokens (classic)
  2. Generate a new token with write:packages and read:packages permissions
  3. 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/ and README.md are included in the published package
  • The package uses ES modules (ESM) format
  • TypeScript definitions are included in dist/