CSantosM ecef2844a0 Adds filtering and expansion to room/recording APIs
Introduces filtering capabilities for room and recording list endpoints.

This allows users to query rooms and recordings based on various criteria such as name, status, and other relevant properties.
It also implements expansion support for room properties, enabling retrieval of full object details instead of stubs.

The changes include:
- Defines data models for room and recording filter requests.
- Updates Zod schemas for robust input validation.
- Implements logic for collapsing and expanding room properties, improving API response structure and efficiency.
2026-02-09 13:16:58 +01:00
..
2025-10-15 17:42:04 +02: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.