letsfg 2026.5.68 → 2026.5.69

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
@@ -151,14 +151,14 @@ print(booking["confirmation"], booking["pay_link"])
151
151
 
152
152
  ### How you pay
153
153
 
154
- **10% now, the rest to the hotel later.** At booking we charge 10% of the price
154
+ **5% now, the rest to the hotel later.** At booking we charge 5% of the price
155
155
  to your card as a reservation fee. The remaining balance is paid **directly to
156
156
  the supplier** through a `pay_link` we return — we never hold it.
157
157
 
158
158
  `balance_due_by` is the supplier's own auto-cancellation date, not a date we
159
159
  invent. Miss it and the room is released.
160
160
 
161
- The 10% is **non-refundable**. Cancelling before `balance_due_by` costs nothing
161
+ The 5% is **non-refundable**. Cancelling before `balance_due_by` costs nothing
162
162
  else; after it, the hotel's own cancellation ladder applies and can reach 100%.
163
163
  That ladder ships in the booking's `terms`, so you can always see the cost before
164
164
  you cancel.
@@ -184,7 +184,7 @@ is not metered, only the search call itself.
184
184
  hotel signup.
185
185
  - **Only free-cancellation, pay-later rates are sold.** Those are the rates where
186
186
  the balance can safely be settled with the supplier after booking, which is
187
- what makes 10%-now/rest-later work at all. You will see fewer results than a
187
+ what makes 5%-now/rest-later work at all. You will see fewer results than a
188
188
  metasearch shows you. Every one of them can actually be booked.
189
189
  - **Booking is asynchronous.** `book_hotel` returns a `booking_job_id`, not a
190
190
  booking — the real thing takes minutes. Poll `hotel_booking(job_id)` until
@@ -1709,7 +1709,7 @@ var LetsFG = class {
1709
1709
  //
1710
1710
  // Only free-cancellation, pay-later rates are sold. Those are the rates where
1711
1711
  // the guest's balance can safely be settled with the supplier after booking,
1712
- // which is what makes 10%-now/rest-later work. The result set is smaller than
1712
+ // which is what makes 5%-now/rest-later work. The result set is smaller than
1713
1713
  // a metasearch's, and every row in it can actually be booked.
1714
1714
  /**
1715
1715
  * Resolve a place name to the city id that searchHotels() needs.
@@ -1732,7 +1732,7 @@ var LetsFG = class {
1732
1732
  * — so this gets its own generous timeout rather than the client default.
1733
1733
  *
1734
1734
  * Each offer carries `price` (what the guest pays), `reservation_fee_now`
1735
- * (the 10% taken at booking), `balance_to_supplier`, `balance_due_by` and
1735
+ * (the 5% taken at booking), `balance_to_supplier`, `balance_due_by` and
1736
1736
  * `free_cancellation_until`. There is no wholesale figure to quote by mistake.
1737
1737
  *
1738
1738
  * Keep `session_id` and the chosen offer's `combination_id_v2`: together they
@@ -1758,7 +1758,7 @@ var LetsFG = class {
1758
1758
  * Start a booking. Returns a job immediately — it does NOT book inline.
1759
1759
  *
1760
1760
  * A booking takes minutes: the rate is re-blocked at the supplier, every
1761
- * price and date rail is checked, the 10% reservation fee is charged to your
1761
+ * price and date rail is checked, the 5% reservation fee is charged to your
1762
1762
  * card, and only then is the room committed. No proxy holds a connection that
1763
1763
  * long, so this returns at once and you poll hotelBooking() for the outcome.
1764
1764
  * Use bookHotelAndWait() if you would rather block.
@@ -1840,7 +1840,7 @@ var LetsFG = class {
1840
1840
  *
1841
1841
  * Free until `balance_due_by`; after that the hotel's own cancellation ladder
1842
1842
  * applies and can reach 100%. The ladder ships in the booking's `terms`, so
1843
- * you can see the cost before calling this. The 10% reservation fee is NOT
1843
+ * you can see the cost before calling this. The 5% reservation fee is NOT
1844
1844
  * refunded.
1845
1845
  *
1846
1846
  * This drives a browser at the supplier and takes over a minute. If it times
package/dist/cli.js CHANGED
@@ -605,7 +605,7 @@ var LetsFG = class {
605
605
  //
606
606
  // Only free-cancellation, pay-later rates are sold. Those are the rates where
607
607
  // the guest's balance can safely be settled with the supplier after booking,
608
- // which is what makes 10%-now/rest-later work. The result set is smaller than
608
+ // which is what makes 5%-now/rest-later work. The result set is smaller than
609
609
  // a metasearch's, and every row in it can actually be booked.
610
610
  /**
611
611
  * Resolve a place name to the city id that searchHotels() needs.
@@ -628,7 +628,7 @@ var LetsFG = class {
628
628
  * — so this gets its own generous timeout rather than the client default.
629
629
  *
630
630
  * Each offer carries `price` (what the guest pays), `reservation_fee_now`
631
- * (the 10% taken at booking), `balance_to_supplier`, `balance_due_by` and
631
+ * (the 5% taken at booking), `balance_to_supplier`, `balance_due_by` and
632
632
  * `free_cancellation_until`. There is no wholesale figure to quote by mistake.
633
633
  *
634
634
  * Keep `session_id` and the chosen offer's `combination_id_v2`: together they
@@ -654,7 +654,7 @@ var LetsFG = class {
654
654
  * Start a booking. Returns a job immediately — it does NOT book inline.
655
655
  *
656
656
  * A booking takes minutes: the rate is re-blocked at the supplier, every
657
- * price and date rail is checked, the 10% reservation fee is charged to your
657
+ * price and date rail is checked, the 5% reservation fee is charged to your
658
658
  * card, and only then is the room committed. No proxy holds a connection that
659
659
  * long, so this returns at once and you poll hotelBooking() for the outcome.
660
660
  * Use bookHotelAndWait() if you would rather block.
@@ -736,7 +736,7 @@ var LetsFG = class {
736
736
  *
737
737
  * Free until `balance_due_by`; after that the hotel's own cancellation ladder
738
738
  * applies and can reach 100%. The ladder ships in the booking's `terms`, so
739
- * you can see the cost before calling this. The 10% reservation fee is NOT
739
+ * you can see the cost before calling this. The 5% reservation fee is NOT
740
740
  * refunded.
741
741
  *
742
742
  * This drives a browser at the supplier and takes over a minute. If it times
package/dist/cli.mjs CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  LetsFG,
4
4
  LetsFGError,
5
5
  offerSummary
6
- } from "./chunk-QLCIHPPX.mjs";
6
+ } from "./chunk-PW775XDB.mjs";
7
7
  import {
8
8
  BearerTokenError,
9
9
  getBearerToken,
package/dist/index.d.mts CHANGED
@@ -520,7 +520,7 @@ declare class LetsFG {
520
520
  * — so this gets its own generous timeout rather than the client default.
521
521
  *
522
522
  * Each offer carries `price` (what the guest pays), `reservation_fee_now`
523
- * (the 10% taken at booking), `balance_to_supplier`, `balance_due_by` and
523
+ * (the 5% taken at booking), `balance_to_supplier`, `balance_due_by` and
524
524
  * `free_cancellation_until`. There is no wholesale figure to quote by mistake.
525
525
  *
526
526
  * Keep `session_id` and the chosen offer's `combination_id_v2`: together they
@@ -543,7 +543,7 @@ declare class LetsFG {
543
543
  * Start a booking. Returns a job immediately — it does NOT book inline.
544
544
  *
545
545
  * A booking takes minutes: the rate is re-blocked at the supplier, every
546
- * price and date rail is checked, the 10% reservation fee is charged to your
546
+ * price and date rail is checked, the 5% reservation fee is charged to your
547
547
  * card, and only then is the room committed. No proxy holds a connection that
548
548
  * long, so this returns at once and you poll hotelBooking() for the outcome.
549
549
  * Use bookHotelAndWait() if you would rather block.
@@ -606,7 +606,7 @@ declare class LetsFG {
606
606
  *
607
607
  * Free until `balance_due_by`; after that the hotel's own cancellation ladder
608
608
  * applies and can reach 100%. The ladder ships in the booking's `terms`, so
609
- * you can see the cost before calling this. The 10% reservation fee is NOT
609
+ * you can see the cost before calling this. The 5% reservation fee is NOT
610
610
  * refunded.
611
611
  *
612
612
  * This drives a browser at the supplier and takes over a minute. If it times
package/dist/index.d.ts CHANGED
@@ -520,7 +520,7 @@ declare class LetsFG {
520
520
  * — so this gets its own generous timeout rather than the client default.
521
521
  *
522
522
  * Each offer carries `price` (what the guest pays), `reservation_fee_now`
523
- * (the 10% taken at booking), `balance_to_supplier`, `balance_due_by` and
523
+ * (the 5% taken at booking), `balance_to_supplier`, `balance_due_by` and
524
524
  * `free_cancellation_until`. There is no wholesale figure to quote by mistake.
525
525
  *
526
526
  * Keep `session_id` and the chosen offer's `combination_id_v2`: together they
@@ -543,7 +543,7 @@ declare class LetsFG {
543
543
  * Start a booking. Returns a job immediately — it does NOT book inline.
544
544
  *
545
545
  * A booking takes minutes: the rate is re-blocked at the supplier, every
546
- * price and date rail is checked, the 10% reservation fee is charged to your
546
+ * price and date rail is checked, the 5% reservation fee is charged to your
547
547
  * card, and only then is the room committed. No proxy holds a connection that
548
548
  * long, so this returns at once and you poll hotelBooking() for the outcome.
549
549
  * Use bookHotelAndWait() if you would rather block.
@@ -606,7 +606,7 @@ declare class LetsFG {
606
606
  *
607
607
  * Free until `balance_due_by`; after that the hotel's own cancellation ladder
608
608
  * applies and can reach 100%. The ladder ships in the booking's `terms`, so
609
- * you can see the cost before calling this. The 10% reservation fee is NOT
609
+ * you can see the cost before calling this. The 5% reservation fee is NOT
610
610
  * refunded.
611
611
  *
612
612
  * This drives a browser at the supplier and takes over a minute. If it times
package/dist/index.js CHANGED
@@ -1757,7 +1757,7 @@ var LetsFG = class {
1757
1757
  //
1758
1758
  // Only free-cancellation, pay-later rates are sold. Those are the rates where
1759
1759
  // the guest's balance can safely be settled with the supplier after booking,
1760
- // which is what makes 10%-now/rest-later work. The result set is smaller than
1760
+ // which is what makes 5%-now/rest-later work. The result set is smaller than
1761
1761
  // a metasearch's, and every row in it can actually be booked.
1762
1762
  /**
1763
1763
  * Resolve a place name to the city id that searchHotels() needs.
@@ -1780,7 +1780,7 @@ var LetsFG = class {
1780
1780
  * — so this gets its own generous timeout rather than the client default.
1781
1781
  *
1782
1782
  * Each offer carries `price` (what the guest pays), `reservation_fee_now`
1783
- * (the 10% taken at booking), `balance_to_supplier`, `balance_due_by` and
1783
+ * (the 5% taken at booking), `balance_to_supplier`, `balance_due_by` and
1784
1784
  * `free_cancellation_until`. There is no wholesale figure to quote by mistake.
1785
1785
  *
1786
1786
  * Keep `session_id` and the chosen offer's `combination_id_v2`: together they
@@ -1806,7 +1806,7 @@ var LetsFG = class {
1806
1806
  * Start a booking. Returns a job immediately — it does NOT book inline.
1807
1807
  *
1808
1808
  * A booking takes minutes: the rate is re-blocked at the supplier, every
1809
- * price and date rail is checked, the 10% reservation fee is charged to your
1809
+ * price and date rail is checked, the 5% reservation fee is charged to your
1810
1810
  * card, and only then is the room committed. No proxy holds a connection that
1811
1811
  * long, so this returns at once and you poll hotelBooking() for the outcome.
1812
1812
  * Use bookHotelAndWait() if you would rather block.
@@ -1888,7 +1888,7 @@ var LetsFG = class {
1888
1888
  *
1889
1889
  * Free until `balance_due_by`; after that the hotel's own cancellation ladder
1890
1890
  * applies and can reach 100%. The ladder ships in the booking's `terms`, so
1891
- * you can see the cost before calling this. The 10% reservation fee is NOT
1891
+ * you can see the cost before calling this. The 5% reservation fee is NOT
1892
1892
  * refunded.
1893
1893
  *
1894
1894
  * This drives a browser at the supplier and takes over a minute. If it times
package/dist/index.mjs CHANGED
@@ -22,7 +22,7 @@ import {
22
22
  offerSummary,
23
23
  rankOffers,
24
24
  selectDiverseTop
25
- } from "./chunk-QLCIHPPX.mjs";
25
+ } from "./chunk-PW775XDB.mjs";
26
26
  export {
27
27
  AuthenticationError,
28
28
  BoostedTravel,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "letsfg",
3
- "version": "2026.5.68",
3
+ "version": "2026.5.69",
4
4
  "description": "Flights and hotels for AI agents. Server-side engine covers hundreds of airlines; hotels are real bookable inventory with free cancellation and pay-later terms. Includes open-source ranking engine.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",