@skillhq/concierge 1.6.0 → 1.7.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.
@@ -1 +1 @@
1
- {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA0BpC,wBAAgB,aAAa,IAAI,OAAO,CA8BvC"}
1
+ {"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,wBAAgB,aAAa,IAAI,OAAO,CA+BvC"}
@@ -5,6 +5,7 @@ import { callCommand } from '../commands/call.js';
5
5
  import { checkAvailabilityCommand } from '../commands/check-availability.js';
6
6
  import { configCommand } from '../commands/config.js';
7
7
  import { findContactCommand } from '../commands/find-contact.js';
8
+ import { flightqueueCommand } from '../commands/flightqueue.js';
8
9
  import { searchCommand } from '../commands/search.js';
9
10
  import { serverCommand } from '../commands/server.js';
10
11
  const require = createRequire(import.meta.url);
@@ -40,6 +41,7 @@ export function createProgram() {
40
41
  };
41
42
  // Register commands
42
43
  findContactCommand(program, getContext);
44
+ flightqueueCommand(program, getContext);
43
45
  configCommand(program, getContext);
44
46
  serverCommand(program, getContext);
45
47
  callCommand(program, getContext);
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEjE,SAAS,YAAY;IACnB,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,IAAI;QACnB,SAAS,EAAE,KAAK,CAAC,OAAO;QACxB,OAAO,EAAE,KAAK,CAAC,KAAK;QACpB,KAAK,EAAE,KAAK,CAAC,GAAG;QAChB,OAAO,EAAE,KAAK,CAAC,MAAM;QACrB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,IAAI;QACjB,SAAS,EAAE,KAAK,CAAC,IAAI;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,WAAW,CAAC;SACjB,WAAW,CAAC,sFAAsF,CAAC;SACnG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAExB,iBAAiB;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAErF,wBAAwB;IACxB,MAAM,UAAU,GAAG,GAAe,EAAE;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,OAAO;YACL,MAAM,EAAE,YAAY,EAAE;YACtB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;YACxB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;SAC/B,CAAC;IACJ,CAAC,CAAC;IAEF,oBAAoB;IACpB,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnC,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACjC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAE9C,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../src/cli/program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEjE,SAAS,YAAY;IACnB,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,IAAI;QACnB,SAAS,EAAE,KAAK,CAAC,OAAO;QACxB,OAAO,EAAE,KAAK,CAAC,KAAK;QACpB,KAAK,EAAE,KAAK,CAAC,GAAG;QAChB,OAAO,EAAE,KAAK,CAAC,MAAM;QACrB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,KAAK,EAAE,KAAK,CAAC,IAAI;QACjB,SAAS,EAAE,KAAK,CAAC,IAAI;KACtB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,WAAW,CAAC;SACjB,WAAW,CAAC,sFAAsF,CAAC;SACnG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAExB,iBAAiB;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;IAErF,wBAAwB;IACxB,MAAM,UAAU,GAAG,GAAe,EAAE;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,OAAO;YACL,MAAM,EAAE,YAAY,EAAE;YACtB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;YACxB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;SAC/B,CAAC;IACJ,CAAC,CAAC;IAEF,oBAAoB;IACpB,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxC,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACxC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnC,WAAW,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACjC,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnC,wBAAwB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAE9C,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Command } from 'commander';
2
+ import type { CliContext } from '../cli/shared.js';
3
+ export declare function flightqueueCommand(program: Command, getContext: () => CliContext): void;
4
+ //# sourceMappingURL=flightqueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flightqueue.d.ts","sourceRoot":"","sources":["../../src/commands/flightqueue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAqGnD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,GAAG,IAAI,CAwBvF"}
@@ -0,0 +1,100 @@
1
+ import { FlightQueueClient } from '../lib/flightqueue-client.js';
2
+ import { formatError, formatVerbose } from '../lib/output.js';
3
+ function formatWaitTimeLevel(level) {
4
+ switch (level) {
5
+ case 'fast':
6
+ return 'Fast';
7
+ case 'moderate':
8
+ return 'Moderate';
9
+ case 'busy':
10
+ return 'Busy';
11
+ case 'very_busy':
12
+ return 'Very Busy';
13
+ default:
14
+ return 'Unknown';
15
+ }
16
+ }
17
+ function formatFlightQueueData(data, ctx) {
18
+ if (ctx.json) {
19
+ return JSON.stringify(data, null, 2);
20
+ }
21
+ const { colors } = ctx;
22
+ const lines = [];
23
+ // Header
24
+ lines.push('');
25
+ lines.push(colors.highlight('═══════════════════════════════════════════════════════════'));
26
+ lines.push(colors.highlight(` AIRPORT WAIT TIMES: ${data.airport.code}`));
27
+ lines.push(colors.highlight('═══════════════════════════════════════════════════════════'));
28
+ lines.push('');
29
+ // Airport Info
30
+ lines.push(colors.primary('▸ Airport Information'));
31
+ lines.push(` ${colors.muted('Code:')} ${data.airport.code}`);
32
+ lines.push(` ${colors.muted('Name:')} ${data.airport.name}`);
33
+ if (data.airport.city) {
34
+ lines.push(` ${colors.muted('City:')} ${data.airport.city}`);
35
+ }
36
+ if (data.airport.country) {
37
+ lines.push(` ${colors.muted('Country:')} ${data.airport.country}`);
38
+ }
39
+ lines.push('');
40
+ // Wait Times
41
+ lines.push(colors.primary('▸ Current Wait Times'));
42
+ // Security
43
+ const securityColor = data.security.level === 'fast'
44
+ ? colors.success
45
+ : data.security.level === 'moderate'
46
+ ? colors.warning
47
+ : colors.error;
48
+ const securityTime = data.security.minutes ? `${data.security.minutes} min` : 'N/A';
49
+ lines.push(` ${colors.muted('Security:')} ${securityColor(formatWaitTimeLevel(data.security.level))} (${securityTime})`);
50
+ // Immigration
51
+ const immigrationColor = data.immigration.level === 'fast'
52
+ ? colors.success
53
+ : data.immigration.level === 'moderate'
54
+ ? colors.warning
55
+ : colors.error;
56
+ const immigrationTime = data.immigration.minutes ? `${data.immigration.minutes} min` : 'N/A';
57
+ lines.push(` ${colors.muted('Immigration:')} ${immigrationColor(formatWaitTimeLevel(data.immigration.level))} (${immigrationTime})`);
58
+ if (data.trafficScore !== null) {
59
+ lines.push(` ${colors.muted('Traffic Score:')} ${data.trafficScore}`);
60
+ }
61
+ lines.push('');
62
+ // Recommended Arrival
63
+ if (data.recommendedArrival.domestic || data.recommendedArrival.international) {
64
+ lines.push(colors.primary('▸ Recommended Arrival'));
65
+ if (data.recommendedArrival.domestic) {
66
+ lines.push(` ${colors.muted('Domestic:')} ${data.recommendedArrival.domestic} min before departure`);
67
+ }
68
+ if (data.recommendedArrival.international) {
69
+ lines.push(` ${colors.muted('International:')} ${data.recommendedArrival.international} min before departure`);
70
+ }
71
+ lines.push('');
72
+ }
73
+ // Footer
74
+ lines.push(colors.muted(`Source: ${data.url}`));
75
+ lines.push(colors.muted(`Fetched: ${data.fetchedAt}`));
76
+ lines.push('');
77
+ return lines.join('\n');
78
+ }
79
+ export function flightqueueCommand(program, getContext) {
80
+ program
81
+ .command('flightqueue')
82
+ .alias('fq')
83
+ .alias('queue')
84
+ .description('Get airport wait times from FlightQueue.com')
85
+ .argument('<airport>', 'Airport code (e.g., HKT) or city name (e.g., Phuket)')
86
+ .action(async (airport) => {
87
+ const ctx = getContext();
88
+ const client = new FlightQueueClient({ verbose: ctx.verbose });
89
+ const verboseMsg = formatVerbose(`Looking up wait times for: ${airport}`, ctx);
90
+ if (verboseMsg)
91
+ console.log(verboseMsg);
92
+ const result = await client.getWaitTimes(airport);
93
+ if (!result.success) {
94
+ console.log(formatError(result.error, ctx));
95
+ process.exit(1);
96
+ }
97
+ console.log(formatFlightQueueData(result.data, ctx));
98
+ });
99
+ }
100
+ //# sourceMappingURL=flightqueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flightqueue.js","sourceRoot":"","sources":["../../src/commands/flightqueue.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"twilio.d.ts","sourceRoot":"","sources":["../../../../src/lib/call/providers/twilio.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAgDjG;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuBlH;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAapF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMnF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIxF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,kBAAkB,CAW1F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBvD"}
1
+ {"version":3,"file":"twilio.d.ts","sourceRoot":"","sources":["../../../../src/lib/call/providers/twilio.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEvE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAgDjG;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAyBlH;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAapF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAM1D;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMnF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIxF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,kBAAkB,CAW1F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAET;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAiBvD"}
@@ -68,6 +68,8 @@ export async function initiateCall(config, toNumber, callId) {
68
68
  statusCallback: statusCallbackUrl,
69
69
  statusCallbackEvent: ['initiated', 'ringing', 'answered', 'completed'],
70
70
  statusCallbackMethod: 'POST',
71
+ // Wait up to 120 seconds for answer (default ~60s is too short for hold lines)
72
+ timeout: 120,
71
73
  });
72
74
  return {
73
75
  callSid: call.sid,
@@ -1 +1 @@
1
- {"version":3,"file":"twilio.js","sourceRoot":"","sources":["../../../../src/lib/call/providers/twilio.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"twilio.js","sourceRoot":"","sources":["../../../../src/lib/call/providers/twilio.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAgB5B;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,MAAkB;IAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IACvE,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAElE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;QACjF,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;QAErC,IAAI,aAAa,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;YAChD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,QAAQ,EAAE,QAAQ;gBAClB,aAAa;gBACb,OAAO,EAAE,+CAA+C,aAAa,IAAI;aAC1E,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAC1D,WAAW,EAAE,aAAa;YAC1B,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAEnD,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,QAAQ,EAAE,QAAQ;gBAClB,aAAa;gBACb,kBAAkB;gBAClB,OAAO,EAAE,mDAAmD,aAAa,wCAAwC;aAClH,CAAC;QACJ,CAAC;QAED,OAAO;YACL,EAAE,EAAE,IAAI;YACR,QAAQ,EAAE,QAAQ;YAClB,aAAa;YACb,kBAAkB;YAClB,OAAO,EAAE,2DAA2D,aAAa,iBAAiB;SACnG,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;YACL,EAAE,EAAE,KAAK;YACT,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,4BAA4B,OAAO,EAAE;SAC/C,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAAkB,EAAE,QAAgB,EAAE,MAAc;IACrF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IAEvE,kFAAkF;IAClF,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,SAAS,wBAAwB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;IAEzF,sBAAsB;IACtB,MAAM,iBAAiB,GAAG,GAAG,MAAM,CAAC,SAAS,yBAAyB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;IAEnG,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QACrC,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,MAAM,CAAC,iBAAiB;QAC9B,GAAG,EAAE,QAAQ;QACb,MAAM,EAAE,MAAM;QACd,cAAc,EAAE,iBAAiB;QACjC,mBAAmB,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC;QACtE,oBAAoB,EAAE,MAAM;QAC5B,+EAA+E;QAC/E,OAAO,EAAE,GAAG;KACb,CAAC,CAAC;IAEH,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,GAAG;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAkB,EAAE,MAAc;IAC1E,MAAM,KAAK,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,wBAAwB,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;IAEhJ,uEAAuE;IACvE,0EAA0E;IAC1E,OAAO;;;mBAGU,SAAS,CAAC,KAAK,CAAC;wCACK,SAAS,CAAC,MAAM,CAAC;;;YAG7C,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO;;uBAEc,SAAS,CAAC,OAAO,CAAC;;YAE7B,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAkB,EAAE,OAAe;IAClE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IAEvE,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACjC,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,MAAkB,EAAE,OAAe;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;IACvE,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC;IACjD,OAAO,IAAI,CAAC,MAAM,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAqC;IACpE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,yBAAyB;QACzB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YAClC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;QACD,OAAO,MAAuC,CAAC;IACjD,CAAC;IACD,OAAO,IAAqC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAkB,EAClB,SAAiB,EACjB,GAAW,EACX,MAA8B;IAE9B,OAAO,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,eAAe,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;AAChF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,mDAAmD;IACnD,IAAI,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAE3C,0BAA0B;IAC1B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,sCAAsC;QACtC,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC1B,OAAO,GAAG,KAAK,OAAO,EAAE,CAAC;QAC3B,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,GAAG;SACP,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;SACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;SACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;SACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { FlightQueueResult, FlightQueueSearchResponse } from './flightqueue-types.js';
2
+ export declare class FlightQueueClient {
3
+ private verbose;
4
+ private currentSession;
5
+ constructor(options?: {
6
+ verbose?: boolean;
7
+ });
8
+ private getNewSession;
9
+ /**
10
+ * Check if input looks like an airport code (3 uppercase letters)
11
+ */
12
+ isAirportCode(input: string): boolean;
13
+ /**
14
+ * Get wait times for an airport by code or city name
15
+ */
16
+ getWaitTimes(input: string): Promise<FlightQueueResult>;
17
+ /**
18
+ * Search for airports only (internal helper that closes browser)
19
+ */
20
+ private searchAirportsOnly;
21
+ /**
22
+ * Search for airports by city/name
23
+ */
24
+ searchAirports(query: string): Promise<FlightQueueSearchResponse>;
25
+ /**
26
+ * Get wait times for a specific airport code
27
+ */
28
+ private getAirportWaitTimes;
29
+ private runAgentBrowser;
30
+ private closeSession;
31
+ private parseSearchResults;
32
+ private parseAirportData;
33
+ private parseWaitTime;
34
+ private parseLevel;
35
+ private parseMinutes;
36
+ private minutesToLevel;
37
+ }
38
+ //# sourceMappingURL=flightqueue-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flightqueue-client.d.ts","sourceRoot":"","sources":["../../src/lib/flightqueue-client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,iBAAiB,EACjB,yBAAyB,EAE1B,MAAM,wBAAwB,CAAC;AAOhC,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,cAAc,CAAuB;gBAEjC,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAO;IAI/C,OAAO,CAAC,aAAa;IAMrB;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAIrC;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA2B7D;;OAEG;YACW,kBAAkB;IAiChC;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAgCvE;;OAEG;YACW,mBAAmB;IA8BjC,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,kBAAkB;IAqE1B,OAAO,CAAC,gBAAgB;IA4CxB,OAAO,CAAC,aAAa;IAuDrB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,cAAc;CAMvB"}
@@ -0,0 +1,346 @@
1
+ import { execSync } from 'node:child_process';
2
+ const FLIGHTQUEUE_BASE_URL = 'https://flightqueue.com';
3
+ // Use a counter to generate unique session names
4
+ let sessionCounter = 0;
5
+ export class FlightQueueClient {
6
+ verbose;
7
+ currentSession = null;
8
+ constructor(options = {}) {
9
+ this.verbose = options.verbose ?? false;
10
+ }
11
+ getNewSession() {
12
+ sessionCounter++;
13
+ this.currentSession = `fq-${process.pid}-${sessionCounter}`;
14
+ return this.currentSession;
15
+ }
16
+ /**
17
+ * Check if input looks like an airport code (3 uppercase letters)
18
+ */
19
+ isAirportCode(input) {
20
+ return /^[A-Z]{3}$/i.test(input.trim());
21
+ }
22
+ /**
23
+ * Get wait times for an airport by code or city name
24
+ */
25
+ async getWaitTimes(input) {
26
+ const trimmed = input.trim();
27
+ if (this.isAirportCode(trimmed)) {
28
+ return this.getAirportWaitTimes(trimmed.toUpperCase());
29
+ }
30
+ // Search by city name first
31
+ const searchResult = await this.searchAirportsOnly(trimmed);
32
+ if (!searchResult.success) {
33
+ return { success: false, error: searchResult.error };
34
+ }
35
+ if (searchResult.data.airports.length === 0) {
36
+ return { success: false, error: `No airports found for "${trimmed}"` };
37
+ }
38
+ // Use the first result
39
+ const airport = searchResult.data.airports[0];
40
+ if (this.verbose) {
41
+ console.log(`Found airport: ${airport.code} - ${airport.name}`);
42
+ }
43
+ // Get wait times using fresh browser session
44
+ return this.getAirportWaitTimes(airport.code);
45
+ }
46
+ /**
47
+ * Search for airports only (internal helper that closes browser)
48
+ */
49
+ async searchAirportsOnly(query) {
50
+ const url = `${FLIGHTQUEUE_BASE_URL}/search?q=${encodeURIComponent(query)}`;
51
+ const session = this.getNewSession();
52
+ try {
53
+ // Open the search page
54
+ this.runAgentBrowser(`open "${url}"`, session);
55
+ this.runAgentBrowser('wait 1500', session);
56
+ // Get snapshot
57
+ const snapshot = this.runAgentBrowser('snapshot', session);
58
+ // Parse search results from snapshot
59
+ const airports = this.parseSearchResults(snapshot);
60
+ // Close browser
61
+ this.closeSession();
62
+ return {
63
+ success: true,
64
+ data: { airports, query },
65
+ };
66
+ }
67
+ catch (error) {
68
+ this.closeSession();
69
+ return {
70
+ success: false,
71
+ error: error instanceof Error ? error.message : 'Failed to search airports',
72
+ };
73
+ }
74
+ }
75
+ /**
76
+ * Search for airports by city/name
77
+ */
78
+ async searchAirports(query) {
79
+ const url = `${FLIGHTQUEUE_BASE_URL}/search?q=${encodeURIComponent(query)}`;
80
+ try {
81
+ // Open the search page
82
+ this.runAgentBrowser(`open "${url}"`);
83
+ // Wait a moment for page to fully render
84
+ this.runAgentBrowser('wait 1000');
85
+ // Get snapshot
86
+ const snapshot = this.runAgentBrowser('snapshot');
87
+ // Parse search results from snapshot
88
+ const airports = this.parseSearchResults(snapshot);
89
+ // Close browser
90
+ this.closeSession();
91
+ return {
92
+ success: true,
93
+ data: { airports, query },
94
+ };
95
+ }
96
+ catch (error) {
97
+ this.closeSession();
98
+ return {
99
+ success: false,
100
+ error: error instanceof Error ? error.message : 'Failed to search airports',
101
+ };
102
+ }
103
+ }
104
+ /**
105
+ * Get wait times for a specific airport code
106
+ */
107
+ async getAirportWaitTimes(code) {
108
+ const url = `${FLIGHTQUEUE_BASE_URL}/airport/${code}`;
109
+ const session = this.getNewSession();
110
+ try {
111
+ // Open the airport page
112
+ this.runAgentBrowser(`open "${url}"`, session);
113
+ // Wait a moment for page to fully render
114
+ this.runAgentBrowser('wait 1500', session);
115
+ // Get snapshot
116
+ const snapshot = this.runAgentBrowser('snapshot', session);
117
+ // Parse the airport data
118
+ const data = this.parseAirportData(snapshot, code, url);
119
+ // Close browser
120
+ this.closeSession();
121
+ return { success: true, data };
122
+ }
123
+ catch (error) {
124
+ this.closeSession();
125
+ return {
126
+ success: false,
127
+ error: error instanceof Error ? error.message : 'Failed to get wait times',
128
+ };
129
+ }
130
+ }
131
+ runAgentBrowser(command, session) {
132
+ const sessionName = session ?? this.currentSession ?? this.getNewSession();
133
+ try {
134
+ const result = execSync(`agent-browser --session ${sessionName} ${command}`, {
135
+ encoding: 'utf-8',
136
+ timeout: 60000,
137
+ stdio: ['pipe', 'pipe', 'pipe'],
138
+ });
139
+ return result;
140
+ }
141
+ catch (error) {
142
+ if (error instanceof Error && 'stderr' in error) {
143
+ throw new Error(`agent-browser error: ${error.stderr}`);
144
+ }
145
+ throw error;
146
+ }
147
+ }
148
+ closeSession() {
149
+ if (!this.currentSession)
150
+ return;
151
+ try {
152
+ execSync(`agent-browser --session ${this.currentSession} close`, {
153
+ encoding: 'utf-8',
154
+ timeout: 10000,
155
+ stdio: ['pipe', 'pipe', 'pipe'],
156
+ });
157
+ }
158
+ catch {
159
+ // Ignore close errors
160
+ }
161
+ this.currentSession = null;
162
+ }
163
+ parseSearchResults(snapshot) {
164
+ const airports = [];
165
+ // The snapshot format has search results in a single text line like:
166
+ // "SEARCH RESULTS 3 airports found CODE AIRPORT CITY COUNTRY
167
+ // SWF New York Stewart International Airport Newburgh United States VIEW →
168
+ // JFK John F. Kennedy International Airport New York United States VIEW →"
169
+ // First, find the search results section
170
+ const searchSection = snapshot.match(/SEARCH RESULTS\s+\d+\s+airports?\s+found\s+CODE\s+AIRPORT\s+CITY\s+COUNTRY\s+(.+)/i);
171
+ if (searchSection) {
172
+ const resultsText = searchSection[1];
173
+ // Split by "VIEW →" to get individual airport entries
174
+ const entries = resultsText.split(/VIEW\s*→/).filter((s) => s.trim());
175
+ for (const entry of entries) {
176
+ // Pattern: CODE followed by airport name (containing "Airport"), then city and country
177
+ // Example: "JFK John F. Kennedy International Airport New York United States"
178
+ const match = entry
179
+ .trim()
180
+ .match(/^([A-Z]{3})\s+(.+?(?:Airport|International)[^\s]*)\s+(.+?)\s+([\w\s]+)$/i);
181
+ if (match) {
182
+ airports.push({
183
+ code: match[1],
184
+ name: match[2].trim(),
185
+ city: match[3].trim(),
186
+ country: match[4].trim(),
187
+ });
188
+ }
189
+ else {
190
+ // Simpler fallback: just get code and whatever follows
191
+ const simpleMatch = entry.trim().match(/^([A-Z]{3})\s+(.+)/i);
192
+ if (simpleMatch) {
193
+ // Try to extract city from "... Airport CityName Country"
194
+ const parts = simpleMatch[2].match(/(.+Airport)\s+(\w+(?:\s+\w+)?)\s+(\w+(?:\s+\w+)?)$/i);
195
+ if (parts) {
196
+ airports.push({
197
+ code: simpleMatch[1],
198
+ name: parts[1].trim(),
199
+ city: parts[2].trim(),
200
+ country: parts[3].trim(),
201
+ });
202
+ }
203
+ }
204
+ }
205
+ }
206
+ }
207
+ // Fallback: look for individual airport patterns in snapshot
208
+ if (airports.length === 0) {
209
+ const codePattern = /([A-Z]{3})\s+(\w+(?:\s+\w+)*?)\s+International\s+Airport/gi;
210
+ let match;
211
+ while ((match = codePattern.exec(snapshot)) !== null) {
212
+ airports.push({
213
+ code: match[1],
214
+ name: `${match[2]} International Airport`,
215
+ city: match[2],
216
+ country: '',
217
+ });
218
+ }
219
+ }
220
+ return airports;
221
+ }
222
+ parseAirportData(snapshot, code, url) {
223
+ // Extract airport name from title or content
224
+ const nameMatch = snapshot.match(/([A-Z]{3})\s+(?:Airport\s+)?Wait\s+Times\s*[-–]\s*(.+?)(?:\s+Security|\s+Immigration|$)/i);
225
+ const airportName = nameMatch ? nameMatch[2].trim() : `${code} Airport`;
226
+ // Extract city from the airport name or page content
227
+ const cityMatch = snapshot.match(/(?:^|\s)([A-Z][a-z]+(?:\s+[A-Z][a-z]+)*)\s+International/);
228
+ const city = cityMatch ? cityMatch[1] : '';
229
+ // Parse security wait time
230
+ const security = this.parseWaitTime(snapshot, 'security');
231
+ // Parse immigration wait time
232
+ const immigration = this.parseWaitTime(snapshot, 'immigration');
233
+ // Parse traffic score
234
+ const trafficMatch = snapshot.match(/Traffic\s+Score[:\s]+(\d+)/i);
235
+ const trafficScore = trafficMatch ? parseInt(trafficMatch[1], 10) : null;
236
+ // Parse recommended arrival times
237
+ const domesticMatch = snapshot.match(/(\d+)\s*(?:min(?:utes)?)?.*?before\s+domestic/i);
238
+ const internationalMatch = snapshot.match(/(\d+)\s*(?:min(?:utes)?)?.*?before\s+international/i);
239
+ return {
240
+ airport: {
241
+ code,
242
+ name: airportName,
243
+ city,
244
+ country: '',
245
+ },
246
+ security,
247
+ immigration,
248
+ recommendedArrival: {
249
+ domestic: domesticMatch ? parseInt(domesticMatch[1], 10) : null,
250
+ international: internationalMatch ? parseInt(internationalMatch[1], 10) : null,
251
+ },
252
+ trafficScore,
253
+ url,
254
+ fetchedAt: new Date().toISOString(),
255
+ };
256
+ }
257
+ parseWaitTime(snapshot, type) {
258
+ // Look for wait time patterns in the snapshot
259
+ // Snapshot format examples:
260
+ // - link "Security Wait Very Busy (45+ min) for departing passengers..."
261
+ // - link "Immigration Fast (under 15 min) for arriving passengers..."
262
+ // - button "Very Busy (45+ min)"
263
+ const patterns = [
264
+ // Pattern: "Security Wait Very Busy (45+ min)" with extra spaces
265
+ new RegExp(`${type}(?:\\s+Wait)?\\s+(Very\\s*Busy|Busy|Moderate|Fast)\\s*\\(([^)]+)\\)`, 'i'),
266
+ // Pattern: "Security: 51 min"
267
+ new RegExp(`${type}[:\\s]+(\\d+)\\s*min`, 'i'),
268
+ // Pattern with just level (after type keyword)
269
+ new RegExp(`${type}(?:\\s+Wait)?\\s+(Very\\s*Busy|Busy|Moderate|Fast)`, 'i'),
270
+ ];
271
+ for (const pattern of patterns) {
272
+ const match = snapshot.match(pattern);
273
+ if (match) {
274
+ if (match[2]) {
275
+ // Has level and time description
276
+ return {
277
+ level: this.parseLevel(match[1]),
278
+ minutes: this.parseMinutes(match[2]),
279
+ description: `${match[1].replace(/\s+/g, ' ')} (${match[2]})`,
280
+ };
281
+ }
282
+ if (/^\d+$/.test(match[1])) {
283
+ // Just minutes
284
+ const mins = parseInt(match[1], 10);
285
+ return {
286
+ level: this.minutesToLevel(mins),
287
+ minutes: mins,
288
+ description: `${mins} minutes`,
289
+ };
290
+ }
291
+ // Just level
292
+ return {
293
+ level: this.parseLevel(match[1]),
294
+ minutes: null,
295
+ description: match[1].replace(/\s+/g, ' '),
296
+ };
297
+ }
298
+ }
299
+ return {
300
+ level: 'unknown',
301
+ minutes: null,
302
+ description: 'Unknown',
303
+ };
304
+ }
305
+ parseLevel(text) {
306
+ const normalized = text.toLowerCase().replace(/\s+/g, '_');
307
+ if (normalized.includes('very_busy') || normalized.includes('very busy'))
308
+ return 'very_busy';
309
+ if (normalized.includes('busy'))
310
+ return 'busy';
311
+ if (normalized.includes('moderate'))
312
+ return 'moderate';
313
+ if (normalized.includes('fast'))
314
+ return 'fast';
315
+ return 'unknown';
316
+ }
317
+ parseMinutes(text) {
318
+ // "45+ min" -> 45
319
+ // "under 15 min" -> 15
320
+ // "15-30 min" -> average (22)
321
+ const plusMatch = text.match(/(\d+)\+/);
322
+ if (plusMatch)
323
+ return parseInt(plusMatch[1], 10);
324
+ const underMatch = text.match(/under\s+(\d+)/i);
325
+ if (underMatch)
326
+ return parseInt(underMatch[1], 10);
327
+ const rangeMatch = text.match(/(\d+)\s*-\s*(\d+)/);
328
+ if (rangeMatch) {
329
+ return Math.round((parseInt(rangeMatch[1], 10) + parseInt(rangeMatch[2], 10)) / 2);
330
+ }
331
+ const simpleMatch = text.match(/(\d+)/);
332
+ if (simpleMatch)
333
+ return parseInt(simpleMatch[1], 10);
334
+ return null;
335
+ }
336
+ minutesToLevel(minutes) {
337
+ if (minutes < 15)
338
+ return 'fast';
339
+ if (minutes < 30)
340
+ return 'moderate';
341
+ if (minutes < 45)
342
+ return 'busy';
343
+ return 'very_busy';
344
+ }
345
+ }
346
+ //# sourceMappingURL=flightqueue-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flightqueue-client.js","sourceRoot":"","sources":["../../src/lib/flightqueue-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ export interface FlightQueueAirport {
2
+ code: string;
3
+ name: string;
4
+ city: string;
5
+ country: string;
6
+ }
7
+ export interface WaitTimeStatus {
8
+ level: 'fast' | 'moderate' | 'busy' | 'very_busy' | 'unknown';
9
+ minutes: number | null;
10
+ description: string;
11
+ }
12
+ export interface FlightQueueData {
13
+ airport: FlightQueueAirport;
14
+ security: WaitTimeStatus;
15
+ immigration: WaitTimeStatus;
16
+ recommendedArrival: {
17
+ domestic: number | null;
18
+ international: number | null;
19
+ };
20
+ trafficScore: number | null;
21
+ url: string;
22
+ fetchedAt: string;
23
+ }
24
+ export interface FlightQueueSearchResult {
25
+ airports: FlightQueueAirport[];
26
+ query: string;
27
+ }
28
+ export type FlightQueueResult = {
29
+ success: true;
30
+ data: FlightQueueData;
31
+ } | {
32
+ success: false;
33
+ error: string;
34
+ };
35
+ export type FlightQueueSearchResponse = {
36
+ success: true;
37
+ data: FlightQueueSearchResult;
38
+ } | {
39
+ success: false;
40
+ error: string;
41
+ };
42
+ //# sourceMappingURL=flightqueue-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flightqueue-types.d.ts","sourceRoot":"","sources":["../../src/lib/flightqueue-types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAC9D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,EAAE,cAAc,CAAC;IACzB,WAAW,EAAE,cAAc,CAAC;IAC5B,kBAAkB,EAAE;QAClB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;KAC9B,CAAC;IACF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,iBAAiB,GACzB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GACxC;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtC,MAAM,MAAM,yBAAyB,GACjC;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,uBAAuB,CAAA;CAAE,GAChD;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=flightqueue-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flightqueue-types.js","sourceRoot":"","sources":["../../src/lib/flightqueue-types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skillhq/concierge",
3
- "version": "1.6.0",
3
+ "version": "1.7.1",
4
4
  "description": "Find contact details for accommodation listings (Airbnb, Booking.com, VRBO, Expedia)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",