rocket-launch-live-client 0.1.5 → 0.2.1

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 (45) hide show
  1. package/{dist → lib/cjs}/Client.js +32 -55
  2. package/{dist → lib/cjs}/fetcher.js +17 -15
  3. package/lib/cjs/index.js +28 -0
  4. package/{dist → lib/cjs/types}/Client.d.ts +2 -2
  5. package/lib/cjs/types/Client.d.ts.map +1 -0
  6. package/{dist → lib/cjs}/types/application.js +23 -4
  7. package/{dist → lib/cjs/types}/fetcher.d.ts +1 -0
  8. package/lib/cjs/types/fetcher.d.ts.map +1 -0
  9. package/lib/cjs/types/index.d.ts +24 -0
  10. package/lib/cjs/types/index.d.ts.map +1 -0
  11. package/lib/cjs/types/standards.js +321 -0
  12. package/{dist → lib/cjs/types}/types/application.d.ts +40 -21
  13. package/lib/cjs/types/types/application.d.ts.map +1 -0
  14. package/{dist → lib/cjs/types}/types/standards.d.ts +3 -0
  15. package/lib/cjs/types/types/standards.d.ts.map +1 -0
  16. package/lib/cjs/types/utils.d.ts +11 -0
  17. package/lib/cjs/types/utils.d.ts.map +1 -0
  18. package/{dist → lib/cjs}/utils.js +56 -60
  19. package/lib/esm/Client.js +207 -0
  20. package/lib/esm/fetcher.js +39 -0
  21. package/{dist/index.d.ts → lib/esm/index.mjs} +5 -6
  22. package/lib/esm/types/Client.d.ts +176 -0
  23. package/lib/esm/types/Client.d.ts.map +1 -0
  24. package/lib/esm/types/application.js +41 -0
  25. package/lib/esm/types/fetcher.d.ts +2 -0
  26. package/lib/esm/types/fetcher.d.ts.map +1 -0
  27. package/lib/esm/types/index.d.ts +24 -0
  28. package/lib/esm/types/index.d.ts.map +1 -0
  29. package/{dist → lib/esm}/types/standards.js +8 -6
  30. package/lib/esm/types/types/application.d.ts +184 -0
  31. package/lib/esm/types/types/application.d.ts.map +1 -0
  32. package/lib/esm/types/types/standards.d.ts +317 -0
  33. package/lib/esm/types/types/standards.d.ts.map +1 -0
  34. package/lib/esm/types/utils.d.ts +11 -0
  35. package/lib/esm/types/utils.d.ts.map +1 -0
  36. package/lib/esm/utils.js +241 -0
  37. package/package.json +32 -10
  38. package/dist/Client.js.map +0 -1
  39. package/dist/fetcher.js.map +0 -1
  40. package/dist/index.js +0 -27
  41. package/dist/index.js.map +0 -1
  42. package/dist/types/application.js.map +0 -1
  43. package/dist/types/standards.js.map +0 -1
  44. package/dist/utils.d.ts +0 -6
  45. package/dist/utils.js.map +0 -1
@@ -0,0 +1,317 @@
1
+ export declare const countryCodes: {
2
+ AF: string;
3
+ AL: string;
4
+ DZ: string;
5
+ AS: string;
6
+ AD: string;
7
+ AO: string;
8
+ AI: string;
9
+ AQ: string;
10
+ AG: string;
11
+ AR: string;
12
+ AM: string;
13
+ AW: string;
14
+ AU: string;
15
+ AT: string;
16
+ AZ: string;
17
+ BS: string;
18
+ BH: string;
19
+ BD: string;
20
+ BB: string;
21
+ BY: string;
22
+ BE: string;
23
+ BZ: string;
24
+ BJ: string;
25
+ BM: string;
26
+ BT: string;
27
+ BO: string;
28
+ BQ: string;
29
+ BA: string;
30
+ BW: string;
31
+ BV: string;
32
+ BR: string;
33
+ IO: string;
34
+ BN: string;
35
+ BG: string;
36
+ BF: string;
37
+ BI: string;
38
+ CV: string;
39
+ KH: string;
40
+ CM: string;
41
+ CA: string;
42
+ KY: string;
43
+ CF: string;
44
+ TD: string;
45
+ CL: string;
46
+ CN: string;
47
+ CX: string;
48
+ CC: string;
49
+ CO: string;
50
+ KM: string;
51
+ CD: string;
52
+ CG: string;
53
+ CK: string;
54
+ CR: string;
55
+ HR: string;
56
+ CU: string;
57
+ CW: string;
58
+ CY: string;
59
+ CZ: string;
60
+ CI: string;
61
+ DK: string;
62
+ DJ: string;
63
+ DM: string;
64
+ DO: string;
65
+ EC: string;
66
+ EG: string;
67
+ SV: string;
68
+ GQ: string;
69
+ ER: string;
70
+ EE: string;
71
+ SZ: string;
72
+ ET: string;
73
+ FK: string;
74
+ FO: string;
75
+ FJ: string;
76
+ FI: string;
77
+ FR: string;
78
+ GF: string;
79
+ PF: string;
80
+ TF: string;
81
+ GA: string;
82
+ GM: string;
83
+ GE: string;
84
+ DE: string;
85
+ GH: string;
86
+ GI: string;
87
+ GR: string;
88
+ GL: string;
89
+ GD: string;
90
+ GP: string;
91
+ GU: string;
92
+ GT: string;
93
+ GG: string;
94
+ GN: string;
95
+ GW: string;
96
+ GY: string;
97
+ HT: string;
98
+ HM: string;
99
+ VA: string;
100
+ HN: string;
101
+ HK: string;
102
+ HU: string;
103
+ IS: string;
104
+ IN: string;
105
+ ID: string;
106
+ IR: string;
107
+ IQ: string;
108
+ IE: string;
109
+ IM: string;
110
+ IL: string;
111
+ IT: string;
112
+ JM: string;
113
+ JP: string;
114
+ JE: string;
115
+ JO: string;
116
+ KZ: string;
117
+ KE: string;
118
+ KI: string;
119
+ KP: string;
120
+ KR: string;
121
+ KW: string;
122
+ KG: string;
123
+ LA: string;
124
+ LV: string;
125
+ LB: string;
126
+ LS: string;
127
+ LR: string;
128
+ LY: string;
129
+ LI: string;
130
+ LT: string;
131
+ LU: string;
132
+ MO: string;
133
+ MG: string;
134
+ MW: string;
135
+ MY: string;
136
+ MV: string;
137
+ ML: string;
138
+ MT: string;
139
+ MH: string;
140
+ MQ: string;
141
+ MR: string;
142
+ MU: string;
143
+ YT: string;
144
+ MX: string;
145
+ FM: string;
146
+ MD: string;
147
+ MC: string;
148
+ MN: string;
149
+ ME: string;
150
+ MS: string;
151
+ MA: string;
152
+ MZ: string;
153
+ MM: string;
154
+ NA: string;
155
+ NR: string;
156
+ NP: string;
157
+ NL: string;
158
+ NC: string;
159
+ NZ: string;
160
+ NI: string;
161
+ NE: string;
162
+ NG: string;
163
+ NU: string;
164
+ NF: string;
165
+ MP: string;
166
+ NO: string;
167
+ OM: string;
168
+ PK: string;
169
+ PW: string;
170
+ PS: string;
171
+ PA: string;
172
+ PG: string;
173
+ PY: string;
174
+ PE: string;
175
+ PH: string;
176
+ PN: string;
177
+ PL: string;
178
+ PT: string;
179
+ PR: string;
180
+ QA: string;
181
+ MK: string;
182
+ RO: string;
183
+ RU: string;
184
+ RW: string;
185
+ RE: string;
186
+ BL: string;
187
+ SH: string;
188
+ KN: string;
189
+ LC: string;
190
+ MF: string;
191
+ PM: string;
192
+ VC: string;
193
+ WS: string;
194
+ SM: string;
195
+ ST: string;
196
+ SA: string;
197
+ SN: string;
198
+ RS: string;
199
+ SC: string;
200
+ SL: string;
201
+ SG: string;
202
+ SX: string;
203
+ SK: string;
204
+ SI: string;
205
+ SB: string;
206
+ SO: string;
207
+ ZA: string;
208
+ GS: string;
209
+ SS: string;
210
+ ES: string;
211
+ LK: string;
212
+ SD: string;
213
+ SR: string;
214
+ SJ: string;
215
+ SE: string;
216
+ CH: string;
217
+ SY: string;
218
+ TW: string;
219
+ TJ: string;
220
+ TZ: string;
221
+ TH: string;
222
+ TL: string;
223
+ TG: string;
224
+ TK: string;
225
+ TO: string;
226
+ TT: string;
227
+ TN: string;
228
+ TR: string;
229
+ TM: string;
230
+ TC: string;
231
+ TV: string;
232
+ UG: string;
233
+ UA: string;
234
+ AE: string;
235
+ GB: string;
236
+ UM: string;
237
+ US: string;
238
+ UY: string;
239
+ UZ: string;
240
+ VU: string;
241
+ VE: string;
242
+ VN: string;
243
+ VG: string;
244
+ VI: string;
245
+ WF: string;
246
+ EH: string;
247
+ YE: string;
248
+ ZM: string;
249
+ ZW: string;
250
+ AX: string;
251
+ };
252
+ export declare const usStateCodes: {
253
+ AL: string;
254
+ AK: string;
255
+ AZ: string;
256
+ AR: string;
257
+ CA: string;
258
+ CO: string;
259
+ CT: string;
260
+ DE: string;
261
+ FL: string;
262
+ GA: string;
263
+ HI: string;
264
+ ID: string;
265
+ IL: string;
266
+ IN: string;
267
+ IA: string;
268
+ KS: string;
269
+ KY: string;
270
+ LA: string;
271
+ ME: string;
272
+ MD: string;
273
+ MA: string;
274
+ MI: string;
275
+ MN: string;
276
+ MS: string;
277
+ MO: string;
278
+ MT: string;
279
+ NE: string;
280
+ NV: string;
281
+ NH: string;
282
+ NJ: string;
283
+ NM: string;
284
+ NY: string;
285
+ NC: string;
286
+ ND: string;
287
+ OH: string;
288
+ OK: string;
289
+ OR: string;
290
+ PA: string;
291
+ RI: string;
292
+ SC: string;
293
+ SD: string;
294
+ TN: string;
295
+ TX: string;
296
+ UT: string;
297
+ VT: string;
298
+ VA: string;
299
+ WA: string;
300
+ WV: string;
301
+ WI: string;
302
+ WY: string;
303
+ DC: string;
304
+ AS: string;
305
+ GU: string;
306
+ MP: string;
307
+ PR: string;
308
+ UM: string;
309
+ VI: string;
310
+ };
311
+ export declare const isValidCountryCode: (code: string) => code is "AF" | "AL" | "DZ" | "AS" | "AD" | "AO" | "AI" | "AQ" | "AG" | "AR" | "AM" | "AW" | "AU" | "AT" | "AZ" | "BS" | "BH" | "BD" | "BB" | "BY" | "BE" | "BZ" | "BJ" | "BM" | "BT" | "BO" | "BQ" | "BA" | "BW" | "BV" | "BR" | "IO" | "BN" | "BG" | "BF" | "BI" | "CV" | "KH" | "CM" | "CA" | "KY" | "CF" | "TD" | "CL" | "CN" | "CX" | "CC" | "CO" | "KM" | "CD" | "CG" | "CK" | "CR" | "HR" | "CU" | "CW" | "CY" | "CZ" | "CI" | "DK" | "DJ" | "DM" | "DO" | "EC" | "EG" | "SV" | "GQ" | "ER" | "EE" | "SZ" | "ET" | "FK" | "FO" | "FJ" | "FI" | "FR" | "GF" | "PF" | "TF" | "GA" | "GM" | "GE" | "DE" | "GH" | "GI" | "GR" | "GL" | "GD" | "GP" | "GU" | "GT" | "GG" | "GN" | "GW" | "GY" | "HT" | "HM" | "VA" | "HN" | "HK" | "HU" | "IS" | "IN" | "ID" | "IR" | "IQ" | "IE" | "IM" | "IL" | "IT" | "JM" | "JP" | "JE" | "JO" | "KZ" | "KE" | "KI" | "KP" | "KR" | "KW" | "KG" | "LA" | "LV" | "LB" | "LS" | "LR" | "LY" | "LI" | "LT" | "LU" | "MO" | "MG" | "MW" | "MY" | "MV" | "ML" | "MT" | "MH" | "MQ" | "MR" | "MU" | "YT" | "MX" | "FM" | "MD" | "MC" | "MN" | "ME" | "MS" | "MA" | "MZ" | "MM" | "NA" | "NR" | "NP" | "NL" | "NC" | "NZ" | "NI" | "NE" | "NG" | "NU" | "NF" | "MP" | "NO" | "OM" | "PK" | "PW" | "PS" | "PA" | "PG" | "PY" | "PE" | "PH" | "PN" | "PL" | "PT" | "PR" | "QA" | "MK" | "RO" | "RU" | "RW" | "RE" | "BL" | "SH" | "KN" | "LC" | "MF" | "PM" | "VC" | "WS" | "SM" | "ST" | "SA" | "SN" | "RS" | "SC" | "SL" | "SG" | "SX" | "SK" | "SI" | "SB" | "SO" | "ZA" | "GS" | "SS" | "ES" | "LK" | "SD" | "SR" | "SJ" | "SE" | "CH" | "SY" | "TW" | "TJ" | "TZ" | "TH" | "TL" | "TG" | "TK" | "TO" | "TT" | "TN" | "TR" | "TM" | "TC" | "TV" | "UG" | "UA" | "AE" | "GB" | "UM" | "US" | "UY" | "UZ" | "VU" | "VE" | "VN" | "VG" | "VI" | "WF" | "EH" | "YE" | "ZM" | "ZW" | "AX";
312
+ export declare const isValidStateCode: (code: string) => code is "AL" | "AS" | "AR" | "AZ" | "CA" | "KY" | "CO" | "GA" | "DE" | "GU" | "VA" | "IN" | "ID" | "IL" | "LA" | "MO" | "MT" | "MD" | "MN" | "ME" | "MS" | "MA" | "NC" | "NE" | "MP" | "PA" | "PR" | "SC" | "SD" | "TN" | "UM" | "VI" | "AK" | "CT" | "FL" | "HI" | "IA" | "KS" | "MI" | "NV" | "NH" | "NJ" | "NM" | "NY" | "ND" | "OH" | "OK" | "OR" | "RI" | "TX" | "UT" | "VT" | "WA" | "WV" | "WI" | "WY" | "DC";
313
+ export declare namespace ISO3166Alpha2 {
314
+ type CountryCode = keyof typeof countryCodes;
315
+ type StateCodeUS = keyof typeof usStateCodes;
316
+ }
317
+ //# sourceMappingURL=standards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standards.d.ts","sourceRoot":"","sources":["../../../../src/types/standards.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0PxB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DxB,CAAC;AAEF,eAAO,MAAM,kBAAkB,SACvB,MAAM,ytDAGb,CAAC;AAEF,eAAO,MAAM,gBAAgB,SACrB,MAAM,yZAGb,CAAC;AAEF,yBAAiB,aAAa,CAAC;IAC7B,KAAY,WAAW,GAAG,MAAM,OAAO,YAAY,CAAC;IAEpD,KAAY,WAAW,GAAG,MAAM,OAAO,YAAY,CAAC;CACrD"}
@@ -0,0 +1,11 @@
1
+ import { RLLEndPoint, RLLQueryConfig } from "./types/application";
2
+ export declare const apiKeyValidator: (apiKey: any) => string;
3
+ export declare const optionsValidator: (options: {
4
+ [key: string]: any;
5
+ [key: number]: any;
6
+ [key: symbol]: any;
7
+ }) => void;
8
+ export declare const queryOptionsValidator: (resource: RLLEndPoint, options?: RLLQueryConfig.Companies | RLLQueryConfig.Launches | RLLQueryConfig.Locations | RLLQueryConfig.Missions | RLLQueryConfig.Pads | RLLQueryConfig.Tags | RLLQueryConfig.Vehicles) => Promise<URLSearchParams>;
9
+ export declare const warn: (msg: string) => void;
10
+ export declare const error: (msg: string, type?: "type" | "range" | "error") => void;
11
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAQlE,eAAO,MAAM,eAAe,WAAY,GAAG,KAAG,MA2B7C,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;MAEzB,IAeH,CAAC;AAuLF,eAAO,MAAM,qBAAqB,aACtB,WAAW,YAEjB,eAAe,SAAS,GACxB,eAAe,QAAQ,GACvB,eAAe,SAAS,GACxB,eAAe,QAAQ,GACvB,eAAe,IAAI,GACnB,eAAe,IAAI,GACnB,eAAe,QAAQ,KAC1B,QAAQ,eAAe,CA0CzB,CAAC;AAEF,eAAO,MAAM,IAAI,QAAS,MAAM,SAAyC,CAAC;AAE1E,eAAO,MAAM,KAAK,QACX,MAAM,SACL,MAAM,GAAG,OAAO,GAAG,OAAO,KAC/B,IAYF,CAAC"}
@@ -0,0 +1,241 @@
1
+ import { isValidCountryCode, isValidStateCode } from "./types/standards";
2
+ const getLeadingZero = (month, offset = 0) => {
3
+ const str = "0".concat((month + offset).toString());
4
+ return str.slice(-2);
5
+ };
6
+ export const apiKeyValidator = (apiKey) => {
7
+ if (apiKey === undefined) {
8
+ error("RLL Client requires API Key", "type");
9
+ }
10
+ if (typeof apiKey !== "string") {
11
+ error("RLL Client API Key must be a string", "type");
12
+ }
13
+ const trimmedKey = apiKey.trim();
14
+ if (trimmedKey === "") {
15
+ error("RLL Client API Key cannot be an empty string", "type");
16
+ }
17
+ const validator = trimmedKey.match(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}$/i);
18
+ if (validator === null) {
19
+ error("RLL Client API Key appears malformed. RLL Client API Keys are in UUID format.", "type");
20
+ }
21
+ return trimmedKey;
22
+ };
23
+ export const optionsValidator = (options) => {
24
+ for (const option in options) {
25
+ if (option !== "keyInQueryParams") {
26
+ warn(`RLL Client options do not accept a "${option}" property. This property will be ignored.`);
27
+ }
28
+ else {
29
+ if (typeof options[option] !== "boolean") {
30
+ error("RLL Client configuration option 'keyInQueryParams' must be a boolean.", "type");
31
+ }
32
+ }
33
+ }
34
+ };
35
+ const validators = {
36
+ string: (option) => {
37
+ return new Promise((resolve, reject) => {
38
+ if (typeof option === "number") {
39
+ resolve(option.toString());
40
+ }
41
+ if (typeof option !== "string") {
42
+ return reject("Must be a string");
43
+ }
44
+ if (option.length <= 0) {
45
+ return reject("String must have length greater than 0");
46
+ }
47
+ resolve(option);
48
+ });
49
+ },
50
+ boolean: (option) => {
51
+ return new Promise((resolve, reject) => {
52
+ if (typeof option !== "boolean") {
53
+ return reject("Must be a boolean");
54
+ }
55
+ resolve(option === true ? 1 : 0);
56
+ });
57
+ },
58
+ number: (option) => {
59
+ return new Promise((resolve, reject) => {
60
+ if (typeof option === "number") {
61
+ return resolve(option);
62
+ }
63
+ if (typeof option !== "string" ||
64
+ option === "" ||
65
+ isNaN(Number(option))) {
66
+ return reject("Must be a number");
67
+ }
68
+ else {
69
+ resolve(Number(option));
70
+ }
71
+ });
72
+ },
73
+ countryCode: (option) => {
74
+ return new Promise((resolve, reject) => {
75
+ if (typeof option !== "string") {
76
+ return reject("Must be a string");
77
+ }
78
+ if (!isValidCountryCode(option)) {
79
+ return reject("Invalid country code. Country codes should follow ISO 3166-1 A2 convention, like 'US'.");
80
+ }
81
+ resolve(option);
82
+ });
83
+ },
84
+ stateCode: (option) => {
85
+ return new Promise((resolve, reject) => {
86
+ if (typeof option !== "string") {
87
+ return reject("Must be a string");
88
+ }
89
+ if (!isValidStateCode(option)) {
90
+ return reject("Invalid United States State Code. State Codes should follow ISO 3166-2 convention, like 'FL'.");
91
+ }
92
+ resolve(option);
93
+ });
94
+ },
95
+ cosparId: (option) => {
96
+ return new Promise((resolve, reject) => {
97
+ if (typeof option !== "string") {
98
+ return reject("Must be a string");
99
+ }
100
+ if (!option.match(/^\d{4}\-\d{3}$/g)) {
101
+ return reject("Cospar IDs must be in the format of YYYY-NNN (eg. 2023-123)");
102
+ }
103
+ resolve(option);
104
+ });
105
+ },
106
+ shortDate: (option) => {
107
+ return new Promise((resolve, reject) => {
108
+ if (typeof option === "string" || option instanceof Date) {
109
+ let date;
110
+ if (typeof option === "string") {
111
+ const parsed = Date.parse(option);
112
+ if (isNaN(parsed)) {
113
+ return reject("Must be an ISO 8601 Date String");
114
+ }
115
+ date = new Date(parsed);
116
+ }
117
+ else {
118
+ date = option;
119
+ }
120
+ resolve(`${date.getUTCFullYear()}-${getLeadingZero(date.getUTCMonth(), 1)}-${getLeadingZero(date.getUTCDate())}`);
121
+ }
122
+ return reject("Must be a JavaScript Date Object or ISO 8601 Date String");
123
+ });
124
+ },
125
+ isoDate: (option) => {
126
+ return new Promise((resolve, reject) => {
127
+ if (typeof option === "string" || option instanceof Date) {
128
+ let date;
129
+ if (typeof option === "string") {
130
+ const parsed = Date.parse(option);
131
+ if (isNaN(parsed)) {
132
+ return reject("Must be an ISO 8601 Date String");
133
+ }
134
+ date = new Date(parsed);
135
+ }
136
+ else {
137
+ date = option;
138
+ }
139
+ resolve(date.toISOString().slice(0, 19).concat("Z"));
140
+ }
141
+ return reject("Must be a JavaScript Date Object or ISO 8601 Date String");
142
+ });
143
+ },
144
+ };
145
+ const optionsMap = {
146
+ companies: {
147
+ page: validators.number,
148
+ id: validators.number,
149
+ name: validators.string,
150
+ country_code: validators.countryCode,
151
+ inactive: validators.boolean,
152
+ },
153
+ launches: {
154
+ page: validators.number,
155
+ id: validators.number,
156
+ cospar_id: validators.cosparId,
157
+ after_date: validators.shortDate,
158
+ before_date: validators.shortDate,
159
+ modified_since: validators.isoDate,
160
+ location_id: validators.number,
161
+ pad_id: validators.number,
162
+ provider_id: validators.number,
163
+ tag_id: validators.number,
164
+ vehicle_id: validators.number,
165
+ state_abbr: validators.stateCode,
166
+ country_code: validators.countryCode,
167
+ search: validators.string,
168
+ slug: validators.string,
169
+ },
170
+ locations: {
171
+ page: validators.number,
172
+ id: validators.number,
173
+ name: validators.string,
174
+ state_abbr: validators.stateCode,
175
+ country_code: validators.countryCode,
176
+ },
177
+ missions: {
178
+ page: validators.number,
179
+ id: validators.number,
180
+ name: validators.string,
181
+ },
182
+ pads: {
183
+ page: validators.number,
184
+ id: validators.number,
185
+ name: validators.string,
186
+ state_abbr: validators.stateCode,
187
+ country_code: validators.countryCode,
188
+ },
189
+ tags: {
190
+ page: validators.number,
191
+ id: validators.number,
192
+ text: validators.string,
193
+ },
194
+ vehicles: {
195
+ page: validators.number,
196
+ id: validators.number,
197
+ name: validators.string,
198
+ },
199
+ };
200
+ export const queryOptionsValidator = (resource, options) => {
201
+ const params = new URLSearchParams();
202
+ const paramsPromises = [];
203
+ if (!options) {
204
+ return Promise.resolve(params);
205
+ }
206
+ if ((options.id || "slug" in options || "cospar_id" in options) &&
207
+ Object.keys(options).length > 1) {
208
+ warn("Using 'id', 'slug', or 'cospar_id' as query parameters generally returns a single result. Combining it with other parameters may not be achieving the result you expect.");
209
+ }
210
+ for (const option in options) {
211
+ if (!(option in optionsMap[resource])) {
212
+ warn(`Parameter "${option}" is not a valid option for the ${resource} endpoint. It will be ignored.`);
213
+ continue;
214
+ }
215
+ if (options[option] === undefined) {
216
+ warn(`Parameter "${option}" is undefined and will be ignored.`);
217
+ continue;
218
+ }
219
+ const promise = optionsMap[resource][option](options[option])
220
+ .then((o) => params.set(option, o))
221
+ .catch((err) => {
222
+ throw `Malformed query parameter for resource "${resource}" and parameter: "${option}": ${err}.`;
223
+ });
224
+ paramsPromises.push(promise);
225
+ }
226
+ return Promise.all(paramsPromises).then(() => params);
227
+ };
228
+ export const warn = (msg) => console.warn(`[RLL Client]: ${msg}`);
229
+ export const error = (msg, type = "error") => {
230
+ switch (type) {
231
+ case "error": {
232
+ throw new Error(`[RLL Client]: ${msg}`);
233
+ }
234
+ case "type": {
235
+ throw new TypeError(`[RLL Client]: ${msg}`);
236
+ }
237
+ case "range": {
238
+ throw new RangeError(`[RLL Client]: ${msg}`);
239
+ }
240
+ }
241
+ };
package/package.json CHANGED
@@ -1,16 +1,20 @@
1
1
  {
2
2
  "name": "rocket-launch-live-client",
3
- "version": "0.1.5",
3
+ "version": "0.2.1",
4
4
  "description": "A Node.JS client for interacting with the RocketLaunch.Live API",
5
- "main": "dist/index.js",
5
+ "types": "./lib/cjs/types/index.d.ts",
6
+ "main": "./lib/cjs/index.js",
6
7
  "scripts": {
7
- "clear": "rm -rf ./dist",
8
- "dev": "nodemon ./dist/test.js --ignore 'dist/**' -e ts --exec \"npm run compile\"",
9
- "compile": "npm run clear && tsc && node ./dist/test.js",
10
- "build": "tsc",
11
- "start": "node ./dist/test.js",
12
- "prepublish": "npm run clear && tsc",
13
- "test": "mocha --watch"
8
+ "clear": "rm -rf ./lib",
9
+ "dev": "nodemon ./lib/test.js --ignore 'lib/**' -e ts --exec \"npm run compile\"",
10
+ "compile": "npm run clear && tsc && node ./lib/test.js",
11
+ "build": "npm run clear && npm run build:esm && npm run build:cjs",
12
+ "build:esm": "tsc -p ./configs/tsconfig.esm.json && mv lib/esm/index.js lib/esm/index.mjs",
13
+ "build:cjs": "tsc -p ./configs/tsconfig.cjs.json",
14
+ "start": "node ./lib/test.js",
15
+ "prepublish": "npm run build",
16
+ "test": "mocha",
17
+ "test:watch": "mocha --watch"
14
18
  },
15
19
  "repository": {
16
20
  "type": "git",
@@ -29,7 +33,11 @@
29
33
  },
30
34
  "homepage": "https://github.com/mendahu/rocket-launch-live-client#readme",
31
35
  "devDependencies": {
36
+ "@types/chai": "^4.3.4",
37
+ "@types/chai-as-promised": "^7.1.5",
38
+ "@types/mocha": "^10.0.1",
32
39
  "@types/node": "^18.11.18",
40
+ "@types/sinon": "^10.0.13",
33
41
  "chai": "^4.3.7",
34
42
  "chai-as-promised": "^7.1.1",
35
43
  "dotenv": "^16.0.3",
@@ -40,5 +48,19 @@
40
48
  "ts-node": "^10.9.1",
41
49
  "typescript": "^4.9.4"
42
50
  },
43
- "types": "dist/index.d.ts"
51
+ "files": [
52
+ "lib/**/*"
53
+ ],
54
+ "exports": {
55
+ ".": {
56
+ "import": {
57
+ "types": "./lib/esm/types/index.d.ts",
58
+ "default": "./lib/esm/index.mjs"
59
+ },
60
+ "require": {
61
+ "types": "./lib/cjs/types/index.d.ts",
62
+ "default": "./lib/cjs/index.js"
63
+ }
64
+ }
65
+ }
44
66
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"Client.js","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetcher.js","sourceRoot":"","sources":["../src/fetcher.ts"],"names":[],"mappings":";;;AAAA,IAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAEpC,IAAM,QAAQ,GAAG,+BAA+B,CAAC;AAE1C,IAAM,OAAO,GAAG,UACrB,MAAc,EACd,QAAgB,EAChB,MAAuB,EACvB,gBAAyB;IAEzB,IAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,GAAG,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAClD,IAAI,OAAgC,CAAC;IAErC,IAAI,gBAAgB,EAAE;QACpB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KAC3B;SAAM;QACL,OAAO,GAAG,EAAE,aAAa,EAAE,iBAAU,MAAM,CAAE,EAAE,CAAC;KACjD;IAED,MAAM,CAAC,OAAO,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAA1B,CAA0B,CAAC,CAAC;IAErD,OAAO,KAAK,CAAI,GAAG,EAAE,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC;AAlBW,QAAA,OAAO,WAkBlB;AAEF,IAAM,KAAK,GAAG,UAAI,GAAQ,EAAE,OAAqB;IAC/C,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,SAAA,EAAE,EAAE,UAAC,GAAG;YAC1C,IAAI,IAAI,GAAG,EAAE,CAAC;YAEd,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,UAAC,KAAK,IAAK,OAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAhB,CAAgB,CAAC,CAAC;YAE5C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE;gBACZ,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;oBAC1B,IAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAChD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;iBAC/B;qBAAM,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE;oBACjC,MAAM,CAAC;wBACL,KAAK,EAAE,oBAAoB;wBAC3B,UAAU,EAAE,GAAG;wBACf,OAAO,EACL,6JAA6J;qBAChK,CAAC,CAAC;iBACJ;qBAAM;oBACL,MAAM,CAAC,GAAG,CAAC,CAAC;iBACb;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
package/dist/index.js DELETED
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rllc = void 0;
4
- var Client_1 = require("./Client");
5
- /**
6
- * Generate a RocketLaunch.Live client
7
- *
8
- * @public
9
- * @function
10
- *
11
- * @param {string} apiKey - Your RocketLaunch.Live API Key
12
- * @param {Object} [options] - Optional Client Configuration options
13
- * @param {boolean} options.keyInQueryParams - Set to true to send your API Key via Query parameters instead of Authorization Header (not recommended)
14
- *
15
- * @returns {RLLCLient}
16
- *
17
- * @example
18
- *
19
- * const MY_KEY = process.env.ROCKETLAUNCH_LIVE_API_KEY
20
- *
21
- * const client = clientGenerator(MY_KEY, { keyInQueryParams: true })
22
- */
23
- var rllc = function (apiKey, options) {
24
- return new Client_1.default(apiKey, options);
25
- };
26
- exports.rllc = rllc;
27
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAiC;AAGjC;;;;;;;;;;;;;;;;;GAiBG;AACH,IAAM,IAAI,GAAG,UAAC,MAAc,EAAE,OAA0B;IACtD,OAAA,IAAI,gBAAS,CAAC,MAAM,EAAE,OAAO,CAAC;AAA9B,CAA8B,CAAC;AAExB,oBAAI"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../../src/types/application.ts"],"names":[],"mappings":";;;AAEA,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,sCAAuB,CAAA;IACvB,oCAAqB,CAAA;IACrB,4BAAa,CAAA;IACb,4BAAa,CAAA;IACb,oCAAqB,CAAA;AACvB,CAAC,EARW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAQtB;AAMD,IAAiB,SAAS,CAoGzB;AApGD,WAAiB,SAAS;IAgBxB,IAAK,YAMJ;IAND,WAAK,YAAY;QACf,sDAAY,CAAA;QACZ,qDAAW,CAAA;QACX,qDAAW,CAAA;QACX,qEAAmB,CAAA;QACnB,mFAA0B,CAAA;IAC5B,CAAC,EANI,YAAY,KAAZ,YAAY,QAMhB;AA8EH,CAAC,EApGgB,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAoGzB"}