letsfg 2026.4.9 → 2026.4.36

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/README.md CHANGED
@@ -58,6 +58,9 @@ console.log(`PNR: ${booking.booking_reference}`);
58
58
  export LETSFG_API_KEY=trav_...
59
59
 
60
60
  letsfg search GDN BER 2026-03-03 --sort price
61
+
62
+ # Fast mode — OTAs + key airlines only (~25 connectors, 20-40s)
63
+ letsfg search GDN BER 2026-03-03 --mode fast
61
64
  letsfg search LON BCN 2026-04-01 --json # Machine-readable
62
65
  letsfg unlock off_xxx
63
66
  letsfg book off_xxx -p '{"id":"pas_xxx","given_name":"John",...}' -e john@example.com
@@ -139,8 +139,7 @@ async function searchLocal(origin, destination, dateFrom, options = {}) {
139
139
  return_date: options.returnDate,
140
140
  cabin_class: options.cabinClass,
141
141
  ...options.maxBrowsers != null && { max_browsers: options.maxBrowsers },
142
- ...options.departureTimeFrom != null && { departure_time_from: options.departureTimeFrom },
143
- ...options.departureTimeTo != null && { departure_time_to: options.departureTimeTo }
142
+ ...options.mode != null && { mode: options.mode }
144
143
  });
145
144
  return new Promise((resolve, reject) => {
146
145
  const pythonCmd = process.platform === "win32" ? "python" : "python3";
package/dist/cli.js CHANGED
@@ -160,8 +160,7 @@ async function searchLocal(origin, destination, dateFrom, options = {}) {
160
160
  return_date: options.returnDate,
161
161
  cabin_class: options.cabinClass,
162
162
  ...options.maxBrowsers != null && { max_browsers: options.maxBrowsers },
163
- ...options.departureTimeFrom != null && { departure_time_from: options.departureTimeFrom },
164
- ...options.departureTimeTo != null && { departure_time_to: options.departureTimeTo }
163
+ ...options.mode != null && { mode: options.mode }
165
164
  });
166
165
  return new Promise((resolve, reject) => {
167
166
  const pythonCmd = process.platform === "win32" ? "python" : "python3";
package/dist/cli.mjs CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  LetsFG,
4
4
  LetsFGError,
5
5
  offerSummary
6
- } from "./chunk-2JOODKE2.mjs";
6
+ } from "./chunk-AUXPORRU.mjs";
7
7
 
8
8
  // src/cli.ts
9
9
  function getFlag(args, flag, alias) {
package/dist/index.d.mts CHANGED
@@ -111,13 +111,11 @@ interface SearchOptions {
111
111
  maxStopovers?: number;
112
112
  currency?: string;
113
113
  limit?: number;
114
- sort?: 'price' | 'duration' | 'departure_time';
114
+ sort?: 'price' | 'duration';
115
115
  /** Max concurrent browser instances (1-32). Omit for auto-detect based on system RAM. */
116
116
  maxBrowsers?: number;
117
- /** Earliest departure time HH:MM (e.g. '06:00' for morning flights). */
118
- departureTimeFrom?: string;
119
- /** Latest departure time HH:MM (e.g. '14:00' for flights before 2pm). */
120
- departureTimeTo?: string;
117
+ /** Search mode. Omit for full search (all 200+ connectors). 'fast' = OTAs + key direct airlines (~25 connectors, 20-40s). */
118
+ mode?: 'fast';
121
119
  }
122
120
  interface CheckoutProgress {
123
121
  status: string;
package/dist/index.d.ts CHANGED
@@ -111,13 +111,11 @@ interface SearchOptions {
111
111
  maxStopovers?: number;
112
112
  currency?: string;
113
113
  limit?: number;
114
- sort?: 'price' | 'duration' | 'departure_time';
114
+ sort?: 'price' | 'duration';
115
115
  /** Max concurrent browser instances (1-32). Omit for auto-detect based on system RAM. */
116
116
  maxBrowsers?: number;
117
- /** Earliest departure time HH:MM (e.g. '06:00' for morning flights). */
118
- departureTimeFrom?: string;
119
- /** Latest departure time HH:MM (e.g. '14:00' for flights before 2pm). */
120
- departureTimeTo?: string;
117
+ /** Search mode. Omit for full search (all 200+ connectors). 'fast' = OTAs + key direct airlines (~25 connectors, 20-40s). */
118
+ mode?: 'fast';
121
119
  }
122
120
  interface CheckoutProgress {
123
121
  status: string;
package/dist/index.js CHANGED
@@ -189,8 +189,7 @@ async function searchLocal(origin, destination, dateFrom, options = {}) {
189
189
  return_date: options.returnDate,
190
190
  cabin_class: options.cabinClass,
191
191
  ...options.maxBrowsers != null && { max_browsers: options.maxBrowsers },
192
- ...options.departureTimeFrom != null && { departure_time_from: options.departureTimeFrom },
193
- ...options.departureTimeTo != null && { departure_time_to: options.departureTimeTo }
192
+ ...options.mode != null && { mode: options.mode }
194
193
  });
195
194
  return new Promise((resolve, reject) => {
196
195
  const pythonCmd = process.platform === "win32" ? "python" : "python3";
package/dist/index.mjs CHANGED
@@ -14,7 +14,7 @@ import {
14
14
  offerSummary,
15
15
  searchLocal,
16
16
  systemInfo
17
- } from "./chunk-2JOODKE2.mjs";
17
+ } from "./chunk-AUXPORRU.mjs";
18
18
  export {
19
19
  AuthenticationError,
20
20
  BoostedTravel,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "letsfg",
3
- "version": "2026.4.9",
3
+ "version": "2026.4.36",
4
4
  "description": "Agent-native flight search & booking. 200 airline connectors run locally + enterprise GDS/NDC APIs. Built for autonomous AI agents.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",