CSantosM b8e7baf705 Renames expand to extraFields in room API
Updates the room API to use `extraFields` instead of `expand` for including additional data in responses.

This change improves clarity and consistency in the API design.
It also simplifies the filtering logic by explicitly differentiating between
base fields (controlled by `fields`) and extra fields (controlled by `extraFields`).

The changes include:
- Renaming the query parameter and header
- Updating the validation schemas
- Adjusting the filtering logic in the controller and service layers
- Updating the frontend components and services
2026-02-13 16:45:38 +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.