Tactical Media Broadcast Hub — initial release

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/.
This commit is contained in:
glass beadian 2026-10-10 11:56:42 +00:00
commit aa5e262f3a
880 changed files with 111042 additions and 0 deletions

26
packages/egress/src/policy.d.ts vendored Normal file
View file

@ -0,0 +1,26 @@
export interface ResolvedAddress {
address: string;
family: number;
}
export type Resolver = (hostname: string) => Promise<readonly ResolvedAddress[]>;
export interface EgressPolicyOptions {
/** Operator-controlled allowlists; defaults to HTTP 80 and HTTPS 443 only. */
ports?: Partial<Record<"http:" | "https:", readonly number[]>>;
resolver?: Resolver;
}
export interface ValidatedEndpoint {
url: URL;
pinnedAddress: string;
family: 4 | 6;
hostKey: string;
}
export declare function assertPublicAddress(address: string): void;
export declare function hostBudgetKey(url: URL): string;
/** Pure syntactic/literal policy check; no DNS or budget is consumed. */
export declare function validateUrl(raw: string | URL, options?: EgressPolicyOptions): URL;
export declare class EgressPolicy {
private readonly options;
constructor(options?: EgressPolicyOptions);
validateUrl(raw: string | URL): URL;
validate(raw: string | URL): Promise<ValidatedEndpoint>;
}