@duffel/api 4.21.5 → 4.22.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 (39) hide show
  1. package/dist/Cars/Bookings/Bookings.d.ts +45 -0
  2. package/dist/Cars/Bookings/Bookings.spec.d.ts +1 -0
  3. package/dist/Cars/Bookings/index.d.ts +1 -0
  4. package/dist/Cars/Cars.d.ts +20 -0
  5. package/dist/Cars/Cars.spec.d.ts +1 -0
  6. package/dist/Cars/CarsTypes.d.ts +185 -0
  7. package/dist/Cars/Quotes/Quotes.d.ts +16 -0
  8. package/dist/Cars/Quotes/Quotes.spec.d.ts +1 -0
  9. package/dist/Cars/Quotes/index.d.ts +1 -0
  10. package/dist/Cars/mocks.d.ts +17 -0
  11. package/dist/DuffelPayments/PaymentIntents/mockPaymentIntents.d.ts +3 -0
  12. package/dist/DuffelPayments/Refunds/mockRefunds.d.ts +2 -0
  13. package/dist/Places/Suggestions/mockSuggestions.d.ts +2 -0
  14. package/dist/Stays/mocks.d.ts +11 -0
  15. package/dist/booking/AirlineInitiatedChanges/mockAirlineInitiatedChanges.d.ts +3 -0
  16. package/dist/booking/BatchOfferRequests/mockBatchOfferRequest.d.ts +4 -0
  17. package/dist/booking/Identity/ComponentClientKey/mockComponentClientKey.d.ts +2 -0
  18. package/dist/booking/OfferRequests/mockOfferRequest.d.ts +3 -0
  19. package/dist/booking/Offers/mockOffer.d.ts +14 -0
  20. package/dist/booking/Offers/mockPartialOffer.d.ts +13 -0
  21. package/dist/booking/OrderCancellations/mockOrderCancellations.d.ts +2 -0
  22. package/dist/booking/OrderChangeOffers/OrderChangeOfferTypes.d.ts +10 -0
  23. package/dist/booking/OrderChangeOffers/mockOrderChangeOffer.d.ts +2 -0
  24. package/dist/booking/OrderChangeRequests/mockOrderChangeRequests.d.ts +4 -0
  25. package/dist/booking/OrderChanges/mockOrderChanges.d.ts +2 -0
  26. package/dist/booking/Orders/mockOrders.d.ts +6 -0
  27. package/dist/booking/PartialOfferRequests/mockPartialOfferRequest.d.ts +3 -0
  28. package/dist/booking/Payments/mockPayment.d.ts +2 -0
  29. package/dist/booking/SeatMaps/mockSeatMap.d.ts +2 -0
  30. package/dist/index.es.js +1 -1
  31. package/dist/index.es.js.map +1 -1
  32. package/dist/index.js +1 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/notifications/Webhooks/mockWebhooks.d.ts +24 -0
  35. package/dist/supportingResources/Aircraft/mockAircraft.d.ts +2 -0
  36. package/dist/supportingResources/Airlines/mockAirline.d.ts +2 -0
  37. package/dist/supportingResources/Airports/mockAirport.d.ts +2 -0
  38. package/dist/typings.d.ts +299 -0
  39. package/package.json +8 -7
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.es.js","sources":["../node_modules/tslib/tslib.es6.js","../src/Resource.ts","../src/DuffelPayments/PaymentIntents/PaymentIntents.ts","../src/booking/AirlineInitiatedChanges/AirlineInitiatedChanges.ts","../src/booking/BatchOfferRequests/BatchOfferRequests.ts","../src/booking/OfferRequests/OfferRequests.ts","../src/booking/Offers/Offers.ts","../src/booking/OrderCancellations/OrderCancellations.ts","../src/booking/Orders/Orders.ts","../src/booking/OrderChangeRequests/OrderChangeRequests.ts","../src/booking/OrderChangeOffers/OrderChangeOffers.ts","../src/booking/OrderChanges/OrderChanges.ts","../src/booking/Payments/Payments.ts","../src/booking/PartialOfferRequests/PartialOfferRequests.ts","../src/booking/SeatMaps/SeatMaps.ts","../src/Client.ts","../src/supportingResources/Aircraft/Aircraft.ts","../src/supportingResources/Airlines/Airlines.ts","../src/supportingResources/Airports/Airports.ts","../src/Places/Suggestions/Suggestions.ts","../src/DuffelPayments/Refunds/Refunds.ts","../src/Links/Sessions/Sessions.ts","../src/notifications/Webhooks/Webhooks.ts","../src/Stays/Accommodation/Accommodation.ts","../src/Stays/Brands/Brands.ts","../src/Stays/LoyaltyProgrammes/LoyaltyProgrammes.ts","../src/Stays/Bookings/Bookings.ts","../src/Stays/Quotes/Quotes.ts","../src/Stays/SearchResults/SearchResults.ts","../src/Stays/Stays.ts","../src/Cars/Bookings/Bookings.ts","../src/Cars/Quotes/Quotes.ts","../src/Cars/Cars.ts","../src/Payments/Cards/Cards.ts","../src/Payments/ThreeDSecureSessions/ThreeDSecureSessions.ts","../src/Identity/CustomerUsers.ts","../src/Identity/CustomerUserGroups.ts","../src/Identity/ComponentClientKeys.ts","../src/Identity/Identity.ts","../src/functions/hasAvailableSeatService.ts","../src/index.ts","../src/functions/hasService.ts"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n","import { Client } from './Client'\nimport { DuffelResponse } from './types'\n\nexport class Resource {\n private client: Client\n\n constructor(client: Client) {\n this.client = client\n }\n\n protected request = async <T_Data = any>({\n method,\n path,\n data,\n params,\n }: {\n method: string\n path: string\n data?: Record<string, any>\n params?: Record<string, any>\n }): Promise<DuffelResponse<T_Data>> =>\n this.client.request({ method, path, data, params })\n\n protected paginatedRequest = <T_Data = any>({\n path,\n params,\n }: {\n path: string\n params?: Record<string, any>\n }): AsyncGenerator<DuffelResponse<T_Data>, void, unknown> =>\n this.client.paginatedRequest({ path, params })\n}\n","import { DuffelResponse } from '../../types'\nimport { Resource } from '../../Resource'\nimport { CreatePaymentIntent, PaymentIntent } from './PaymentIntentsType'\n\nexport class PaymentIntents extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(args: any) {\n super(args)\n this.path = 'payments/payment_intents'\n }\n\n /**\n * You should use this API to get the complete, up-to-date information about a Payment Intent.\n * @param {string} id - Duffel's unique identifier for the Payment Intent\n * @link https://duffel.com/docs/api/payment-intents/get-payment-intent-by-id\n */\n public get = async (id: string): Promise<DuffelResponse<PaymentIntent>> =>\n this.request({ method: 'GET', path: `${this.path}/${id}` })\n\n /**\n * Once you've successfully collected the customer's card details, using the `client_token` from when you first created the Payment Intent, you then need to confirm it using this endpoint.\n * Once confirmed, the amount charged to your customer's card will be added to your `Balance` (minus any Duffel Payment fees).\n */\n public confirm = async (id: string): Promise<DuffelResponse<PaymentIntent>> =>\n this.request({ method: 'POST', path: `${this.path}/${id}/actions/confirm` })\n\n /**\n * To begin the process of collecting a card payment from your customer, you need to create a Payment Intent.\n * The Payment Intent will contain a `client_token` that you use to collect the card payment in your application.\n * If the Payment Intent is created in test mode you should use a [test card](https://duffel.com/docs/api/overview/test-mode/test-card-numbers).\n * @param {Object.<CreatePaymentIntent>} params - Endpoint params (amount and string)\n */\n public create = async (\n params: CreatePaymentIntent,\n ): Promise<DuffelResponse<PaymentIntent>> => {\n return this.request({ method: 'POST', path: this.path, data: params })\n }\n}\n","import { Client } from '../../Client'\nimport { Resource } from '../../Resource'\nimport { DuffelResponse, Order } from '../../types'\nimport {\n AirlineInitiatedChange,\n AirlineInitiatedChangeActionTaken,\n} from './AirlineInitiatedChangesTypes'\n\n/**\n * Sometimes there can be changes to your order initiated by the airline, for\n * example a flight being delayed. We record every one of these changes so that\n * you can view them all or for an order. You can filter changes for a specific\n * order using the `order_id` parameter.\n *\n * Each airline-initiated change contains an `added` and `removed` field. `added`\n * contains the updated slices following the change. These slices and their\n * segments may have a new ID based on the change. `removed` contains a list of\n * slices and their segments as they were before the change.\n */\nexport class AirlineInitiatedChanges extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'air/airline_initiated_changes'\n }\n\n /**\n * This endpoint is only available to those airline-initiated changes that\n * Duffel cannot accept on behalf of the customer. Duffel is unable to accept\n * an airline-initiated change when these two conditions are true: the order\n * was booked with the merchant's IATA number and Duffel is unable to accept\n * the airline-initiated change programatically. In this case you, the\n * customer, are responsible to resolve airline-initiated changes concerning\n * this order (e.g. by contacting the airline directly). Once these have been\n * resolved, you need to inform us of the action taken so we can mark it\n * accordingly in our system.\n *\n * @param {AirlineInitiatedChange['id']} id - Duffel's unique identifier for\n * the airline-initiated change\n *\n * @param action_taken - The action taken in response to this\n * airline-initiated change. Accepted, cancelled and changed reflect your\n * action in accepting the change, cancelling the order or changing the order\n * respectively.\n *\n * @link https://duffel.com/docs/api/v1/airline-initiated-changes/update-airline-initiated-changes\n */\n public update = async (\n id: AirlineInitiatedChange['id'],\n action_taken: AirlineInitiatedChangeActionTaken,\n ): Promise<DuffelResponse<AirlineInitiatedChange>> =>\n this.request({\n method: 'PATCH',\n path: `${this.path}/${id}`,\n data: { action_taken },\n })\n\n /**\n * Once there is an airline-initiated change you can choose to accept it.\n *\n * @param {AirlineInitiatedChange['id']} id - Duffel's unique identifier for\n * the airline-initiated change\n *\n * @link https://duffel.com/docs/api/v1/airline-initiated-changes/accept-airline-initiated-changes\n */\n public accept = async (\n id: AirlineInitiatedChange['id'],\n ): Promise<DuffelResponse<AirlineInitiatedChange>> =>\n this.request({\n method: 'POST',\n path: `${this.path}/${id}/actions/accept`,\n })\n\n /**\n * Retrieves a list of all airline-initiated changes.\n *\n * @param order_id - Filters airline-initiated changes by their order ID.\n * Value must be a valid order ID. Check the [Order schema](https://duffel.com/docs/api/orders/schema#orders-schema-id)\n * for details.\n *\n * @link https://duffel.com/docs/api/v1/airline-initiated-changes/get-airline-initiated-changes\n */\n public list = async (\n order_id: Order['id'],\n ): Promise<DuffelResponse<Order['airline_initiated_changes']>> =>\n this.request({\n method: 'GET',\n path: this.path,\n params: {\n order_id,\n },\n })\n}\n","import { Client } from '../../Client'\nimport { Resource } from '../../Resource'\nimport {\n BatchOfferRequest,\n CreateBatchOfferRequest,\n CreateBatchOfferRequestResponse,\n CreateBatchOfferRequestQueryParameters,\n DuffelResponse,\n} from '../../types'\n\n/**\n * To search for flights, you'll need to create an `offer request`.\n * The batch offer requests endpoint allows you to retrieve orders as soon as they become available.\n * They function as long-polling resources that you can repeatedly retrieve after creating them, returning whatever offers are available at the time or waiting for more to become available. Batches are expected to be consumed promptly, and as such, batch offer requests expire after one minute. However, offers remain accessible and can be retrieved using the offer request ID as usual.\n * @class\n * @link https://duffel.com/docs/api/batch-offer-requests\n */\nexport class BatchOfferRequests extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'air/batch_offer_requests'\n }\n\n /**\n * Call this endpoint repeatedly to retrieve all the offers as they become available. The total_batches and remaining_batches properties can be used to estimate the remaining amount of work, although you may receive multiple batches at the same time if multiple batches are available.\n * Once you get a response with remaining_batches of 0 you can stop requesting the endpoint as there are no more offers coming.\n * @param {string} id - Duffel's unique identifier for the offer request\n * @link https:/duffel.com/docs/api/offer-requests/get-offer-request-by-id\n */\n public get = async (id: string): Promise<DuffelResponse<BatchOfferRequest>> =>\n this.request({ method: 'GET', path: `${this.path}/${id}` })\n\n /**\n * To search for flights, you'll need to create an `offer request`.\n * An offer request describes the passengers and where and when they want to travel (in the form of a list of `slices`).\n * It may also include additional filters (e.g. a particular cabin to travel in).\n * Batch offer requests are a mechanism for retrieving offers as they become available, instead of waiting for the entire offer payload to finish processing.\n * They function as long-polling resources that you can repeatedly retrieve after creating them, returning whatever offers are available at the time or waiting for more to become available. Batches are expected to be consumed promptly, and as such, batch offer requests expire after one minute.\n * However, offers remain accessible and can be retrieved using the offer request ID as usual.\n * @param {Object} [options] - the parameters for making an offer requests (required: slices, passengers; optional: cabin_class)\n * @link https://duffel.com/docs/api/v2/batch-offer-requests/create-batch-offer-request\n */\n public create = async <\n QueryParams extends CreateBatchOfferRequestQueryParameters,\n >(\n options: CreateBatchOfferRequest & QueryParams,\n ): Promise<DuffelResponse<CreateBatchOfferRequestResponse>> => {\n const { supplier_timeout, ...data } = options\n\n return this.request({\n method: 'POST',\n path: `${this.path}/`,\n data,\n params: {\n ...(supplier_timeout !== undefined &&\n supplier_timeout !== null && { supplier_timeout }),\n },\n })\n }\n}\n","import { Client } from '../../Client'\nimport { Resource } from '../../Resource'\nimport {\n CreateOfferRequest,\n CreateOfferRequestQueryParameters,\n DuffelResponse,\n OfferRequest,\n PaginationMeta,\n} from '../../types'\n\n/**\n * To search for flights, you'll need to create an `offer request`.\n * An offer request describes the passengers and where and when they want to travel (in the form of a list of `slices`).\n * It may also include additional filters (e.g. a particular cabin to travel in).\n * @class\n * @link https://duffel.com/docs/api/offer-requests\n */\nexport class OfferRequests extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'air/offer_requests'\n }\n\n /**\n * Retrieves an offer request by its ID\n * @param {string} id - Duffel's unique identifier for the offer request\n * @link https:/duffel.com/docs/api/offer-requests/get-offer-request-by-id\n */\n public get = async (id: string): Promise<DuffelResponse<OfferRequest>> =>\n this.request({ method: 'GET', path: `${this.path}/${id}` })\n\n /**\n * Retrieves a page of offer requests. The results may be returned in any order.\n * @param {Object} [options] - Pagination options (optional: limit, after, before)\n * @link https://duffel.com/docs/api/offer-requests/get-offer-requests\n */\n public list = (\n options?: PaginationMeta,\n ): Promise<DuffelResponse<OfferRequest[]>> =>\n this.request({ method: 'GET', path: this.path, params: options })\n\n /**\n * Retrieves a generator of all offer requests. The results may be returned in any order.\n * @link https://duffel.com/docs/api/offer-requests/get-offer-requests\n */\n public listWithGenerator = (): AsyncGenerator<\n DuffelResponse<OfferRequest>,\n void,\n unknown\n > => this.paginatedRequest({ path: this.path })\n\n /**\n * To search for flights, you'll need to create an `offer request`.\n * An offer request describes the passengers and where and when they want to travel (in the form of a list of `slices`).\n * It may also include additional filters (e.g. a particular cabin to travel in).\n * @param {Object} [options] - the parameters for making an offer requests (required: slices, passengers; optional: cabin_class, return_offers)\n * When `return_offers` is set to `true`, the offer request resource returned will include all the `offers` returned by the airlines.\n * If set to false, the offer request resource won't include any `offers`. To retrieve the associated offers later, use the List Offers endpoint, specifying the `offer_request_id`.\n * @link https://duffel.com/docs/api/offer-requests/create-offer-request\n */\n public create = async <QueryParams extends CreateOfferRequestQueryParameters>(\n options: CreateOfferRequest & QueryParams,\n ): Promise<\n DuffelResponse<\n // Ensure that the `offers` field can't be accessed if `return_offers` is false\n QueryParams extends { return_offers: false }\n ? Omit<OfferRequest, 'offers'>\n : OfferRequest\n >\n > => {\n const { return_offers, supplier_timeout, ...data } = options\n\n return this.request({\n method: 'POST',\n path: `${this.path}/`,\n data,\n params: {\n ...(return_offers !== undefined &&\n return_offers !== null && { return_offers }),\n ...(supplier_timeout !== undefined &&\n supplier_timeout !== null && { supplier_timeout }),\n },\n })\n }\n}\n","import { Client } from '../../Client'\nimport { Resource } from '../../Resource'\nimport {\n DuffelResponse,\n GetOfferPricedParams,\n ListOffersParams,\n Offer,\n OfferPriced,\n LoyaltyProgrammeAccounts,\n UpdateOffer,\n} from '../../types'\n\ninterface UpdateOfferBodyParameters {\n loyalty_programme_accounts: LoyaltyProgrammeAccounts[]\n given_name: string\n family_name: string\n}\n\n/**\n * Each offer represents flights you can buy from an airline at a particular price that meet your search criteria.\n * @class\n * @link https://duffel.com/docs/api/offers\n */\nexport class Offers extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'air/offers'\n }\n\n /**\n * Retrieves an offer by its ID\n * @param {string} id - Duffel's unique identifier for the offer\n * @param {string} return_available_services - When set to true, the offer resource returned will include all the available_services returned by the airline. If set to false, the offer resource won't include any available_services.\n * @link https:/duffel.com/docs/api/offers/get-offer-by-id\n */\n public get = async (\n id: string,\n params?: { return_available_services: boolean },\n ): Promise<DuffelResponse<Offer>> =>\n this.request({ method: 'GET', path: `${this.path}/${id}`, params })\n\n /**\n * Retrieves a page of offers. The results may be returned in any order.\n * @param {Object.<ListOffersParams>} params - Endpoint options (optional: limit, after, before, max_connections, sort)\n * @param {string} params.offer_request_id - Duffel's unique identifier for the offer request, returned when it was created\n * @link https://duffel.com/docs/api/offers/get-offers\n */\n public list = ({\n offer_request_id,\n ...params\n }: ListOffersParams): Promise<DuffelResponse<Offer[]>> =>\n this.request({\n method: 'GET',\n path: this.path,\n params: {\n ...params,\n offer_request_id,\n },\n })\n\n /**\n * Retrieves a generator of all offers. The results may be returned in any order.\n * @param {Object.<ListOffersParams>} params - Endpoint options (optional: limit, after, before, max_connections, sort)\n * @param {string} params.offer_request_id - Duffel's unique identifier for the offer request, returned when it was created\n * @link https://duffel.com/docs/api/offers/get-offers\n */\n public listWithGenerator = ({\n offer_request_id,\n ...params\n }: ListOffersParams): AsyncGenerator<DuffelResponse<Offer>, void, unknown> =>\n this.paginatedRequest({\n path: this.path,\n params: {\n ...params,\n offer_request_id,\n },\n })\n\n /**\n * Some offer passenger fields are updateable. Each field that can be updated is detailed in the request object.\n * @param {string} offerId - Duffel's unique identifier for the offer\n * @param {string} passengerId - The identifier for the passenger. This ID will be generated by Duffel\n * @param {string} params.family_name - The passenger's family name. Only space, -, ', and letters from the ASCII, Latin-1 Supplement and Latin Extended-A (with the exceptions of Æ, æ, IJ, ij, Œ, œ, Þ, and ð) Unicode charts are accepted. All other characters will result in a validation error. The minimum length is 1 character, and the maximum is 20 characters.\n * @param {string} params.given_name - The passenger's given name. Only space, -, ', and letters from the ASCII, Latin-1 Supplement and Latin Extended-A (with the exceptions of Æ, æ, IJ, ij, Œ, œ, Þ, and ð) Unicode charts are accepted. All other characters will result in a validation error. The minimum length is 1 character, and the maximum is 20 characters.\n * @param {Object.<LoyaltyProgrammeAccounts>} params.loyalty_programme_accounts - The Loyalty Programme Accounts for this passenger\n */\n public update = async (\n offerId: string,\n passengerId: string,\n params: UpdateOfferBodyParameters,\n ): Promise<DuffelResponse<UpdateOffer>> =>\n this.request({\n method: 'PATCH',\n path: `${this.path}/${offerId}/passengers/${passengerId}`,\n ...(params && { data: params }),\n })\n\n /**\n * Price the offer with intended payment methods and intended services. This will return the total amount that will be charged to the customer, including any applicable surcharges.\n * @param {string} offerId - Duffel's unique identifier for the offer\n * @param {Object.<GetOfferPricedParams>} params - The intended payment methods and services of the offer\n */\n public getPriced = async (\n offerId: string,\n params: GetOfferPricedParams,\n ): Promise<DuffelResponse<OfferPriced>> =>\n this.request({\n method: 'POST',\n path: `${this.path}/${offerId}/actions/price`,\n data: params,\n })\n}\n","import { Resource } from '../../Resource'\nimport {\n CreateOrderCancellation,\n DuffelResponse,\n OrderCancellation,\n ListOrderCancellationsParams,\n} from '../../types'\n\nexport class OrderCancellations extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(args: any) {\n super(args)\n this.path = 'air/order_cancellations'\n }\n\n /**\n * Retrieves an order cancellation by its ID\n * @param {string} id - Duffel's unique identifier for the order cancellation\n * @link https:/duffel.com/docs/api/order-cancellations/get-order-cancellation-by-id\n */\n public get = async (id: string): Promise<DuffelResponse<OrderCancellation>> =>\n this.request({ method: 'GET', path: `${this.path}/${id}` })\n\n /**\n * Retrieves a page of order cancellations. The results may be returned in any order.\n * @param {Object.<ListOrderCancellationsParams>} params - Endpoint options (optional: limit, after, before, order_id)\n * @link https://duffel.com/docs/api/order-cancellations/get-order-cancellations\n */\n public list = (\n params?: ListOrderCancellationsParams,\n ): Promise<DuffelResponse<OrderCancellation[]>> =>\n this.request({ method: 'GET', path: this.path, params })\n\n /**\n * Retrieves a generator of all order cancellations. The results may be returned in any order.\n * @param {Object.<ListOrderCancellationsParams>} params - Endpoint options (optional: limit, after, before, order_id)\n * @link https://duffel.com/docs/api/order-cancellations/get-order-cancellations\n */\n public listWithGenerator = (\n params?: ListOrderCancellationsParams,\n ): AsyncGenerator<DuffelResponse<OrderCancellation>, void, unknown> =>\n this.paginatedRequest({ path: this.path, params })\n\n /**\n * Create order cancellation\n * @description To begin the process of cancelling an order you need to create an order cancellation.\n * @param order_id - Duffel's unique identifier for the order\n * @link https://duffel.com/docs/api/order-cancellations/create-order-cancellation\n */\n public create = async (\n options: CreateOrderCancellation,\n ): Promise<DuffelResponse<OrderCancellation>> => {\n return this.request({ method: 'POST', path: this.path, data: options })\n }\n\n /**\n * Confirm order cancellation\n * @description Once you've created a pending order cancellation, you'll know the `refund_amount` you're due to get back.\n * @param {string} id - Duffel's unique identifier for the order to cancel\n * @link https://duffel.com/docs/api/order-cancellations/confirm-order-cancellation\n */\n public confirm = async (\n id: string,\n ): Promise<DuffelResponse<OrderCancellation>> =>\n this.request({ method: 'POST', path: `${this.path}/${id}/actions/confirm` })\n}\n","import { Resource } from '../../Resource'\nimport {\n AddServices,\n CreateOrder,\n DuffelResponse,\n ListParamsOrders,\n Order,\n OrderAvailableService,\n PaginationMeta,\n UpdateSingleOrder,\n} from '../../types'\n\nexport class Orders extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(args: any) {\n super(args)\n this.path = 'air/orders'\n }\n\n /**\n * Retrieves an order by its ID\n * @param {string} id - Duffel's unique identifier for the order\n */\n public get = async (id: string): Promise<DuffelResponse<Order>> =>\n this.request({ method: 'GET', path: `${this.path}/${id}` })\n\n /**\n * Retrieves a page of orders. The results may be returned in any order.\n * @param {Object} [options] - Pagination options (optional: limit, after, before)\n * @link https://duffel.com/docs/api/orders/get-orders\n */\n public list = async (\n options?: PaginationMeta & ListParamsOrders,\n ): Promise<DuffelResponse<Order[]>> =>\n this.request({ method: 'GET', path: this.path, params: options })\n\n /**\n * Retrieves a generator of all orders. The results may be returned in any order.\n * You can optionally filter the results by the `awaiting_payment` state and sort by the `payment_required_by` date.\n * @param {Object} [options] - Optional query parameters: awaiting_payment, sort\n * @link https://duffel.com/docs/api/orders/get-orders\n */\n public listWithGenerator = (\n options?: ListParamsOrders,\n ): AsyncGenerator<DuffelResponse<Order>, void, unknown> =>\n this.paginatedRequest({ path: 'air/orders', params: options })\n\n /**\n * Creates a booking with an airline based on an offer.\n */\n public create = async (\n options: CreateOrder,\n ): Promise<DuffelResponse<Order>> => {\n return this.request({ method: 'POST', path: this.path, data: options })\n }\n\n /**\n * Updates a single order\n * @description Some order fields are updateable. Each field that can be updated is detailed in the request object.\n * @param {string} id - Duffel's unique identifier for the order\n * @param {Object.UpdateSingleOrder} options\n * @example (id: 'ord_00009hthhsUZ8W4LxQgkjo', { metadata: { 'payment_intent_id': 'pit_00009htYpSCXrwaB9DnUm2' } } )\n * @link https://duffel.com/docs/api/orders/update-order-by-id\n */\n public update = async (\n id: string,\n options: UpdateSingleOrder,\n ): Promise<DuffelResponse<Order>> => {\n return this.request({\n method: 'PATCH',\n path: `${this.path}/${id}`,\n data: { options },\n })\n }\n\n /**\n * Retrieves the available services for an order by its ID\n * @param {string} id - Duffel's unique identifier for the order\n */\n public getAvailableServices = async (\n id: string,\n ): Promise<DuffelResponse<OrderAvailableService[]>> =>\n this.request({\n method: 'GET',\n path: `${this.path}/${id}/available_services`,\n })\n\n /**\n * Adds services for an order by its ID\n * @param {string} id - Duffel's unique identifier for the order\n * @param {Object.AddServices} options\n * @link https://duffel.com/docs/api/orders/create-order-services\n */\n public addServices = async (\n id: string,\n options: AddServices,\n ): Promise<DuffelResponse<Order>> =>\n this.request({\n method: 'POST',\n path: `${this.path}/${id}/services`,\n data: options,\n })\n}\n","import { Resource } from '../../Resource'\nimport {\n CreateOrderChangeRequest,\n DuffelResponse,\n OrderChangeRequestResponse,\n} from '../../types'\n/**\n *\n * To change an order, you'll need to create an order change request.\n * This is still in PREVIEW mode\n * @export\n * @class OrderChangeRequests\n * @extends {Resource}\n */\nexport class OrderChangeRequests extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(args: any) {\n super(args)\n this.path = 'air/order_change_requests'\n }\n /**\n * Retrieves an order change request by its ID\n * @param {string} id - The ID of your order change request\n */\n public get = async (\n id: string,\n ): Promise<DuffelResponse<OrderChangeRequestResponse>> =>\n this.request({ method: 'GET', path: `${this.path}/${id}` })\n\n /**\n *\n * To change flights on an existing paid order, you'll need to create an order change request.\n * @link https://duffel.com/docs/api/order-change-requests/create-order-change-request\n * @memberof OrderChangeRequests\n */\n public create = async (\n options: CreateOrderChangeRequest,\n ): Promise<DuffelResponse<OrderChangeRequestResponse>> =>\n this.request({ method: 'POST', path: this.path, data: options })\n}\n","import { Resource } from '../../Resource'\nimport { DuffelResponse, OrderChangeOffer, PaginationMeta } from '../../types'\n\n/**\n * After you've searched for flights to add to your order by creating an order change request, we'll send your search to a range of airlines, which may return order change offers.\n * This is still in PREVIEW mode\n * @export\n * @class OrderChangeOffers\n * @extends {Resource}\n */\nexport class OrderChangeOffers extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(args: any) {\n super(args)\n this.path = 'air/order_change_offers'\n }\n\n /**\n * Retrieves an order change offer by its ID\n * @param {string} id - The ID of your order change offer\n * @link https://duffel.com/docs/api/order-change-offers/get-order-change-offer-by-id\n */\n public get = async (id: string): Promise<DuffelResponse<OrderChangeOffer>> =>\n this.request({ method: 'GET', path: `${this.path}/${id}` })\n\n /**\n * Retrieves a page of order change offers. The results may be returned in any order.\n * @param {Object} [options] - Pagination options (optional: limit, after, before)\n */\n public list = (\n options?: PaginationMeta,\n ): Promise<DuffelResponse<OrderChangeOffer[]>> =>\n this.request({ method: 'GET', path: this.path, params: options })\n\n /**\n * Retrieves a generator of all order change offers. The results may be returned in any order.\n */\n public listWithGenerator = (): AsyncGenerator<\n DuffelResponse<OrderChangeOffer>,\n void,\n unknown\n > => this.paginatedRequest({ path: this.path })\n}\n","import { Resource } from '../../Resource'\nimport {\n ConfirmOrderChangePayment,\n CreateOrderChangeParameters,\n DuffelResponse,\n OrderChangeOffer,\n} from '../../types'\n\n/**\n * Once you've created an order change request, and you've chosen which slices to add and remove, you'll then want to create an order change.\n */\nexport class OrderChanges extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(args: any) {\n super(args)\n this.path = 'air/order_changes'\n }\n\n /**\n * To begin the process of changing an order you need to create an order change.\n * The OrderChange will contain the `selected_order_change_offer` reference of the change you wish to make to your order.\n * @link https://duffel.com/docs/api/order-changes/create-order-change\n */\n public create = async (\n options: CreateOrderChangeParameters,\n ): Promise<DuffelResponse<OrderChangeOffer>> =>\n this.request({ method: 'POST', path: this.path, data: options })\n\n /**\n * Retrieves an order change by its ID\n * @param {string} id - Duffel's unique identifier for the order change\n * @link https://duffel.com/docs/api/order-changes/get-order-change-by-id\n */\n public get = async (id: string): Promise<DuffelResponse<OrderChangeOffer>> =>\n this.request({ method: 'GET', path: `${this.path}/${id}` })\n\n /**\n * Once you've created a pending order change, you'll know the change_total_amount due for the change.\n * @param {string} id - Duffel's unique identifier for the order change\n * @param {payment} Object - The payment details to use to pay for the order change, if there is an amount to be paid. Some order changes may not need this if they instead refund an amount. In those cases, you can pass any empty object.\n * @link https://duffel.com/docs/api/order-changes/confirm-order-change\n */\n public confirm = async (\n id: string,\n options: Partial<ConfirmOrderChangePayment>,\n ): Promise<DuffelResponse<OrderChangeOffer>> =>\n this.request({\n method: 'POST',\n path: `${this.path}/${id}/actions/confirm`,\n data: options,\n })\n}\n","import { Resource } from '../../Resource'\nimport { CreatePayment, DuffelResponse, Payment } from '../../types'\n\nexport class Payments extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(args: any) {\n super(args)\n this.path = 'air/payments'\n }\n\n /**\n * Creates a payment for an existing pay later order.\n * An order can be paid for up to the time limit indicated in `payment_required_by`, after which the space held for the order will be released and you will have to create a new order.\n * @param {string} order_id\n * @param {string} payment\n */\n public create = async (\n options: CreatePayment,\n ): Promise<DuffelResponse<Payment>> => {\n return this.request({ method: 'POST', path: this.path, data: options })\n }\n}\n","import { Client } from '../../Client'\nimport { Resource } from '../../Resource'\nimport { CreateOfferRequest, DuffelResponse, OfferRequest } from '../../types'\nimport {\n CreatePartialOfferRequestQueryParam,\n SelectedPartialOffersParams,\n} from './PartialOfferRequestTypes'\n\n/**\n * To search for and select flights separately for each slice of the journey, you'll need to create a partial offer request.\n *\n * A partial offer request describes the passengers and where and when they want to travel (in the form of a list of slices).\n * @class\n * @link https://duffel.com/docs/api/partial-offer-requests\n */\nexport class PartialOfferRequests extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'air/partial_offer_requests'\n }\n\n /**\n * Retrieves a partial offers request by its ID, only including partial offers for the current slice of multi-step search flow.\n * @param {string} id - Duffel's unique identifier for the partial offer request\n * @param {Object} [options] - Selected partial offers\n * @link https:/duffel.com/docs/api/partial-offer-requests/get-partial-offer-request-by-id\n */\n public get = async (\n id: string,\n options?: SelectedPartialOffersParams,\n ): Promise<DuffelResponse<OfferRequest>> => {\n return this.request({\n method: 'GET',\n path: `${this.path}/${id}`,\n params: options,\n })\n }\n\n /**\n * To search for and select flights separately for each slice of the journey, you'll need to create a partial offer request.\n * A partial offer request describes the passengers and where and when they want to travel (in the form of a list of slices).\n * It may also include additional filters (e.g. a particular cabin to travel in).\n * @param {Object} [options] - the parameters for making a partial offer requests (required: slices, passengers; optional: cabin_class)\n * @link https://duffel.com/docs/api/partial-offer-requests/create-partial-offer-request\n */\n public create = async <\n QueryParams extends CreatePartialOfferRequestQueryParam,\n >(\n options: CreateOfferRequest & QueryParams,\n ): Promise<DuffelResponse<OfferRequest>> => {\n const { supplier_timeout, ...data } = options\n return this.request({\n method: 'POST',\n path: `${this.path}/`,\n data: data,\n params: {\n ...(supplier_timeout !== undefined &&\n supplier_timeout !== null && { supplier_timeout }),\n },\n })\n }\n\n /**\n * Retrieves an offer request with offers for fares matching selected partial offers..\n * @param {string} id - Duffel's unique identifier for the partial offer request\n * @param {Object} [options] - Selected partial offers\n * @link https:/duffel.com/docs/api/partial-offer-requests/get-partial-offer-request-fares-by-id\n */\n public getFaresById = async (\n id: string,\n options?: SelectedPartialOffersParams,\n ): Promise<DuffelResponse<OfferRequest>> => {\n return this.request({\n method: 'GET',\n path: `${this.path}/${id}/fares`,\n params: options,\n })\n }\n}\n","import { Resource } from '../../Resource'\nimport { DuffelResponse, SeatMap } from '../../types'\n\nexport class SeatMaps extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(args: any) {\n super(args)\n this.path = 'air/seat_maps'\n }\n\n /**\n * Gets seat maps by specific parameters. At the moment we only support querying by an offer ID.\n * @param {string} offer_id - Duffel's unique identifier for the offer\n * @link https://duffel.com/docs/api/seat-maps/get-seat-maps\n */\n public get = async (params: {\n offer_id: string\n }): Promise<DuffelResponse<SeatMap[]>> =>\n this.request({ method: 'GET', path: `${this.path}`, params })\n}\n","import fetch, { Headers } from 'node-fetch'\nimport { URL, URLSearchParams } from 'url'\nimport {\n DuffelResponse,\n SDKOptions,\n ApiResponseMeta,\n ApiResponseError,\n} from './types'\n\nexport interface Config {\n token: string\n basePath?: string\n apiVersion?: string\n debug?: SDKOptions\n source?: string\n}\n\nexport class DuffelError extends Error {\n public meta: ApiResponseMeta\n public errors: ApiResponseError[]\n public headers: Headers\n\n constructor({\n meta,\n errors,\n headers,\n }: {\n meta: ApiResponseMeta\n errors: ApiResponseError[]\n headers: Headers\n }) {\n super()\n this.meta = meta\n this.errors = errors\n this.headers = headers\n }\n}\n\nconst CURRENT_API_VERSION = 'v2'\n\nexport class Client {\n private token: string\n private basePath: string\n private apiVersion: string\n private debug: SDKOptions | undefined\n private source: string | undefined\n\n constructor({ token, basePath, apiVersion, debug, source }: Config) {\n this.token = token\n this.basePath = basePath || 'https://api.duffel.com'\n this.apiVersion = apiVersion || CURRENT_API_VERSION\n this.debug = debug\n this.source = source\n }\n\n public request = async <T_Data = any>({\n method,\n path,\n data,\n params,\n compress = true,\n }: {\n method: string\n path: string\n data?: Record<string, any>\n params?: Record<string, any>\n compress?: boolean\n }): Promise<DuffelResponse<T_Data>> => {\n let body\n let responseBody\n const fullPath = new URL(path, this.basePath)\n const userAgent = [\n `Duffel/${this.apiVersion}`,\n `duffel_api_javascript/${process.env.npm_package_version}`,\n this.source ? `source/${this.source}` : '',\n ]\n .join(' ')\n .trim()\n\n const headers = {\n 'User-Agent': userAgent,\n Accept: 'application/json',\n 'Accept-Encoding': 'gzip',\n 'Content-Type': 'application/json',\n 'Duffel-Version': this.apiVersion,\n Authorization: `Bearer ${this.token}`,\n }\n\n if (params) {\n const params_with_array_expanded = new URLSearchParams()\n Object.entries(params)\n .sort()\n .filter((option) => option[0] !== null)\n .forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach((value) =>\n params_with_array_expanded.append(key, value.toString()),\n )\n } else {\n params_with_array_expanded.append(key, value.toString())\n }\n })\n fullPath.search = params_with_array_expanded.toString()\n }\n\n // We need to format body to be sent as { \"data\": data }\n if (data) {\n body = JSON.stringify({\n data: {\n ...data,\n },\n })\n }\n\n if (this.debug?.verbose) {\n console.info('Endpoint: ', fullPath.href)\n console.info('Method: ', method)\n if (data) console.info('Body Parameters: ', data)\n if (params) console.info('Query Parameters: ', params)\n }\n\n const response = await fetch(fullPath.href, {\n method,\n headers,\n body,\n compress,\n })\n\n if (this.debug?.verbose && response.headers.get('x-request-id')) {\n console.info('Request ID: ', response.headers.get('x-request-id'))\n }\n\n const contentType = response.headers.get('content-type')\n\n if (contentType && contentType.includes('json')) {\n responseBody = await response.json()\n } else {\n responseBody = (await response.text()) as any\n }\n\n if (!response.ok || ('errors' in responseBody && responseBody.errors)) {\n throw new DuffelError({\n ...responseBody,\n status: response.status,\n headers: response.headers,\n })\n }\n\n return {\n ...responseBody,\n status: response.status,\n headers: response.headers,\n }\n }\n\n async *paginatedRequest<T_Data = any>({\n path,\n params,\n }: {\n path: string\n params?: Record<string, any>\n }): AsyncGenerator<DuffelResponse<T_Data>, void, unknown> {\n let response: DuffelResponse<T_Data[]> = await this.request({\n method: 'GET',\n path,\n params,\n })\n for (const item of response.data) {\n yield { data: item, status: response.status }\n }\n\n while (response.meta && 'after' in response.meta && response.meta.after) {\n response = await this.request({\n method: 'GET',\n path,\n params: {\n ...params,\n ...{ limit: response.meta.limit, after: response.meta.after },\n },\n })\n for (const item of response.data) {\n yield { data: item, status: response.status }\n }\n }\n }\n}\n","import { Resource } from '../../Resource'\nimport {\n Aircraft as AircraftType,\n DuffelResponse,\n PaginationMeta,\n} from '../../types'\n\n/** Aircraft are used to describe what passengers will fly in for a given trip\n * @class\n * @link https://duffel.com/docs/api/aircraft\n */\nexport class Aircraft extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(args: any) {\n super(args)\n this.path = 'air/aircraft'\n }\n\n /**\n * Retrieves an aircraft by its ID\n * @param {string} id - Duffel's unique identifier for the aircraft\n * @link https://duffel.com/docs/api/aircraft/get-aircraft-by-id\n */\n public get = async (id: string): Promise<DuffelResponse<AircraftType>> =>\n this.request({ method: 'GET', path: `${this.path}/${id}` })\n\n /**\n * Retrieves a page of aircraft. The results may be returned in any order.\n * @param {Object} [options] - Pagination options (optional: limit, after, before)\n * @link https://duffel.com/docs/api/aircraft/get-aircraft\n */\n public list = (\n options?: PaginationMeta,\n ): Promise<DuffelResponse<AircraftType[]>> =>\n this.request({ method: 'GET', path: this.path, params: options })\n\n /**\n * Retrieves a generator of all aircraft. The results may be returned in any order.\n * @link https://duffel.com/docs/api/aircraft/get-aircraft\n */\n public listWithGenerator = (): AsyncGenerator<\n DuffelResponse<AircraftType>,\n void,\n unknown\n > => this.paginatedRequest({ path: this.path })\n}\n","import { Resource } from '../../Resource'\nimport { Airline, DuffelResponse, PaginationMeta } from '../../types'\n\n/** Airlines are used to identify the air travel companies selling and operating flights\n * @class\n * @link https://duffel.com/docs/api/airlines\n */\nexport class Airlines extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(args: any) {\n super(args)\n this.path = 'air/airlines'\n }\n\n /**\n * Retrieves an airline by its ID\n * @param {string} id - Duffel's unique identifier for the airline\n * @link https://duffel.com/docs/api/airlines/get-airline-by-id\n */\n public get = async (id: string): Promise<DuffelResponse<Airline>> =>\n this.request({ method: 'GET', path: `${this.path}/${id}` })\n\n /**\n * Retrieves a page of airlines. The results may be returned in any order.\n * @param {Object} [options] - Pagination options (optional: limit, after, before)\n * @link https://duffel.com/docs/api/airlines/get-airlines\n */\n public list = (\n options?: PaginationMeta,\n ): Promise<DuffelResponse<Airline[]>> =>\n this.request({ method: 'GET', path: this.path, params: options })\n\n /**\n * Retrieves a generator of all airlines. The results may be returned in any order.\n * @link https://duffel.com/docs/api/airlines/get-airlines\n */\n public listWithGenerator = (): AsyncGenerator<\n DuffelResponse<Airline>,\n void,\n unknown\n > => this.paginatedRequest({ path: this.path })\n}\n","import { Resource } from '../../Resource'\nimport { Airport, DuffelResponse, PaginationMeta } from '../../types'\n\n/** Airports are used to identify origins and destinations in journey slices\n * @class\n * @link https://duffel.com/docs/api/airports\n */\nexport class Airports extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(args: any) {\n super(args)\n this.path = 'air/airports'\n }\n\n /**\n * Retrieves an airport by its ID\n * @param {string} id - Duffel's unique identifier for the airport\n * @link https://duffel.com/docs/api/airports/get-airport-by-id\n */\n public get = async (id: string): Promise<DuffelResponse<Airport>> =>\n this.request({ method: 'GET', path: `${this.path}/${id}` })\n\n /**\n * Retrieves a page of airports. The results may be returned in any order.\n * @param {Object} [options] - Pagination options (optional: limit, after, before)\n * @link https://duffel.com/docs/api/airports/get-airports\n */\n public list = (\n options?: PaginationMeta,\n ): Promise<DuffelResponse<Airport[]>> =>\n this.request({ method: 'GET', path: this.path, params: options })\n\n /**\n * Retrieves a generator of all airports. The results may be returned in any order.\n * @link https://duffel.com/docs/api/airports/get-airports\n */\n public listWithGenerator = (): AsyncGenerator<\n DuffelResponse<Airport>,\n void,\n unknown\n > => this.paginatedRequest({ path: this.path })\n}\n","import { Client } from '../../Client'\nimport { Resource } from '../../Resource'\nimport { DuffelResponse, Places } from '../../types'\n\ninterface PlacesSuggestionsParameters {\n /**\n * A search string for finding matching Places.\n * Deprecated in favour of \"name\".\n */\n query?: string\n\n /**\n * A search string for finding matching Places by name.\n */\n name?: string\n\n /**\n * The radius, in metres, to search within.\n */\n rad?: string\n\n /**\n * The latitude to search by.\n */\n lat?: string\n\n /**\n * The longitude to search by.\n */\n lng?: string\n}\n\n/**\n * A Place is a city or airport that can serve as an origin or destination.\n * * @link https://duffel.com/docs/api/places\n */\nexport class Suggestions extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'places/suggestions'\n }\n\n /**\n * Retrieves a list of Places matching the provided query\n */\n public list = async (\n params: PlacesSuggestionsParameters,\n ): Promise<DuffelResponse<Places[]>> =>\n this.request({ method: 'GET', path: `${this.path}`, params })\n}\n","import { Resource } from '../../Resource'\nimport { DuffelResponse } from '../../types'\nimport { CreateRefund, Refund } from './RefundsType'\n\nexport class Refunds extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(args: any) {\n super(args)\n this.path = 'payments/refunds'\n }\n\n /**\n * You should use this API to get the complete, up-to-date information about a Refund.\n * @param {string} id - Duffel's unique identifier for the Refund\n * @link https://duffel.com/docs/api/refunds/get-refund-by-id\n */\n public get = async (id: string): Promise<DuffelResponse<Refund>> =>\n this.request({ method: 'GET', path: `${this.path}/${id}` })\n\n /**\n * Create a Refund to refund some money to a customer that they paid using a Payment Intent. You must specify the amount and currency. The currency is currently limited to the currency in which the Payment Intent was made.\n * @param {Object.<CreateFund>} params - Endpoint params (amount, currency and payment_intent_id)\n */\n public create = async (\n params: CreateRefund,\n ): Promise<DuffelResponse<Refund>> => {\n return this.request({ method: 'POST', path: this.path, data: params })\n }\n}\n","import { Client } from '../../Client'\nimport { Resource } from '../../Resource'\nimport { DuffelResponse } from '../../types'\n\ninterface SessionParameters {\n /**\n * A tracking reference for the booking that may be created within this Duffel Links session\n */\n reference: string\n /**\n * A url to return to when a flight is booked via Duffel Links\n */\n success_url: string\n /**\n * A url to return to when there is an error within Duffel Links\n */\n failure_url: string\n /**\n * A url to return to when the user exits Duffel Links before booking\n */\n abandonment_url: string\n /**\n * A primary color to show within Duffel Links\n */\n primary_color?: string\n /**\n * A url of the logo to show within Duffel Links\n */\n logo_url?: string\n /**\n * A markup amount to be added to the flights shown within Duffel Links\n */\n markup_amount?: number\n /**\n * A markup amount to be added to the flights shown within Duffel Links\n */\n markup_currency?: string\n /**\n * A markup percentage to be added to the flights shown within Duffel Links\n */\n markup_rate?: number\n /**\n * A text to be shown on the checkout page within Duffel Links\n */\n checkout_display_text?: string\n}\n\ninterface Session {\n /**\n * The Duffel Links url that contains the specified configuration\n */\n url: string\n}\n\nexport class Sessions extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'links/sessions'\n }\n\n /**\n * Create a Duffel Links Session per the configuration\n */\n public create = async (\n data: SessionParameters,\n ): Promise<DuffelResponse<Session>> =>\n this.request({ method: 'POST', path: this.path, data })\n}\n","import {\n DuffelResponse,\n PaginationMeta,\n Webhooks as WebhooksType,\n WebhooksCreateParams,\n WebhooksCreateResponse,\n WebhooksListDeliveriesParams,\n WebhooksListDeliveriesResponse,\n WebhooksListResponse,\n WebhooksUpdateParams,\n} from '../../types'\nimport { Resource } from '../../Resource'\nimport { Client } from '../../Client'\n\nexport class Webhooks extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'air/webhooks'\n }\n\n /**\n * Trigger a re-delivery of an event to a webhook.\n * @param {string} id - Duffel's unique identifier for the webhook event\n * @link https://duffel.com/docs/api/v1/webhooks/schema#webhooks-retry-delivering-a-webhook-event-url-parameters-id\n */\n public redeliver = async (id: string): Promise<DuffelResponse<unknown>> =>\n this.request({\n method: 'POST',\n path: `${this.path}/events/${id}/actions/redeliver`,\n })\n\n /**\n * Send a ping, a \"fake event\" notification, to a webhook.\n * @param {string} id - Duffel's unique identifier for the webhook receiver\n */\n public ping = async (id: string): Promise<DuffelResponse<unknown>> =>\n this.request({\n method: 'POST',\n path: `${this.path}/${id}/actions/ping`,\n })\n\n /**\n * Retrieves a webhook event by its ID.\n * @param {string} id- Duffel's unique identifier for the webhook event\n */\n public get = async (id: string): Promise<DuffelResponse<WebhooksType>> =>\n this.request({\n method: 'GET',\n path: `${this.path}/events/${id}`,\n })\n\n /**\n * Retrieve a paginated list of webhook deliveries\n * @param {Object.<WebhooksListDeliveriesParams>} params - Endpoint options\n */\n public listDeliveries = async ({\n ...params\n }: WebhooksListDeliveriesParams): Promise<\n DuffelResponse<WebhooksListDeliveriesResponse[]>\n > =>\n this.request({\n method: 'GET',\n path: `${this.path}/deliveries`,\n params: {\n ...params,\n },\n })\n\n /**\n * Delete a webhook\n * @param {string} id - Duffel's unique identifier for the webhook receiver\n */\n public delete = async (id: string) =>\n this.request({\n method: 'DELETE',\n path: `${this.path}/${id}`,\n })\n\n /**\n * Update a webhook\n * @param {string} id - Duffel's unique identifier for the webhook receiver\n */\n public update = async (\n id: string,\n { active, events, url }: WebhooksUpdateParams,\n ) =>\n this.request({\n method: 'PATCH',\n path: `${this.path}/${id}`,\n data: {\n active,\n events,\n url,\n },\n })\n\n /**\n * Retrieve a paginated list of webhook\n * @param {Object.<PaginationMeta>} params - Endpoint options\n */\n public list = async ({\n ...params\n }: PaginationMeta): Promise<DuffelResponse<WebhooksListResponse[]>> =>\n this.request({\n method: 'GET',\n path: this.path,\n params: {\n ...params,\n },\n })\n\n /**\n * Create a webhook\n * @param {Object.<WebhooksCreateParams>} params - Endpoint options\n */\n public create = async ({\n events,\n url,\n }: WebhooksCreateParams): Promise<DuffelResponse<WebhooksCreateResponse>> =>\n this.request({\n method: 'POST',\n path: this.path,\n data: {\n events,\n url,\n },\n })\n}\n","import { Client } from '../../Client'\nimport {\n LocationParams,\n ListAccommodationParams,\n StaysAccommodationSuggestion,\n StaysAccommodation,\n StaysAccommodationReviewResponse,\n} from '../StaysTypes'\nimport { Resource } from '../../Resource'\nimport { DuffelResponse, PaginationMeta } from '../../types'\n\nexport class Accommodation extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'stays/accommodation'\n }\n\n /**\n * Get suggestions for accommodation given a query string.\n * @param {string} query - The query string for the search\n */\n public suggestions = async (\n query: string,\n location?: LocationParams,\n ): Promise<DuffelResponse<StaysAccommodationSuggestion[]>> =>\n this.request({\n method: 'POST',\n path: `${this.path}/suggestions`,\n data: {\n query: query,\n location: location,\n },\n })\n\n public reviews = async (\n id: StaysAccommodation['id'],\n options?: PaginationMeta,\n ): Promise<DuffelResponse<StaysAccommodationReviewResponse>> =>\n this.request({\n method: 'GET',\n path: `${this.path}/${id}/reviews`,\n params: options,\n })\n\n /**\n * Get information about an accommodation with a specific Duffel ID\n * @param {string} id - The Duffel ID of the Accommodation\n */\n public get = async (\n id: StaysAccommodation['id'],\n ): Promise<DuffelResponse<StaysAccommodation>> =>\n this.request({\n method: 'GET',\n path: `${this.path}/${id}`,\n })\n\n /**\n * Retrieves a page of accommodation.\n * @param {Object.<ListAccommodationParams>} params - Endpoint options (radius, latitude, longitude, before, after, limit)\n * @link https://duffel.com/docs/api/v2/accommodation/list-accommodation\n */\n public list = (\n params: ListAccommodationParams,\n ): Promise<DuffelResponse<StaysAccommodation[]>> =>\n this.request({\n method: 'GET',\n path: this.path,\n params: params,\n })\n\n /**\n * Retrieves a generator of accommodation pages given the criteria in the params.\n * @param {Object.<ListAccommodationParams>} params - Endpoint options (radius, latitude, longitude, before, after, limit)\n * @link https://duffel.com/docs/api/v2/accommodation/list-accommodation\n */\n public listWithGenerator = (\n params: ListAccommodationParams,\n ): AsyncGenerator<DuffelResponse<StaysAccommodation[]>> =>\n this.paginatedRequest({\n path: this.path,\n params: params,\n })\n}\n","import { Client } from '../../Client'\nimport { StaysAccommodationBrand } from '../StaysTypes'\nimport { Resource } from '../../Resource'\nimport { DuffelResponse } from '../../types'\n\nexport class Brands extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'stays/brands'\n }\n\n /**\n * Get a brand\n * @param {string} brandId - The ID of the brand\n */\n public get = async (\n brandId: string,\n ): Promise<DuffelResponse<StaysAccommodationBrand>> =>\n this.request({\n method: 'GET',\n path: `${this.path}/${brandId}`,\n })\n\n /**\n * List brands\n */\n public list = async (): Promise<DuffelResponse<StaysAccommodationBrand[]>> =>\n this.request({\n method: 'GET',\n path: this.path,\n })\n}\n","import { Client } from '../../Client'\nimport { StaysLoyaltyProgramme } from '../StaysTypes'\nimport { Resource } from '../../Resource'\nimport { DuffelResponse } from '../../types'\n\nexport class LoyaltyProgrammes extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'stays/loyalty_programmes'\n }\n\n /**\n * List all the loyalty programmes supported by Duffel Stays\n */\n public list = async (): Promise<DuffelResponse<StaysLoyaltyProgramme[]>> =>\n this.request({\n method: 'GET',\n path: this.path,\n })\n}\n","import { Client } from '../../Client'\nimport { ListParamsBookings, StaysBooking } from '../StaysTypes'\nimport { Resource } from '../../Resource'\nimport { DuffelResponse, PaginationMeta } from '../../types'\n\nexport interface StaysBookingPayload {\n quote_id: string\n loyalty_programme_account_number?: string\n guests: Array<{\n given_name: string\n family_name: string\n /**\n * Creates an association between the guest and a previously created user.\n * This is intended to allow guests the ability to manage their own bookings.\n * @example [\"icu_0000000000000000000000\"]\n */\n user_id?: string\n }>\n email: string\n phone_number: string\n accommodation_special_requests?: string\n payment?: { card_id: string } | { three_d_secure_session_id: string }\n metadata?: StaysBooking['metadata']\n /**\n * The ids of users that would be allowed to manage the booking.\n * @example [\"icu_0000000000000000000000\"]\n */\n users?: string[]\n}\n\nexport class Bookings extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'stays/bookings'\n }\n\n /**\n * Create a booking\n * @param {object} payload - The booking payload, including quote id and guest information\n */\n public create = async (\n payload: StaysBookingPayload,\n ): Promise<DuffelResponse<StaysBooking>> =>\n this.request({\n method: 'POST',\n path: this.path,\n data: payload,\n })\n\n /**\n * Get a booking\n * @param {string} bookingId - The ID of the booking\n */\n public get = async (\n bookingId: string,\n ): Promise<DuffelResponse<StaysBooking>> =>\n this.request({\n method: 'GET',\n path: `${this.path}/${bookingId}`,\n })\n\n /**\n * List bookings\n * @param {Object} [options] - Pagination options (optional: limit, after, before)\n * @link https://duffel.com/docs/api/bookings/list-bookings\n */\n public list = async (\n options?: PaginationMeta & ListParamsBookings,\n ): Promise<DuffelResponse<StaysBooking[]>> =>\n this.request({ method: 'GET', path: this.path, params: options })\n\n /**\n * Retrieves a generator of all bookings. The results may be returned in any order.\n * @link https://duffel.com/docs/api/bookings/list-bookings\n */\n public listWithGenerator = (\n options?: ListParamsBookings,\n ): AsyncGenerator<DuffelResponse<StaysBooking>, void, unknown> =>\n this.paginatedRequest({ path: this.path, params: options })\n\n /**\n * Cancel a booking\n * @param {string} bookingId - The ID of the booking\n */\n public cancel = async (\n bookingId: string,\n ): Promise<DuffelResponse<StaysBooking>> =>\n this.request({\n method: 'POST',\n path: `${this.path}/${bookingId}/actions/cancel`,\n })\n}\n","import { Client } from '../../Client'\nimport { StaysQuote } from '../StaysTypes'\nimport { Resource } from '../../Resource'\nimport { DuffelResponse } from '../../types'\n\nexport class Quotes extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'stays/quotes'\n }\n\n /**\n * Create a quote for the selected rate\n * @param {string} quoteId - The ID of the rate to create a quote for\n */\n public get = async (quoteId: string): Promise<DuffelResponse<StaysQuote>> =>\n this.request({\n method: 'GET',\n path: `${this.path}/${quoteId}`,\n })\n\n /**\n * Create a quote for the selected rate\n * @param {string} rateId - The ID of the rate to create a quote for\n */\n public create = async (rateId: string): Promise<DuffelResponse<StaysQuote>> =>\n this.request({\n method: 'POST',\n path: this.path,\n data: {\n rate_id: rateId,\n },\n })\n}\n","import { Client } from '../../Client'\nimport { StaysSearchResult } from '../StaysTypes'\nimport { Resource } from '../../Resource'\nimport { DuffelResponse } from '../../types'\n\nexport class SearchResults extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'stays/search_results'\n }\n\n /**\n * Fetch all rates for the given search result\n * @param {string} searchResultId - The ID of the search result to fetch rates for\n */\n public fetchAllRates = async (\n searchResultId: string,\n ): Promise<DuffelResponse<StaysSearchResult>> =>\n this.request({\n method: 'POST',\n path: `${this.path}/${searchResultId}/actions/fetch_all_rates`,\n })\n}\n","import { Client } from '../Client'\nimport { StaysSearchParams, StaysSearchResponse } from './StaysTypes'\nimport { Resource } from '../Resource'\nimport { DuffelResponse } from '../types'\nimport { Accommodation } from './Accommodation'\nimport { Brands } from './Brands'\nimport { LoyaltyProgrammes } from './LoyaltyProgrammes'\nimport { Bookings } from './Bookings'\nimport { Quotes } from './Quotes'\nimport { SearchResults } from './SearchResults'\n\nexport class Stays extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n public accommodation: Accommodation\n public loyaltyProgrammes: LoyaltyProgrammes\n public brands: Brands\n public searchResults: SearchResults\n public quotes: Quotes\n public bookings: Bookings\n\n constructor(client: Client) {\n super(client)\n this.path = 'stays'\n\n this.accommodation = new Accommodation(client)\n this.brands = new Brands(client)\n this.loyaltyProgrammes = new LoyaltyProgrammes(client)\n this.searchResults = new SearchResults(client)\n this.quotes = new Quotes(client)\n this.bookings = new Bookings(client)\n }\n\n /**\n * Search for accommodations\n * @param {object} params - The search parameters\n */\n public search = async (\n params: StaysSearchParams,\n ): Promise<DuffelResponse<StaysSearchResponse>> =>\n this.request({ method: 'POST', path: `${this.path}/search`, data: params })\n}\n","import { Client } from '../../Client'\nimport { CarsBooking } from '../CarsTypes'\nimport { Resource } from '../../Resource'\nimport { DuffelResponse } from '../../types'\n\nexport interface CarsBookingPayload {\n quote_id: string\n driver: {\n given_name: string\n family_name: string\n email: string\n phone_number: string\n date_of_birth: string\n user_id?: string\n }\n inbound_flight_number?: string\n supplier_loyalty_programme_account_number?: string\n payment?: {\n method: 'card'\n card_id: string\n }\n metadata?: Record<string, string>\n users?: string[]\n}\n\nexport class Bookings extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'cars/bookings'\n }\n\n /**\n * Create a booking from a quote\n * @param {object} payload - The booking payload, including quote id and driver information\n */\n public create = async (\n payload: CarsBookingPayload,\n ): Promise<DuffelResponse<CarsBooking>> =>\n this.request({\n method: 'POST',\n path: this.path,\n data: payload,\n })\n\n /**\n * Get a booking by ID\n * @param {string} bookingId - The ID of the booking\n */\n public get = async (\n bookingId: string,\n ): Promise<DuffelResponse<CarsBooking>> =>\n this.request({\n method: 'GET',\n path: `${this.path}/${bookingId}`,\n })\n\n /**\n * Cancel a booking\n * @param {string} bookingId - The ID of the booking to cancel\n */\n public cancel = async (\n bookingId: string,\n ): Promise<DuffelResponse<CarsBooking>> =>\n this.request({\n method: 'POST',\n path: `${this.path}/${bookingId}/actions/cancel`,\n })\n}\n","import { Client } from '../../Client'\nimport { CarsQuote } from '../CarsTypes'\nimport { Resource } from '../../Resource'\nimport { DuffelResponse } from '../../types'\n\nexport class Quotes extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'cars/quotes'\n }\n\n /**\n * Create a quote for the selected rate\n * @param {string} rateId - The ID of the rate to create a quote for\n */\n public create = async (rateId: string): Promise<DuffelResponse<CarsQuote>> =>\n this.request({\n method: 'POST',\n path: this.path,\n data: {\n rate_id: rateId,\n },\n })\n}\n","import { Client } from '../Client'\nimport { CarsSearchParams, CarsSearch } from './CarsTypes'\nimport { Resource } from '../Resource'\nimport { DuffelResponse } from '../types'\nimport { Bookings } from './Bookings'\nimport { Quotes } from './Quotes'\n\nexport class Cars extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n public bookings: Bookings\n public quotes: Quotes\n\n constructor(client: Client) {\n super(client)\n this.path = 'cars'\n\n this.bookings = new Bookings(client)\n this.quotes = new Quotes(client)\n }\n\n /**\n * Search for available rental cars\n * @param {object} params - The search parameters\n */\n public search = async (\n params: CarsSearchParams,\n ): Promise<DuffelResponse<CarsSearch>> =>\n this.request({ method: 'POST', path: `${this.path}/search`, data: params })\n}\n","import { Client } from '../../Client'\nimport { Resource } from '../../Resource'\nimport { DuffelResponse } from '../../types'\n\ninterface CardParameters {\n /**\n * The first line of the card owner's address\n */\n address_line_1: string\n\n /**\n * The card owner's postal code (or zip code)\n */\n address_postal_code: string\n /**\n * The card owner's city\n */\n address_city: string\n /**\n * The card owner's region or state\n */\n address_region: string\n /**\n * The ISO 3166-1 alpha-2 code for the card owner's country\n */\n address_country_code: string\n /**\n * The month that the card expires in as a two-digit string, e.g. \"01\"\n */\n expiry_month: string\n /**\n * The year that the card expires in as a two-digit string, e.g. \"28\"\n */\n expiry_year: string\n /**\n * The card owner's name\n */\n name: string\n /**\n * The card number\n */\n number: string\n /**\n * The card verification code\n */\n cvc: string\n /**\n * Set to true to indicate that this card can be used multiple times\n */\n multi_use: boolean\n}\n\ninterface CardRecord {\n id: string\n live_mode: boolean\n multi_use: boolean\n unavailable_at: string\n brand: string\n last_4_digits: string\n}\n\nexport class Cards extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n // basePath must be 'https://api.duffel.cards'\n constructor(client: Client) {\n super(client)\n this.path = 'payments/cards'\n }\n\n /**\n * Create a Duffel card record\n */\n public create = async (\n data: CardParameters,\n ): Promise<DuffelResponse<CardRecord>> =>\n this.request({ method: 'POST', path: this.path, data })\n}\n","import { Resource } from '../../Resource'\nimport { DuffelResponse } from '../../types'\n\ninterface Service {\n /**\n * The quantity of the service ID to pay for\n */\n quantity: number\n /**\n * The ID of the service to pay for\n */\n id: string\n}\n\ninterface ThreeDSecureSessionParameters {\n /**\n * The offer ID, order ID, order change ID or quote ID intended to pay\n */\n resource_id: string\n\n /**\n * The services inteded to pay\n */\n services: Service[]\n\n /**\n * The card ID\n */\n card_id: string\n\n /**\n * The exception name for the 3DS session\n */\n exception: string\n}\n\ninterface ThreeDSecureSessionRecord {\n id: string\n resource_id: string\n card_id: string\n live_mode: boolean\n expires_at: string\n status: string\n client_id: string\n}\n\nexport class ThreeDSecureSessions extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(args: any) {\n super(args)\n this.path = 'payments/three_d_secure_sessions'\n }\n\n /**\n * Create a Duffel ThreeDSecureSession record\n */\n public create = async (\n data: ThreeDSecureSessionParameters,\n ): Promise<DuffelResponse<ThreeDSecureSessionRecord>> =>\n this.request({ method: 'POST', path: this.path, data })\n}\n","import { Client } from '../Client'\nimport { Resource } from '../Resource'\nimport { DuffelResponse, PaginationMeta } from '../types'\nimport { CustomerUser, CustomerUserPayload } from './IdentityTypes'\n\nexport class CustomerUsers extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'identity/customer/users'\n }\n\n /**\n * Creates a customer user for the organisation.\n */\n public create = async (\n data: CustomerUserPayload,\n ): Promise<DuffelResponse<CustomerUser>> =>\n this.request({ method: 'POST', path: this.path, data })\n\n /**\n * Retrieves an customer user by its ID\n */\n public get = async (\n id: CustomerUser['id'],\n ): Promise<DuffelResponse<CustomerUser>> =>\n this.request({ method: 'GET', path: `${this.path}/${id}` })\n\n /**\n * Updates a customer user based on provided ID\n */\n public update = async (\n id: CustomerUser['id'],\n data: CustomerUserPayload,\n ): Promise<DuffelResponse<CustomerUser>> =>\n this.request({ method: 'PUT', path: `${this.path}/${id}`, data })\n\n /**\n * Retrieves a list of customer user groups\n * Allows filtering by email\n\n */\n public list = async (\n options?: PaginationMeta & { email?: string },\n ): Promise<DuffelResponse<CustomerUser[]>> =>\n this.request({ method: 'GET', path: this.path, params: options })\n}\n","import { Client } from '../Client'\nimport { Resource } from '../Resource'\nimport { DuffelResponse, PaginationMeta } from '../types'\nimport { CustomerUserGroup, CustomerUserGroupPayload } from './IdentityTypes'\n\nexport class CustomerUserGroups extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'identity/customer/user_groups'\n }\n\n /**\n * Retrieves a list of customer user groups\n */\n public list = async (\n options?: PaginationMeta,\n ): Promise<DuffelResponse<CustomerUserGroup[]>> =>\n // TODO: check other endpoints that do pagination\n this.request({ method: 'GET', path: this.path, params: options })\n\n /**\n * Creates a customer user group for the organisation.\n */\n public create = async (\n data: CustomerUserGroupPayload,\n ): Promise<DuffelResponse<CustomerUserGroup>> =>\n this.request({ method: 'POST', path: this.path, data })\n\n /**\n * Deletes a customer user group by its ID\n */\n public delete = async (\n id: CustomerUserGroup['id'],\n ): Promise<DuffelResponse<CustomerUserGroup>> =>\n this.request({ method: 'DELETE', path: `${this.path}/${id}` })\n\n /**\n * Retrieves an customer user group by its ID\n */\n public get = async (\n id: CustomerUserGroup['id'],\n ): Promise<DuffelResponse<CustomerUserGroup>> =>\n this.request({ method: 'GET', path: `${this.path}/${id}` })\n\n /**\n * Updates an customer user group by its ID\n */\n public update = async (\n id: CustomerUserGroup['id'],\n data: CustomerUserGroupPayload,\n ): Promise<DuffelResponse<CustomerUserGroup>> =>\n this.request({ method: 'PATCH', path: `${this.path}/${id}`, data })\n}\n","import { Client } from '../Client'\nimport { Resource } from '../Resource'\nimport { DuffelResponse } from '../types'\nimport {\n ComponentClientKey,\n ComponentClientKeyPayload,\n ComponentClientKeyPayloadNoData,\n} from './IdentityTypes'\n\nexport class ComponentClientKeys extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n constructor(client: Client) {\n super(client)\n this.path = 'identity/component_client_keys'\n }\n\n /**\n * The client key to authenticate Duffel UI components.\n */\n public create = async (\n data: ComponentClientKeyPayload = {} as ComponentClientKeyPayloadNoData,\n ): Promise<DuffelResponse<ComponentClientKey>> =>\n this.request({ method: 'POST', path: this.path, data })\n}\n","import { Client } from '../Client'\nimport { Resource } from '../Resource'\nimport { CustomerUsers } from './CustomerUsers'\nimport { CustomerUserGroups } from './CustomerUserGroups'\nimport { ComponentClientKeys } from './ComponentClientKeys'\n\nexport class Identity extends Resource {\n /**\n * Endpoint path\n */\n path: string\n\n public customerUsers: CustomerUsers\n public customerUserGroups: CustomerUserGroups\n public componentClientKeys: ComponentClientKeys\n\n constructor(client: Client) {\n super(client)\n this.path = 'identity'\n\n this.customerUsers = new CustomerUsers(client)\n this.customerUserGroups = new CustomerUserGroups(client)\n this.componentClientKeys = new ComponentClientKeys(client)\n }\n}\n","import { SeatMap } from '../types'\n\nexport function hasAvailableSeatService(seatMaps?: SeatMap[]): boolean {\n if (!Array.isArray(seatMaps) || seatMaps.length === 0) return false\n\n for (const seatMap of seatMaps) {\n for (const cabin of seatMap.cabins) {\n for (const rows of cabin.rows) {\n for (const section of rows.sections) {\n for (const element of section.elements) {\n if (\n element.type === 'seat' &&\n element.available_services.length > 0\n ) {\n return true\n }\n }\n }\n }\n }\n }\n\n return false\n}\n","import { PaymentIntents } from './DuffelPayments'\nimport {\n BatchOfferRequests,\n OfferRequests,\n Offers,\n OrderCancellations,\n Orders,\n OrderChangeRequests,\n OrderChangeOffers,\n OrderChanges,\n Payments,\n PartialOfferRequests,\n SeatMaps,\n AirlineInitiatedChanges,\n} from './booking'\nimport { Client, Config, DuffelError as _DuffelError } from './Client'\nimport { Aircraft, Airlines, Airports } from './supportingResources'\nimport { Suggestions } from './Places/Suggestions'\nimport { Refunds } from './DuffelPayments/Refunds'\nimport { Sessions } from './Links'\nimport { Webhooks } from './notifications'\nimport { Stays } from './Stays/Stays'\nimport { Cars } from './Cars/Cars'\nimport { Cards } from './Payments/Cards'\nimport { ThreeDSecureSessions } from './Payments/ThreeDSecureSessions'\nimport { Identity } from './Identity/Identity'\nimport { hasService as hasServiceImport } from './functions/hasService'\nimport { hasAvailableSeatService as hasAvailableSeatServiceImport } from './functions/hasAvailableSeatService'\n\nexport interface DuffelAPIClient {\n aircraft: Aircraft\n airlines: Airlines\n airports: Airports\n batchOfferRequests: BatchOfferRequests\n offers: Offers\n offerRequests: OfferRequests\n orders: Orders\n orderChangeRequests: OrderChangeRequests\n orderChangeOffers: OrderChangeOffers\n orderChanges: OrderChanges\n orderCancellations: OrderCancellations\n payments: Payments\n seatMaps: SeatMaps\n threeDSecureSessions: ThreeDSecureSessions\n}\n\nexport class Duffel {\n private client: Client\n public aircraft: Aircraft\n public airlineInitiatedChanges: AirlineInitiatedChanges\n public airlines: Airlines\n public airports: Airports\n public links: Sessions\n public batchOfferRequests: BatchOfferRequests\n public offerRequests: OfferRequests\n public offers: Offers\n public orders: Orders\n public orderChangeRequests: OrderChangeRequests\n public orderChangeOffers: OrderChangeOffers\n public orderChanges: OrderChanges\n public orderCancellations: OrderCancellations\n public payments: Payments\n public seatMaps: SeatMaps\n public paymentIntents: PaymentIntents\n public partialOfferRequests: PartialOfferRequests\n public suggestions: Suggestions\n public refunds: Refunds\n public webhooks: Webhooks\n public stays: Stays\n public cars: Cars\n public three_d_secure_sessions: ThreeDSecureSessions\n public identity: Identity\n\n private cardsClient: Client\n public cards: Cards\n\n constructor(config: Config) {\n this.client = new Client(config)\n\n this.aircraft = new Aircraft(this.client)\n this.airlines = new Airlines(this.client)\n this.airports = new Airports(this.client)\n this.airlineInitiatedChanges = new AirlineInitiatedChanges(this.client)\n this.links = new Sessions(this.client)\n this.batchOfferRequests = new BatchOfferRequests(this.client)\n this.offerRequests = new OfferRequests(this.client)\n this.offers = new Offers(this.client)\n this.orders = new Orders(this.client)\n this.orderChangeRequests = new OrderChangeRequests(this.client)\n this.orderChangeOffers = new OrderChangeOffers(this.client)\n this.orderChanges = new OrderChanges(this.client)\n this.orderCancellations = new OrderCancellations(this.client)\n this.payments = new Payments(this.client)\n this.seatMaps = new SeatMaps(this.client)\n this.paymentIntents = new PaymentIntents(this.client)\n this.partialOfferRequests = new PartialOfferRequests(this.client)\n this.suggestions = new Suggestions(this.client)\n this.refunds = new Refunds(this.client)\n this.webhooks = new Webhooks(this.client)\n this.stays = new Stays(this.client)\n this.cars = new Cars(this.client)\n this.three_d_secure_sessions = new ThreeDSecureSessions(this.client)\n this.identity = new Identity(this.client)\n\n this.cardsClient = new Client({\n ...config,\n basePath: 'https://api.duffel.cards',\n })\n this.cards = new Cards(this.cardsClient)\n }\n}\n\nexport const DuffelError = _DuffelError\n\n// Exports helper functions:\nexport const hasService = hasServiceImport\nexport const hasAvailableSeatService = hasAvailableSeatServiceImport\n","import { Offer, SeatMap } from '../types'\nimport { hasAvailableSeatService } from './hasAvailableSeatService'\n\nexport function hasService(offer: Offer, seatMaps?: SeatMap[]) {\n const offerHasService =\n offer &&\n Array.isArray(offer.available_services) &&\n offer.available_services.some((service) => service.maximum_quantity > 0)\n\n return offerHasService || hasAvailableSeatService(seatMaps)\n}\n"],"names":["__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","apply","__await","v","this","__asyncGenerator","Symbol","asyncIterator","TypeError","g","q","create","AsyncIterator","verb","f","n","a","b","push","resume","r","fulfill","settle","shift","SuppressedError","Resource","constructor","client","request","_a","method","path","data","params","paginatedRequest","PaymentIntents","args","super","get","id","confirm","AirlineInitiatedChanges","update","action_taken","accept","list","order_id","BatchOfferRequests","options","supplier_timeout","assign","OfferRequests","listWithGenerator","return_offers","Offers","offer_request_id","offerId","passengerId","getPriced","OrderCancellations","Orders","getAvailableServices","addServices","OrderChangeRequests","OrderChangeOffers","OrderChanges","Payments","PartialOfferRequests","getFaresById","SeatMaps","Error","meta","errors","headers","Client","token","basePath","apiVersion","debug","source","compress","body","responseBody","fullPath","URL","process","env","npm_package_version","join","trim","Accept","Authorization","params_with_array_expanded","URLSearchParams","entries","sort","filter","option","forEach","key","Array","isArray","append","toString","search","JSON","stringify","_b","verbose","console","info","href","response","fetch","_c","contentType","includes","json","text","ok","DuffelError","status","item","after","limit","Aircraft","Airlines","Airports","Suggestions","Refunds","Sessions","Webhooks","redeliver","ping","listDeliveries","delete","id_1","active","events","url","Accommodation","suggestions","query","location","reviews","Brands","brandId","LoyaltyProgrammes","payload","bookingId","cancel","quoteId","rateId","rate_id","SearchResults","fetchAllRates","searchResultId","Stays","accommodation","brands","loyaltyProgrammes","searchResults","quotes","Quotes","bookings","Bookings","Cars","Cards","ThreeDSecureSessions","CustomerUsers","CustomerUserGroups","ComponentClientKeys","args_1","Identity","customerUsers","customerUserGroups","componentClientKeys","hasAvailableSeatService","seatMaps","seatMap","cabin","cabins","rows","section","sections","element","elements","type","available_services","Duffel","config","aircraft","airlines","airports","airlineInitiatedChanges","links","batchOfferRequests","offerRequests","offers","orders","orderChangeRequests","orderChangeOffers","orderChanges","orderCancellations","payments","paymentIntents","partialOfferRequests","refunds","webhooks","stays","cars","three_d_secure_sessions","identity","cardsClient","cards","_DuffelError","hasService","offer","some","service","maximum_quantity","hasAvailableSeatServiceImport"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var t=require("node-fetch"),s=require("url");function e(t,s){var e={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&s.indexOf(i)<0&&(e[i]=t[i]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var h=0;for(i=Object.getOwnPropertySymbols(t);h<i.length;h++)s.indexOf(i[h])<0&&Object.prototype.propertyIsEnumerable.call(t,i[h])&&(e[i[h]]=t[i[h]])}return e}function i(t,s,e,i){return new(e||(e=Promise))((function(h,r){function a(t){try{o(i.next(t))}catch(t){r(t)}}function n(t){try{o(i.throw(t))}catch(t){r(t)}}function o(t){var s;t.done?h(t.value):(s=t.value,s instanceof e?s:new e((function(t){t(s)}))).then(a,n)}o((i=i.apply(t,s||[])).next())}))}function h(t){return this instanceof h?(this.v=t,this):new h(t)}function r(t,s,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i,r=e.apply(t,s||[]),a=[];return i={},n("next"),n("throw"),n("return"),i[Symbol.asyncIterator]=function(){return this},i;function n(t){r[t]&&(i[t]=function(s){return new Promise((function(e,i){a.push([t,s,e,i])>1||o(t,s)}))})}function o(t,s){try{(e=r[t](s)).value instanceof h?Promise.resolve(e.value.v).then(u,c):d(a[0][2],e)}catch(t){d(a[0][3],t)}var e}function u(t){o("next",t)}function c(t){o("throw",t)}function d(t,s){t(s),a.shift(),a.length&&o(a[0][0],a[0][1])}}!function(){const t={npm_package_version:"4.21.2"};try{if(process)return process.env=Object.assign({},process.env),void Object.assign(process.env,t)}catch(t){}globalThis.process={env:t}}(),"function"==typeof SuppressedError&&SuppressedError;class a{constructor(t){this.request=t=>i(this,[t],void 0,(function*({method:t,path:s,data:e,params:i}){return this.client.request({method:t,path:s,data:e,params:i})})),this.paginatedRequest=({path:t,params:s})=>this.client.paginatedRequest({path:t,params:s}),this.client=t}}class n extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.confirm=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/confirm`})})),this.create=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.path="payments/payment_intents"}}class o extends a{constructor(t){super(t),this.update=(t,s)=>i(this,void 0,void 0,(function*(){return this.request({method:"PATCH",path:`${this.path}/${t}`,data:{action_taken:s}})})),this.accept=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/accept`})})),this.list=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:this.path,params:{order_id:t}})})),this.path="air/airline_initiated_changes"}}class u extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.create=t=>i(this,void 0,void 0,(function*(){const{supplier_timeout:s}=t,i=e(t,["supplier_timeout"]);return this.request({method:"POST",path:`${this.path}/`,data:i,params:Object.assign({},null!=s&&{supplier_timeout:s})})})),this.path="air/batch_offer_requests"}}class c extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.create=t=>i(this,void 0,void 0,(function*(){const{return_offers:s,supplier_timeout:i}=t,h=e(t,["return_offers","supplier_timeout"]);return this.request({method:"POST",path:`${this.path}/`,data:h,params:Object.assign(Object.assign({},null!=s&&{return_offers:s}),null!=i&&{supplier_timeout:i})})})),this.path="air/offer_requests"}}class d extends a{constructor(t){super(t),this.get=(t,s)=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`,params:s})})),this.list=t=>{var{offer_request_id:s}=t,i=e(t,["offer_request_id"]);return this.request({method:"GET",path:this.path,params:Object.assign(Object.assign({},i),{offer_request_id:s})})},this.listWithGenerator=t=>{var{offer_request_id:s}=t,i=e(t,["offer_request_id"]);return this.paginatedRequest({path:this.path,params:Object.assign(Object.assign({},i),{offer_request_id:s})})},this.update=(t,s,e)=>i(this,void 0,void 0,(function*(){return this.request(Object.assign({method:"PATCH",path:`${this.path}/${t}/passengers/${s}`},e&&{data:e}))})),this.getPriced=(t,s)=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/price`,data:s})})),this.path="air/offers"}}class p extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=t=>this.paginatedRequest({path:this.path,params:t}),this.create=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.confirm=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/confirm`})})),this.path="air/order_cancellations"}}class l extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:this.path,params:t})})),this.listWithGenerator=t=>this.paginatedRequest({path:"air/orders",params:t}),this.create=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.update=(t,s)=>i(this,void 0,void 0,(function*(){return this.request({method:"PATCH",path:`${this.path}/${t}`,data:{options:s}})})),this.getAvailableServices=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}/available_services`})})),this.addServices=(t,s)=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/${t}/services`,data:s})})),this.path="air/orders"}}class f extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.create=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.path="air/order_change_requests"}}class v extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/order_change_offers"}}class m extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.confirm=(t,s)=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/confirm`,data:s})})),this.path="air/order_changes"}}class q extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.path="air/payments"}}class g extends a{constructor(t){super(t),this.get=(t,s)=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`,params:s})})),this.create=t=>i(this,void 0,void 0,(function*(){const{supplier_timeout:s}=t,i=e(t,["supplier_timeout"]);return this.request({method:"POST",path:`${this.path}/`,data:i,params:Object.assign({},null!=s&&{supplier_timeout:s})})})),this.getFaresById=(t,s)=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}/fares`,params:s})})),this.path="air/partial_offer_requests"}}class $ extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}`,params:t})})),this.path="air/seat_maps"}}let T=class extends Error{constructor({meta:t,errors:s,headers:e}){super(),this.meta=t,this.errors=s,this.headers=e}};class y{constructor({token:e,basePath:h,apiVersion:r,debug:a,source:n}){this.request=e=>i(this,[e],void 0,(function*({method:e,path:i,data:h,params:r,compress:a=!0}){var n,o;let u,c;const d=new s.URL(i,this.basePath),p={"User-Agent":[`Duffel/${this.apiVersion}`,`duffel_api_javascript/${process.env.npm_package_version}`,this.source?`source/${this.source}`:""].join(" ").trim(),Accept:"application/json","Accept-Encoding":"gzip","Content-Type":"application/json","Duffel-Version":this.apiVersion,Authorization:`Bearer ${this.token}`};if(r){const t=new s.URLSearchParams;Object.entries(r).sort().filter((t=>null!==t[0])).forEach((([s,e])=>{Array.isArray(e)?e.forEach((e=>t.append(s,e.toString()))):t.append(s,e.toString())})),d.search=t.toString()}h&&(u=JSON.stringify({data:Object.assign({},h)})),(null===(n=this.debug)||void 0===n?void 0:n.verbose)&&(console.info("Endpoint: ",d.href),console.info("Method: ",e),h&&console.info("Body Parameters: ",h),r&&console.info("Query Parameters: ",r));const l=yield t(d.href,{method:e,headers:p,body:u,compress:a});(null===(o=this.debug)||void 0===o?void 0:o.verbose)&&l.headers.get("x-request-id")&&console.info("Request ID: ",l.headers.get("x-request-id"));const f=l.headers.get("content-type");if(c=f&&f.includes("json")?yield l.json():yield l.text(),!l.ok||"errors"in c&&c.errors)throw new T(Object.assign(Object.assign({},c),{status:l.status,headers:l.headers}));return Object.assign(Object.assign({},c),{status:l.status,headers:l.headers})})),this.token=e,this.basePath=h||"https://api.duffel.com",this.apiVersion=r||"v2",this.debug=a,this.source=n}paginatedRequest(t){return r(this,arguments,(function*({path:t,params:s}){let e=yield h(this.request({method:"GET",path:t,params:s}));for(const t of e.data)yield yield h({data:t,status:e.status});for(;e.meta&&"after"in e.meta&&e.meta.after;){e=yield h(this.request({method:"GET",path:t,params:Object.assign(Object.assign({},s),{limit:e.meta.limit,after:e.meta.after})}));for(const t of e.data)yield yield h({data:t,status:e.status})}}))}}class O extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/aircraft"}}class _ extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/airlines"}}class E extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/airports"}}class b extends a{constructor(t){super(t),this.list=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}`,params:t})})),this.path="places/suggestions"}}class w extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.create=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.path="payments/refunds"}}class G extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.path="links/sessions"}}class P extends a{constructor(t){super(t),this.redeliver=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/events/${t}/actions/redeliver`})})),this.ping=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/ping`})})),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/events/${t}`})})),this.listDeliveries=t=>i(this,void 0,void 0,(function*(){var s=e(t,[]);return this.request({method:"GET",path:`${this.path}/deliveries`,params:Object.assign({},s)})})),this.delete=t=>i(this,void 0,void 0,(function*(){return this.request({method:"DELETE",path:`${this.path}/${t}`})})),this.update=(t,s)=>i(this,[t,s],void 0,(function*(t,{active:s,events:e,url:i}){return this.request({method:"PATCH",path:`${this.path}/${t}`,data:{active:s,events:e,url:i}})})),this.list=t=>i(this,void 0,void 0,(function*(){var s=e(t,[]);return this.request({method:"GET",path:this.path,params:Object.assign({},s)})})),this.create=t=>i(this,[t],void 0,(function*({events:t,url:s}){return this.request({method:"POST",path:this.path,data:{events:t,url:s}})})),this.path="air/webhooks"}}class x extends a{constructor(t){super(t),this.suggestions=(t,s)=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/suggestions`,data:{query:t,location:s}})})),this.reviews=(t,s)=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}/reviews`,params:s})})),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=t=>this.paginatedRequest({path:this.path,params:t}),this.path="stays/accommodation"}}class S extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=()=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:this.path})})),this.path="stays/brands"}}class j extends a{constructor(t){super(t),this.list=()=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:this.path})})),this.path="stays/loyalty_programmes"}}class R extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.list=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:this.path,params:t})})),this.listWithGenerator=t=>this.paginatedRequest({path:this.path,params:t}),this.cancel=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/cancel`})})),this.path="stays/bookings"}}class A extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.create=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:{rate_id:t}})})),this.path="stays/quotes"}}class k extends a{constructor(t){super(t),this.fetchAllRates=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/fetch_all_rates`})})),this.path="stays/search_results"}}class C extends a{constructor(t){super(t),this.search=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:`${this.path}/search`,data:t})})),this.path="stays",this.accommodation=new x(t),this.brands=new S(t),this.loyaltyProgrammes=new j(t),this.searchResults=new k(t),this.quotes=new A(t),this.bookings=new R(t)}}class W extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.path="payments/cards"}}class D extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.path="payments/three_d_secure_sessions"}}class I extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.update=(t,s)=>i(this,void 0,void 0,(function*(){return this.request({method:"PUT",path:`${this.path}/${t}`,data:s})})),this.list=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:this.path,params:t})})),this.path="identity/customer/users"}}class U extends a{constructor(t){super(t),this.list=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:this.path,params:t})})),this.create=t=>i(this,void 0,void 0,(function*(){return this.request({method:"POST",path:this.path,data:t})})),this.delete=t=>i(this,void 0,void 0,(function*(){return this.request({method:"DELETE",path:`${this.path}/${t}`})})),this.get=t=>i(this,void 0,void 0,(function*(){return this.request({method:"GET",path:`${this.path}/${t}`})})),this.update=(t,s)=>i(this,void 0,void 0,(function*(){return this.request({method:"PATCH",path:`${this.path}/${t}`,data:s})})),this.path="identity/customer/user_groups"}}class H extends a{constructor(t){super(t),this.create=(...t)=>i(this,[...t],void 0,(function*(t={}){return this.request({method:"POST",path:this.path,data:t})})),this.path="identity/component_client_keys"}}class V extends a{constructor(t){super(t),this.path="identity",this.customerUsers=new I(t),this.customerUserGroups=new U(t),this.componentClientKeys=new H(t)}}function L(t){if(!Array.isArray(t)||0===t.length)return!1;for(const s of t)for(const t of s.cabins)for(const s of t.rows)for(const t of s.sections)for(const s of t.elements)if("seat"===s.type&&s.available_services.length>0)return!0;return!1}const B=T,z=function(t,s){return t&&Array.isArray(t.available_services)&&t.available_services.some((t=>t.maximum_quantity>0))||L(s)},M=L;exports.Duffel=class{constructor(t){this.client=new y(t),this.aircraft=new O(this.client),this.airlines=new _(this.client),this.airports=new E(this.client),this.airlineInitiatedChanges=new o(this.client),this.links=new G(this.client),this.batchOfferRequests=new u(this.client),this.offerRequests=new c(this.client),this.offers=new d(this.client),this.orders=new l(this.client),this.orderChangeRequests=new f(this.client),this.orderChangeOffers=new v(this.client),this.orderChanges=new m(this.client),this.orderCancellations=new p(this.client),this.payments=new q(this.client),this.seatMaps=new $(this.client),this.paymentIntents=new n(this.client),this.partialOfferRequests=new g(this.client),this.suggestions=new b(this.client),this.refunds=new w(this.client),this.webhooks=new P(this.client),this.stays=new C(this.client),this.three_d_secure_sessions=new D(this.client),this.identity=new V(this.client),this.cardsClient=new y(Object.assign(Object.assign({},t),{basePath:"https://api.duffel.cards"})),this.cards=new W(this.cardsClient)}},exports.DuffelError=B,exports.hasAvailableSeatService=M,exports.hasService=z;
1
+ "use strict";var t=require("node-fetch"),s=require("url");function e(t,s){var e={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&s.indexOf(i)<0&&(e[i]=t[i]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var h=0;for(i=Object.getOwnPropertySymbols(t);h<i.length;h++)s.indexOf(i[h])<0&&Object.prototype.propertyIsEnumerable.call(t,i[h])&&(e[i[h]]=t[i[h]])}return e}function i(t,s,e,i){return new(e||(e=Promise))(function(h,r){function a(t){try{o(i.next(t))}catch(t){r(t)}}function n(t){try{o(i.throw(t))}catch(t){r(t)}}function o(t){var s;t.done?h(t.value):(s=t.value,s instanceof e?s:new e(function(t){t(s)})).then(a,n)}o((i=i.apply(t,s||[])).next())})}function h(t){return this instanceof h?(this.v=t,this):new h(t)}function r(t,s,e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i,r=e.apply(t,s||[]),a=[];return i=Object.create(("function"==typeof AsyncIterator?AsyncIterator:Object).prototype),n("next"),n("throw"),n("return",function(t){return function(s){return Promise.resolve(s).then(t,c)}}),i[Symbol.asyncIterator]=function(){return this},i;function n(t,s){r[t]&&(i[t]=function(s){return new Promise(function(e,i){a.push([t,s,e,i])>1||o(t,s)})},s&&(i[t]=s(i[t])))}function o(t,s){try{(e=r[t](s)).value instanceof h?Promise.resolve(e.value.v).then(u,c):d(a[0][2],e)}catch(t){d(a[0][3],t)}var e}function u(t){o("next",t)}function c(t){o("throw",t)}function d(t,s){t(s),a.shift(),a.length&&o(a[0][0],a[0][1])}}!function(){const t={npm_package_version:"4.21.6"};try{if(process)return process.env=Object.assign({},process.env),void Object.assign(process.env,t)}catch(t){}globalThis.process={env:t}}(),"function"==typeof SuppressedError&&SuppressedError;class a{constructor(t){this.request=t=>i(this,[t],void 0,function*({method:t,path:s,data:e,params:i}){return this.client.request({method:t,path:s,data:e,params:i})}),this.paginatedRequest=({path:t,params:s})=>this.client.paginatedRequest({path:t,params:s}),this.client=t}}class n extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.confirm=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/confirm`})}),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:t})}),this.path="payments/payment_intents"}}class o extends a{constructor(t){super(t),this.update=(t,s)=>i(this,void 0,void 0,function*(){return this.request({method:"PATCH",path:`${this.path}/${t}`,data:{action_taken:s}})}),this.accept=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/accept`})}),this.list=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:this.path,params:{order_id:t}})}),this.path="air/airline_initiated_changes"}}class u extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.create=t=>i(this,void 0,void 0,function*(){const{supplier_timeout:s}=t,i=e(t,["supplier_timeout"]);return this.request({method:"POST",path:`${this.path}/`,data:i,params:Object.assign({},null!=s&&{supplier_timeout:s})})}),this.path="air/batch_offer_requests"}}class c extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.create=t=>i(this,void 0,void 0,function*(){const{return_offers:s,supplier_timeout:i}=t,h=e(t,["return_offers","supplier_timeout"]);return this.request({method:"POST",path:`${this.path}/`,data:h,params:Object.assign(Object.assign({},null!=s&&{return_offers:s}),null!=i&&{supplier_timeout:i})})}),this.path="air/offer_requests"}}class d extends a{constructor(t){super(t),this.get=(t,s)=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`,params:s})}),this.list=t=>{var{offer_request_id:s}=t,i=e(t,["offer_request_id"]);return this.request({method:"GET",path:this.path,params:Object.assign(Object.assign({},i),{offer_request_id:s})})},this.listWithGenerator=t=>{var{offer_request_id:s}=t,i=e(t,["offer_request_id"]);return this.paginatedRequest({path:this.path,params:Object.assign(Object.assign({},i),{offer_request_id:s})})},this.update=(t,s,e)=>i(this,void 0,void 0,function*(){return this.request(Object.assign({method:"PATCH",path:`${this.path}/${t}/passengers/${s}`},e&&{data:e}))}),this.getPriced=(t,s)=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/price`,data:s})}),this.path="air/offers"}}class p extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=t=>this.paginatedRequest({path:this.path,params:t}),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:t})}),this.confirm=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/confirm`})}),this.path="air/order_cancellations"}}class l extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.list=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:this.path,params:t})}),this.listWithGenerator=t=>this.paginatedRequest({path:"air/orders",params:t}),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:t})}),this.update=(t,s)=>i(this,void 0,void 0,function*(){return this.request({method:"PATCH",path:`${this.path}/${t}`,data:{options:s}})}),this.getAvailableServices=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}/available_services`})}),this.addServices=(t,s)=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:`${this.path}/${t}/services`,data:s})}),this.path="air/orders"}}class f extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:t})}),this.path="air/order_change_requests"}}class v extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/order_change_offers"}}class m extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:t})}),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.confirm=(t,s)=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/confirm`,data:s})}),this.path="air/order_changes"}}class q extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:t})}),this.path="air/payments"}}class g extends a{constructor(t){super(t),this.get=(t,s)=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`,params:s})}),this.create=t=>i(this,void 0,void 0,function*(){const{supplier_timeout:s}=t,i=e(t,["supplier_timeout"]);return this.request({method:"POST",path:`${this.path}/`,data:i,params:Object.assign({},null!=s&&{supplier_timeout:s})})}),this.getFaresById=(t,s)=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}/fares`,params:s})}),this.path="air/partial_offer_requests"}}class $ extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}`,params:t})}),this.path="air/seat_maps"}}let T=class extends Error{constructor({meta:t,errors:s,headers:e}){super(),this.meta=t,this.errors=s,this.headers=e}};class y{constructor({token:e,basePath:h,apiVersion:r,debug:a,source:n}){this.request=e=>i(this,[e],void 0,function*({method:e,path:i,data:h,params:r,compress:a=!0}){var n,o;let u,c;const d=new s.URL(i,this.basePath),p={"User-Agent":[`Duffel/${this.apiVersion}`,`duffel_api_javascript/${process.env.npm_package_version}`,this.source?`source/${this.source}`:""].join(" ").trim(),Accept:"application/json","Accept-Encoding":"gzip","Content-Type":"application/json","Duffel-Version":this.apiVersion,Authorization:`Bearer ${this.token}`};if(r){const t=new s.URLSearchParams;Object.entries(r).sort().filter(t=>null!==t[0]).forEach(([s,e])=>{Array.isArray(e)?e.forEach(e=>t.append(s,e.toString())):t.append(s,e.toString())}),d.search=t.toString()}h&&(u=JSON.stringify({data:Object.assign({},h)})),(null===(n=this.debug)||void 0===n?void 0:n.verbose)&&(console.info("Endpoint: ",d.href),console.info("Method: ",e),h&&console.info("Body Parameters: ",h),r&&console.info("Query Parameters: ",r));const l=yield t(d.href,{method:e,headers:p,body:u,compress:a});(null===(o=this.debug)||void 0===o?void 0:o.verbose)&&l.headers.get("x-request-id")&&console.info("Request ID: ",l.headers.get("x-request-id"));const f=l.headers.get("content-type");if(c=f&&f.includes("json")?yield l.json():yield l.text(),!l.ok||"errors"in c&&c.errors)throw new T(Object.assign(Object.assign({},c),{status:l.status,headers:l.headers}));return Object.assign(Object.assign({},c),{status:l.status,headers:l.headers})}),this.token=e,this.basePath=h||"https://api.duffel.com",this.apiVersion=r||"v2",this.debug=a,this.source=n}paginatedRequest(t){return r(this,arguments,function*({path:t,params:s}){let e=yield h(this.request({method:"GET",path:t,params:s}));for(const t of e.data)yield yield h({data:t,status:e.status});for(;e.meta&&"after"in e.meta&&e.meta.after;){e=yield h(this.request({method:"GET",path:t,params:Object.assign(Object.assign({},s),{limit:e.meta.limit,after:e.meta.after})}));for(const t of e.data)yield yield h({data:t,status:e.status})}})}}class O extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/aircraft"}}class _ extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/airlines"}}class b extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=()=>this.paginatedRequest({path:this.path}),this.path="air/airports"}}class E extends a{constructor(t){super(t),this.list=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}`,params:t})}),this.path="places/suggestions"}}class w extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:t})}),this.path="payments/refunds"}}class G extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:t})}),this.path="links/sessions"}}class P extends a{constructor(t){super(t),this.redeliver=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:`${this.path}/events/${t}/actions/redeliver`})}),this.ping=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/ping`})}),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/events/${t}`})}),this.listDeliveries=t=>i(this,void 0,void 0,function*(){var s=e(t,[]);return this.request({method:"GET",path:`${this.path}/deliveries`,params:Object.assign({},s)})}),this.delete=t=>i(this,void 0,void 0,function*(){return this.request({method:"DELETE",path:`${this.path}/${t}`})}),this.update=(t,s)=>i(this,[t,s],void 0,function*(t,{active:s,events:e,url:i}){return this.request({method:"PATCH",path:`${this.path}/${t}`,data:{active:s,events:e,url:i}})}),this.list=t=>i(this,void 0,void 0,function*(){var s=e(t,[]);return this.request({method:"GET",path:this.path,params:Object.assign({},s)})}),this.create=t=>i(this,[t],void 0,function*({events:t,url:s}){return this.request({method:"POST",path:this.path,data:{events:t,url:s}})}),this.path="air/webhooks"}}class S extends a{constructor(t){super(t),this.suggestions=(t,s)=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:`${this.path}/suggestions`,data:{query:t,location:s}})}),this.reviews=(t,s)=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}/reviews`,params:s})}),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.list=t=>this.request({method:"GET",path:this.path,params:t}),this.listWithGenerator=t=>this.paginatedRequest({path:this.path,params:t}),this.path="stays/accommodation"}}class x extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.list=()=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:this.path})}),this.path="stays/brands"}}class j extends a{constructor(t){super(t),this.list=()=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:this.path})}),this.path="stays/loyalty_programmes"}}let R=class extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:t})}),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.list=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:this.path,params:t})}),this.listWithGenerator=t=>this.paginatedRequest({path:this.path,params:t}),this.cancel=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/cancel`})}),this.path="stays/bookings"}},A=class extends a{constructor(t){super(t),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:{rate_id:t}})}),this.path="stays/quotes"}};class k extends a{constructor(t){super(t),this.fetchAllRates=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/fetch_all_rates`})}),this.path="stays/search_results"}}class C extends a{constructor(t){super(t),this.search=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:`${this.path}/search`,data:t})}),this.path="stays",this.accommodation=new S(t),this.brands=new x(t),this.loyaltyProgrammes=new j(t),this.searchResults=new k(t),this.quotes=new A(t),this.bookings=new R(t)}}class I extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:t})}),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.cancel=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:`${this.path}/${t}/actions/cancel`})}),this.path="cars/bookings"}}class W extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:{rate_id:t}})}),this.path="cars/quotes"}}class D extends a{constructor(t){super(t),this.search=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:`${this.path}/search`,data:t})}),this.path="cars",this.bookings=new I(t),this.quotes=new W(t)}}class U extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:t})}),this.path="payments/cards"}}class H extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:t})}),this.path="payments/three_d_secure_sessions"}}class V extends a{constructor(t){super(t),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:t})}),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.update=(t,s)=>i(this,void 0,void 0,function*(){return this.request({method:"PUT",path:`${this.path}/${t}`,data:s})}),this.list=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:this.path,params:t})}),this.path="identity/customer/users"}}class L extends a{constructor(t){super(t),this.list=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:this.path,params:t})}),this.create=t=>i(this,void 0,void 0,function*(){return this.request({method:"POST",path:this.path,data:t})}),this.delete=t=>i(this,void 0,void 0,function*(){return this.request({method:"DELETE",path:`${this.path}/${t}`})}),this.get=t=>i(this,void 0,void 0,function*(){return this.request({method:"GET",path:`${this.path}/${t}`})}),this.update=(t,s)=>i(this,void 0,void 0,function*(){return this.request({method:"PATCH",path:`${this.path}/${t}`,data:s})}),this.path="identity/customer/user_groups"}}class B extends a{constructor(t){super(t),this.create=(...t)=>i(this,[...t],void 0,function*(t={}){return this.request({method:"POST",path:this.path,data:t})}),this.path="identity/component_client_keys"}}class z extends a{constructor(t){super(t),this.path="identity",this.customerUsers=new V(t),this.customerUserGroups=new L(t),this.componentClientKeys=new B(t)}}function M(t){if(!Array.isArray(t)||0===t.length)return!1;for(const s of t)for(const t of s.cabins)for(const s of t.rows)for(const t of s.sections)for(const s of t.elements)if("seat"===s.type&&s.available_services.length>0)return!0;return!1}const F=T,J=function(t,s){return t&&Array.isArray(t.available_services)&&t.available_services.some(t=>t.maximum_quantity>0)||M(s)},K=M;exports.Duffel=class{constructor(t){this.client=new y(t),this.aircraft=new O(this.client),this.airlines=new _(this.client),this.airports=new b(this.client),this.airlineInitiatedChanges=new o(this.client),this.links=new G(this.client),this.batchOfferRequests=new u(this.client),this.offerRequests=new c(this.client),this.offers=new d(this.client),this.orders=new l(this.client),this.orderChangeRequests=new f(this.client),this.orderChangeOffers=new v(this.client),this.orderChanges=new m(this.client),this.orderCancellations=new p(this.client),this.payments=new q(this.client),this.seatMaps=new $(this.client),this.paymentIntents=new n(this.client),this.partialOfferRequests=new g(this.client),this.suggestions=new E(this.client),this.refunds=new w(this.client),this.webhooks=new P(this.client),this.stays=new C(this.client),this.cars=new D(this.client),this.three_d_secure_sessions=new H(this.client),this.identity=new z(this.client),this.cardsClient=new y(Object.assign(Object.assign({},t),{basePath:"https://api.duffel.cards"})),this.cards=new U(this.cardsClient)}},exports.DuffelError=F,exports.hasAvailableSeatService=K,exports.hasService=J;
2
2
  //# sourceMappingURL=index.js.map