open-index/open-npm huggingface dataset:
npm package: @maestroql/composer
Description: Conduct your SQL queries with precision - a component-based library for orchestrating complex SQL with CTEs, joins, and pagination
Latest version: 1.0.0

# MaestroQL

**Conduct your SQL queries with precision.**

A component-based TypeScript library for orchestrating complex SQL queries with CTEs, joins, and pagination. Think of it as **React for SQL**: reusable components that compose into powerful queries.

---

## [Full Documentation](https://maestroql.dev)

**Visit [maestroql.dev](https://maestroql.dev) for:**
- Getting Started Tutorial
- Complete API Reference
- Real-World Examples
- Performance Guides
- Database Indexing Best Practices

---

## Quick Start

### Installation

```bash
npm install @maestroql/composer
```

### Basic Example

```typescript
import { buildComplexSQL } from '@maestroql/composer';
import type { SQLQuery, WithSubquerySQL } from '@maestroql/composer';

// Define a reusable component
const postComments: WithSubquerySQL = {
  name: "post_comments",
  alias: "pc",
  query: `
    SELECT post_id, JSON_ARRAYAGG(
      JSON_OBJECT('id', id, 'content', content)
    ) as comments
    FROM comments
    GROUP BY post_id
  `,
  joinType: "LEFT JOIN",
  joinOn: "pc.post_id = p.id",
  fields: {
    comments: "COALESCE(pc.comments, JSON_ARRAY())"
  }
};

// Compose it into a query
const postsQuery: SQLQuery = {
  sourceTable: "posts",
  alias: "p",
  fields: { id: "p.id", title: "p.title" },
  withSubqueries: [postComments]
};

// Build and execute
const { query, params } = buildComplexSQL(postsQuery);
const results = await db.query(query, params);
```

## Features

- **Component-Based** - Reusable SQL components
- **Type-Safe** - Full TypeScript support
- **Single Query** - Eliminate N+1 problems
- **Testable** - Test components in isolation
- **Production Ready** - Pagination, sorting, parameter binding

## Documentation

- **[Getting Started](https://maestroql.dev/docs/intro)** - Build your first component in 10 minutes
- **[API Reference](https://maestroql.dev/docs/getting-started)** - Complete interface documentation
- **[Database Indexes](https://maestroql.dev/docs/required-reading/indexes)** - Essential performance guide

## Links

- [Website](https://maestroql.dev)
- [GitHub](https://github.com/breadbored/Maestro-SQL)
- [npm](https://www.npmjs.com/package/@maestroql/composer)

## License

MIT
npm package: @maestrospec/core
Description: Core types and parser for Maestro Spec
Author: BrightBit AI
Latest version: 0.1.0

# @maestrospec/core

> Core types and parser for Maestro Spec

[![npm version](https://badge.fury.io/js/%40maestrospec/core.svg)](https://www.npmjs.com/package/@maestrospec/core)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Status

⚠️ **Alpha** - This package is in early development. The API may change.

## Overview

Part of the [Maestro Spec](https://github.com/brightbitai/maestro-spec) project - a declarative specification language for AI-powered workflow orchestration.

## Installation

```bash
npm install @maestrospec/core
```

## Usage

```typescript
import { getInfo } from '@maestrospec/core';

console.log(getInfo());
```

## Documentation

Full documentation coming soon. See the [Maestro Spec repository](https://github.com/brightbitai/maestro-spec) for more information.

## Contributing

Contributions are welcome! Please see the main [Maestro Spec repository](https://github.com/brightbitai/maestro-spec) for contribution guidelines.

## License

MIT © BrightBit AI
npm package: @maestrospec/linter
Description: Best practices checker for Maestro specs
Author: BrightBit AI
Latest version: 0.1.0

# @maestrospec/linter

> Best practices checker for Maestro specs

[![npm version](https://badge.fury.io/js/%40maestrospec/linter.svg)](https://www.npmjs.com/package/@maestrospec/linter)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Status

⚠️ **Alpha** - This package is in early development. The API may change.

## Overview

Part of the [Maestro Spec](https://github.com/brightbitai/maestro-spec) project - a declarative specification language for AI-powered workflow orchestration.

## Installation

```bash
npm install @maestrospec/linter
```

## Usage

```typescript
import { getInfo } from '@maestrospec/linter';

console.log(getInfo());
```

## Documentation

Full documentation coming soon. See the [Maestro Spec repository](https://github.com/brightbitai/maestro-spec) for more information.

## Contributing

Contributions are welcome! Please see the main [Maestro Spec repository](https://github.com/brightbitai/maestro-spec) for contribution guidelines.

## License

MIT © BrightBit AI
npm package: @maestrospec/sdk
Description: SDK for Maestro Spec (alias to core)
Author: BrightBit AI
Latest version: 0.1.0

# @maestrospec/sdk

> SDK for Maestro Spec (alias to core)

[![npm version](https://badge.fury.io/js/%40maestrospec/sdk.svg)](https://www.npmjs.com/package/@maestrospec/sdk)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Status

⚠️ **Alpha** - This package is in early development. The API may change.

## Overview

Part of the [Maestro Spec](https://github.com/brightbitai/maestro-spec) project - a declarative specification language for AI-powered workflow orchestration.

## Installation

```bash
npm install @maestrospec/sdk
```

## Usage

```typescript
import { getInfo } from '@maestrospec/sdk';

console.log(getInfo());
```

## Documentation

Full documentation coming soon. See the [Maestro Spec repository](https://github.com/brightbitai/maestro-spec) for more information.

## Contributing

Contributions are welcome! Please see the main [Maestro Spec repository](https://github.com/brightbitai/maestro-spec) for contribution guidelines.

## License

MIT © BrightBit AI
npm package: @maestrospec/validator
Description: Validation tool for Maestro specifications
Author: BrightBit AI
Latest version: 0.1.0

# @maestrospec/validator

> Validation tool for Maestro specifications

[![npm version](https://badge.fury.io/js/%40maestrospec/validator.svg)](https://www.npmjs.com/package/@maestrospec/validator)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Status

⚠️ **Alpha** - This package is in early development. The API may change.

## Overview

Part of the [Maestro Spec](https://github.com/brightbitai/maestro-spec) project - a declarative specification language for AI-powered workflow orchestration.

## Installation

```bash
npm install @maestrospec/validator
```

## Usage

```typescript
import { getInfo } from '@maestrospec/validator';

console.log(getInfo());
```

## Documentation

Full documentation coming soon. See the [Maestro Spec repository](https://github.com/brightbitai/maestro-spec) for more information.

## Contributing

Contributions are welcome! Please see the main [Maestro Spec repository](https://github.com/brightbitai/maestro-spec) for contribution guidelines.

## License

MIT © BrightBit AI
npm package: @maestrospec/visualizer
Description: Graph visualization for Maestro workflows
Author: BrightBit AI
Latest version: 0.1.0

# @maestrospec/visualizer

> Graph visualization for Maestro workflows

[![npm version](https://badge.fury.io/js/%40maestrospec/visualizer.svg)](https://www.npmjs.com/package/@maestrospec/visualizer)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

## Status

⚠️ **Alpha** - This package is in early development. The API may change.

## Overview

Part of the [Maestro Spec](https://github.com/brightbitai/maestro-spec) project - a declarative specification language for AI-powered workflow orchestration.

## Installation

```bash
npm install @maestrospec/visualizer
```

## Usage

```typescript
import { getInfo } from '@maestrospec/visualizer';

console.log(getInfo());
```

## Documentation

Full documentation coming soon. See the [Maestro Spec repository](https://github.com/brightbitai/maestro-spec) for more information.

## Contributing

Contributions are welcome! Please see the main [Maestro Spec repository](https://github.com/brightbitai/maestro-spec) for contribution guidelines.

## License

MIT © BrightBit AI
npm package: @maeum/cli-logo
Description: logo disply utility for cli tools
Author: ByungJoon Lee
Latest version: 1.0.0

# @maeum/cli-logo

![ts](https://flat.badgen.net/badge/Built%20With/TypeScript/blue)
[![Download Status](https://img.shields.io/npm/dw/@maeum/cli-logo.svg?style=flat-square)](https://npmcharts.com/compare/@maeum/cli-logo?minimal=true)
[![Github Star](https://img.shields.io/github/stars/maeumjs/cli-logo.svg?style=flat-square)](https://github.com/maeumjs/cli-logo)
[![Github Issues](https://img.shields.io/github/issues/maeumjs/cli-logo)](https://github.com/maeumjs/cli-logo/issues)
[![NPM version](https://img.shields.io/npm/v/@maeum/cli-logo.svg?style=flat-square)](https://www.npmjs.com/package/@maeum/cli-logo)
[![License](https://img.shields.io/npm/l/@maeum/cli-logo.svg?style=flat-square)](https://github.com/maeumjs/cli-logo/blob/master/LICENSE)
[![ci](https://github.com/maeumjs/cli-logo/actions/workflows/ci.yml/badge.svg)](https://github.com/maeumjs/cli-logo/actions/workflows/ci.yml)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)

`cli-logo` is display logo on console. `cli-logo` using [figlet](https://github.com/patorjk/figlet.js) and [chalk](https://github.com/chalk/chalk).

Why?

1. validate `color`, `font` variable
2. can pass figlet option, color and console display (eg. console.log) function

## installation

```bash
npm install @maeum/cli-logo --save
```
npm package: @maeum/error-controller
Description: maeum error controller
Author: ByungJoon Lee
Latest version: 2.7.1

# @maeum/error-controller <!-- omit in toc -->

![ts](https://flat.badgen.net/badge/Built%20With/TypeScript/blue)
[![Download Status](https://img.shields.io/npm/dw/@maeum/error-controller.svg?style=flat-square)](https://npmcharts.com/compare/@maeum/error-controller?minimal=true)
[![Github Star](https://img.shields.io/github/stars/maeumjs/error-controller.svg?style=flat-square)](https://github.com/maeumjs/error-controller)
[![Github Issues](https://img.shields.io/github/issues/maeumjs/error-controller)](https://github.com/maeumjs/error-controller/issues)
[![NPM version](https://img.shields.io/npm/v/@maeum/error-controller.svg?style=flat-square)](https://www.npmjs.com/package/@maeum/error-controller)
[![License](https://img.shields.io/npm/l/@maeum/error-controller.svg?style=flat-square)](https://github.com/maeumjs/error-controller/blob/master/LICENSE)
[![ci](https://github.com/maeumjs/error-controller/actions/workflows/ci.yml/badge.svg)](https://github.com/maeumjs/error-controller/actions/workflows/ci.yml)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)

Error hander extension of the Maeum boilerplate.

## Table of Contents <!-- omit in toc -->

- [Getting Start](#getting-start)
- [How it works?](#how-it-works)

## Getting Start

```bash
npm i @maeum/error-controller --save
```

## How it works?

`@maeum/error-controller` create error handler for `fastify.setErrorHandler` function.

```ts
server.setErrorHandler(
  errorHandler([], {
  [CE_MAEUM_DEFAULT_ERROR_HANDLER.COMMON]: (req, id, param) => getLocales(req.headers['accept-language']).t(id, param),
  [CE_MAEUM_DEFAULT_ERROR_HANDLER.DEFAULT_REST_ERROR]: (req, id, param) => getLocales(req.headers['accept-language']).t(id, param),
}, {
    hooks: {
      [CE_MAEUM_DEFAULT_ERROR_HANDLER.COMMON]: {
        pre: (err: Error & { validation?: ErrorObject[] }, req: FastifyRequest) => {
          req.setRequestError(err);
        },
      },
    },
    encryptor: (code: string): string => {
      if (
        config.server.runMode === CE_RUN_MODE.STAGE ||
        config.server.runMode === CE_RUN_MODE.PRODUCTION
      ) {
        return encrypt(code);
      }

      return code;
    },
  }),
);
```
npm package: @maeum/error-handler
Description: maeum boilerplate error handler creator
Author: ByungJoon Lee
Latest version: 1.0.0

# @maeum/error-handler <!-- omit in toc -->

![ts](https://flat.badgen.net/badge/Built%20With/TypeScript/blue)
[![Download Status](https://img.shields.io/npm/dw/@maeum/error-handler.svg?style=flat-square)](https://npmcharts.com/compare/@maeum/error-handler?minimal=true)
[![Github Star](https://img.shields.io/github/stars/@maeum/error-handler.svg?style=flat-square)](https://github.com/maeumjs/maeum-error-handler)
[![Github Issues](https://img.shields.io/github/issues/maeumjs/maeum-error-handler)](https://github.com/maeumjs/maeum-error-handler/issues)
[![NPM version](https://img.shields.io/npm/v/@maeum/error-handler.svg?style=flat-square)](https://www.npmjs.com/package/@maeum/error-handler)
[![License](https://img.shields.io/npm/l/@maeum/error-handler.svg?style=flat-square)](https://github.com/maeumjs/maeum-error-handler/blob/master/LICENSE)
[![ci](https://github.com/maeumjs/maeum-error-handler/actions/workflows/ci.yml/badge.svg)](https://github.com/maeumjs/maeum-error-handler/actions/workflows/ci.yml)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)

Error hander extension of the Maeum boilerplate.

## Table of Contents <!-- omit in toc -->

- [Getting Start](#getting-start)
- [How it works?](#how-it-works)

## Getting Start

```bash
npm i @maeum/error-handler --save
```

## How it works?

`@maeum/error-handler` create error handler for `fastify.setErrorHandler` function.

```ts
server.setErrorHandler(
  errorHandler([], {
  [CE_MAEUM_DEFAULT_ERROR_HANDLER.COMMON]: (req, id, param) => getLocales(req.headers['accept-language']).t(id, param),
  [CE_MAEUM_DEFAULT_ERROR_HANDLER.DEFAULT_REST_ERROR]: (req, id, param) => getLocales(req.headers['accept-language']).t(id, param),
}, {
    hooks: {
      [CE_MAEUM_DEFAULT_ERROR_HANDLER.COMMON]: {
        pre: (err: Error & { validation?: ErrorObject[] }, req: FastifyRequest) => {
          req.setRequestError(err);
        },
      },
    },
    encryptor: (code: string): string => {
      if (
        config.server.runMode === CE_RUN_MODE.STAGE ||
        config.server.runMode === CE_RUN_MODE.PRODUCTION
      ) {
        return encrypt(code);
      }

      return code;
    },
  }),
);
```
npm package: @maeum/plugins
Description: Maeum server flag plugins
Author: ByungJoon Lee
Latest version: 1.0.0

# Maeum plugins

![ts](https://flat.badgen.net/badge/Built%20With/TypeScript/blue)
[![Download Status](https://img.shields.io/npm/dw/@maeum/plugins.svg?style=flat-square)](https://npmcharts.com/compare/@maeum/plugins?minimal=true)
[![Github Star](https://img.shields.io/github/stars/maeumjs/maeum-plugins.svg?style=flat-square)](https://github.com/maeumjs/maeum-plugins)
[![Github Issues](https://img.shields.io/github/issues-raw/maeumjs/maeum-plugins.svg?style=flat-square)](https://github.com/imjuni/@maeum/plugins/issues)
[![NPM version](https://img.shields.io/npm/v/@maeum/plugins.svg?style=flat-square)](https://www.npmjs.com/package/@maeum/plugins)
[![License](https://img.shields.io/npm/l/@maeum/plugins.svg?style=flat-square)](https://github.com/imjuni/@maeum/plugins/blob/master/LICENSE)
[![ci](https://github.com/maeumjs/maeum-plugins/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/maeumjs/maeum-plugins/actions/workflows/ci.yml)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)

Plugins of the Maeum boilerplate. ResponseTime, Flag variable plugins includes.

## Response-Time Plugin

Response time add on header field.

```ts
import fastify from 'fastify';
import { responseTimePlugin } from '@maeum/plugins';

const server = fastify();

server
  .register(responseTimePlugin, {
    // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server-Timing
    headerKey: 'Server-Time',
    isExecute: () => config.server.runMode !== 'production',
  });
```

| Name | Desc. |
| - | - |
| headerKey | header key for add response time. |
| isExecute | function execution result decide what response time value add or not |

## Request flag Plugin

Varity flags add on request.

```ts
import fastify from 'fastify';
import { requestFlagsPlugin } from '@maeum/plugins';

const server = fastify();

server
  .register(requestFlagsPlugin);
```

| function | Desc. |
| - | - |
| setRequestLogging | that indicate what request is logged or not |
| getRequestLogging | get request is logged |
| setRequestError | that store what error of request |
| getRequestError | get error in request |
| setRequestPayload | that store what payload in reply |
| getRequestPayload | get payload in reply |

This function need manual works. For example, getRequestError return error before you have to set error variable using setRequestError.
npm package: @maexsoftware/datastore
Description: Immutable datastore objects
Author: Maex Software
Latest version: 1.2.4

# Datastore

[![Build Status](https://travis-ci.org/maexsoftware/datastore.svg?branch=master)](https://travis-ci.org/maexsoftware/datastore)
[![npm version](https://badge.fury.io/js/%40maexsoftware%2Fdatastore.svg)](https://badge.fury.io/js/%40maexsoftware%2Fdatastore)
[![Coverage Status](https://coveralls.io/repos/github/maexsoftware/datastore/badge.svg?branch=master)](https://coveralls.io/github/maexsoftware/datastore?branch=master)

## Installing

```sh
$ npm install --save @maexsoftware/datastore
```

## Store

### Usage

```js
// Import
const { Store } = require('@maexsoftware/datastore');

// Initialize store
const store = new Store('testStore', 0);

// Add modifier functions to store
store.modifier('increment', (state, value) => state + value);
store.modifier('decrement', (state, value) => state - value);

// Call modifier functions to create modifications to the store state
store.modify.increment(10);
store.modify.decrement(5);

// Calculate new state value
store.state(); // => 5

// The base state does not change
store.baseState; // => 0

// Unless a commit has been made
store.commit();
store.baseState; // => 5

// Stores also have events
store.subscribe('update', function updateListener (modification) {
  console.log('update ran with:', modification);
});

// This will publish an 'update' event
// console will log:
// 'update ran with: { type: increment, value: 100 }'
store.modify.increment(100);

// Events also publish 'updated' events when commits are performed
// console will log:
// 'updated with new state: 105'
const subscription = store.subscribe('updated', function updatedListener (state) {
  console.log('updated with new state:', state);
});

store.commit();

// And of course you can unsubscribe the listener at any point
subscription.unsubscribe();
```
npm package: @maf/rest-service
Description: maf rest service
Author: alekzonder
Latest version: 0.20.0

# @maf/rest-service

[![npm version](https://badge.fury.io/js/%40maf%2Frest-service.svg)](https://badge.fury.io/js/%40maf%2Frest-service)

## install

```
npm i --save @maf/rest-service@latest
# OR
yarn add @maf/rest-service@latest
```

## usage


### simple

```js
require('@maf/rest-service')('simple-service', {port: 4000})
    .setEndpoint('/api/v1')
    .addMethods({
        'GET /todos': (req, res) => {
            req.logger.debug(`req.id = ${req.ctx.id}`);

            res.result([1, 2, 3]);
        }
    })
    .start();

// curl -v http://localhost:4000/api/v1/todos
```

### with request validation

```js
const service = require('@maf/rest-service')('myservice');

service.setEndpoint('/api/v1');

const joi = service.joi;

service.addMethods({
    'GET /todos': {
        schema: {
            query: joi.object().keys({
                limit: joi.number().integer().min(1).max(5).default(5)
            })
        },

        handler: (req, res) => {
            const todos = [1, 2, 3, 4, 5];
            res.result(todos.slice(0, req.query.limit));
        }
    }
});

service.start();

// curl -v http://localhost:3000/api/v1/todos
// curl -v http://localhost:3000/api/v1/todos?limit=3
// curl -v http://localhost:3000/api/v1/todos?limit=10
```

### todos REST API example

see [examples/todos-rest-api](https://github.com/mafjs/rest-service/blob/master/examples/todos-rest-api/index.js)

<!-- more examples => https://github.com/mafjs/rest-service-example -->
npm package: @mafalda-sfu/find-imports
Description: Find all imported modules in JavaScript files.
Author: Cheton Wu
Latest version: 2.0.1

# find-imports [![build status](https://travis-ci.org/cheton/find-imports.svg?branch=master)](https://travis-ci.org/cheton/find-imports) [![Coverage Status](https://coveralls.io/repos/github/cheton/find-imports/badge.svg?branch=master)](https://coveralls.io/github/cheton/find-imports?branch=master)

[![NPM](https://nodei.co/npm/find-imports.png?downloads=true&stars=true)](https://www.npmjs.com/package/find-imports)

Find all imported modules in JavaScript files. It's useful for bundling 3rd-party libraries into a vendor.js using webpack. For example:

```js
var webpack = require('webpack');
var findImports = require('find-imports');

// Webpack Configuration
module.exports = {
    entry: {
        app: [
            './src/index.js'
        ],
        vendor: findImports('src/**/*.{js,jsx}', { flatten: true })
    },
    output: {
        path: path.join(__dirname, 'dist'),
        filename: '[name].js'
    },
    plugins: [
        new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.js')
    ]
};
```

## Installation

```bash
npm install --save-dev find-imports
```

## Usage
The default options only return package imports:
```js
import findImports from 'find-imports';

const files = [
    // glob pattern
    'src/**/*.{js,jsx}',

    // use negative glob pattern to exclude files
    '!src/**/*.spec.js'
];

findImports(files);
// → { 'src/index.jsx':
//     [ 'lodash',
//       'async',
//       'jsuri',
//       'react',
//       'react-dom',
//       'react-router' ] }
```

To flatten the output:
```js
findImports(files, { flatten: true });
// → [ 'lodash',
//     'async',
//     'jsuri',
//     'react',
//     'react-dom',
//     'react-router' ]

```

To return absolute and relative imports:
```js
findImports(files, {
    absoluteImports: true,
    relativeImports: true
});
// → { 'src/index.jsx':
//     [ 'lodash',
//       'async',
//       'jsuri',
//       'react',
//       'react-dom',
//       'react-router',
//       '/index.styl',
//       './index.css' ] }
```

To only return absolute and relative imports (no packages):
```js
findImports(files, {
    absoluteImports: true,
    relativeImports: true,
    packageImports: false
});
// → { 'src/index.jsx':
//     [ '/index.styl',
//       './index.css' ] }
```

## Options
Below are the options with their default values:
```js
{
    flatten: false,
    packageImports: true,
    absoluteImports: false,
    relativeImports: false
}
```

### flatten
Type: `Boolean` Default: <i>false</i>

Sets <i>true</i> to flatten the output and filter duplicate ones.

### packageImports
Type: `Boolean` Default: <i>true</i>

Sets <i>true</i> to return package imports.

### absoluteImports
Type: `Boolean` Default: <i>false</i>

Sets <i>true</i> to return absolute imports.

### relativeImports
Type: `Boolean` Default: <i>false</i>

Sets <i>false</i> to return relative imports.

## License

Copyright (c) 2016 Cheton Wu

Licensed under the [MIT License](LICENSE).
npm package: @mafalda-sfu/mediasoup-getstats-factory
Description: Get system and Worker processes stats for Mediasoup apps
Author: Jesús Leganés-Combarro 'piranna'
Latest version: 1.1.0

# Mediasoup-getStats-factory

[![Coverage](https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/mafalda-bot/27d772a9a3a8a945b34fd9676de40486/raw/Mediasoup-getStats-factory.json)](https://gist.github.com/Mafalda-bot/27d772a9a3a8a945b34fd9676de40486#file-Mediasoup-getStats-factory-json)