juancarmore f70bd04497 Refactors participant role updates to use moderation actions
Unifies backend and frontend handling of participant role changes by shifting from direct role assignment to moderation actions and UI badges. Simplifies signal payloads, removes token/secret mechanics, and clarifies notifications for moderator promotions and removals. Improves maintainability and aligns with updated moderation model.
2026-03-06 11:41:15 +01:00
..
2025-10-15 17:42:04 +02:00
2025-10-15 17:42:04 +02:00

@openvidu-meet/typings

Shared TypeScript type definitions for the OpenVidu Meet monorepo.

📦 Package Structure

typings/
├── src/              # ✏️ Source TypeScript files (.ts only)
│   ├── index.ts      # Main export barrel
│   ├── room-config.ts
│   ├── user.ts
│   └── ...
│
├── dist/             # 📦 Compiled output (generated, DO NOT EDIT)
│   ├── index.d.ts    # Type definitions
│   ├── index.js      # Transpiled JavaScript
│   ├── index.js.map  # Source maps
│   └── ...
│
├── package.json      # Package configuration
├── tsconfig.json     # Base TypeScript config
└── tsconfig.build.json  # Build-specific config

🛠️ Development

Build the package

pnpm run build

This compiles src/*.tsdist/*.{d.ts,js,js.map}

Watch mode (during development)

pnpm run dev

Auto-recompiles when you change files in src/

Clean build artifacts

pnpm run clean

Removes the dist/ directory

📝 Adding New Types

  1. Create your .ts file in src/

    // src/my-new-type.ts
    export interface MyNewType {
      id: string;
      name: string;
    }
    
  2. Export it from src/index.ts

    export * from './my-new-type.js';
    

    Note: Use .js extension in imports (ESM requirement)

  3. Build the package

    pnpm run build
    
  4. The types are now available to all workspaces:

    import { MyNewType } from '@openvidu-meet/typings';
    

🔗 Usage in Workspaces

All workspaces (backend, frontend, webcomponent) depend on this package:

{
  "dependencies": {
    "@openvidu-meet/typings": "workspace:*"
  }
}

The workspace:* protocol tells pnpm to use the local workspace version.