138 lines
2.5 KiB
TypeScript
138 lines
2.5 KiB
TypeScript
/**
|
|
* Core type definitions for the transceiver database.
|
|
*/
|
|
|
|
export type FormFactor =
|
|
| "SFP"
|
|
| "SFP+"
|
|
| "SFP28"
|
|
| "SFP56"
|
|
| "QSFP+"
|
|
| "QSFP28"
|
|
| "QSFP56"
|
|
| "QSFP-DD"
|
|
| "OSFP"
|
|
| "CFP"
|
|
| "CFP2"
|
|
| "CFP4"
|
|
| "CFP2-DCO"
|
|
| "XFP"
|
|
| "GBIC"
|
|
| "CXP"
|
|
| "SFP-DD"
|
|
| "SFP56-DD"
|
|
| "QSFP-DD800"
|
|
| "OSFP-XD";
|
|
|
|
export type FiberType = "MMF" | "SMF" | "MMF/SMF" | "Copper" | "N/A";
|
|
|
|
export type ConnectorType =
|
|
| "LC"
|
|
| "SC"
|
|
| "MPO-12"
|
|
| "MPO-16"
|
|
| "MPO-24"
|
|
| "RJ45"
|
|
| "None"
|
|
| "CS"
|
|
| "SN"
|
|
| "2xMPO-12";
|
|
|
|
export type TempRange = "COM" | "IND";
|
|
|
|
export type ProductCategory =
|
|
| "DataCenter"
|
|
| "Metro"
|
|
| "LongHaul"
|
|
| "DCI"
|
|
| "Access"
|
|
| "Coherent"
|
|
| "CWDM"
|
|
| "DWDM"
|
|
| "BiDi"
|
|
| "AOC"
|
|
| "DAC"
|
|
| "Breakout"
|
|
| "Legacy"
|
|
| "IXP"
|
|
| "5G"
|
|
| "AI";
|
|
|
|
export type PriceTier = "Budget" | "Standard" | "Premium";
|
|
|
|
export type MarketStatus = "Mainstream" | "Growth" | "Emerging" | "Legacy" | "EOL";
|
|
|
|
export interface VendorCompat {
|
|
vendor: string;
|
|
partPattern: string;
|
|
}
|
|
|
|
export interface Transceiver {
|
|
id: string;
|
|
standard: string;
|
|
ieeeReference?: string;
|
|
formFactor: FormFactor;
|
|
speed: string;
|
|
speedGbps: number;
|
|
lanes?: number;
|
|
laneRate?: string;
|
|
modulation?: string;
|
|
reachMeters: number;
|
|
reachLabel: string;
|
|
fiberType: FiberType;
|
|
wavelengths: string;
|
|
connector: ConnectorType;
|
|
powerConsumptionW: number;
|
|
tempRange: TempRange;
|
|
category: ProductCategory;
|
|
priceTier: PriceTier;
|
|
useCase: string;
|
|
vendors: VendorCompat[];
|
|
tags: string[];
|
|
generation?: string;
|
|
marketStatus?: MarketStatus;
|
|
yearIntroduced?: number;
|
|
breakoutCapable?: boolean;
|
|
breakoutTo?: string;
|
|
}
|
|
|
|
export interface Standard {
|
|
standard: string;
|
|
ieeeReference: string;
|
|
speed: string;
|
|
lanes: number;
|
|
laneRate: string;
|
|
modulation: string;
|
|
fiberType: string;
|
|
wavelength: string;
|
|
maxReachMeters: number;
|
|
maxReachLabel: string;
|
|
connector: string;
|
|
fecRequired: boolean;
|
|
formFactors: string[];
|
|
yearRatified: number;
|
|
notes: string;
|
|
}
|
|
|
|
export interface Competitor {
|
|
name: string;
|
|
type: "OEM" | "Whitebox" | "Manufacturer" | "Distributor" | "Compatible";
|
|
headquarters: string;
|
|
marketPosition: string;
|
|
formFactorsOffered: string[];
|
|
speedTiersOffered: string[];
|
|
strengths: string[];
|
|
weaknesses: string[];
|
|
}
|
|
|
|
export interface Breakout {
|
|
id: string;
|
|
from: string;
|
|
to: string;
|
|
formFactor: string;
|
|
description: string;
|
|
cableType: "Passive" | "Active";
|
|
maxLength: string;
|
|
speedPerLane: string;
|
|
}
|