soaring-symbols 0.2.1 → 0.2.3
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.
- package/API.md +30 -19
- package/README.md +19 -12
- package/dist/airlines.json +1 -1
- package/dist/assets/air-arabia/icon-mono.svg +1 -1
- package/dist/assets/air-arabia/icon.svg +1 -1
- package/dist/assets/air-berlin/icon-mono.svg +1 -1
- package/dist/assets/air-berlin/icon.svg +1 -1
- package/dist/assets/air-berlin/logo-mono.svg +1 -1
- package/dist/assets/air-berlin/logo.svg +1 -1
- package/dist/assets/airasia-cambodia/logo-mono.svg +1 -0
- package/dist/assets/airasia-cambodia/logo.svg +1 -0
- package/dist/assets/american-airlines/icon.svg +1 -1
- package/dist/assets/american-airlines/logo.svg +1 -1
- package/dist/assets/austrian-airlines/logo.svg +1 -1
- package/dist/assets/avianca-costa-rica/icon-mono.svg +1 -0
- package/dist/assets/avianca-costa-rica/icon.svg +1 -0
- package/dist/assets/avianca-costa-rica/logo-mono.svg +1 -0
- package/dist/assets/avianca-costa-rica/logo.svg +1 -0
- package/dist/assets/avianca-ecuador/icon-mono.svg +1 -0
- package/dist/assets/avianca-ecuador/icon.svg +1 -0
- package/dist/assets/avianca-ecuador/logo-mono.svg +1 -0
- package/dist/assets/avianca-ecuador/logo.svg +1 -0
- package/dist/assets/avianca-el-salvador/icon-mono.svg +1 -0
- package/dist/assets/avianca-el-salvador/icon.svg +1 -0
- package/dist/assets/avianca-el-salvador/logo-mono.svg +1 -0
- package/dist/assets/avianca-el-salvador/logo.svg +1 -0
- package/dist/assets/azul/icon.svg +1 -1
- package/dist/assets/binter/logo-mono.svg +1 -0
- package/dist/assets/binter/logo.svg +1 -0
- package/dist/assets/cebu-pacific/icon.svg +1 -1
- package/dist/assets/cebu-pacific/logo.svg +1 -1
- package/dist/assets/china-airlines/logo.svg +1 -1
- package/dist/assets/china-eastern-airlines/icon.svg +1 -1
- package/dist/assets/china-southern-airlines/tail.svg +1 -1
- package/dist/assets/condor/icon-mono.svg +1 -1
- package/dist/assets/condor/icon.svg +1 -1
- package/dist/assets/condor/logo-mono.svg +1 -1
- package/dist/assets/condor/logo.svg +1 -1
- package/dist/assets/delta-air-lines/icon-mono.svg +1 -1
- package/dist/assets/easyjet/logo-mono.svg +1 -1
- package/dist/assets/easyjet/logo.svg +1 -1
- package/dist/assets/egyptair/icon-mono.svg +1 -1
- package/dist/assets/egyptair/icon.svg +1 -1
- package/dist/assets/flybe/logo-mono.svg +1 -1
- package/dist/assets/flybe/logo.svg +1 -1
- package/dist/assets/frontier-airlines/icon-mono.svg +1 -1
- package/dist/assets/frontier-airlines/icon.svg +1 -1
- package/dist/assets/gol/logo.svg +1 -1
- package/dist/assets/hawaiian-airlines/icon.svg +1 -1
- package/dist/assets/hawaiian-airlines/logo.svg +1 -1
- package/dist/assets/indonesia-airasia/logo-mono.svg +1 -0
- package/dist/assets/indonesia-airasia/logo.svg +1 -0
- package/dist/assets/ita-airways/logo.svg +1 -1
- package/dist/assets/jet2com/icon-mono.svg +1 -1
- package/dist/assets/jet2com/icon.svg +1 -1
- package/dist/assets/jetstar-japan/icon-mono.svg +1 -0
- package/dist/assets/jetstar-japan/icon.svg +1 -0
- package/dist/assets/jetstar-japan/logo-mono.svg +1 -0
- package/dist/assets/jetstar-japan/logo.svg +1 -0
- package/dist/assets/juneyao-air/icon-mono.svg +1 -0
- package/dist/assets/juneyao-air/icon.svg +1 -0
- package/dist/assets/juneyao-air/logo-mono.svg +1 -0
- package/dist/assets/juneyao-air/logo.svg +1 -0
- package/dist/assets/latam-airlines-brasil/icon-mono.svg +1 -0
- package/dist/assets/latam-airlines-brasil/icon.svg +1 -0
- package/dist/assets/latam-airlines-brasil/logo-mono.svg +1 -0
- package/dist/assets/latam-airlines-brasil/logo.svg +1 -0
- package/dist/assets/latam-airlines-colombia/icon-mono.svg +1 -0
- package/dist/assets/latam-airlines-colombia/icon.svg +1 -0
- package/dist/assets/latam-airlines-colombia/logo-mono.svg +1 -0
- package/dist/assets/latam-airlines-colombia/logo.svg +1 -0
- package/dist/assets/latam-airlines-ecuador/icon-mono.svg +1 -0
- package/dist/assets/latam-airlines-ecuador/icon.svg +1 -0
- package/dist/assets/latam-airlines-ecuador/logo-mono.svg +1 -0
- package/dist/assets/latam-airlines-ecuador/logo.svg +1 -0
- package/dist/assets/latam-airlines-paraguay/icon-mono.svg +1 -0
- package/dist/assets/latam-airlines-paraguay/icon.svg +1 -0
- package/dist/assets/latam-airlines-paraguay/logo-mono.svg +1 -0
- package/dist/assets/latam-airlines-paraguay/logo.svg +1 -0
- package/dist/assets/latam-airlines-peru/icon-mono.svg +1 -0
- package/dist/assets/latam-airlines-peru/icon.svg +1 -0
- package/dist/assets/latam-airlines-peru/logo-mono.svg +1 -0
- package/dist/assets/latam-airlines-peru/logo.svg +1 -0
- package/dist/assets/level/icon.svg +1 -0
- package/dist/assets/level/logo.svg +1 -0
- package/dist/assets/lion-air/icon-mono.svg +1 -1
- package/dist/assets/lion-air/icon.svg +1 -1
- package/dist/assets/norwegian-air-shuttle/icon.svg +1 -1
- package/dist/assets/norwegian-air-shuttle/logo-mono.svg +1 -1
- package/dist/assets/norwegian-air-shuttle/logo.svg +1 -1
- package/dist/assets/pegasus-airlines/icon-mono.svg +1 -1
- package/dist/assets/pegasus-airlines/icon.svg +1 -1
- package/dist/assets/philippines-airasia/logo-mono.svg +1 -0
- package/dist/assets/philippines-airasia/logo.svg +1 -0
- package/dist/assets/sas-connect/logo-mono.svg +1 -0
- package/dist/assets/sas-connect/logo.svg +1 -0
- package/dist/assets/spirit-airlines/logo-mono.svg +1 -1
- package/dist/assets/spirit-airlines/logo.svg +1 -1
- package/dist/assets/thai-airasia/logo-mono.svg +1 -0
- package/dist/assets/thai-airasia/logo.svg +1 -0
- package/dist/assets/viva/icon-mono.svg +1 -1
- package/dist/assets/viva/icon.svg +1 -1
- package/dist/assets/volaris/icon.svg +1 -1
- package/dist/assets/vueling/logo.svg +1 -1
- package/dist/assets/winair/logo-mono.svg +1 -0
- package/dist/assets/winair/logo.svg +1 -0
- package/dist/assets/wizz-air-abu-dhabi/logo-mono.svg +1 -0
- package/dist/assets/wizz-air-abu-dhabi/logo.svg +1 -0
- package/dist/assets/wizz-air-uk/logo-mono.svg +1 -0
- package/dist/assets/wizz-air-uk/logo.svg +1 -0
- package/dist/index.d.cts +7 -11
- package/dist/index.d.ts +7 -11
- package/dist/svg-validator.cjs +382 -5
- package/dist/svg-validator.d.cts +12 -0
- package/dist/svg-validator.d.ts +12 -0
- package/dist/svg-validator.js +382 -5
- package/package.json +4 -3
- package/AIRLINES.md +0 -144
package/API.md
CHANGED
|
@@ -118,25 +118,26 @@ The object returned by `getAirline()` and found in the array from `listAirlines(
|
|
|
118
118
|
}
|
|
119
119
|
```
|
|
120
120
|
|
|
121
|
-
| Field | Type
|
|
122
|
-
| :------------- |
|
|
123
|
-
| `name` | `string`
|
|
124
|
-
| `iata` | `string`
|
|
125
|
-
| `icao` | `string`
|
|
126
|
-
| `callsign` | `string?`
|
|
127
|
-
| `country` | `string`
|
|
128
|
-
| `slug` | `string`
|
|
129
|
-
| `website` | `string?`
|
|
130
|
-
| `flag_carrier` | `boolean?`
|
|
131
|
-
| `alliance` | `string?`
|
|
132
|
-
| `
|
|
133
|
-
| `
|
|
134
|
-
| `
|
|
135
|
-
| `
|
|
136
|
-
| `
|
|
137
|
-
| `
|
|
138
|
-
| `
|
|
139
|
-
| `
|
|
121
|
+
| Field | Type | Description |
|
|
122
|
+
| :------------- | :---------- | :----------------------------------------------------------------------------------------------------------------------------------- |
|
|
123
|
+
| `name` | `string` | Full airline name. |
|
|
124
|
+
| `iata` | `string` | 2-character IATA code. |
|
|
125
|
+
| `icao` | `string` | 3-letter ICAO code. |
|
|
126
|
+
| `callsign` | `string?` | ICAO radiotelephony callsign, uppercase, e.g. `"VIET NAM AIRLINES"`. |
|
|
127
|
+
| `country` | `string` | ISO 3166-1 alpha-2 code; comma-separated when the airline belongs to several. |
|
|
128
|
+
| `slug` | `string` | URL-friendly name, also the asset folder name. |
|
|
129
|
+
| `website` | `string?` | Official website. |
|
|
130
|
+
| `flag_carrier` | `boolean?` | `true` for a national flag carrier. |
|
|
131
|
+
| `alliance` | `string?` | `"oneworld"`, `"SkyTeam"` or `"Star Alliance"`. |
|
|
132
|
+
| `parent` | `string?` | Slug of the airline that owns this one, e.g. `"airasia"` for Thai AirAsia. |
|
|
133
|
+
| `marks` | `string?` | Slug of the airline whose logos this one uses. The files are still published under this airline's own slug, so nothing else changes. |
|
|
134
|
+
| `hubs` | `string[]?` | IATA codes of its hub airports, e.g. `["HAN", "SGN"]`. Low-cost carriers often have bases rather than hubs, and none listed. |
|
|
135
|
+
| `founded` | `number?` | Year founded, counting from the predecessor its history starts with (e.g. 1956 for Vietnam Airlines). |
|
|
136
|
+
| `defunct` | `boolean?` | `true` if the airline has ceased operations. |
|
|
137
|
+
| `ceased` | `number?` | Year a defunct airline ceased operations. |
|
|
138
|
+
| `vectorized` | `boolean?` | `true` if the SVG was vectorized by hand. |
|
|
139
|
+
| `branding` | `object?` | `primary_color`, `tagline` and `guidelines` (link to the brand guidelines), each optional. |
|
|
140
|
+
| `assets` | `object` | One [`AssetInfo`](#assetinfo) per available type (`icon`, `logo`, `tail`). Missing types have no key. |
|
|
140
141
|
|
|
141
142
|
### AssetInfo
|
|
142
143
|
|
|
@@ -160,6 +161,16 @@ assets/<slug>/
|
|
|
160
161
|
└── logo-mono.svg # hand-made for a multi-color logo, optional
|
|
161
162
|
```
|
|
162
163
|
|
|
164
|
+
## Subsidiaries in 0.2.2
|
|
165
|
+
|
|
166
|
+
`0.2.2` drops the `subsidiaries` field, in a patch release since nothing known reads it. Each airline that used to be listed there is now an entry of its own, with its own codes, country, website and callsign, returned by `listAirlines()` and `getAirline()`. Its `parent` field holds the slug of the airline that owns it.
|
|
167
|
+
|
|
168
|
+
| Up to 0.2.1 | From 0.2.2 |
|
|
169
|
+
| :--------------------------------------- | :----------------------------------------------------------------- |
|
|
170
|
+
| `getAirline('AK').subsidiaries` | `listAirlines().filter((a) => a.parent === 'airasia')` |
|
|
171
|
+
| `getAirline('FD')` returns `undefined` | Returns Thai AirAsia; `getAssetPath('FD', 'logo')` gives its logo. |
|
|
172
|
+
| A subsidiary used its parent's SVG files | It has files under its own slug: `assets/thai-airasia/logo.svg`. |
|
|
173
|
+
|
|
163
174
|
## Migrating from the old API
|
|
164
175
|
|
|
165
176
|
Versions up to `0.1.0-alpha.14` exported `getAssets()`, `getAssetContent()`, a default export and a `soaring-symbols/utils` subpath. They are gone; the asset information now ships precomputed in each airline's `assets` field, so the library no longer touches the file system.
|
package/README.md
CHANGED
|
@@ -17,17 +17,21 @@ Browse the collection, open a page for any airline to download its marks, and ch
|
|
|
17
17
|
|
|
18
18
|
## Roadmap
|
|
19
19
|
|
|
20
|
+
This is the one roadmap for the collection and every integration around it, including the ones built in other repositories (the API on the website, the Raycast extension). Plans that only concern the website itself, such as its pages and tooling, are tracked in the [website's README](https://github.com/soaring-symbols/website#roadmap).
|
|
21
|
+
|
|
20
22
|
- [x] npm package
|
|
23
|
+
- [x] A `branding.primary_color` for every airline
|
|
24
|
+
- [x] jsDelivr CDN
|
|
21
25
|
- [x] Website with a browsable catalog, a page per airline and an SVG validator
|
|
26
|
+
- [x] JSON API on the website, such as [`/api/airlines/VN`](https://soaringsymbols.org/api/airlines/VN)
|
|
22
27
|
- [x] Raycast extension
|
|
23
|
-
- [x]
|
|
24
|
-
- [ ] Iconify icon set, for Iconify, Nuxt Icon, UnoCSS, Tailwind and Astro
|
|
28
|
+
- [x] Image endpoint on the website, to load a mark by IATA or ICAO code, with monochrome marks in a chosen color and PNG for apps that can't render SVG, such as [`/api/airlines/VN/icon.png`](https://soaringsymbols.org/api/airlines/VN/icon.png)
|
|
25
29
|
- [ ] Figma plugin, to search airlines by name or IATA code and drop their marks into designs
|
|
26
|
-
- [ ] Swift Package, with an asset catalog and a SwiftUI view
|
|
27
|
-
- [ ] JSON API on the website, such as `/api/airlines/VN`
|
|
28
|
-
- [ ] A `branding.primary_color` for every airline (Iberia and Qantas have none yet)
|
|
29
30
|
|
|
30
|
-
|
|
31
|
+
### Not planned
|
|
32
|
+
|
|
33
|
+
- Iconify icon set: Iconify declined to add the collection, as airline logos are too niche for its users ([iconify/icon-sets#223](https://github.com/iconify/icon-sets/issues/223)). A self-published Iconify JSON would miss what makes Iconify useful (its API, search and auto-installed `@iconify-json` packages), so the SVGs from npm or jsDelivr remain the way to use the marks.
|
|
34
|
+
- Swift and Android packages: bundled marks go stale until the app ships an update, and Android needs every SVG converted to a VectorDrawable. Native apps can load the marks by URL instead, from jsDelivr or the image endpoint. We'll reconsider if someone asks for a package.
|
|
31
35
|
|
|
32
36
|
## Installation
|
|
33
37
|
|
|
@@ -47,17 +51,17 @@ bun add soaring-symbols
|
|
|
47
51
|
|
|
48
52
|
## Ecosystem
|
|
49
53
|
|
|
50
|
-
| Tool / Integration
|
|
51
|
-
|
|
|
52
|
-
| [npm Package](https://www.npmjs.com/package/soaring-symbols) <img src="https://cdn.simpleicons.org/npm/000/CB3837" alt="npm" align=left width=24 height=24 />
|
|
53
|
-
| [Raycast Extension](https://www.raycast.com/anhthang/soaring-symbols) <img src="https://cdn.simpleicons.org/raycast/000/FF6363" alt="Raycast" align=left width=24 height=24 /> | [anhthang]|
|
|
54
|
+
| Tool / Integration | Author |
|
|
55
|
+
| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------- |
|
|
56
|
+
| [npm Package](https://www.npmjs.com/package/soaring-symbols) <img src="https://cdn.simpleicons.org/npm/000/CB3837" alt="npm" align=left width=24 height=24 /> | [anhthang] |
|
|
54
57
|
| [jsDelivr CDN](https://www.jsdelivr.com/package/npm/soaring-symbols) <img src="https://cdn.simpleicons.org/jsdelivr/000/E84D3D" alt="jsDelivr" align=left width=24 height=24 /> | [jsDelivr](https://www.jsdelivr.com) |
|
|
58
|
+
| [Raycast Extension](https://www.raycast.com/anhthang/soaring-symbols) <img src="https://cdn.simpleicons.org/raycast/000/FF6363" alt="Raycast" align=left width=24 height=24 /> | [anhthang] |
|
|
55
59
|
|
|
56
|
-
The Raycast extension also works in launchers that run Raycast extensions, such as [Vicinae](https://www.vicinae.com), [SuperCmd](https://supercmd.sh) and [Tinycast](https://tinycast.dev). See the [ecosystem
|
|
60
|
+
The Raycast extension also works in launchers that run Raycast extensions, such as [Vicinae](https://www.vicinae.com), [SuperCmd](https://supercmd.sh) and [Tinycast](https://tinycast.dev). See the [ecosystem page on the website](https://soaringsymbols.org/ecosystem#raycast) for how to use each one.
|
|
57
61
|
|
|
58
62
|
### CDN
|
|
59
63
|
|
|
60
|
-
Link any mark straight from the npm package through jsDelivr, with nothing to install. `<slug>` is the airline's name in lowercase with hyphens (e.g. `vietnam-airlines
|
|
64
|
+
Link any mark straight from the npm package through jsDelivr, with nothing to install. `<slug>` is the airline's name in lowercase with hyphens (e.g. `vietnam-airlines`; every airline's page on [soaringsymbols.org](https://soaringsymbols.org) shows it); swap `logo` for `icon` or `tail` to get the other marks.
|
|
61
65
|
|
|
62
66
|
```text
|
|
63
67
|
https://cdn.jsdelivr.net/npm/soaring-symbols/dist/assets/<slug>/logo.svg
|
|
@@ -79,10 +83,13 @@ const vna = getAirline('VN')
|
|
|
79
83
|
"name": "Vietnam Airlines",
|
|
80
84
|
"iata": "VN",
|
|
81
85
|
"icao": "HVN",
|
|
86
|
+
"callsign": "VIET NAM AIRLINES",
|
|
82
87
|
"country": "VN",
|
|
83
88
|
"flag_carrier": true,
|
|
84
89
|
"website": "https://www.vietnamairlines.com",
|
|
85
90
|
"alliance": "SkyTeam",
|
|
91
|
+
"hubs": ["HAN", "SGN"],
|
|
92
|
+
"founded": 1956,
|
|
86
93
|
"branding": {
|
|
87
94
|
"primary_color": "#d99e09",
|
|
88
95
|
"tagline": "Reach Further",
|