Self-hosted multi-platform broadcast newsroom for activist collectives: publishing pipeline with group approval and DST-proof scheduling, TweetDeck-style column wall with hostile-content-safe rendering, live control room with Auto Director, bridged chat governance with polls and quorum, distributed sandboxed transcode workers, encrypted content-addressed archive, monthly analytics. MIT licensed. See README.md and docs/.
17 lines
1.1 KiB
TypeScript
17 lines
1.1 KiB
TypeScript
import { ConnectorRegistry, type CredentialAccessor } from "@tactical-media-broadcast-hub/connector-sdk";
|
|
// eslint-disable-next-line no-restricted-syntax -- Connector composition boundary.
|
|
import { createMastodonConnector } from "@tactical-media-broadcast-hub/connector-mastodon";
|
|
// eslint-disable-next-line no-restricted-syntax -- Connector composition boundary.
|
|
import { createPeerTubeConnector } from "../../../../packages/connector-peertube/src/index.js";
|
|
// eslint-disable-next-line no-restricted-syntax -- Connector composition boundary.
|
|
import { createTelegramConnector } from "@tactical-media-broadcast-hub/connector-telegram";
|
|
|
|
/** Composition boundary only: services resolve manifests rather than branch on providers. */
|
|
export function connectionRegistry(credentials: CredentialAccessor, fetchImpl: typeof fetch = fetch): ConnectorRegistry {
|
|
const registry = new ConnectorRegistry();
|
|
const options = { credentials, fetchImpl, env: process.env };
|
|
registry.register(createMastodonConnector(options));
|
|
registry.register(createPeerTubeConnector(options));
|
|
registry.register(createTelegramConnector(options));
|
|
return registry;
|
|
}
|