@squawk/flightplan 0.4.4 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +38 -2
  2. package/package.json +19 -14
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
- <h1><img src="../../assets/squawk-logo.svg" alt="squawk logo" width="48" height="48" style="vertical-align: middle">&nbsp; @squawk/flightplan</h1>
1
+ <h1><img src="../../../assets/squawk-logo.svg" alt="squawk logo" width="48" height="48" style="vertical-align: middle">&nbsp; @squawk/flightplan</h1>
2
2
 
3
- [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](../../LICENSE.md) [![npm](https://img.shields.io/npm/v/@squawk/flightplan)](https://www.npmjs.com/package/@squawk/flightplan) ![TypeScript](https://img.shields.io/badge/TypeScript-blue?logo=typescript&logoColor=white)
3
+ [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](../../../LICENSE.md) [![npm](https://img.shields.io/npm/v/@squawk/flightplan)](https://www.npmjs.com/package/@squawk/flightplan) ![TypeScript](https://img.shields.io/badge/TypeScript-blue?logo=typescript&logoColor=white)
4
4
 
5
5
  Pure logic library for parsing flight plan route strings into structured,
6
6
  coordinate-resolved route elements. Composes airport, navaid, fix, airway,
@@ -50,6 +50,42 @@ const resolver = createFlightplanResolver({ airports: myAirportResolver });
50
50
  const route = resolver.parse('KJFK DCT KLAX');
51
51
  ```
52
52
 
53
+ ## Browser / SPA usage
54
+
55
+ The resolver factory has no Node-specific imports and ships an explicit `/browser` subpath for SPAs and edge runtimes. Pair it with the `/browser` entries of the resolvers you want to compose:
56
+
57
+ ```typescript
58
+ import { loadUsBundledAirports } from '@squawk/airport-data/browser';
59
+ import { loadUsBundledNavaids } from '@squawk/navaid-data/browser';
60
+ import { loadUsBundledFixes } from '@squawk/fix-data/browser';
61
+ import { loadUsBundledAirways } from '@squawk/airway-data/browser';
62
+ import { loadUsBundledProcedures } from '@squawk/procedure-data/browser';
63
+ import { createAirportResolver } from '@squawk/airports/browser';
64
+ import { createNavaidResolver } from '@squawk/navaids/browser';
65
+ import { createFixResolver } from '@squawk/fixes/browser';
66
+ import { createAirwayResolver } from '@squawk/airways/browser';
67
+ import { createProcedureResolver } from '@squawk/procedures/browser';
68
+ import { createFlightplanResolver } from '@squawk/flightplan/browser';
69
+
70
+ const [airports, navaids, fixes, airways, procedures] = await Promise.all([
71
+ loadUsBundledAirports(),
72
+ loadUsBundledNavaids(),
73
+ loadUsBundledFixes(),
74
+ loadUsBundledAirways(),
75
+ loadUsBundledProcedures(),
76
+ ]);
77
+
78
+ const resolver = createFlightplanResolver({
79
+ airports: createAirportResolver({ data: airports.records }),
80
+ navaids: createNavaidResolver({ data: navaids.records }),
81
+ fixes: createFixResolver({ data: fixes.records }),
82
+ airways: createAirwayResolver({ data: airways.records }),
83
+ procedures: createProcedureResolver({ data: procedures.records }),
84
+ });
85
+ ```
86
+
87
+ The `/browser` entry is identical to the main entry; the separate subpath exists so browser support is an explicit, `publint`-verified part of the public API surface.
88
+
53
89
  ## API
54
90
 
55
91
  ### `createFlightplanResolver(options)`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@squawk/flightplan",
3
- "version": "0.4.4",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "description": "Flight plan route string parsing and resolution using composed navigation resolvers",
6
6
  "author": "Neil Cochran",
@@ -21,6 +21,10 @@
21
21
  ".": {
22
22
  "types": "./dist/index.d.ts",
23
23
  "import": "./dist/index.js"
24
+ },
25
+ "./browser": {
26
+ "types": "./dist/index.d.ts",
27
+ "import": "./dist/index.js"
24
28
  }
25
29
  },
26
30
  "files": [
@@ -29,25 +33,26 @@
29
33
  ],
30
34
  "scripts": {
31
35
  "build": "tsc",
32
- "test": "node --test 'dist/**/*.spec.js'",
36
+ "test": "vitest run",
37
+ "test:coverage": "vitest run --coverage",
33
38
  "lint": "tsc --noEmit && eslint src",
34
39
  "lint:pack": "publint && attw --pack . --profile esm-only"
35
40
  },
36
41
  "dependencies": {
37
- "@squawk/geo": "^0.4.0",
38
- "@squawk/types": "^0.7.1"
42
+ "@squawk/geo": "^0.4.2",
43
+ "@squawk/types": "^0.7.2"
39
44
  },
40
45
  "devDependencies": {
41
- "@squawk/airport-data": "^0.7.1",
42
- "@squawk/airports": "^0.5.3",
43
- "@squawk/airway-data": "^0.5.1",
44
- "@squawk/airways": "^0.3.3",
45
- "@squawk/fix-data": "^0.6.1",
46
- "@squawk/fixes": "^0.2.4",
47
- "@squawk/navaid-data": "^0.6.1",
48
- "@squawk/navaids": "^0.3.4",
49
- "@squawk/procedure-data": "^0.6.1",
50
- "@squawk/procedures": "^0.4.3",
46
+ "@squawk/airport-data": "^0.7.2",
47
+ "@squawk/airports": "^0.6.0",
48
+ "@squawk/airway-data": "^0.5.2",
49
+ "@squawk/airways": "^0.4.0",
50
+ "@squawk/fix-data": "^0.6.2",
51
+ "@squawk/fixes": "^0.3.0",
52
+ "@squawk/navaid-data": "^0.6.2",
53
+ "@squawk/navaids": "^0.4.0",
54
+ "@squawk/procedure-data": "^0.7.1",
55
+ "@squawk/procedures": "^0.5.0",
51
56
  "@types/node": "^25.6.0"
52
57
  },
53
58
  "keywords": [