@voyantjs/connect-sdk 0.1.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.
- package/LICENSE +109 -0
- package/README.md +127 -0
- package/dist/client.d.ts +374 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +644 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1 -0
- package/dist/types.d.ts +1420 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +1 -0
- package/node_modules/@voyant-sdk/sdk-core/README.md +31 -0
- package/node_modules/@voyant-sdk/sdk-core/dist/client.d.ts +20 -0
- package/node_modules/@voyant-sdk/sdk-core/dist/client.d.ts.map +1 -0
- package/node_modules/@voyant-sdk/sdk-core/dist/client.js +140 -0
- package/node_modules/@voyant-sdk/sdk-core/dist/errors.d.ts +11 -0
- package/node_modules/@voyant-sdk/sdk-core/dist/errors.d.ts.map +1 -0
- package/node_modules/@voyant-sdk/sdk-core/dist/errors.js +12 -0
- package/node_modules/@voyant-sdk/sdk-core/dist/index.d.ts +4 -0
- package/node_modules/@voyant-sdk/sdk-core/dist/index.d.ts.map +1 -0
- package/node_modules/@voyant-sdk/sdk-core/dist/index.js +2 -0
- package/node_modules/@voyant-sdk/sdk-core/dist/types.d.ts +26 -0
- package/node_modules/@voyant-sdk/sdk-core/dist/types.d.ts.map +1 -0
- package/node_modules/@voyant-sdk/sdk-core/dist/types.js +1 -0
- package/node_modules/@voyant-sdk/sdk-core/package.json +38 -0
- package/package.json +54 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# Functional Source License, Version 1.1, Apache 2.0 Future License
|
|
2
|
+
|
|
3
|
+
## Abbreviation
|
|
4
|
+
|
|
5
|
+
FSL-1.1-Apache-2.0
|
|
6
|
+
|
|
7
|
+
## Notice
|
|
8
|
+
|
|
9
|
+
Copyright 2026 PixelMakers Studio SRL
|
|
10
|
+
|
|
11
|
+
## Terms and Conditions
|
|
12
|
+
|
|
13
|
+
### Licensor ("We")
|
|
14
|
+
|
|
15
|
+
The party offering the Software under these Terms and Conditions.
|
|
16
|
+
|
|
17
|
+
### The Software
|
|
18
|
+
|
|
19
|
+
The "Software" is each version of the software that we make available under
|
|
20
|
+
these Terms and Conditions, as indicated by our inclusion of these Terms and
|
|
21
|
+
Conditions with the Software.
|
|
22
|
+
|
|
23
|
+
### License Grant
|
|
24
|
+
|
|
25
|
+
Subject to your compliance with this License Grant and the Patents,
|
|
26
|
+
Redistribution and Trademark clauses below, we hereby grant you the right to
|
|
27
|
+
use, copy, modify, create derivative works, publicly perform, publicly
|
|
28
|
+
display and redistribute the Software for any Permitted Purpose identified
|
|
29
|
+
below.
|
|
30
|
+
|
|
31
|
+
### Permitted Purpose
|
|
32
|
+
|
|
33
|
+
A Permitted Purpose is any purpose other than a Competing Use. A Competing
|
|
34
|
+
Use means making the Software available to others in a commercial product or
|
|
35
|
+
service that:
|
|
36
|
+
|
|
37
|
+
1. substitutes for the Software;
|
|
38
|
+
|
|
39
|
+
2. substitutes for any other product or service we offer using the Software
|
|
40
|
+
that exists as of the date we make the Software available; or
|
|
41
|
+
|
|
42
|
+
3. offers the same or substantially similar functionality as the Software.
|
|
43
|
+
|
|
44
|
+
Permitted Purposes specifically include using the Software:
|
|
45
|
+
|
|
46
|
+
1. for your internal use and access;
|
|
47
|
+
|
|
48
|
+
2. for non-commercial education;
|
|
49
|
+
|
|
50
|
+
3. for non-commercial research; and
|
|
51
|
+
|
|
52
|
+
4. in connection with professional services that you provide to a licensee
|
|
53
|
+
using the Software in accordance with these Terms and Conditions.
|
|
54
|
+
|
|
55
|
+
### Patents
|
|
56
|
+
|
|
57
|
+
To the extent your use for a Permitted Purpose would necessarily infringe
|
|
58
|
+
our patents, the license grant above includes a license under our patents.
|
|
59
|
+
If you make a claim against any party that the Software infringes or
|
|
60
|
+
contributes to the infringement of any patent, then your patent license to
|
|
61
|
+
the Software ends immediately.
|
|
62
|
+
|
|
63
|
+
### Redistribution
|
|
64
|
+
|
|
65
|
+
The Terms and Conditions apply to all copies, modifications and derivatives
|
|
66
|
+
of the Software.
|
|
67
|
+
|
|
68
|
+
If you redistribute any copies, modifications or derivatives of the
|
|
69
|
+
Software, you must include a copy of or a link to these Terms and Conditions
|
|
70
|
+
and not remove any copyright notices provided in or with the Software.
|
|
71
|
+
|
|
72
|
+
### Disclaimer
|
|
73
|
+
|
|
74
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND WITHOUT WARRANTIES OF ANY KIND, EXPRESS
|
|
75
|
+
OR IMPLIED, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A
|
|
76
|
+
PARTICULAR PURPOSE, MERCHANTABILITY, TITLE OR NON-INFRINGEMENT.
|
|
77
|
+
|
|
78
|
+
IN NO EVENT WILL WE HAVE ANY LIABILITY TO YOU ARISING OUT OF OR RELATED TO
|
|
79
|
+
THE SOFTWARE, INCLUDING INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
|
|
80
|
+
DAMAGES, EVEN IF WE HAVE BEEN INFORMED OF THEIR POSSIBILITY IN ADVANCE.
|
|
81
|
+
|
|
82
|
+
### Trademarks
|
|
83
|
+
|
|
84
|
+
Except for displaying the License Details and identifying us as the origin
|
|
85
|
+
of the Software, you have no right under these Terms and Conditions to use
|
|
86
|
+
our trademarks, trade names, service marks or product names.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Grant of Future License
|
|
91
|
+
|
|
92
|
+
We hereby irrevocably grant you an additional license to use the Software
|
|
93
|
+
under the Apache License, Version 2.0 that is effective on the second
|
|
94
|
+
anniversary of the date we make the Software available. On or after that
|
|
95
|
+
date, you may use the Software under the Apache License, Version 2.0, in
|
|
96
|
+
which case the following will apply:
|
|
97
|
+
|
|
98
|
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
|
99
|
+
use this file except in compliance with the License.
|
|
100
|
+
|
|
101
|
+
You may obtain a copy of the License at
|
|
102
|
+
|
|
103
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
104
|
+
|
|
105
|
+
Unless required by applicable law or agreed to in writing, software
|
|
106
|
+
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
107
|
+
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
108
|
+
License for the specific language governing permissions and limitations
|
|
109
|
+
under the License.
|
package/README.md
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# `@voyantjs/connect-sdk`
|
|
2
|
+
|
|
3
|
+
Public TypeScript client for Voyant Connect APIs — the operator/connection
|
|
4
|
+
control plane plus the Connect-normalized data plane for products,
|
|
5
|
+
availability, bookings, suppliers, options, cruises, stays, accommodations,
|
|
6
|
+
and flights.
|
|
7
|
+
|
|
8
|
+
## Scope
|
|
9
|
+
|
|
10
|
+
- operators, connections, links, grants, oauth-clients, oauth tokens
|
|
11
|
+
- connector providers and per-operator provider registrations
|
|
12
|
+
- webhook subscriptions, deliveries, test events, and replays
|
|
13
|
+
- audit logs, usage, invite tokens, custom connection requests
|
|
14
|
+
- Connect-normalized data plane: `products`, `options`, `suppliers`,
|
|
15
|
+
`availability`, `bookings`, `cruises`, `stays`, `accommodations`, `health`
|
|
16
|
+
- cross-connection list methods (`products.list`, `suppliers.list`,
|
|
17
|
+
`bookings.listAll`) with `connectionId` / `providerKey` filters
|
|
18
|
+
- flights: search, price, book, manage orders, seats, ancillaries, exchanges,
|
|
19
|
+
refunds, check-in, SSRs
|
|
20
|
+
|
|
21
|
+
## Install
|
|
22
|
+
|
|
23
|
+
```sh
|
|
24
|
+
pnpm add @voyantjs/connect-sdk
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Usage
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
import { createVoyantConnectClient } from "@voyantjs/connect-sdk";
|
|
31
|
+
|
|
32
|
+
const client = createVoyantConnectClient({
|
|
33
|
+
apiKey: process.env.VOYANT_API_KEY!,
|
|
34
|
+
operatorId: "op_123", // default operator for org-scoped reads
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
// Cross-connection — list every product in the operator's catalog,
|
|
38
|
+
// optionally filtered by provider or connection.
|
|
39
|
+
const everything = await client.products.list();
|
|
40
|
+
const byProvider = await client.products.list({ providerKey: "ventrata" });
|
|
41
|
+
|
|
42
|
+
// Per-connection — Connect-normalized reads.
|
|
43
|
+
const productsOnConn = await client.products.listOnConnection("conn_456");
|
|
44
|
+
const options = await client.products.listOptions("conn_456", "prod_789");
|
|
45
|
+
|
|
46
|
+
// Bookings (per connection) — `idempotencyKey` becomes `Idempotency-Key`.
|
|
47
|
+
const booking = await client.bookings.create(
|
|
48
|
+
"conn_456",
|
|
49
|
+
{
|
|
50
|
+
productId: "prod_789",
|
|
51
|
+
optionId: "opt_1",
|
|
52
|
+
unitItems: [{ unitId: "unit_a", quantity: 2 }],
|
|
53
|
+
},
|
|
54
|
+
{ idempotencyKey: "order-2026-04-25-001" },
|
|
55
|
+
);
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
For M2M flows, exchange OAuth client credentials for a short-lived bearer
|
|
59
|
+
token first:
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
import { createVoyantConnectClient } from "@voyantjs/connect-sdk";
|
|
63
|
+
|
|
64
|
+
const tokenClient = createVoyantConnectClient({ apiKey: "unused", authScheme: null });
|
|
65
|
+
const { access_token } = await tokenClient.oauth.issueToken({
|
|
66
|
+
clientId: process.env.VOYANT_CONNECT_CLIENT_ID!,
|
|
67
|
+
clientSecret: process.env.VOYANT_CONNECT_CLIENT_SECRET!,
|
|
68
|
+
scope: "operators:read connections:read bookings:read",
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
const client = createVoyantConnectClient({ apiKey: access_token });
|
|
72
|
+
const me = await client.grants.listReceived();
|
|
73
|
+
void me;
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Shape
|
|
77
|
+
|
|
78
|
+
Root groups on `VoyantConnectClient`:
|
|
79
|
+
|
|
80
|
+
**Control plane**
|
|
81
|
+
- `oauth`
|
|
82
|
+
- `operators`
|
|
83
|
+
- `connectorProviders`
|
|
84
|
+
- `connections`
|
|
85
|
+
- `links`
|
|
86
|
+
- `oauthClients`
|
|
87
|
+
- `grants`
|
|
88
|
+
- `auditLogs`
|
|
89
|
+
- `inviteTokens`
|
|
90
|
+
- `webhookSubscriptions`
|
|
91
|
+
- `customConnectionRequests`
|
|
92
|
+
|
|
93
|
+
**Data plane (Connect-normalized)**
|
|
94
|
+
- `products` — cross-connection `list` / `get` plus per-connection
|
|
95
|
+
`listOnConnection`, `getOnConnection`, `listOptions`, `listExtras`
|
|
96
|
+
- `options` — `listUnits`, `listExtraConfigs`
|
|
97
|
+
- `suppliers` — cross-connection `list` plus `listOnConnection`
|
|
98
|
+
- `availability` — `list`, `calendar`
|
|
99
|
+
- `bookings` — cross-connection `listAll` plus per-connection `list`,
|
|
100
|
+
`get`, `create`, `confirm`, `cancel`, `listActivities`
|
|
101
|
+
- `cruises` / `cruiseBookings` — cruise catalog, search, lock, inquiry, and
|
|
102
|
+
booking lifecycle routes
|
|
103
|
+
- `health` — `get`
|
|
104
|
+
|
|
105
|
+
**Flights**
|
|
106
|
+
- `flights`
|
|
107
|
+
|
|
108
|
+
## Notes
|
|
109
|
+
|
|
110
|
+
- default base URL is `https://api.voyantjs.com`; the SDK targets the
|
|
111
|
+
`/connect/v1/...` path namespace under it
|
|
112
|
+
- request auth defaults to `authorization: Bearer <apiKey>`
|
|
113
|
+
- response envelopes of the form `{ data: ... }` are unwrapped by default;
|
|
114
|
+
paginated and per-connection Connect reads return their raw shape
|
|
115
|
+
- OAuth M2M tokens carry scopes (e.g. `operators:read`, `connections:write`,
|
|
116
|
+
`bookings:write`, `flights:read`); requests fail with `403` if the token
|
|
117
|
+
does not include the required scope
|
|
118
|
+
- `bookings.create` accepts an `idempotencyKey` option that is sent as
|
|
119
|
+
the `Idempotency-Key` header
|
|
120
|
+
- cross-connection `products.list` / `suppliers.list` / `bookings.listAll`
|
|
121
|
+
use the client-level `operatorId` as default; pass `{ operatorId }` to
|
|
122
|
+
override per call. Both `connectionId` and `providerKey` filters accept
|
|
123
|
+
scalar or array values.
|
|
124
|
+
- `flights.searchStream` returns the raw `Response` so callers can stream the
|
|
125
|
+
Server-Sent Events with whichever parser they prefer
|
|
126
|
+
|
|
127
|
+
For repo-level context, see [../../docs/connect.md](../../docs/connect.md).
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
import { VoyantTransport } from "@voyant-sdk/sdk-core";
|
|
2
|
+
import type { JsonObject } from "@voyant-sdk/sdk-core";
|
|
3
|
+
import type { AuditLogPage, AuditLogQuery, AvailabilityCalendarQueryInput, CancelBookingInput, CabinPricing, ConfirmBookingInput, CruiseBooking, CruiseConfirmInput, CruiseInquireInput, CruiseLockSelectionInput, CruiseOffer, CruiseQuote, CruiseSearchQuery, CruiseSearchResponse, ListAccommodationsQuery, ListCruisesQuery, ListItineraryDay, ListSailingPricingQuery, ListSailingsQuery, OperatorAccommodationDetail, OperatorAccommodationSummary, OperatorCruiseDetail, OperatorCruiseSummary, OperatorSailingDetail, OperatorSailingSummary, RatePlan, RoomType, StayBooking, StayConfirmInput, StayHold, StayOffer, StaySearchQuery, StaySearchResponse, ConnectAvailabilityQuery, ConnectChannelHealth, ConnectListBookingsQuery, ConnectOptionExtraConfigSummary, ConnectOptionSummary, ConnectProductExtraSummary, ConnectUnitSummary, ConnectionScopeFilter, ConnectionSummary, ConnectorProviderApplicationSummary, ConnectorProviderSummary, CreateBookingInput, CreateConnectionInput, CreateCustomConnectionRequestInput, CreateInviteTokenInput, CreateLinkInput, CreateOAuthClientInput, CreateOperatorGrantInput, CreateOperatorInput, CreateWebhookSubscriptionInput, CustomConnectionRequestSummary, FlightAncillaryInput, FlightBookInput, FlightCheckInInput, FlightExchangeInput, FlightMultiSearchInput, FlightPriceInput, FlightRefundInput, FlightSearchInput, FlightSeatSelectionInput, FlightSsrInput, GrantSummary, InviteTokenSummary, IssueTokenInput, LinkCapability, LinkSummary, ListBookingActivitiesQuery, ListGrantsQuery, ListHealthEventsQuery, ListLinksQuery, ListOperatorBookingsQuery, ListProjectionSyncsQuery, ListRequestLogsQuery, ListWebhookDeliveriesQuery, ListWebhookEventsQuery, OAuthClientSummary, OAuthTokenResponse, OperatorBookingSummary, OperatorProductDetail, OperatorProductSummary, OperatorProviderRegistration, OperatorScope, OperatorSummary, OperatorSupplierSummary, ProjectionSyncRunReceipt, PublicInviteInfo, RotatedWebhookSecret, SearchDocument, SearchDocumentQuery, SearchProjectionChangePage, SearchProjectionChangeQuery, UpdateConnectionInput, UpdateConnectorProviderInput, UpdateLinkCapabilityInput, UpdateLinkInput, UpdateOperatorGrantInput, UpdateOperatorInput, UpdateTuiProviderSettingsInput, UpdateWebhookSubscriptionInput, UpsertProviderRegistrationInput, UsageQuery, UsageSummary, VoyantConnectClientOptions, WebhookDeliveryReplayReceipt, WebhookDeliverySummary, WebhookSubscriptionSummary, WebhookSubscriptionTestReceipt } from "./types.js";
|
|
4
|
+
export declare class VoyantConnectClient {
|
|
5
|
+
readonly transport: VoyantTransport;
|
|
6
|
+
readonly defaultOperatorId: string | null;
|
|
7
|
+
constructor(options: VoyantConnectClientOptions);
|
|
8
|
+
private resolveOperatorId;
|
|
9
|
+
readonly oauth: {
|
|
10
|
+
issueToken: (input: IssueTokenInput) => Promise<OAuthTokenResponse>;
|
|
11
|
+
};
|
|
12
|
+
readonly operators: {
|
|
13
|
+
list: () => Promise<OperatorSummary[]>;
|
|
14
|
+
get: (operatorId: string) => Promise<OperatorSummary>;
|
|
15
|
+
create: (input: CreateOperatorInput) => Promise<OperatorSummary>;
|
|
16
|
+
update: (operatorId: string, input: UpdateOperatorInput) => Promise<OperatorSummary>;
|
|
17
|
+
deactivate: (operatorId: string) => Promise<OperatorSummary>;
|
|
18
|
+
getUsage: (operatorId: string, query?: UsageQuery) => Promise<UsageSummary>;
|
|
19
|
+
listSearchDocuments: (operatorId: string, query?: SearchDocumentQuery) => Promise<SearchDocument[]>;
|
|
20
|
+
listSearchProjectionChanges: (operatorId: string, query?: SearchProjectionChangeQuery) => Promise<SearchProjectionChangePage>;
|
|
21
|
+
};
|
|
22
|
+
readonly connectorProviders: {
|
|
23
|
+
list: () => Promise<ConnectorProviderSummary[]>;
|
|
24
|
+
update: (providerKey: string, input: UpdateConnectorProviderInput) => Promise<ConnectorProviderSummary>;
|
|
25
|
+
listApplications: (providerKey: string) => Promise<ConnectorProviderApplicationSummary[]>;
|
|
26
|
+
listRegistrations: (operatorId: string) => Promise<OperatorProviderRegistration[]>;
|
|
27
|
+
getRegistration: (operatorId: string, registrationId: string) => Promise<OperatorProviderRegistration>;
|
|
28
|
+
upsertRegistration: (operatorId: string, input: UpsertProviderRegistrationInput) => Promise<OperatorProviderRegistration>;
|
|
29
|
+
updateRegistration: (operatorId: string, registrationId: string, input: UpsertProviderRegistrationInput) => Promise<OperatorProviderRegistration>;
|
|
30
|
+
updateTuiSettings: (operatorId: string, registrationId: string, input: UpdateTuiProviderSettingsInput) => Promise<OperatorProviderRegistration>;
|
|
31
|
+
revalidateRegistration: (operatorId: string, registrationId: string) => Promise<OperatorProviderRegistration>;
|
|
32
|
+
};
|
|
33
|
+
readonly connections: {
|
|
34
|
+
list: (operatorId: string) => Promise<ConnectionSummary[]>;
|
|
35
|
+
get: (operatorId: string, connectionId: string) => Promise<ConnectionSummary>;
|
|
36
|
+
create: (operatorId: string, input: CreateConnectionInput) => Promise<ConnectionSummary>;
|
|
37
|
+
update: (operatorId: string, connectionId: string, input: UpdateConnectionInput) => Promise<ConnectionSummary>;
|
|
38
|
+
delete: (operatorId: string, connectionId: string) => Promise<ConnectionSummary>;
|
|
39
|
+
rotateWebhookSecret: (operatorId: string, connectionId: string) => Promise<RotatedWebhookSecret>;
|
|
40
|
+
listProjectionSyncs: (operatorId: string, connectionId: string, query?: ListProjectionSyncsQuery) => Promise<JsonObject[]>;
|
|
41
|
+
triggerProjectionSync: (operatorId: string, connectionId: string) => Promise<ProjectionSyncRunReceipt>;
|
|
42
|
+
listWebhookEvents: (operatorId: string, connectionId: string, query?: ListWebhookEventsQuery) => Promise<JsonObject[]>;
|
|
43
|
+
listHealthEvents: (operatorId: string, connectionId: string, query?: ListHealthEventsQuery) => Promise<JsonObject[]>;
|
|
44
|
+
listRequestLogs: (operatorId: string, connectionId: string, query?: ListRequestLogsQuery) => Promise<JsonObject[]>;
|
|
45
|
+
};
|
|
46
|
+
readonly links: {
|
|
47
|
+
list: (operatorId: string, query?: ListLinksQuery) => Promise<LinkSummary[]>;
|
|
48
|
+
get: (operatorId: string, linkId: string) => Promise<LinkSummary>;
|
|
49
|
+
create: (operatorId: string, input: CreateLinkInput) => Promise<LinkSummary>;
|
|
50
|
+
update: (operatorId: string, linkId: string, input: UpdateLinkInput) => Promise<LinkSummary>;
|
|
51
|
+
updateCapability: (operatorId: string, linkId: string, capabilityId: string, input: UpdateLinkCapabilityInput) => Promise<LinkCapability>;
|
|
52
|
+
};
|
|
53
|
+
readonly oauthClients: {
|
|
54
|
+
list: (operatorId: string) => Promise<OAuthClientSummary[]>;
|
|
55
|
+
create: (operatorId: string, input: CreateOAuthClientInput) => Promise<OAuthClientSummary>;
|
|
56
|
+
revoke: (operatorId: string, clientId: string) => Promise<OAuthClientSummary>;
|
|
57
|
+
};
|
|
58
|
+
readonly grants: {
|
|
59
|
+
listForOperator: (operatorId: string, query?: ListGrantsQuery) => Promise<GrantSummary[]>;
|
|
60
|
+
create: (operatorId: string, input: CreateOperatorGrantInput) => Promise<GrantSummary>;
|
|
61
|
+
update: (operatorId: string, grantId: string, input: UpdateOperatorGrantInput) => Promise<GrantSummary>;
|
|
62
|
+
revoke: (operatorId: string, grantId: string) => Promise<GrantSummary>;
|
|
63
|
+
listReceived: (query?: ListGrantsQuery) => Promise<GrantSummary[]>;
|
|
64
|
+
get: (grantId: string) => Promise<GrantSummary>;
|
|
65
|
+
};
|
|
66
|
+
readonly auditLogs: {
|
|
67
|
+
list: (query?: AuditLogQuery) => Promise<AuditLogPage>;
|
|
68
|
+
};
|
|
69
|
+
readonly inviteTokens: {
|
|
70
|
+
list: (operatorId: string) => Promise<InviteTokenSummary[]>;
|
|
71
|
+
create: (operatorId: string, input: CreateInviteTokenInput) => Promise<InviteTokenSummary>;
|
|
72
|
+
revoke: (operatorId: string, inviteId: string) => Promise<InviteTokenSummary>;
|
|
73
|
+
lookup: (token: string) => Promise<PublicInviteInfo>;
|
|
74
|
+
redeem: (token: string) => Promise<GrantSummary>;
|
|
75
|
+
};
|
|
76
|
+
readonly webhookSubscriptions: {
|
|
77
|
+
list: (operatorId: string) => Promise<WebhookSubscriptionSummary[]>;
|
|
78
|
+
create: (operatorId: string, input: CreateWebhookSubscriptionInput) => Promise<WebhookSubscriptionSummary>;
|
|
79
|
+
update: (operatorId: string, subscriptionId: string, input: UpdateWebhookSubscriptionInput) => Promise<WebhookSubscriptionSummary>;
|
|
80
|
+
delete: (operatorId: string, subscriptionId: string) => Promise<WebhookSubscriptionSummary>;
|
|
81
|
+
listDeliveries: (operatorId: string, subscriptionId: string, query?: ListWebhookDeliveriesQuery) => Promise<WebhookDeliverySummary[]>;
|
|
82
|
+
sendTestEvent: (operatorId: string, subscriptionId: string) => Promise<WebhookSubscriptionTestReceipt>;
|
|
83
|
+
replayDelivery: (operatorId: string, subscriptionId: string, deliveryId: string) => Promise<WebhookDeliveryReplayReceipt>;
|
|
84
|
+
};
|
|
85
|
+
readonly customConnectionRequests: {
|
|
86
|
+
list: (organizationId: string) => Promise<CustomConnectionRequestSummary[]>;
|
|
87
|
+
create: (organizationId: string, input: CreateCustomConnectionRequestInput) => Promise<CustomConnectionRequestSummary>;
|
|
88
|
+
};
|
|
89
|
+
readonly products: {
|
|
90
|
+
/**
|
|
91
|
+
* List products across all connections in the operator's catalog.
|
|
92
|
+
* Optionally filter by `connectionId` and/or `providerKey` (single value
|
|
93
|
+
* or array). Falls back to the client's default `operatorId` when omitted.
|
|
94
|
+
*/
|
|
95
|
+
list: (filter?: ConnectionScopeFilter & OperatorScope) => Promise<OperatorProductSummary[]>;
|
|
96
|
+
/** Look up a single product in the operator's catalog. */
|
|
97
|
+
get: (productId: string, scope?: OperatorScope) => Promise<OperatorProductDetail>;
|
|
98
|
+
/** Per-connection list (Connect-normalized). Optional `supplierId` filter. */
|
|
99
|
+
listOnConnection: (connectionId: string, options?: {
|
|
100
|
+
supplierId?: string;
|
|
101
|
+
}) => Promise<JsonObject[]>;
|
|
102
|
+
/** Per-connection product lookup (Connect-normalized). */
|
|
103
|
+
getOnConnection: (connectionId: string, productId: string) => Promise<JsonObject>;
|
|
104
|
+
/** List options for a product on a connection. */
|
|
105
|
+
listOptions: (connectionId: string, productId: string) => Promise<ConnectOptionSummary[]>;
|
|
106
|
+
/** List extras (add-ons) for a product on a connection. */
|
|
107
|
+
listExtras: (connectionId: string, productId: string) => Promise<ConnectProductExtraSummary[]>;
|
|
108
|
+
};
|
|
109
|
+
readonly options: {
|
|
110
|
+
/** List units (pricing/capacity buckets) for an option. */
|
|
111
|
+
listUnits: (connectionId: string, optionId: string) => Promise<ConnectUnitSummary[]>;
|
|
112
|
+
/** List per-option extras configuration. */
|
|
113
|
+
listExtraConfigs: (connectionId: string, optionId: string) => Promise<ConnectOptionExtraConfigSummary[]>;
|
|
114
|
+
};
|
|
115
|
+
readonly suppliers: {
|
|
116
|
+
/**
|
|
117
|
+
* List suppliers across all connections in the operator's catalog.
|
|
118
|
+
* Optionally filter by `connectionId` and/or `providerKey`.
|
|
119
|
+
*/
|
|
120
|
+
list: (filter?: ConnectionScopeFilter & OperatorScope) => Promise<OperatorSupplierSummary[]>;
|
|
121
|
+
/** Per-connection list (Connect-normalized). */
|
|
122
|
+
listOnConnection: (connectionId: string) => Promise<JsonObject[]>;
|
|
123
|
+
};
|
|
124
|
+
readonly availability: {
|
|
125
|
+
/** Per-connection availability slots (Connect-normalized). */
|
|
126
|
+
list: (connectionId: string, query: ConnectAvailabilityQuery) => Promise<JsonObject[]>;
|
|
127
|
+
/** Per-connection calendar query (Connect-normalized). */
|
|
128
|
+
calendar: (connectionId: string, input: AvailabilityCalendarQueryInput) => Promise<JsonObject[]>;
|
|
129
|
+
};
|
|
130
|
+
readonly bookings: {
|
|
131
|
+
/**
|
|
132
|
+
* List bookings across all connections in the operator's catalog.
|
|
133
|
+
* Filter by `connectionId`, `providerKey`, status, and/or date range.
|
|
134
|
+
*/
|
|
135
|
+
listAll: (filter?: ConnectionScopeFilter & OperatorScope & ListOperatorBookingsQuery) => Promise<OperatorBookingSummary[]>;
|
|
136
|
+
/** Per-connection booking list (Connect-normalized). */
|
|
137
|
+
list: (connectionId: string, query?: ConnectListBookingsQuery) => Promise<JsonObject[]>;
|
|
138
|
+
get: (connectionId: string, bookingId: string) => Promise<JsonObject>;
|
|
139
|
+
create: (connectionId: string, input: CreateBookingInput, options?: {
|
|
140
|
+
idempotencyKey?: string;
|
|
141
|
+
}) => Promise<JsonObject>;
|
|
142
|
+
confirm: (connectionId: string, bookingId: string, input?: ConfirmBookingInput) => Promise<JsonObject>;
|
|
143
|
+
cancel: (connectionId: string, bookingId: string, input?: CancelBookingInput) => Promise<JsonObject>;
|
|
144
|
+
/** Booking activity log (Connect-normalized). */
|
|
145
|
+
listActivities: (connectionId: string, bookingId: string, query?: ListBookingActivitiesQuery) => Promise<JsonObject[]>;
|
|
146
|
+
};
|
|
147
|
+
readonly health: {
|
|
148
|
+
/** Per-connection sync health. */
|
|
149
|
+
get: (connectionId: string) => Promise<ConnectChannelHealth>;
|
|
150
|
+
};
|
|
151
|
+
readonly accommodations: {
|
|
152
|
+
/**
|
|
153
|
+
* List accommodations across all connections in the operator's catalog.
|
|
154
|
+
* Filter by `connectionId`, `providerKey`, `category`, `countryCode`,
|
|
155
|
+
* `city`, `minStars`, `locale`. Falls back to client.operatorId.
|
|
156
|
+
*/
|
|
157
|
+
list: (filter?: ConnectionScopeFilter & OperatorScope & ListAccommodationsQuery) => Promise<OperatorAccommodationSummary[]>;
|
|
158
|
+
/** Look up an accommodation in the operator's catalog. */
|
|
159
|
+
get: (accommodationId: string, scope?: OperatorScope & {
|
|
160
|
+
locale?: string;
|
|
161
|
+
}) => Promise<OperatorAccommodationDetail>;
|
|
162
|
+
/** Per-connection list (Connect-normalized). */
|
|
163
|
+
listOnConnection: (connectionId: string, options?: {
|
|
164
|
+
locale?: string;
|
|
165
|
+
limit?: number;
|
|
166
|
+
}) => Promise<JsonObject[]>;
|
|
167
|
+
/** Per-connection accommodation lookup. */
|
|
168
|
+
getOnConnection: (connectionId: string, accommodationId: string, options?: {
|
|
169
|
+
locale?: string;
|
|
170
|
+
}) => Promise<JsonObject>;
|
|
171
|
+
/** List room types for an accommodation on a connection. */
|
|
172
|
+
listRoomTypes: (connectionId: string, accommodationExternalId: string, options?: {
|
|
173
|
+
locale?: string;
|
|
174
|
+
}) => Promise<RoomType[]>;
|
|
175
|
+
/** List rate plans for an accommodation, optionally filtered by room type. */
|
|
176
|
+
listRatePlans: (connectionId: string, accommodationExternalId: string, options?: {
|
|
177
|
+
roomTypeId?: string;
|
|
178
|
+
locale?: string;
|
|
179
|
+
}) => Promise<RatePlan[]>;
|
|
180
|
+
};
|
|
181
|
+
readonly stays: {
|
|
182
|
+
/** Per-connection search; delegates to the adapter. Returns offers + diagnostics. */
|
|
183
|
+
search: (connectionId: string, query: StaySearchQuery) => Promise<StaySearchResponse>;
|
|
184
|
+
/**
|
|
185
|
+
* Cross-connection search. Fans out across the operator's accessible
|
|
186
|
+
* connections in parallel, merges offers, returns a unified response with
|
|
187
|
+
* `connectionDiagnostics` per connection.
|
|
188
|
+
*/
|
|
189
|
+
searchAcrossProviders: (query: StaySearchQuery, filter?: ConnectionScopeFilter & OperatorScope) => Promise<StaySearchResponse>;
|
|
190
|
+
/**
|
|
191
|
+
* Lock an offer. Pass the StayOffer returned from search; Connect creates a
|
|
192
|
+
* server-side hold whose TTL caps any provider-native lock that exists.
|
|
193
|
+
*/
|
|
194
|
+
lock: (connectionId: string, offer: StayOffer, options?: {
|
|
195
|
+
ttlMinutes?: number;
|
|
196
|
+
}) => Promise<StayHold>;
|
|
197
|
+
releaseLock: (connectionId: string, holdId: string) => Promise<StayHold>;
|
|
198
|
+
getHold: (connectionId: string, holdId: string) => Promise<StayHold>;
|
|
199
|
+
/**
|
|
200
|
+
* Confirm a held offer into a booking. `idempotencyKey` becomes
|
|
201
|
+
* `Idempotency-Key` and is enforced server-side against the hold.
|
|
202
|
+
*/
|
|
203
|
+
confirm: (connectionId: string, input: StayConfirmInput, options?: {
|
|
204
|
+
idempotencyKey?: string;
|
|
205
|
+
}) => Promise<StayBooking>;
|
|
206
|
+
cancel: (connectionId: string, bookingId: string, options?: {
|
|
207
|
+
reason?: string;
|
|
208
|
+
}) => Promise<StayBooking>;
|
|
209
|
+
get: (connectionId: string, bookingId: string) => Promise<StayBooking>;
|
|
210
|
+
list: (connectionId: string, query?: {
|
|
211
|
+
status?: string | string[];
|
|
212
|
+
checkInFrom?: string;
|
|
213
|
+
checkInTo?: string;
|
|
214
|
+
limit?: number;
|
|
215
|
+
}) => Promise<StayBooking[]>;
|
|
216
|
+
/** Cross-connection booking list scoped to the operator. */
|
|
217
|
+
listAll: (filter?: ConnectionScopeFilter & OperatorScope & {
|
|
218
|
+
status?: string | string[];
|
|
219
|
+
checkInFrom?: string;
|
|
220
|
+
checkInTo?: string;
|
|
221
|
+
limit?: number;
|
|
222
|
+
}) => Promise<(StayBooking & {
|
|
223
|
+
providerKey: string | null;
|
|
224
|
+
supplierName: string;
|
|
225
|
+
})[]>;
|
|
226
|
+
};
|
|
227
|
+
readonly cruises: {
|
|
228
|
+
/**
|
|
229
|
+
* List cruises across all of the operator's accessible connections.
|
|
230
|
+
* Filter by `connectionId`, `providerKey`, `cruiseType`, line/ship,
|
|
231
|
+
* `minNights`/`maxNights`, `locale`. Falls back to client.operatorId.
|
|
232
|
+
*/
|
|
233
|
+
list: (filter?: ConnectionScopeFilter & OperatorScope & ListCruisesQuery) => Promise<OperatorCruiseSummary[]>;
|
|
234
|
+
/** Look up a cruise by id in the operator's catalog. */
|
|
235
|
+
get: (cruiseId: string, scope?: OperatorScope & {
|
|
236
|
+
locale?: string;
|
|
237
|
+
}) => Promise<OperatorCruiseDetail>;
|
|
238
|
+
/** Per-connection list (Connect-normalized). */
|
|
239
|
+
listOnConnection: (connectionId: string, options?: {
|
|
240
|
+
locale?: string;
|
|
241
|
+
limit?: number;
|
|
242
|
+
}) => Promise<JsonObject[]>;
|
|
243
|
+
/** Per-connection cruise lookup. */
|
|
244
|
+
getOnConnection: (connectionId: string, cruiseId: string, options?: {
|
|
245
|
+
locale?: string;
|
|
246
|
+
}) => Promise<JsonObject>;
|
|
247
|
+
/**
|
|
248
|
+
* Cross-connection sailings list — primary search axis is departure
|
|
249
|
+
* window. Filter by cruise/ship/sales status.
|
|
250
|
+
*/
|
|
251
|
+
listSailings: (filter?: ConnectionScopeFilter & OperatorScope & ListSailingsQuery) => Promise<OperatorSailingSummary[]>;
|
|
252
|
+
/** Look up a sailing by id in the operator's catalog. */
|
|
253
|
+
getSailing: (sailingId: string, scope?: OperatorScope) => Promise<OperatorSailingDetail>;
|
|
254
|
+
/** Per-connection sailings list. */
|
|
255
|
+
listSailingsOnConnection: (connectionId: string, options?: {
|
|
256
|
+
cruiseExternalId?: string;
|
|
257
|
+
departureFrom?: string;
|
|
258
|
+
departureTo?: string;
|
|
259
|
+
salesStatus?: string | string[];
|
|
260
|
+
limit?: number;
|
|
261
|
+
}) => Promise<JsonObject[]>;
|
|
262
|
+
/** Per-connection sailing lookup. */
|
|
263
|
+
getSailingOnConnection: (connectionId: string, sailingId: string) => Promise<JsonObject>;
|
|
264
|
+
/** Itinerary days for a sailing on a connection (port calls + sea days). */
|
|
265
|
+
listItinerary: (connectionId: string, sailingExternalId: string) => Promise<ListItineraryDay[]>;
|
|
266
|
+
/** Cabin pricing grid for a sailing on a connection. */
|
|
267
|
+
listSailingPricing: (connectionId: string, sailingExternalId: string, query?: ListSailingPricingQuery) => Promise<CabinPricing[]>;
|
|
268
|
+
/** Cruise lines available on a connection. */
|
|
269
|
+
listCruiseLines: (connectionId: string, options?: {
|
|
270
|
+
locale?: string;
|
|
271
|
+
}) => Promise<JsonObject[]>;
|
|
272
|
+
/** Ships on a connection — optionally filter by cruise line. */
|
|
273
|
+
listShips: (connectionId: string, options?: {
|
|
274
|
+
cruiseLineExternalId?: string;
|
|
275
|
+
locale?: string;
|
|
276
|
+
limit?: number;
|
|
277
|
+
}) => Promise<JsonObject[]>;
|
|
278
|
+
/** Per-connection ship lookup. */
|
|
279
|
+
getShip: (connectionId: string, shipId: string) => Promise<JsonObject>;
|
|
280
|
+
/** Cabin categories for a ship on a connection. */
|
|
281
|
+
listCabinCategories: (connectionId: string, shipExternalId: string, options?: {
|
|
282
|
+
locale?: string;
|
|
283
|
+
}) => Promise<JsonObject[]>;
|
|
284
|
+
/** Per-connection cruise search; reads the local cache. */
|
|
285
|
+
search: (connectionId: string, query: CruiseSearchQuery) => Promise<CruiseSearchResponse>;
|
|
286
|
+
/**
|
|
287
|
+
* Cross-connection cruise search. Fans out across the operator's
|
|
288
|
+
* accessible connections, merges offers, returns a unified response with
|
|
289
|
+
* `connectionDiagnostics` per connection.
|
|
290
|
+
*/
|
|
291
|
+
searchAcrossProviders: (query: CruiseSearchQuery, filter?: ConnectionScopeFilter & OperatorScope) => Promise<CruiseSearchResponse>;
|
|
292
|
+
};
|
|
293
|
+
readonly cruiseBookings: {
|
|
294
|
+
/**
|
|
295
|
+
* Inquiry-mode booking: creates a sales lead, no provider hold. The
|
|
296
|
+
* reseller follows up out-of-band. Returns the booking with status
|
|
297
|
+
* `inquiry`.
|
|
298
|
+
*/
|
|
299
|
+
inquire: (connectionId: string, input: CruiseInquireInput) => Promise<CruiseBooking>;
|
|
300
|
+
/**
|
|
301
|
+
* Lock a cruise offer (reserve mode). Connect creates a server-side
|
|
302
|
+
* quote with a 24h default TTL; if the adapter has a native option API
|
|
303
|
+
* (e.g. Viking), Connect calls it under the hood.
|
|
304
|
+
*/
|
|
305
|
+
lock: (connectionId: string, offer: CruiseOffer, options?: {
|
|
306
|
+
ttlHours?: number;
|
|
307
|
+
}) => Promise<CruiseQuote>;
|
|
308
|
+
/**
|
|
309
|
+
* Lock a concrete cruise selection. Connect resolves the current
|
|
310
|
+
* normalized pricing row server-side, builds the canonical offer snapshot,
|
|
311
|
+
* optionally calls the provider lock API, and returns the quote.
|
|
312
|
+
*/
|
|
313
|
+
lockSelection: (connectionId: string, input: CruiseLockSelectionInput) => Promise<CruiseQuote>;
|
|
314
|
+
releaseLock: (connectionId: string, quoteId: string) => Promise<CruiseQuote>;
|
|
315
|
+
getQuote: (connectionId: string, quoteId: string) => Promise<CruiseQuote>;
|
|
316
|
+
/**
|
|
317
|
+
* Confirm a held offer into a booking (reserve mode). `idempotencyKey`
|
|
318
|
+
* becomes `Idempotency-Key` and is enforced server-side against the
|
|
319
|
+
* quote.
|
|
320
|
+
*/
|
|
321
|
+
confirm: (connectionId: string, input: CruiseConfirmInput, options?: {
|
|
322
|
+
idempotencyKey?: string;
|
|
323
|
+
}) => Promise<CruiseBooking>;
|
|
324
|
+
cancel: (connectionId: string, bookingId: string, options?: {
|
|
325
|
+
reason?: string;
|
|
326
|
+
}) => Promise<CruiseBooking>;
|
|
327
|
+
get: (connectionId: string, bookingId: string) => Promise<CruiseBooking>;
|
|
328
|
+
list: (connectionId: string, query?: {
|
|
329
|
+
status?: string | string[];
|
|
330
|
+
mode?: string | string[];
|
|
331
|
+
departureFrom?: string;
|
|
332
|
+
departureTo?: string;
|
|
333
|
+
limit?: number;
|
|
334
|
+
}) => Promise<CruiseBooking[]>;
|
|
335
|
+
/** Cross-connection booking list scoped to the operator. */
|
|
336
|
+
listAll: (filter?: ConnectionScopeFilter & OperatorScope & {
|
|
337
|
+
status?: string | string[];
|
|
338
|
+
mode?: string | string[];
|
|
339
|
+
departureFrom?: string;
|
|
340
|
+
departureTo?: string;
|
|
341
|
+
limit?: number;
|
|
342
|
+
}) => Promise<(CruiseBooking & {
|
|
343
|
+
providerKey: string | null;
|
|
344
|
+
supplierName: string;
|
|
345
|
+
})[]>;
|
|
346
|
+
};
|
|
347
|
+
readonly flights: {
|
|
348
|
+
search: (input: FlightMultiSearchInput) => Promise<JsonObject>;
|
|
349
|
+
/**
|
|
350
|
+
* Server-Sent Events variant of multi-connection search. Returns the raw
|
|
351
|
+
* `Response` so callers can stream events with their preferred parser.
|
|
352
|
+
*/
|
|
353
|
+
searchStream: (input: FlightMultiSearchInput, options?: {
|
|
354
|
+
signal?: AbortSignal;
|
|
355
|
+
}) => Promise<Response>;
|
|
356
|
+
searchOnConnection: (connectionId: string, input: FlightSearchInput) => Promise<JsonObject>;
|
|
357
|
+
price: (connectionId: string, input: FlightPriceInput) => Promise<JsonObject>;
|
|
358
|
+
book: (connectionId: string, input: FlightBookInput) => Promise<JsonObject>;
|
|
359
|
+
getOrder: (connectionId: string, orderId: string) => Promise<JsonObject>;
|
|
360
|
+
cancelOrder: (connectionId: string, orderId: string) => Promise<JsonObject>;
|
|
361
|
+
ticketOrder: (connectionId: string, orderId: string) => Promise<JsonObject>;
|
|
362
|
+
getSeatMap: (connectionId: string, orderId: string, segmentId: string) => Promise<JsonObject>;
|
|
363
|
+
selectSeats: (connectionId: string, orderId: string, input: FlightSeatSelectionInput) => Promise<JsonObject>;
|
|
364
|
+
getAncillaries: (connectionId: string, orderId: string) => Promise<JsonObject>;
|
|
365
|
+
addAncillary: (connectionId: string, orderId: string, input: FlightAncillaryInput) => Promise<JsonObject>;
|
|
366
|
+
checkIn: (connectionId: string, orderId: string, input: FlightCheckInInput) => Promise<JsonObject>;
|
|
367
|
+
exchange: (connectionId: string, orderId: string, input: FlightExchangeInput) => Promise<JsonObject>;
|
|
368
|
+
refund: (connectionId: string, orderId: string, input: FlightRefundInput) => Promise<JsonObject>;
|
|
369
|
+
voidOrder: (connectionId: string, orderId: string) => Promise<JsonObject>;
|
|
370
|
+
addServiceRequest: (connectionId: string, orderId: string, input: FlightSsrInput) => Promise<JsonObject>;
|
|
371
|
+
};
|
|
372
|
+
}
|
|
373
|
+
export declare function createVoyantConnectClient(options: VoyantConnectClientOptions): VoyantConnectClient;
|
|
374
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|