@squawk/types
Advanced tools
+20
-0
@@ -6,2 +6,22 @@ /** | ||
| /** | ||
| * The full set of {@link FacilityType} values, in declaration order. | ||
| * | ||
| * Use as the single source of truth for value-side iteration (e.g. building a | ||
| * lookup table keyed by facility type) or with {@link isFacilityType} to | ||
| * narrow an external string into the union. The `as const satisfies` brand | ||
| * keeps this array in sync with the type at compile time. | ||
| */ | ||
| export declare const FACILITY_TYPES: readonly ["AIRPORT", "HELIPORT", "SEAPLANE_BASE", "GLIDERPORT", "ULTRALIGHT", "BALLOONPORT"]; | ||
| /** | ||
| * Type guard that narrows a string to {@link FacilityType} when it matches a | ||
| * member of {@link FACILITY_TYPES}. | ||
| * | ||
| * Useful when consuming external strings (URL params, config files, MCP tool | ||
| * inputs) that should be validated before being used as a facility type. | ||
| * | ||
| * @param value - The string to test. | ||
| * @returns `true` if `value` is a valid `FacilityType`. | ||
| */ | ||
| export declare function isFacilityType(value: string): value is FacilityType; | ||
| /** | ||
| * Maps FAA SITE_TYPE_CODE values to FacilityType. | ||
@@ -8,0 +28,0 @@ */ |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"airport.d.ts","sourceRoot":"","sources":["../src/airport.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,UAAU,GACV,eAAe,GACf,YAAY,GACZ,YAAY,GACZ,aAAa,CAAC;AAElB;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAO1D,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,qBAAqB,GAAG,oBAAoB,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEjF;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,KAAK,GAAG,aAAa,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,aAAa,GAAG,MAAM,CAAC;AAEhF;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,OAAO,GACP,QAAQ,GACR,UAAU,GACV,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE9D;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAOxD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,KAAK,GACL,SAAS,GACT,WAAW,GACX,SAAS,GACT,QAAQ,GACR,KAAK,GACL,SAAS,GACT,KAAK,GACL,SAAS,CAAC;AAEd;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAU7D,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACxB,kEAAkE;IAClE,UAAU,EAAE,aAAa,CAAC;IAC1B,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,+CAA+C;IAC/C,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,0DAA0D;IAC1D,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,uGAAuG;IACvG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,+BAA+B;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,oEAAoE;IACpE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,sBAAsB,CAAC;IAC1C,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,0CAA0C;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iDAAiD;IACjD,6BAA6B,CAAC,EAAE,MAAM,CAAC;IACvC,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,0DAA0D;IAC1D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+CAA+C;IAC/C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,yDAAyD;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,iCAAiC;IACjC,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,4CAA4C;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,gEAAgE;IAChE,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,8DAA8D;IAC9D,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,qEAAqE;IACrE,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,0DAA0D;IAC1D,IAAI,EAAE,SAAS,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,+FAA+F;IAC/F,GAAG,EAAE,MAAM,CAAC;IACZ,8FAA8F;IAC9F,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,OAAO;IACtB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,YAAY,EAAE,YAAY,CAAC;IAC3B,yCAAyC;IACzC,aAAa,EAAE,aAAa,CAAC;IAC7B,mCAAmC;IACnC,OAAO,EAAE,eAAe,CAAC;IACzB,0BAA0B;IAC1B,MAAM,EAAE,cAAc,CAAC;IACvB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,yGAAyG;IACzG,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iDAAiD;IACjD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uDAAuD;IACvD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,4CAA4C;IAC5C,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mDAAmD;IACnD,WAAW,EAAE,gBAAgB,EAAE,CAAC;CACjC"} | ||
| {"version":3,"file":"airport.d.ts","sourceRoot":"","sources":["../src/airport.ts"],"names":[],"mappings":"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"} |
+30
-0
| /** | ||
| * The full set of {@link FacilityType} values, in declaration order. | ||
| * | ||
| * Use as the single source of truth for value-side iteration (e.g. building a | ||
| * lookup table keyed by facility type) or with {@link isFacilityType} to | ||
| * narrow an external string into the union. The `as const satisfies` brand | ||
| * keeps this array in sync with the type at compile time. | ||
| */ | ||
| export const FACILITY_TYPES = [ | ||
| 'AIRPORT', | ||
| 'HELIPORT', | ||
| 'SEAPLANE_BASE', | ||
| 'GLIDERPORT', | ||
| 'ULTRALIGHT', | ||
| 'BALLOONPORT', | ||
| ]; | ||
| const FACILITY_TYPE_SET = new Set(FACILITY_TYPES); | ||
| /** | ||
| * Type guard that narrows a string to {@link FacilityType} when it matches a | ||
| * member of {@link FACILITY_TYPES}. | ||
| * | ||
| * Useful when consuming external strings (URL params, config files, MCP tool | ||
| * inputs) that should be validated before being used as a facility type. | ||
| * | ||
| * @param value - The string to test. | ||
| * @returns `true` if `value` is a valid `FacilityType`. | ||
| */ | ||
| export function isFacilityType(value) { | ||
| return FACILITY_TYPE_SET.has(value); | ||
| } | ||
| /** | ||
| * Maps FAA SITE_TYPE_CODE values to FacilityType. | ||
@@ -3,0 +33,0 @@ */ |
+43
-0
@@ -44,2 +44,23 @@ import type { Polygon } from 'geojson'; | ||
| /** | ||
| * The full set of {@link AirspaceType} values, in declaration order. | ||
| * | ||
| * Use as the single source of truth for value-side iteration (e.g. building a | ||
| * lookup table keyed by airspace type) or with {@link isAirspaceType} to | ||
| * narrow an external string into the union. The `as const satisfies` brand | ||
| * keeps this array in sync with the type at compile time - adding a new | ||
| * union member without updating the array fails the build. | ||
| */ | ||
| export declare const AIRSPACE_TYPES: readonly ["CLASS_B", "CLASS_C", "CLASS_D", "CLASS_E2", "CLASS_E3", "CLASS_E4", "CLASS_E5", "CLASS_E6", "CLASS_E7", "MOA", "RESTRICTED", "PROHIBITED", "WARNING", "ALERT", "NSA", "ARTCC"]; | ||
| /** | ||
| * Type guard that narrows a string to {@link AirspaceType} when it matches a | ||
| * member of {@link AIRSPACE_TYPES}. | ||
| * | ||
| * Useful when consuming external strings (URL params, config files, MCP tool | ||
| * inputs) that should be validated before being used as an airspace type. | ||
| * | ||
| * @param value - The string to test. | ||
| * @returns `true` if `value` is a valid `AirspaceType`. | ||
| */ | ||
| export declare function isAirspaceType(value: string): value is AirspaceType; | ||
| /** | ||
| * The boundary stratum of an ARTCC feature, derived from NASR ARB_SEG | ||
@@ -64,2 +85,24 @@ * `ALTITUDE` and `TYPE` columns. | ||
| /** | ||
| * The full set of {@link ArtccStratum} values, in declaration order. | ||
| * | ||
| * Use as the single source of truth for value-side iteration over ARTCC | ||
| * stratum kinds (e.g. building a lookup table keyed by stratum) or with | ||
| * {@link isArtccStratum} to narrow an external string into the union. The | ||
| * `as const satisfies` brand keeps this array in sync with the type at | ||
| * compile time. | ||
| */ | ||
| export declare const ARTCC_STRATA: readonly ["LOW", "HIGH", "UTA", "CTA", "FIR", "CTA/FIR"]; | ||
| /** | ||
| * Type guard that narrows a string to {@link ArtccStratum} when it matches a | ||
| * member of {@link ARTCC_STRATA}. | ||
| * | ||
| * Useful when consuming external strings (URL params, config files, MCP tool | ||
| * inputs) that should be validated before being used as an ARTCC stratum | ||
| * filter. | ||
| * | ||
| * @param value - The string to test. | ||
| * @returns `true` if `value` is a valid `ArtccStratum`. | ||
| */ | ||
| export declare function isArtccStratum(value: string): value is ArtccStratum; | ||
| /** | ||
| * A single airspace designation feature derived from FAA NASR data. | ||
@@ -66,0 +109,0 @@ * |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"airspace.d.ts","sourceRoot":"","sources":["../src/airspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,SAAS,GACT,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,KAAK,GACL,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,OAAO,GACP,KAAK,GACL,OAAO,CAAC;AAEZ;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AAE9E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,IAAI,EAAE,YAAY,CAAC;IACnB,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,KAAK,EAAE,aAAa,CAAC;IACrB,4CAA4C;IAC5C,OAAO,EAAE,aAAa,CAAC;IACvB,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;;OAKG;IACH,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;;OAKG;IACH,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC"} | ||
| {"version":3,"file":"airspace.d.ts","sourceRoot":"","sources":["../src/airspace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEtD;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAC;IAChB,yEAAyE;IACzE,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,SAAS,GACT,SAAS,GACT,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,KAAK,GACL,YAAY,GACZ,YAAY,GACZ,SAAS,GACT,OAAO,GACP,KAAK,GACL,OAAO,CAAC;AAEZ;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,2LAiBiB,CAAC;AAI7C;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,YAAY,CAEnE;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;AAE9E;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,0DAOmB,CAAC;AAI7C;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,YAAY,CAEnE;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,IAAI,EAAE,YAAY,CAAC;IACnB,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;;OAQG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,4CAA4C;IAC5C,KAAK,EAAE,aAAa,CAAC;IACrB,4CAA4C;IAC5C,OAAO,EAAE,aAAa,CAAC;IACvB,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB;;;;;OAKG;IACH,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;OAIG;IACH,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC;;;;;OAKG;IACH,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;CACnC"} |
+73
-1
@@ -1,1 +0,73 @@ | ||
| export {}; | ||
| /** | ||
| * The full set of {@link AirspaceType} values, in declaration order. | ||
| * | ||
| * Use as the single source of truth for value-side iteration (e.g. building a | ||
| * lookup table keyed by airspace type) or with {@link isAirspaceType} to | ||
| * narrow an external string into the union. The `as const satisfies` brand | ||
| * keeps this array in sync with the type at compile time - adding a new | ||
| * union member without updating the array fails the build. | ||
| */ | ||
| export const AIRSPACE_TYPES = [ | ||
| 'CLASS_B', | ||
| 'CLASS_C', | ||
| 'CLASS_D', | ||
| 'CLASS_E2', | ||
| 'CLASS_E3', | ||
| 'CLASS_E4', | ||
| 'CLASS_E5', | ||
| 'CLASS_E6', | ||
| 'CLASS_E7', | ||
| 'MOA', | ||
| 'RESTRICTED', | ||
| 'PROHIBITED', | ||
| 'WARNING', | ||
| 'ALERT', | ||
| 'NSA', | ||
| 'ARTCC', | ||
| ]; | ||
| const AIRSPACE_TYPE_SET = new Set(AIRSPACE_TYPES); | ||
| /** | ||
| * Type guard that narrows a string to {@link AirspaceType} when it matches a | ||
| * member of {@link AIRSPACE_TYPES}. | ||
| * | ||
| * Useful when consuming external strings (URL params, config files, MCP tool | ||
| * inputs) that should be validated before being used as an airspace type. | ||
| * | ||
| * @param value - The string to test. | ||
| * @returns `true` if `value` is a valid `AirspaceType`. | ||
| */ | ||
| export function isAirspaceType(value) { | ||
| return AIRSPACE_TYPE_SET.has(value); | ||
| } | ||
| /** | ||
| * The full set of {@link ArtccStratum} values, in declaration order. | ||
| * | ||
| * Use as the single source of truth for value-side iteration over ARTCC | ||
| * stratum kinds (e.g. building a lookup table keyed by stratum) or with | ||
| * {@link isArtccStratum} to narrow an external string into the union. The | ||
| * `as const satisfies` brand keeps this array in sync with the type at | ||
| * compile time. | ||
| */ | ||
| export const ARTCC_STRATA = [ | ||
| 'LOW', | ||
| 'HIGH', | ||
| 'UTA', | ||
| 'CTA', | ||
| 'FIR', | ||
| 'CTA/FIR', | ||
| ]; | ||
| const ARTCC_STRATUM_SET = new Set(ARTCC_STRATA); | ||
| /** | ||
| * Type guard that narrows a string to {@link ArtccStratum} when it matches a | ||
| * member of {@link ARTCC_STRATA}. | ||
| * | ||
| * Useful when consuming external strings (URL params, config files, MCP tool | ||
| * inputs) that should be validated before being used as an ARTCC stratum | ||
| * filter. | ||
| * | ||
| * @param value - The string to test. | ||
| * @returns `true` if `value` is a valid `ArtccStratum`. | ||
| */ | ||
| export function isArtccStratum(value) { | ||
| return ARTCC_STRATUM_SET.has(value); | ||
| } |
+20
-0
@@ -19,2 +19,22 @@ /** | ||
| /** | ||
| * The full set of {@link AirwayType} values, in declaration order. | ||
| * | ||
| * Use as the single source of truth for value-side iteration (e.g. building a | ||
| * lookup table keyed by airway type) or with {@link isAirwayType} to narrow | ||
| * an external string into the union. The `as const satisfies` brand keeps | ||
| * this array in sync with the type at compile time. | ||
| */ | ||
| export declare const AIRWAY_TYPES: readonly ["VICTOR", "JET", "RNAV_Q", "RNAV_T", "GREEN", "RED", "AMBER", "BLUE", "ATLANTIC", "BAHAMA", "PACIFIC", "PUERTO_RICO"]; | ||
| /** | ||
| * Type guard that narrows a string to {@link AirwayType} when it matches a | ||
| * member of {@link AIRWAY_TYPES}. | ||
| * | ||
| * Useful when consuming external strings (URL params, config files, MCP tool | ||
| * inputs) that should be validated before being used as an airway type. | ||
| * | ||
| * @param value - The string to test. | ||
| * @returns `true` if `value` is a valid `AirwayType`. | ||
| */ | ||
| export declare function isAirwayType(value: string): value is AirwayType; | ||
| /** | ||
| * Maps the first character of an AWY.txt airway designation to its AirwayType. | ||
@@ -21,0 +41,0 @@ */ |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"airway.d.ts","sourceRoot":"","sources":["../src/airway.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"airway.d.ts","sourceRoot":"","sources":["../src/airway.ts"],"names":[],"mappings":"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"} |
+36
-0
| /** | ||
| * The full set of {@link AirwayType} values, in declaration order. | ||
| * | ||
| * Use as the single source of truth for value-side iteration (e.g. building a | ||
| * lookup table keyed by airway type) or with {@link isAirwayType} to narrow | ||
| * an external string into the union. The `as const satisfies` brand keeps | ||
| * this array in sync with the type at compile time. | ||
| */ | ||
| export const AIRWAY_TYPES = [ | ||
| 'VICTOR', | ||
| 'JET', | ||
| 'RNAV_Q', | ||
| 'RNAV_T', | ||
| 'GREEN', | ||
| 'RED', | ||
| 'AMBER', | ||
| 'BLUE', | ||
| 'ATLANTIC', | ||
| 'BAHAMA', | ||
| 'PACIFIC', | ||
| 'PUERTO_RICO', | ||
| ]; | ||
| const AIRWAY_TYPE_SET = new Set(AIRWAY_TYPES); | ||
| /** | ||
| * Type guard that narrows a string to {@link AirwayType} when it matches a | ||
| * member of {@link AIRWAY_TYPES}. | ||
| * | ||
| * Useful when consuming external strings (URL params, config files, MCP tool | ||
| * inputs) that should be validated before being used as an airway type. | ||
| * | ||
| * @param value - The string to test. | ||
| * @returns `true` if `value` is a valid `AirwayType`. | ||
| */ | ||
| export function isAirwayType(value) { | ||
| return AIRWAY_TYPE_SET.has(value); | ||
| } | ||
| /** | ||
| * Maps the first character of an AWY.txt airway designation to its AirwayType. | ||
@@ -3,0 +39,0 @@ */ |
+20
-0
@@ -15,2 +15,22 @@ /** | ||
| /** | ||
| * The full set of {@link FixUseCode} values, in declaration order. | ||
| * | ||
| * Use as the single source of truth for value-side iteration (e.g. building a | ||
| * lookup table keyed by use code) or with {@link isFixUseCode} to narrow an | ||
| * external string into the union. The `as const satisfies` brand keeps this | ||
| * array in sync with the type at compile time. | ||
| */ | ||
| export declare const FIX_USE_CODES: readonly ["WP", "RP", "MW", "MR", "CN", "VFR", "NRS", "RADAR"]; | ||
| /** | ||
| * Type guard that narrows a string to {@link FixUseCode} when it matches a | ||
| * member of {@link FIX_USE_CODES}. | ||
| * | ||
| * Useful when consuming external strings (URL params, config files, MCP tool | ||
| * inputs) that should be validated before being used as a fix use code. | ||
| * | ||
| * @param value - The string to test. | ||
| * @returns `true` if `value` is a valid `FixUseCode`. | ||
| */ | ||
| export declare function isFixUseCode(value: string): value is FixUseCode; | ||
| /** | ||
| * Maps FAA FIX_USE_CODE values from NASR data to FixUseCode. | ||
@@ -17,0 +37,0 @@ * FAA values may have trailing whitespace so trimmed values are mapped here. |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../src/fix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AAEpF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CASvD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAI5D,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,GAAG;IAClB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,OAAO,EAAE,UAAU,CAAC;IACpB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,KAAK,EAAE,OAAO,CAAC;IACf,gDAAgD;IAChD,KAAK,EAAE,OAAO,CAAC;IACf,4EAA4E;IAC5E,QAAQ,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uDAAuD;IACvD,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mFAAmF;IACnF,kBAAkB,EAAE,oBAAoB,EAAE,CAAC;CAC5C"} | ||
| {"version":3,"file":"fix.d.ts","sourceRoot":"","sources":["../src/fix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AAEpF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,gEASgB,CAAC;AAI3C;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,UAAU,CAE/D;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CASvD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,KAAK,GAAG,UAAU,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAI5D,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,GAAG;IAClB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,iCAAiC;IACjC,OAAO,EAAE,UAAU,CAAC;IACpB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,KAAK,EAAE,OAAO,CAAC;IACf,gDAAgD;IAChD,KAAK,EAAE,OAAO,CAAC;IACf,4EAA4E;IAC5E,QAAQ,EAAE,OAAO,CAAC;IAClB,wDAAwD;IACxD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uDAAuD;IACvD,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,uDAAuD;IACvD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,mFAAmF;IACnF,kBAAkB,EAAE,oBAAoB,EAAE,CAAC;CAC5C"} |
+32
-0
| /** | ||
| * The full set of {@link FixUseCode} values, in declaration order. | ||
| * | ||
| * Use as the single source of truth for value-side iteration (e.g. building a | ||
| * lookup table keyed by use code) or with {@link isFixUseCode} to narrow an | ||
| * external string into the union. The `as const satisfies` brand keeps this | ||
| * array in sync with the type at compile time. | ||
| */ | ||
| export const FIX_USE_CODES = [ | ||
| 'WP', | ||
| 'RP', | ||
| 'MW', | ||
| 'MR', | ||
| 'CN', | ||
| 'VFR', | ||
| 'NRS', | ||
| 'RADAR', | ||
| ]; | ||
| const FIX_USE_CODE_SET = new Set(FIX_USE_CODES); | ||
| /** | ||
| * Type guard that narrows a string to {@link FixUseCode} when it matches a | ||
| * member of {@link FIX_USE_CODES}. | ||
| * | ||
| * Useful when consuming external strings (URL params, config files, MCP tool | ||
| * inputs) that should be validated before being used as a fix use code. | ||
| * | ||
| * @param value - The string to test. | ||
| * @returns `true` if `value` is a valid `FixUseCode`. | ||
| */ | ||
| export function isFixUseCode(value) { | ||
| return FIX_USE_CODE_SET.has(value); | ||
| } | ||
| /** | ||
| * Maps FAA FIX_USE_CODE values from NASR data to FixUseCode. | ||
@@ -3,0 +35,0 @@ * FAA values may have trailing whitespace so trimmed values are mapped here. |
+20
-0
@@ -6,2 +6,22 @@ /** | ||
| /** | ||
| * The full set of {@link NavaidType} values, in declaration order. | ||
| * | ||
| * Use as the single source of truth for value-side iteration (e.g. building a | ||
| * lookup table keyed by navaid type) or with {@link isNavaidType} to narrow | ||
| * an external string into the union. The `as const satisfies` brand keeps | ||
| * this array in sync with the type at compile time. | ||
| */ | ||
| export declare const NAVAID_TYPES: readonly ["VOR", "VORTAC", "VOR/DME", "TACAN", "DME", "NDB", "NDB/DME", "FAN_MARKER", "MARINE_NDB", "VOT"]; | ||
| /** | ||
| * Type guard that narrows a string to {@link NavaidType} when it matches a | ||
| * member of {@link NAVAID_TYPES}. | ||
| * | ||
| * Useful when consuming external strings (URL params, config files, MCP tool | ||
| * inputs) that should be validated before being used as a navaid type. | ||
| * | ||
| * @param value - The string to test. | ||
| * @returns `true` if `value` is a valid `NavaidType`. | ||
| */ | ||
| export declare function isNavaidType(value: string): value is NavaidType; | ||
| /** | ||
| * Maps FAA NAV_TYPE values from NASR data to NavaidType. | ||
@@ -8,0 +28,0 @@ */ |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"navaid.d.ts","sourceRoot":"","sources":["../src/navaid.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,KAAK,GACL,QAAQ,GACR,SAAS,GACT,OAAO,GACP,KAAK,GACL,KAAK,GACL,SAAS,GACT,YAAY,GACZ,YAAY,GACZ,KAAK,CAAC;AAEV;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAWtD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,wBAAwB,GACxB,iBAAiB,GACjB,UAAU,CAAC;AAEf;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAK1D,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,wCAAwC;IACxC,MAAM,EAAE,YAAY,CAAC;IACrB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iDAAiD;IACjD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uDAAuD;IACvD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"} | ||
| {"version":3,"file":"navaid.d.ts","sourceRoot":"","sources":["../src/navaid.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,KAAK,GACL,QAAQ,GACR,SAAS,GACT,OAAO,GACP,KAAK,GACL,KAAK,GACL,SAAS,GACT,YAAY,GACZ,YAAY,GACZ,KAAK,CAAC;AAEV;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,4GAWiB,CAAC;AAI3C;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,UAAU,CAE/D;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAWtD,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,iBAAiB,GACjB,wBAAwB,GACxB,iBAAiB,GACjB,UAAU,CAAC;AAEf;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAK1D,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,MAAM;IACrB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,IAAI,EAAE,UAAU,CAAC;IACjB,wCAAwC;IACxC,MAAM,EAAE,YAAY,CAAC;IACrB,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,mDAAmD;IACnD,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sDAAsD;IACtD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iDAAiD;IACjD,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,uDAAuD;IACvD,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oFAAoF;IACpF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"} |
+34
-0
| /** | ||
| * The full set of {@link NavaidType} values, in declaration order. | ||
| * | ||
| * Use as the single source of truth for value-side iteration (e.g. building a | ||
| * lookup table keyed by navaid type) or with {@link isNavaidType} to narrow | ||
| * an external string into the union. The `as const satisfies` brand keeps | ||
| * this array in sync with the type at compile time. | ||
| */ | ||
| export const NAVAID_TYPES = [ | ||
| 'VOR', | ||
| 'VORTAC', | ||
| 'VOR/DME', | ||
| 'TACAN', | ||
| 'DME', | ||
| 'NDB', | ||
| 'NDB/DME', | ||
| 'FAN_MARKER', | ||
| 'MARINE_NDB', | ||
| 'VOT', | ||
| ]; | ||
| const NAVAID_TYPE_SET = new Set(NAVAID_TYPES); | ||
| /** | ||
| * Type guard that narrows a string to {@link NavaidType} when it matches a | ||
| * member of {@link NAVAID_TYPES}. | ||
| * | ||
| * Useful when consuming external strings (URL params, config files, MCP tool | ||
| * inputs) that should be validated before being used as a navaid type. | ||
| * | ||
| * @param value - The string to test. | ||
| * @returns `true` if `value` is a valid `NavaidType`. | ||
| */ | ||
| export function isNavaidType(value) { | ||
| return NAVAID_TYPE_SET.has(value); | ||
| } | ||
| /** | ||
| * Maps FAA NAV_TYPE values from NASR data to NavaidType. | ||
@@ -3,0 +37,0 @@ */ |
+3
-1
| { | ||
| "name": "@squawk/types", | ||
| "version": "0.7.2", | ||
| "version": "0.8.0", | ||
| "type": "module", | ||
@@ -32,2 +32,4 @@ "description": "Shared TypeScript type definitions for the @squawk aviation libraries", | ||
| "build": "tsc", | ||
| "test": "vitest run", | ||
| "test:coverage": "vitest run --coverage", | ||
| "lint": "tsc --noEmit && eslint src", | ||
@@ -34,0 +36,0 @@ "lint:pack": "publint && attw --pack . --profile esm-only" |
+45
-1
@@ -5,3 +5,3 @@ <h1><img src="../../../assets/squawk-logo.svg" alt="squawk logo" width="48" height="48" style="vertical-align: middle"> @squawk/types</h1> | ||
| Shared TypeScript type definitions used across multiple `@squawk` packages. Contains types for core domain models that cross the logic/data/build-script boundary: aircraft, position, airports, navaids, fixes, airways, procedures, airspace, and flight-math results. | ||
| Shared TypeScript type definitions used across multiple `@squawk` packages. Contains types for core domain models that cross the logic/data/build-script boundary: aircraft, position, airports, navaids, fixes, airways, procedures, airspace, and aircraft registration. | ||
@@ -30,1 +30,45 @@ Domain-specific types that are produced and consumed by a single package live in that package instead: | ||
| All types are re-exported from the package root. See the [documentation](https://neilcochran.github.io/squawk/modules/_squawk_types.html) for the full reference. | ||
| ## Exported types by domain | ||
| | Domain | Types | | ||
| | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ||
| | Aircraft (ADS-B) | `Aircraft`, `AircraftCategory` | | ||
| | Position | `Position`, `Coordinates` | | ||
| | Airport | `Airport`, `Runway`, `RunwayEnd`, `IlsSystem`, `AirportFrequency`, `FacilityType`, `OwnershipType`, `FacilityUseType`, `FacilityStatus`, `SurfaceCondition`, `SurfaceTreatment`, `RunwayLighting`, `RunwayMarkingType`, `RunwayMarkingCondition`, `VgsiType`, `IlsCategory`, `IlsSystemType` | | ||
| | Navaid | `Navaid`, `NavaidType`, `NavaidStatus` | | ||
| | Fix | `Fix`, `FixUseCode`, `FixCompulsory`, `FixNavaidAssociation` | | ||
| | Airway | `Airway`, `AirwayWaypoint`, `AirwayType`, `AirwayRegion`, `AirwayWaypointType` | | ||
| | Airspace | `AirspaceFeature`, `AirspaceType`, `ArtccStratum`, `AltitudeBound`, `AltitudeReference` | | ||
| | Procedure | `Procedure`, `ProcedureType`, `ApproachType`, `ProcedureLeg`, `ProcedureLegPathTerminator`, `ProcedureLegFixCategory`, `ProcedureTransition`, `ProcedureCommonRoute`, `MissedApproachSequence`, `AltitudeConstraint`, `AltitudeConstraintDescriptor`, `SpeedConstraint`, `SpeedConstraintDescriptor`, `TurnDirection` | | ||
| | Aircraft registration | `AircraftRegistration`, `AircraftType`, `EngineType` | | ||
| The package also re-exports source-code lookup maps (`FACILITY_TYPE_MAP`, `NAVAID_TYPE_MAP`, `AWY_TYPE_MAP`, `ATS_TYPE_MAP`, `AIRWAY_REGION_MAP`, `FIX_USE_CODE_MAP`, `FIX_COMPULSORY_MAP`, `NAVAID_STATUS_MAP`, `ILS_CATEGORY_MAP`, `ILS_SYSTEM_TYPE_MAP`) used by the FAA NASR build pipelines to translate raw source-data values to the typed unions above. See the [TypeDoc reference](https://neilcochran.github.io/squawk/modules/_squawk_types.html) for full per-type signatures and field-level documentation. | ||
| ## Type guards | ||
| For the user-facing string-literal union types - the ones that flow in from URL params, config files, or MCP tool inputs - the package ships an `is<Name>` predicate paired with a `<NAME>S` const array as the single source of truth. Use the predicate to narrow an external string into the union without hand-rolling the membership list per consumer; use the const array as the value-side iteration target (e.g. building a lookup table keyed by the union): | ||
| ```ts | ||
| import { | ||
| AIRSPACE_TYPES, | ||
| ARTCC_STRATA, | ||
| FACILITY_TYPES, | ||
| AIRWAY_TYPES, | ||
| NAVAID_TYPES, | ||
| FIX_USE_CODES, | ||
| isAirspaceType, | ||
| isArtccStratum, | ||
| isFacilityType, | ||
| isAirwayType, | ||
| isNavaidType, | ||
| isFixUseCode, | ||
| } from '@squawk/types'; | ||
| const raw = new URLSearchParams(window.location.search).get('type') ?? ''; | ||
| if (isAirspaceType(raw)) { | ||
| // raw is now narrowed to AirspaceType | ||
| } | ||
| ``` | ||
| The arrays are branded with `as const satisfies readonly <Type>[]`, so adding a new union member without updating the array fails the build. |
No tests
QualityPackage does not have any tests. This is a strong signal of a poorly maintained or low quality package.
89998
25.48%1574
26.22%1
-50%73
151.72%