Registry / http-networking / tv-automation-quantel-gateway-client

tv-automation-quantel-gateway-client

JSON →
library4.0.0jsnpmunverified

This is a client library specifically designed for communication with the Sofie Quantel Gateway, an integral component of the open-source Sofie TV Automation System. It acts as an abstraction layer, allowing Node.js applications to interact with Quantel ISA (Integrated Production Archive) systems. The library facilitates discovery of clips, management of playout control on Quantel servers, and handles the underlying HTTP REST API communication with the Quantel Gateway, which itself bridges to the complex Quantel ISA System's CORBA API. Currently at version 4.0.0, the package primarily supports modern Node.js environments (>=18.0) and ships with TypeScript type definitions, providing a robust and type-safe interface for broadcast automation workflows. It focuses on simplifying interaction with professional broadcast hardware within the Sofie ecosystem, abstracting away low-level network and protocol complexities.

npm install tv-automation-quantel-gateway-client
INSTALL
IMPORT
SIG · TV-AUTOMATION-QUAN
T
tv-automation-quantel-gateway-client
http-networkingjavascriptv4.0.0
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

QuantelGateway
import { QuantelGateway } from 'tv-automation-quantel-gateway-client'
const QuantelGateway = require('tv-automation-quantel-gateway-client')
The library is primarily designed for ESM usage. CommonJS `require` will result in a runtime error or incorrect object if the package is pure ESM.
Q
import { Q } from 'tv-automation-quantel-gateway-client'
This is a named export for various utility types and interfaces related to Quantel operations.
QuantelGatewayConfig
import type { QuantelGatewayConfig } from 'tv-automation-quantel-gateway-client'
Explicitly import types using `import type` for clarity and to avoid bundling type definitions at runtime in TypeScript.

This example demonstrates how to initialize the `QuantelGateway` client, connect to a specified gateway and ISA system, and then properly dispose of the client. It uses environment variables for configuration for easy setup.

import { QuantelGateway } from 'tv-automation-quantel-gateway-client'; async function runQuantelClient() { const quantelClient = new QuantelGateway(); const gatewayUrl = process.env.QUANTEL_GATEWAY_URL ?? 'http://localhost:3000'; const isaUrl = process.env.QUANTEL_ISA_URL ?? 'http://quantel.isa.manager:2099'; const zoneId = process.env.QUANTEL_ZONE_ID ?? 'default'; const serverId = process.env.QUANTEL_SERVER_ID ?? '1100'; // Example server ID try { console.log(`Attempting to connect to Gateway: ${gatewayUrl}, ISA: ${isaUrl}`); await quantelClient.init(gatewayUrl, isaUrl, zoneId, serverId); console.log('Successfully connected to Quantel Gateway.'); // Example: Fetching server information if serverId is not initially known // await quantelClient.connectToISA(isaUrl); // const servers = await quantelClient.getServers(zoneId); // console.log('Available Servers:', servers.map(s => s.id)); // Here you would add your logic to interact with Quantel, e.g., get clips, control playout console.log('Client is ready for Quantel operations.'); } catch (error) { console.error('Failed to initialize Quantel Gateway client:', error); process.exit(1); } finally { // Always call dispose to clean up resources quantelClient.dispose(); console.log('Quantel Gateway client disposed.'); } } runQuantelClient();
Debug
Known issues
breakingVersion 4.0.0 requires Node.js version 18.0 or higher. Earlier Node.js versions are not supported and will lead to runtime errors, particularly with ESM imports or native module bindings.
fix
Upgrade your Node.js environment to version 18.0 or newer. Use `nvm` or your package manager to manage Node.js versions effectively.
affects: >=4.0.0
gotchaThe client connects to a 'Quantel Gateway' application, which in turn communicates with the 'Quantel ISA SQ system'. Both the gateway and the ISA system must be installed, running, and accessible from the client's network environment.
fix
Ensure the Quantel Gateway application is running and its network address/port are correctly configured. Verify network connectivity between your application, the Gateway, and the ISA system. Refer to the Sofie Quantel Gateway documentation for setup.
affects: >=1.0.0
gotchaThe `init` method requires a `serverID`. If the `serverID` is not known beforehand, you must first connect to the ISA using `connectToISA()` and then fetch available servers with `getServers(zoneId)` to determine valid IDs.
fix
Implement a discovery mechanism: `await quantelClient.connectToISA(isaUrl); const servers = await quantelClient.getServers(zoneId);` before calling `init` if `serverID` is dynamic or unknown.
affects: >=1.0.0
gotchaThis library expects specific URLs for the Quantel Gateway and the ISA Manager. Incorrect URLs, port numbers, or network misconfigurations are common sources of connection failures.
fix
Double-check `quantel.gateway.url:port` and `quantel.isa.url` values. Ensure they are reachable from the host running the client application and that no firewalls are blocking the necessary ports.
affects: >=1.0.0
Errors
Common errors & fixes
ERR_REQUIRE_ESM: require() of ES Module ... not supported. Instead change the require of index.js to a dynamic import()
Attempting to import an ES Module using CommonJS `require()` syntax.
fix
Change `const { Symbol } = require('pkg');` to `import { Symbol } from 'pkg';` or use a dynamic import `const { Symbol } = await import('pkg');` within an `async` function.
TypeError: QuantelGateway is not a constructor
Often occurs when trying to use a named export as a default export, or when `require()` is used on a package primarily structured for ESM.
fix
Ensure you are using named imports: `import { QuantelGateway } from 'tv-automation-quantel-gateway-client';` instead of `import QuantelGateway from 'tv-automation-quantel-gateway-client';`.
QuantelGateway.init failed: Connection refused
The client tried to establish a TCP connection to the Quantel Gateway, but the target machine actively refused it (e.g., no server running on that port, or firewall blocking).
fix
Verify that the Quantel Gateway application is running and listening on the specified host and port (`QUANTEL_GATEWAY_URL`). Check local and remote firewalls. Ensure the URL is correct.
Error: Timeout: Could not connect to ISA: [URL]
The client could not establish a connection to the Quantel ISA Manager within the expected timeframe, possibly due to network latency, incorrect URL, or the ISA Manager being offline.
fix
Confirm the `QUANTEL_ISA_URL` is correct and that the Quantel ISA system is operational and reachable from the machine hosting the Quantel Gateway.
Upgrade
Version history
4.0.0latest on npm
Audit
Dependencies

No dependency data recorded yet.

Agent activity
14 hits · last 30 days
node
12
Bingbot
1
OpenAI (training)
1
Resources
tv-automation-quantel-gateway-client — npm install tv-automation-quantel-gateway-client · libregistry