fshub-api 4.0.2 → 4.1.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 (113) hide show
  1. package/dist/api/airport/Airport_findByICAO.d.ts +3 -0
  2. package/dist/api/airport/Airport_findByICAO.d.ts.map +1 -0
  3. package/dist/api/airport/Airport_findByICAO.js +57 -0
  4. package/dist/api/airport/Airport_findByICAO.js.map +1 -0
  5. package/dist/api/airport/Airport_findMETAR.d.ts +3 -0
  6. package/dist/api/airport/Airport_findMETAR.d.ts.map +1 -0
  7. package/dist/api/airport/Airport_findMETAR.js +57 -0
  8. package/dist/api/airport/Airport_findMETAR.js.map +1 -0
  9. package/dist/api/airport/index.d.ts +7 -0
  10. package/dist/api/airport/index.d.ts.map +1 -0
  11. package/dist/api/airport/index.js +13 -0
  12. package/dist/api/airport/index.js.map +1 -0
  13. package/dist/api/index.d.ts +4 -0
  14. package/dist/api/index.d.ts.map +1 -1
  15. package/dist/api/index.js +3 -1
  16. package/dist/api/index.js.map +1 -1
  17. package/dist/index.d.ts +33 -31
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +22 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/types/Airline.d.ts +25 -0
  22. package/dist/types/Airline.d.ts.map +1 -0
  23. package/dist/types/Airline.js +3 -0
  24. package/dist/types/Airline.js.map +1 -0
  25. package/dist/types/Airport.d.ts +50 -0
  26. package/dist/types/Airport.d.ts.map +1 -0
  27. package/dist/types/Airport.js +3 -0
  28. package/dist/types/Airport.js.map +1 -0
  29. package/dist/types/AirportMETARReport.d.ts +13 -0
  30. package/dist/types/AirportMETARReport.d.ts.map +1 -0
  31. package/dist/types/AirportMETARReport.js +3 -0
  32. package/dist/types/AirportMETARReport.js.map +1 -0
  33. package/dist/types/Common.d.ts +16 -0
  34. package/dist/types/Common.d.ts.map +1 -0
  35. package/dist/types/Common.js +3 -0
  36. package/dist/types/Common.js.map +1 -0
  37. package/dist/types/Config.d.ts +7 -0
  38. package/dist/types/Config.d.ts.map +1 -0
  39. package/dist/types/Config.js +3 -0
  40. package/dist/types/Config.js.map +1 -0
  41. package/dist/types/FSHubAirline.d.ts +65 -0
  42. package/dist/types/FSHubAirline.d.ts.map +1 -0
  43. package/dist/types/FSHubAirline.js +3 -0
  44. package/dist/types/FSHubAirline.js.map +1 -0
  45. package/dist/types/FSHubApi.d.ts +54 -0
  46. package/dist/types/FSHubApi.d.ts.map +1 -0
  47. package/dist/types/FSHubApi.js +3 -0
  48. package/dist/types/FSHubApi.js.map +1 -0
  49. package/dist/types/FSHubApplication.d.ts +8 -0
  50. package/dist/types/FSHubApplication.d.ts.map +1 -0
  51. package/dist/types/FSHubApplication.js +3 -0
  52. package/dist/types/FSHubApplication.js.map +1 -0
  53. package/dist/types/FSHubError.d.ts +9 -0
  54. package/dist/types/FSHubError.d.ts.map +1 -0
  55. package/dist/types/FSHubError.js +3 -0
  56. package/dist/types/FSHubError.js.map +1 -0
  57. package/dist/types/FSHubPilotPointPurchase.d.ts +10 -0
  58. package/dist/types/FSHubPilotPointPurchase.d.ts.map +1 -0
  59. package/dist/types/FSHubPilotPointPurchase.js +3 -0
  60. package/dist/types/FSHubPilotPointPurchase.js.map +1 -0
  61. package/dist/types/FSHubRequestOptions.d.ts +5 -0
  62. package/dist/types/FSHubRequestOptions.d.ts.map +1 -0
  63. package/dist/types/FSHubRequestOptions.js +3 -0
  64. package/dist/types/FSHubRequestOptions.js.map +1 -0
  65. package/dist/types/FSHubResponse.d.ts +12 -0
  66. package/dist/types/FSHubResponse.d.ts.map +1 -0
  67. package/dist/types/FSHubResponse.js +3 -0
  68. package/dist/types/FSHubResponse.js.map +1 -0
  69. package/dist/types/Flight.d.ts +77 -0
  70. package/dist/types/Flight.d.ts.map +1 -0
  71. package/dist/types/Flight.js +3 -0
  72. package/dist/types/Flight.js.map +1 -0
  73. package/dist/types/Pilot.d.ts +20 -0
  74. package/dist/types/Pilot.d.ts.map +1 -0
  75. package/dist/types/Pilot.js +3 -0
  76. package/dist/types/Pilot.js.map +1 -0
  77. package/dist/types/Screenshot.d.ts +14 -0
  78. package/dist/types/Screenshot.d.ts.map +1 -0
  79. package/dist/types/Screenshot.js +3 -0
  80. package/dist/types/Screenshot.js.map +1 -0
  81. package/dist/types/Stats.d.ts +21 -0
  82. package/dist/types/Stats.d.ts.map +1 -0
  83. package/dist/types/Stats.js +3 -0
  84. package/dist/types/Stats.js.map +1 -0
  85. package/dist/types/index.d.ts +19 -305
  86. package/dist/types/index.d.ts.map +1 -1
  87. package/dist/types/index.js +5 -0
  88. package/dist/types/index.js.map +1 -1
  89. package/package.json +56 -56
  90. package/src/api/airport/Airport_findByICAO.ts +9 -0
  91. package/src/api/airport/Airport_findMETAR.ts +9 -0
  92. package/src/api/airport/index.ts +7 -0
  93. package/src/api/index.ts +3 -1
  94. package/src/index.spec.ts +25 -2
  95. package/src/index.ts +12 -1
  96. package/src/types/Airline.ts +26 -0
  97. package/src/types/Airport.ts +56 -0
  98. package/src/types/AirportMETARReport.ts +14 -0
  99. package/src/types/Common.ts +17 -0
  100. package/src/types/Config.ts +6 -0
  101. package/src/types/FSHubAirline.ts +73 -0
  102. package/src/types/FSHubApi.ts +54 -0
  103. package/src/types/FSHubApplication.ts +8 -0
  104. package/src/types/FSHubError.ts +8 -0
  105. package/src/types/FSHubPilotPointPurchase.ts +10 -0
  106. package/src/types/FSHubRequestOptions.ts +4 -0
  107. package/src/types/FSHubResponse.ts +11 -0
  108. package/src/types/Flight.ts +88 -0
  109. package/src/types/Pilot.ts +21 -0
  110. package/src/types/Screenshot.ts +15 -0
  111. package/src/types/Stats.ts +23 -0
  112. package/src/types/index.ts +63 -348
  113. package/workspace.code-workspace +10 -0
@@ -1,308 +1,22 @@
1
- import { AxiosInstance } from 'axios';
2
1
  /**
3
- * FSHub API Types and type= s
2
+ * FSHub API Types and types
3
+ *
4
+ * All types are exported from individual files for better organization.
4
5
  */
5
- export type Config = {
6
- baseURL?: string;
7
- apiKey?: string;
8
- timeout?: number;
9
- headers?: Record<string, string>;
10
- };
11
- export type CurrentPilot = Pilot & {
12
- discord_id?: number;
13
- };
14
- export type Pilot = {
15
- id: number;
16
- name: string;
17
- base: string;
18
- locale: string;
19
- gps: Gps;
20
- is_online: boolean;
21
- online_at: string;
22
- bio?: string;
23
- handles?: Handles;
24
- timezone?: string;
25
- country?: string;
26
- created_at?: string;
27
- links?: Link[];
28
- };
29
- export type Handles = {
30
- facebook: any;
31
- twitter: string;
32
- website: any;
33
- vatsim: string;
34
- ivao: string;
35
- };
36
- export type Link = {
37
- rel: string;
38
- uri: string;
39
- };
40
- export type Gps = {
41
- lat: number;
42
- lng: number;
43
- };
44
- export type Flight = {
45
- id: number;
46
- user: User;
47
- airline: Airline;
48
- schedule_status: any;
49
- aircraft: Aircraft;
50
- plan: any;
51
- fuel_used: number;
52
- landing_rate: number;
53
- distance: Distance;
54
- average: Average;
55
- max: Max;
56
- time: number;
57
- tags: any[];
58
- flags: any[];
59
- points: number;
60
- departure: Airport;
61
- arrival: Airport;
62
- links: Link[];
63
- };
64
- export type Airline = {
65
- id: number;
66
- name: string;
67
- abbr: string;
68
- owner: Owner;
69
- handles: Handles;
70
- links: Link[];
71
- };
72
- export type Owner = {
73
- id: number;
74
- name: string;
75
- bio: any;
76
- handles: Handles;
77
- base: string;
78
- locale: string;
79
- gps: Gps;
80
- timezone: string;
81
- country: string;
82
- is_online: boolean;
83
- online_at: string;
84
- created_at: string;
85
- links: Link[];
86
- };
87
- export type User = {
88
- id: number;
89
- name: string;
90
- };
91
- export type Aircraft = {
92
- icao: string;
93
- icao_name: string;
94
- name: string;
95
- type: string;
96
- user_conf: UserConf;
97
- };
98
- export type UserConf = {
99
- tail: string;
100
- icao: string;
101
- };
102
- export type Distance = {
103
- nm: number;
104
- km: number;
105
- };
106
- export type Average = {
107
- spd: number;
108
- };
109
- export type Max = {
110
- alt: number;
111
- spd: number;
112
- };
113
- export type Geo = {
114
- lat: number;
115
- lng: number;
116
- };
117
- export type Hdg = {
118
- mag: number;
119
- true: number;
120
- };
121
- export type Spd = {
122
- tas: number;
123
- };
124
- export type Wind = {
125
- spd: number;
126
- dir: number;
127
- };
128
- export type Airport = {
129
- icao: string;
130
- iata: string;
131
- name: string;
132
- time: string;
133
- geo: Geo;
134
- hdg: Hdg;
135
- spd: Spd;
136
- fuel: number;
137
- pitch: number;
138
- bank: number;
139
- wind: Wind;
140
- };
141
- export type PilotStats = {
142
- id: number;
143
- all_time: PilotStat;
144
- month: PilotStat;
145
- links: Link[];
146
- };
147
- export type AirlineStats = {
148
- id: number;
149
- total_pilots: number;
150
- all_time: PilotStat;
151
- month: PilotStat;
152
- links: Link[];
153
- };
154
- export type PilotStat = {
155
- total_flights: number;
156
- total_hours: number;
157
- total_distance: number;
158
- average_landing: number;
159
- };
160
- export type Screenshot = {
161
- id: number;
162
- name: string;
163
- desc: any;
164
- urls: Urls;
165
- created_at: string;
166
- links: Link[];
167
- };
168
- export type Urls = {
169
- fullsize: string;
170
- thumbnail: string;
171
- };
172
- export type FSHubRequestOptions = {
173
- cursor?: number;
174
- limit?: number;
175
- };
176
- export type FSHubApi = {
177
- axios: AxiosInstance;
178
- Pilot_getCurrent: () => Promise<FSHubResponse<CurrentPilot>>;
179
- Pilot_getAll: () => Promise<FSHubResponse<Pilot[]>>;
180
- Pilot_get: (id: number) => Promise<FSHubResponse<Pilot>>;
181
- Pilot_getLatestFlight: (id: number) => Promise<FSHubResponse<Flight>>;
182
- Pilot_getAllFlights: (id: number) => Promise<FSHubResponse<Flight[]>>;
183
- Pilot_getAllAirlines: (id: number) => Promise<FSHubResponse<Airline[]>>;
184
- Pilot_getStats: (id: number) => Promise<FSHubResponse<PilotStats>>;
185
- Pilot_getAllFlightsDepartures: (id: number, airportCode: string) => Promise<FSHubResponse<Flight[]>>;
186
- Pilot_getAllFlightsArrivals: (id: number, airportCode: string) => Promise<FSHubResponse<Flight[]>>;
187
- Pilot_getAllFlightDeparturesAndArrivals: (id: number, departureAirportCode: string, arrivalAirportCode: string) => Promise<FSHubResponse<Flight[]>>;
188
- Pilot_getAllScreenshots: (id: number) => Promise<FSHubResponse<Screenshot[]>>;
189
- Airline_getAll: () => Promise<FSHubResponse<Airline[]>>;
190
- Airline_get: (id: number) => Promise<FSHubResponse<Airline>>;
191
- Airline_getPilots: (id: number) => Promise<FSHubResponse<Pilot[]>>;
192
- Airline_getPilotStats: (id: number, pilotId: number) => Promise<FSHubResponse<FSHubAirlinePilotStats>>;
193
- Airline_getFlights: (id: number) => Promise<FSHubResponse<Flight[]>>;
194
- Airline_getAllFlightsDepartures: (id: number, airportCode: string) => Promise<FSHubResponse<Flight[]>>;
195
- Airline_getAllFlightsArrivals: (id: number, airportCode: string) => Promise<FSHubResponse<Flight[]>>;
196
- Airline_getAllFlightDeparturesAndArrivals: (id: number, departureAirportCode: string, arrivalAirportCode: string) => Promise<FSHubResponse<Flight[]>>;
197
- Airline_getAllScreenshots: (id: number) => Promise<FSHubResponse<Screenshot[]>>;
198
- Airline_getStats: (id: number) => Promise<FSHubResponse<AirlineStats>>;
199
- Airline_approveApplication: (pilotId: number, airlineId: number) => Promise<FSHubResponse<FSHubApplicationResponse>>;
200
- Airline_rejectApplication: (pilotId: number, airlineId: number) => Promise<FSHubResponse<FSHubApplicationResponse>>;
201
- Airline_pilotPointPurchase: (pilotId: number, airlineId: number, data: FSHubPilotPointPurchaseTransactionData) => Promise<FSHubResponse<FSHubPilotPointPurchaseTransactionResponse>>;
202
- Airline_pilotSetRank: (pilotId: number, airlineId: number, data: FSHubPilotSetRankData) => Promise<FSHubResponse<FSHubApplicationResponse>>;
203
- Airline_getAllRanks: (airlineId: number) => Promise<FSHubResponse<FSHubAirlineRank[]>>;
204
- Airline_getAllRoles: (airlineId: number) => Promise<FSHubResponse<FSHubAirlineRole[]>>;
205
- Flight_getFlightById: (id: number) => Promise<FSHubResponse<Flight>>;
206
- Flight_getFlightScreenshotsById: (id: number) => Promise<FSHubResponse<Screenshot[]>>;
207
- Flight_getFlights: (options?: FSHubRequestOptions) => Promise<FSHubResponse<Flight[]>>;
208
- };
209
- export type FSHubResponse<T> = {
210
- data: T;
211
- meta?: {
212
- cursor: {
213
- current: number;
214
- prev: number;
215
- next: number;
216
- count: number;
217
- };
218
- };
219
- };
220
- export type FSHubApplicationResponse = {
221
- successful: boolean;
222
- message: string;
223
- };
224
- export type FSHubPilotPointPurchaseTransactionData = {
225
- amount: number;
226
- summary: string;
227
- };
228
- export type FSHubPilotPointPurchaseTransactionResponse = {
229
- successful: boolean;
230
- message: string;
231
- transferred: number;
232
- };
233
- export type FSHubError = {
234
- message: string;
235
- code: number;
236
- error?: boolean;
237
- details?: {
238
- pilot: number;
239
- };
240
- };
241
- export type FSHubPilotSetRankData = {
242
- rank_id: number;
243
- };
244
- export type FSHubAirlineRole = {
245
- id: number;
246
- name: string;
247
- created_at: string;
248
- updated_at: string;
249
- };
250
- export type FSHubAirlineRank = {
251
- id: number;
252
- name: string;
253
- abbreviation: string;
254
- min_hours: number;
255
- created_at: string;
256
- updated_at: string;
257
- };
258
- export type FSHubAirlinePilotStats = {
259
- user: FSHubAirlinePilotStatsUser;
260
- points: number;
261
- carry_hours: number;
262
- rank: FSHubAirlinePilotStatsRank;
263
- roles: FSHubAirlinePilotStatsRoles[];
264
- hired_at: string;
265
- discord_id: number;
266
- links: FSHubAirlinePilotStatsLink[];
267
- };
268
- export type FSHubAirlinePilotStatsRoles = {
269
- [key: string]: any;
270
- };
271
- export type FSHubAirlinePilotStatsUser = {
272
- id: number;
273
- name: string;
274
- email: string;
275
- profile: FSHubAirlinePilotStatsUserProfile;
276
- locations: FSHubAirlinePilotStatsUserLocations;
277
- handles: FSHubAirlinePilotStatsUserHandles;
278
- timezone: string;
279
- country: string;
280
- };
281
- export type FSHubAirlinePilotStatsUserProfile = {
282
- avatar_url: string;
283
- bio: string;
284
- };
285
- export type FSHubAirlinePilotStatsUserLocations = {
286
- base: string;
287
- locale: string;
288
- };
289
- export type FSHubAirlinePilotStatsUserHandles = {
290
- website: any;
291
- twitter: any;
292
- facebook: any;
293
- vatsim: any;
294
- ivao: any;
295
- };
296
- export type FSHubAirlinePilotStatsRank = {
297
- id: number;
298
- name: string;
299
- abbreviation: string;
300
- min_hours: number;
301
- created_at: string;
302
- updated_at: string;
303
- };
304
- export type FSHubAirlinePilotStatsLink = {
305
- rel: string;
306
- uri: string;
307
- };
6
+ export type { Config } from './Config';
7
+ export type { Link, Gps, Handles } from './Common';
8
+ export type { Pilot, CurrentPilot } from './Pilot';
9
+ export type { Flight, User, Aircraft, UserConf, Distance, Average, Max, Geo, Hdg, Spd, Wind, } from './Flight';
10
+ export type { Airline, Owner } from './Airline';
11
+ export type { PilotStats, AirlineStats, PilotStat } from './Stats';
12
+ export type { Screenshot, Urls } from './Screenshot';
13
+ export type { FSHubApi } from './FSHubApi';
14
+ export type { FSHubRequestOptions } from './FSHubRequestOptions';
15
+ export type { FSHubResponse } from './FSHubResponse';
16
+ export type { FSHubError } from './FSHubError';
17
+ export type { FSHubApplicationResponse, FSHubPilotSetRankData } from './FSHubApplication';
18
+ export type { FSHubPilotPointPurchaseTransactionData, FSHubPilotPointPurchaseTransactionResponse } from './FSHubPilotPointPurchase';
19
+ export type { FSHubAirlineRole, FSHubAirlineRank, FSHubAirlinePilotStats, FSHubAirlinePilotStatsRoles, FSHubAirlinePilotStatsUser, FSHubAirlinePilotStatsUserProfile, FSHubAirlinePilotStatsUserLocations, FSHubAirlinePilotStatsUserHandles, FSHubAirlinePilotStatsRank, FSHubAirlinePilotStatsLink } from './FSHubAirline';
20
+ export type { Airport } from './Airport';
21
+ export type { AirportMETARReport, AirportMETAR } from './AirportMETARReport';
308
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC,YAAY,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGnD,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGnD,YAAY,EACV,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,GACL,MAAM,UAAU,CAAC;AAGlB,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAGhD,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGnE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGrD,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,YAAY,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC1F,YAAY,EACV,sCAAsC,EACtC,0CAA0C,EAC3C,MAAM,2BAA2B,CAAC;AACnC,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,2BAA2B,EAC3B,0BAA0B,EAC1B,iCAAiC,EACjC,mCAAmC,EACnC,iCAAiC,EACjC,0BAA0B,EAC1B,0BAA0B,EAC3B,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,YAAY,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,3 +1,8 @@
1
1
  "use strict";
2
+ /**
3
+ * FSHub API Types and types
4
+ *
5
+ * All types are exported from individual files for better organization.
6
+ */
2
7
  Object.defineProperty(exports, "__esModule", { value: true });
3
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
package/package.json CHANGED
@@ -1,56 +1,56 @@
1
- {
2
- "name": "fshub-api",
3
- "version": "4.0.2",
4
- "description": "TypeScript HTTP API wrapper library for FSHub REST API",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "repository": {
8
- "type": "git",
9
- "url": "https://github.com/VAMSApp/fshub-api"
10
- },
11
- "scripts": {
12
- "build": "tsc",
13
- "dev": "tsc --watch",
14
- "lint": "eslint src/**/*.ts",
15
- "clean": "rimraf dist",
16
- "test": "mocha --timeout 20000 --require ts-node/register src/**/*.spec.ts",
17
- "test:debug": "tsx test.ts",
18
- "test:watch": "mocha -w --timeout 20000 --require ts-node/register src/**/*.spec.ts",
19
- "prepublishOnly": "npm run clean && npm run build"
20
- },
21
- "keywords": [
22
- "fshub",
23
- "api",
24
- "typescript",
25
- "wrapper",
26
- "rest"
27
- ],
28
- "_moduleAliases": {
29
- "@types": "types/*",
30
- "@api": "api/*"
31
- },
32
- "author": {
33
- "name": "Mike DeVita",
34
- "email": "mike@devita.co"
35
- },
36
- "license": "ISC",
37
- "devDependencies": {
38
- "@types/jest": "^29.0.0",
39
- "@types/node": "^20.0.0",
40
- "@typescript-eslint/eslint-plugin": "^6.0.0",
41
- "@typescript-eslint/parser": "^6.0.0",
42
- "chai": "^5.2.1",
43
- "eslint": "^8.0.0",
44
- "jest": "^29.0.0",
45
- "mocha": "^11.7.1",
46
- "rimraf": "^5.0.0",
47
- "ts-jest": "^29.0.0",
48
- "ts-node": "^10.9.2",
49
- "tsx": "^4.20.3",
50
- "typescript": "^5.0.0"
51
- },
52
- "dependencies": {
53
- "axios": "^1.6.0",
54
- "dotenv": "^17.2.1"
55
- }
56
- }
1
+ {
2
+ "name": "fshub-api",
3
+ "version": "4.1.0",
4
+ "description": "TypeScript HTTP API wrapper library for FSHub REST API",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/VAMSApp/fshub-api"
10
+ },
11
+ "scripts": {
12
+ "build": "tsc",
13
+ "dev": "tsc --watch",
14
+ "lint": "eslint src/**/*.ts",
15
+ "clean": "rimraf dist",
16
+ "test": "mocha --timeout 20000 --require ts-node/register src/**/*.spec.ts",
17
+ "test:debug": "tsx test.ts",
18
+ "test:watch": "mocha -w --timeout 20000 --require ts-node/register src/**/*.spec.ts",
19
+ "prepublishOnly": "npm run clean && npm run build"
20
+ },
21
+ "keywords": [
22
+ "fshub",
23
+ "api",
24
+ "typescript",
25
+ "wrapper",
26
+ "rest"
27
+ ],
28
+ "_moduleAliases": {
29
+ "@types": "types/*",
30
+ "@api": "api/*"
31
+ },
32
+ "author": {
33
+ "name": "Mike DeVita",
34
+ "email": "mike@devita.co"
35
+ },
36
+ "license": "ISC",
37
+ "devDependencies": {
38
+ "@types/jest": "^29.0.0",
39
+ "@types/node": "^20.0.0",
40
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
41
+ "@typescript-eslint/parser": "^6.0.0",
42
+ "chai": "^5.2.1",
43
+ "eslint": "^8.0.0",
44
+ "jest": "^29.0.0",
45
+ "mocha": "^11.7.1",
46
+ "rimraf": "^5.0.0",
47
+ "ts-jest": "^29.0.0",
48
+ "ts-node": "^10.9.2",
49
+ "tsx": "^4.20.3",
50
+ "typescript": "^5.0.0"
51
+ },
52
+ "dependencies": {
53
+ "axios": "^1.6.0",
54
+ "dotenv": "^17.2.1"
55
+ }
56
+ }
@@ -0,0 +1,9 @@
1
+ // https://fshub.io/api/v3/airport/{icao}
2
+ import { Airport, FSHubApi, FSHubResponse } from "../../types";
3
+ import FSHubApiRequest from "../FSHubApiRequest";
4
+
5
+ export default async function Airport_findByICAO(icao: string, api: FSHubApi): Promise<FSHubResponse<Airport>> {
6
+ const response: FSHubResponse<Airport> = await FSHubApiRequest(`airport/${icao}`, api);
7
+
8
+ return response;
9
+ }
@@ -0,0 +1,9 @@
1
+ // https://fshub.io/api/v3/airport/{icao}/metar
2
+ import { AirportMETARReport, FSHubApi, FSHubResponse } from "../../types";
3
+ import FSHubApiRequest from "../FSHubApiRequest";
4
+
5
+ export default async function Airport_findMETAR(icao: string, api: FSHubApi): Promise<FSHubResponse<AirportMETARReport>> {
6
+ const response: FSHubResponse<AirportMETARReport> = await FSHubApiRequest(`airport/${icao}/metar`, api);
7
+
8
+ return response;
9
+ }
@@ -0,0 +1,7 @@
1
+ import Airport_findByICAO from './Airport_findByICAO';
2
+ import Airport_findMETAR from './Airport_findMETAR';
3
+
4
+ export const Airport = {
5
+ findByICAO: Airport_findByICAO,
6
+ findMETAR: Airport_findMETAR,
7
+ }
package/src/api/index.ts CHANGED
@@ -1,9 +1,11 @@
1
1
  import { Pilot } from "./pilot";
2
2
  import { Airline } from "./airline";
3
3
  import { Flight } from "./flight";
4
+ import { Airport } from "./airport";
4
5
 
5
6
  export const Api = {
6
7
  pilot: Pilot,
7
8
  airline: Airline,
8
- flight: Flight
9
+ flight: Flight,
10
+ airport: Airport
9
11
  };
package/src/index.spec.ts CHANGED
@@ -2,7 +2,7 @@ import { describe, before } from 'mocha';
2
2
  import { expect } from 'chai';
3
3
  import FSHubApiClass from './index';
4
4
  import dotenv from 'dotenv';
5
- import { CurrentPilot, Flight, Pilot, FSHubApi, Airline, PilotStats, Screenshot, FSHubResponse, AirlineStats, FSHubApplicationResponse, FSHubPilotPointPurchaseTransactionResponse } from './types';
5
+ import { CurrentPilot, Flight, Pilot, FSHubApi, Airline, PilotStats, Screenshot, FSHubResponse, AirlineStats, FSHubApplicationResponse, FSHubPilotPointPurchaseTransactionResponse, Airport, AirportMETARReport, FSHubAirlinePilotStats } from './types';
6
6
 
7
7
  dotenv.config();
8
8
  let api: FSHubApi;
@@ -31,6 +31,7 @@ describe('FSHubApi()', function() {
31
31
  expect(api.Pilot_getAllFlightsArrivals).to.be.a('function');
32
32
  expect(api.Pilot_getAllFlightDeparturesAndArrivals).to.be.a('function');
33
33
  expect(api.Pilot_getAllScreenshots).to.be.a('function');
34
+
34
35
  expect(api.Airline_getAll).to.be.a('function');
35
36
  expect(api.Airline_get).to.be.a('function');
36
37
  expect(api.Airline_getPilots).to.be.a('function');
@@ -47,9 +48,13 @@ describe('FSHubApi()', function() {
47
48
  expect(api.Airline_pilotSetRank).to.be.a('function');
48
49
  expect(api.Airline_getAllRanks).to.be.a('function');
49
50
  expect(api.Airline_getAllRoles).to.be.a('function');
51
+
50
52
  expect(api.Flight_getFlightById).to.be.a('function');
51
53
  expect(api.Flight_getFlightScreenshotsById).to.be.a('function');
52
54
  expect(api.Flight_getFlights).to.be.a('function');
55
+
56
+ expect(api.Airport_findByICAO).to.be.a('function');
57
+ expect(api.Airport_findMETAR).to.be.a('function');
53
58
  });
54
59
 
55
60
  describe('Pilot', function() {
@@ -165,7 +170,7 @@ describe('FSHubApi()', function() {
165
170
  it('Airline_getPilotStats(id, pilotId) is called, it should return a valid PilotStats object', async function() {
166
171
  const airline: FSHubResponse<Airline> = await api.Airline_get(6082);
167
172
  const pilot: FSHubResponse<Pilot> = await api.Pilot_getCurrent();
168
- const stats: FSHubResponse<PilotStats> = await api.Airline_getPilotStats(airline.data.id, pilot.data.id);
173
+ const stats: FSHubResponse<FSHubAirlinePilotStats> = await api.Airline_getPilotStats(airline.data.id, pilot.data.id);
169
174
 
170
175
  expect(stats.data).to.be.an('Object');
171
176
  });
@@ -279,4 +284,22 @@ describe('FSHubApi()', function() {
279
284
  });
280
285
  });
281
286
  });
287
+
288
+ describe('Airport', function() {
289
+ describe('Airport_findByICAO(icao)', function() {
290
+ it('Airport_findByICAO(icao) is called, it should return a valid Airport object', async function() {
291
+ const airport: FSHubResponse<Airport> = await api.Airport_findByICAO('KPHX');
292
+
293
+ expect(airport.data).to.be.an('Object');
294
+ });
295
+ });
296
+
297
+ describe('Airport_findMETAR(icao)', function() {
298
+ it('Airport_findMETAR(icao) is called, it should return a valid AirportMETARReport object', async function() {
299
+ const airportMETARReport: FSHubResponse<AirportMETARReport> = await api.Airport_findMETAR('KPHX');
300
+
301
+ expect(airportMETARReport.data).to.be.an('Object');
302
+ });
303
+ });
304
+ });
282
305
  });
package/src/index.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import axios, { AxiosInstance } from 'axios';
2
- import type{ Config, FSHubApi, FSHubPilotPointPurchaseTransactionData, FSHubPilotSetRankData, FSHubRequestOptions } from './types';
2
+ import type{ Airport, Config, FSHubApi, FSHubPilotPointPurchaseTransactionData, FSHubPilotSetRankData, FSHubRequestOptions, FSHubResponse } from './types';
3
3
  import { Api } from './api';
4
4
  export * from './types';
5
5
 
@@ -56,6 +56,9 @@ export default class FSHubApiClass implements FSHubApi {
56
56
  this.Flight_getFlightById = this.Flight_getFlightById.bind(this);
57
57
  this.Flight_getFlightScreenshotsById = this.Flight_getFlightScreenshotsById.bind(this);
58
58
  this.Flight_getFlights = this.Flight_getFlights.bind(this);
59
+
60
+ this.Airport_findByICAO = this.Airport_findByICAO.bind(this);
61
+ this.Airport_findMETAR = this.Airport_findMETAR.bind(this);
59
62
  }
60
63
 
61
64
  public async Pilot_getCurrent() {
@@ -177,4 +180,12 @@ export default class FSHubApiClass implements FSHubApi {
177
180
  public async Flight_getFlights(options?: FSHubRequestOptions) {
178
181
  return await Api.flight.getFlights(this, options);
179
182
  }
183
+
184
+ public async Airport_findByICAO(icao: string): Promise<FSHubResponse<Airport>> {
185
+ return await Api.airport.findByICAO(icao, this);
186
+ }
187
+
188
+ public async Airport_findMETAR(icao: string) {
189
+ return await Api.airport.findMETAR(icao, this);
190
+ }
180
191
  }
@@ -0,0 +1,26 @@
1
+ import { Gps, Handles, Link } from './Common';
2
+
3
+ export type Owner = {
4
+ id: number
5
+ name: string
6
+ bio: any
7
+ handles: Handles
8
+ base: string
9
+ locale: string
10
+ gps: Gps
11
+ timezone: string
12
+ country: string
13
+ is_online: boolean
14
+ online_at: string
15
+ created_at: string
16
+ links: Link[]
17
+ }
18
+
19
+ export type Airline = {
20
+ id: number
21
+ name: string
22
+ abbr: string
23
+ owner: Owner
24
+ handles: Handles
25
+ links: Link[]
26
+ }