elite-dangerous-event-types¶
Audience: Agent
Purpose¶
Shared TypeScript types, type unions, and type guards for Elite Dangerous journal JSON lines (EliteEvent, EventType, …), Status.json (Status, isStatus), sidecar snapshots (Cargo.json, Market.json, … — see edosEnvelope.ts), and the desktop BridgeEnvelope (EdosFileEventEnvelope, isEdosFileEventEnvelope, constants EDOS_FILE_EVENT_MESSAGE / TAURI_EDOS_FILE_EVENT_CHANNEL). Published as @howfe/elite-dangerous-event-types.
Tech stack¶
- TypeScript only (
index.tsat package root). package.jsonpointsmaintoindex.ts— consumers resolve via their bundler/tooling.- Workspace
package.jsonversion (verify after pull):1.1.0—@howfe/inter-frame-messengerdeclares peer>=1.1.0and dev^1.1.0(inter-frame-messenger/package.json).
Integration points¶
@howfe/inter-frame-messenger— imports journal/status guards plusisEdosFileEventEnvelope/EdosFileEventEnvelopeforedos-file-event.- Quasar apps — import types and guards from map logic, composables, and components.
elite-dangerous-local-journal-reader—src/edosBridge.tsre-exports envelope types/helpers from this package.
Sidecar snapshots + EDOS envelope¶
- Wire: Rust
BridgeEnvelopeon Tauriedos:file:event; IFM outer channeledos-file-event(see IPC.md). - Rust
sourceType: serde string per variant (camelCase), e.g.journal,fCMaterials,navRoute,status— mirrored byEdosBridgeSourceKind. - Guards:
isCargoSnapshotBlob,isMarketSnapshotBlob, … are intentionally tolerant (Frontier/schema drift); pair withsourceType+sourceFilefrom the envelope when asserting provenance.
Fixtures¶
Example envelope: elite-dangerous-event-types/fixtures/sidecars/sample-envelope.json (minimal structural sample).
For full real-world journal lines and sidecar blobs (variants, drift, rare events), the workspace may include journalFilesSamples/ at the repo root — workspace-local, not published on the docs site, and often missing in partial clones. If hosted types and this capsule are not enough, ask the operator for relevant samples; see AGENTS.md.
Extension points¶
- Add or adjust event variants in
index.tswhen Frontier adds journal events or fields you need. - Keep guards (
is*) in sync with structural assumptions; apps rely on them for safe narrowing. - Publishing: follow repository URL in
package.json(GitLab); version bumps affect downstream semver ranges.
Pitfalls / checks¶
- Large single file — search by symbol name; consider splitting only if the repo maintainers agree (out of scope for this doc).
- Breaking changes ripple to
inter-frame-messengerand both UIs — coordinate release order.
Related docs¶
- IPC.md — which payloads travel over
postMessage - ARCHITECTURE.md — shared typing principle