New:Socket for Asana Is Now Available.Learn more
Get Started

@squawk/icao-registry

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install
Package version was removed
This package version has been unpublished, mostly likely due to security reasons
This package has malicious versions linked to the ongoing "Mini Shai-Hulud" supply chain attack.

Affected versions:

0.5.20.5.30.5.4
+2 more
View campaign page

@squawk/icao-registry

FAA ICAO hex address to aircraft registration and info lookup

unpublished
Source
npmnpm
Version
0.5.2
Version published
Weekly downloads
271
1494.12%
Maintainers
1
Weekly downloads
 
Created
Source

squawk logo  @squawk/icao-registry

MIT License npm TypeScript

Resolves a 24-bit ICAO hex address to its aircraft registration and info. Pure logic library - contains no bundled data. Accepts an array of AircraftRegistration records at initialization. For zero-config use, pair with @squawk/icao-registry-data. Includes FAA ReleasableAircraft ZIP parsing utilities for consumers who want to fetch their own fresh data.

Documentation

Part of the @squawk aviation library suite. See all packages on npm.

Installation

npm install @squawk/icao-registry

Usage

With bundled data (zero-config)

npm install @squawk/icao-registry-data
import { usBundledRegistry } from '@squawk/icao-registry-data';
import { createIcaoRegistry } from '@squawk/icao-registry';

const registry = createIcaoRegistry({ data: usBundledRegistry.records });
const aircraft = registry.lookup('A004B3');

With fresh FAA data

import { createIcaoRegistry, parseFaaRegistryZip } from '@squawk/icao-registry';

const zipBuffer = await fetch('https://registry.faa.gov/database/ReleasableAircraft.zip').then(
  (r) => r.arrayBuffer(),
);
const data = parseFaaRegistryZip(Buffer.from(zipBuffer));
const registry = createIcaoRegistry({ data });

With custom data

import { createIcaoRegistry } from '@squawk/icao-registry';

const registry = createIcaoRegistry({
  data: [{ icaoHex: 'A00001', registration: 'N12345', make: 'CESSNA', model: '172S' }],
});

Browser / SPA usage

For SPAs and edge runtimes, import from the /browser subpath. It re-exports createIcaoRegistry and the shared types but omits parseFaaRegistryZip, which depends on Node's Buffer and the adm-zip package and is unsuitable for browser bundles. Pair it with @squawk/icao-registry-data/browser:

import { loadUsBundledRegistry } from '@squawk/icao-registry-data/browser';
import { createIcaoRegistry } from '@squawk/icao-registry/browser';

const dataset = await loadUsBundledRegistry();
const registry = createIcaoRegistry({ data: dataset.records });

Browser consumers that need fresh FAA data should fetch and parse the ZIP server-side (where parseFaaRegistryZip is available) and feed the resulting records into the browser via their own API.

API

  • createIcaoRegistry({ data }) - builds a registry from an array of AircraftRegistration records.
  • registry.lookup(icaoHex) - resolves a 24-bit ICAO hex address to a record, or undefined.
  • registry.recordCount - total number of records in the loaded dataset.
  • parseFaaRegistryZip(buffer) - parses a downloaded FAA ReleasableAircraft.zip into the AircraftRegistration[] shape that createIcaoRegistry expects. Node-only; not exported from the /browser entry.

Under active development. See the docs for current API status.

Keywords

aviation

FAQs

Package last updated on 11 May 2026

Related posts