-
Notifications
You must be signed in to change notification settings - Fork 17
New Client SDK #1246
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New Client SDK #1246
Conversation
- Created new client package with version 0.0.1-alpha - Updated package.json with correct name, description, and metadata - Added agent mapping in sw.config.js for build system telemetry - Added TypeScript path mapping in tsconfig.json for module resolution - Package successfully builds and integrates with monorepo tooling 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
- Created new e2e testing package specifically for the client SDK - Updated all imports from '@signalwire/js' to '@signalwire/client' across 53 files - Migrated 12 Call Fabric test files and 36 Video SDK test files - Updated template files and CDN references to use new package - Fixed package naming to follow monorepo conventions (@sw-internal/e2e-client) - Ensures proper separation between JS SDK and Client SDK testing 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
🦋 Changeset detectedLatest commit: 738d498 The changes in this PR will be included in the next version bump. This PR includes changesets to release 4 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
@jpsantosbh looks like the build is failing |
As requested, I have removed the changes from the JS package. @jpsantosbh |
…ignalwire-js into joao/client_package_renamed
- Support muting/unmuting audio and video for all participants by passing memberId: "all" - Export SetAudioFlagsParams type for microphone features support - Update executeAction method to handle special case when memberId === 'all' This ensures feature parity between the js and client packages for the Call Fabric SDK. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
# Conflicts: # .gitignore # internal/e2e-client/tests/callfabric/reattach.spec.ts # packages/client/CHANGELOG.md # packages/client/src/fabric/CallSession.ts # packages/client/src/index.ts
"test": "" | ||
}, | ||
"dependencies": { | ||
"@signalwire/client": "0.0.1-alpha", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we investigate why? Shouldn't it work if the e2e-js
works?
|
||
export type CallMemberUpdatedEventParams = FabricMemberUpdatedEventParams & Brand<'CallMemberUpdatedEventParams'> | ||
export type CallMemberLeftEventParams = FabricMemberLeftEventParams & Brand<'CallMemberLeftEventParams'> | ||
export type CallMemberTalkingEventParams = FabricMemberTalkingEventParams & Brand<'CallMemberTalkingEventParams'> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are we sure these are all the types that we export from the CF SDK?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These are the types emitted by the events, right?
callSession.on('member.talking', (params) =>
Description
Introduce @signalwire/client Package - Call Fabric SDK Refactoring
Type of change
🎯 Overview
This PR introduces the new
@signalwire/client
package, which represents a major refactoring of the Call Fabric SDK from the existing@signalwire/js
package. The new package provides a focused, cleaner API specifically for unified communication applications while maintaining backward compatibility through the original package.🔧 Motivation
The original
@signalwire/js
package has grown to include multiple SDKs (Video, Chat, PubSub, and Call Fabric), leading to:📋 Key Changes
1. Package Structure
@signalwire/client
package focused exclusively on Call Fabric SDK2. Terminology Refactoring: Room → Call
All Fabric-prefixed classes and types have been renamed to use Call terminology:
3. Type System Improvements
Type Aliasing with TypeScript Hack
Implemented a workaround to prevent TypeScript from resolving aliases back to original types:
Prettify Utility for Clean External Types
All exported types now use the
Prettify<>
utility for better IDE experience:4. Simplified API Surface
createClient.ts
,createRoomObject.ts
,joinRoom.ts
💔 Breaking Changes
For @signalwire/js Users
No breaking changes - the original package maintains all existing functionality and exports.
For Early @signalwire/client Adopters
Fabric*
prefixed types and classes are nowCall*
prefixed@signalwire/js
instead)📚 Migration Guide
Migrating from @signalwire/js Fabric SDK to @signalwire/client
Type Migration
✅ Testing
📊 Bundle Size Impact
Expected improvements for Call Fabric-only applications:
🔮 Future Work
@signalwire/browser-common
package@signalwire/js
with migration warnings📝 Documentation Updates
🔍 Review Checklist
📸 Screenshots
This refactoring sets the foundation for a cleaner, more maintainable SDK architecture while providing a better developer experience through improved naming conventions and type definitions.