@surfiran/public-api-client 0.5.0 → 0.11.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/dist/client.d.ts +10 -1
- package/dist/client.js +11 -0
- package/dist/generated/public-api-v1.d.ts +5 -5
- package/dist/index.d.ts +1 -1
- package/dist/types.d.ts +157 -3
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GetPublicSearchSuggestionsParams, GetPublicSitemapParams, GetPublicTravelKnowledgeParams, ListPublicDeparturesParams, ListPublicDestinationsParams, ListPublicTourAccommodationsParams, ListPublicTourAvailabilityParams, ListPublicTourCategoriesParams, ListPublicTourExperiencesParams, ListPublicTravellerStoriesParams, ListPublicTourQuestionsParams, ListPublicTourReviewsParams, ListPublicTourItineraryParams, ListPublicTourRouteParams, ListPublicToursParams, PublicApiResult, PublicAvailabilityListResponse, PublicBookingIntentRequest, PublicBookingIntentResponse, PublicBrochureLeadRequest, PublicBrochureLeadResponse, PublicDepartureListResponse, PublicDestinationDetailResponse, PublicDestinationListResponse, PublicHomepageResponse, PublicInquiryRequest, PublicInquiryResponse, PublicSearchSuggestionsResponse, PublicSitemapResponse, PublicSiteChromeContentResponse, PublicSiteFeaturesResponse, PublicSiteHomeContentResponse, PublicSiteNavigationResponse, PublicSiteTrustPageContentResponse, PublicTourAccommodationListResponse, PublicTourCategoryListResponse, PublicTourDetailResponse, PublicTourExperienceListResponse, PublicTravellerStoryListResponse, PublicTourListResponse, PublicTourQuestionListResponse, PublicTourReviewsSummaryResponse, PublicTourReviewListResponse, PublicTourItineraryResponse, PublicTourRouteResponse, PublicTravelKnowledgeResponse, PublicTravelStatusResponse } from './types.js';
|
|
1
|
+
import type { GetPublicSearchSuggestionsParams, GetPublicSitemapParams, GetPublicTourPreviewParams, GetPublicTravelKnowledgeParams, ListPublicDeparturesParams, ListPublicDestinationsParams, ListPublicTourAccommodationsParams, ListPublicTourAvailabilityParams, ListPublicTourCategoriesParams, ListPublicTourExperiencesParams, ListPublicTravellerStoriesParams, ListPublicTourQuestionsParams, ListPublicTourReviewsParams, ListPublicTourItineraryParams, ListPublicTourRouteParams, ListPublicToursParams, PublicApiResult, PublicAvailabilityListResponse, PublicBookingIntentRequest, PublicBookingIntentResponse, PublicBrochureLeadRequest, PublicBrochureLeadResponse, PublicDepartureListResponse, PublicDestinationDetailResponse, PublicDestinationListResponse, PublicHomepageResponse, PublicInquiryRequest, PublicInquiryResponse, PublicSearchSuggestionsResponse, PublicSitemapResponse, PublicSiteChromeContentResponse, PublicSiteFeaturesResponse, PublicSiteHomeContentResponse, PublicSiteNavigationResponse, PublicSiteTrustPageContentResponse, PublicTourAccommodationListResponse, PublicTourCategoryListResponse, PublicTourDetailResponse, PublicTourExperienceListResponse, PublicTravellerStoryListResponse, PublicTourListResponse, PublicTourQuestionListResponse, PublicTourReviewsSummaryResponse, PublicTourReviewListResponse, PublicTourItineraryResponse, PublicTourRouteResponse, PublicTravelKnowledgeResponse, PublicTravelStatusResponse } from './types.js';
|
|
2
2
|
export type PublicApiClientOptions = {
|
|
3
3
|
baseUrl: string;
|
|
4
4
|
fetchImpl?: typeof fetch;
|
|
@@ -13,6 +13,15 @@ export type PublicApiClientOptions = {
|
|
|
13
13
|
export declare const createPublicApiClient: (options: PublicApiClientOptions) => {
|
|
14
14
|
listPublicTours(params?: ListPublicToursParams): Promise<PublicApiResult<PublicTourListResponse>>;
|
|
15
15
|
getPublicTourBySlug(slug: string): Promise<PublicApiResult<PublicTourDetailResponse>>;
|
|
16
|
+
/**
|
|
17
|
+
* ADR-0022 Tour Product/Edition MVP candidate preview: renders the same
|
|
18
|
+
* public-safe DTO as getPublicTourBySlug, with the Edition-sourced
|
|
19
|
+
* fields overlaid from an unpublished candidate instead of the currently
|
|
20
|
+
* live manifest. `token` is a short-lived signed token minted by the
|
|
21
|
+
* CRM, required (not optional, unlike this client's other params
|
|
22
|
+
* objects) — there is no unauthenticated variant of this call.
|
|
23
|
+
*/
|
|
24
|
+
getPublicTourPreviewBySlug(slug: string, params: GetPublicTourPreviewParams): Promise<PublicApiResult<PublicTourDetailResponse>>;
|
|
16
25
|
listPublicTourDepartures(slug: string, params?: ListPublicDeparturesParams): Promise<PublicApiResult<PublicDepartureListResponse>>;
|
|
17
26
|
listPublicTourQuestions(slug: string, params?: ListPublicTourQuestionsParams): Promise<PublicApiResult<PublicTourQuestionListResponse>>;
|
|
18
27
|
listPublicTourExperiences(slug: string, params?: ListPublicTourExperiencesParams): Promise<PublicApiResult<PublicTourExperienceListResponse>>;
|
package/dist/client.js
CHANGED
|
@@ -161,6 +161,17 @@ export const createPublicApiClient = (options) => {
|
|
|
161
161
|
getPublicTourBySlug(slug) {
|
|
162
162
|
return requestJson(`${baseUrl}/api/v1/tours/${encodeURIComponent(slug)}`, options);
|
|
163
163
|
},
|
|
164
|
+
/**
|
|
165
|
+
* ADR-0022 Tour Product/Edition MVP candidate preview: renders the same
|
|
166
|
+
* public-safe DTO as getPublicTourBySlug, with the Edition-sourced
|
|
167
|
+
* fields overlaid from an unpublished candidate instead of the currently
|
|
168
|
+
* live manifest. `token` is a short-lived signed token minted by the
|
|
169
|
+
* CRM, required (not optional, unlike this client's other params
|
|
170
|
+
* objects) — there is no unauthenticated variant of this call.
|
|
171
|
+
*/
|
|
172
|
+
getPublicTourPreviewBySlug(slug, params) {
|
|
173
|
+
return requestJson(`${baseUrl}/api/v1/tours/${encodeURIComponent(slug)}/preview?token=${encodeURIComponent(params.token)}`, options);
|
|
174
|
+
},
|
|
164
175
|
listPublicTourDepartures(slug, params) {
|
|
165
176
|
return requestJson(`${baseUrl}/api/v1/tours/${encodeURIComponent(slug)}/departures${toPaginationQueryString(params)}`, options);
|
|
166
177
|
},
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export type GeneratedPublicApiVersion = '0.9.0';
|
|
2
|
-
export type GeneratedPublicApiPath = '/booking-intents' | '/booking-intents/{id}' | '/brochure-leads' | '/destinations' | '/destinations/{slug}' | '/homepage' | '/inquiries' | '/search-suggestions' | '/site-content/about' | '/site-content/accessibility-statement' | '/site-content/booking-cancellation-policy' | '/site-content/contact' | '/site-content/cookie-policy' | '/site-content/faqs' | '/site-content/footer' | '/site-content/header' | '/site-content/health-safety-support' | '/site-content/home' | '/site-content/iran-travel-status' | '/site-content/iran-visa-information' | '/site-content/money-in-iran' | '/site-content/privacy' | '/site-content/responsible-travel' | '/site-content/terms' | '/site-content/travel-insurance' | '/site-features' | '/site-navigation' | '/sitemap' | '/tour-categories' | '/tours' | '/tours/{slug}' | '/tours/{slug}/accommodations' | '/tours/{slug}/availability' | '/tours/{slug}/departures' | '/tours/{slug}/experiences' | '/tours/{slug}/itinerary' | '/tours/{slug}/questions' | '/tours/{slug}/reviews' | '/tours/{slug}/reviews-summary' | '/tours/{slug}/route' | '/travel-knowledge' | '/travel-status' | '/traveller-stories';
|
|
3
|
-
export type GeneratedPublicApiOperation = 'GET /booking-intents/{id}' | 'GET /destinations' | 'GET /destinations/{slug}' | 'GET /homepage' | 'GET /search-suggestions' | 'GET /site-content/about' | 'GET /site-content/accessibility-statement' | 'GET /site-content/booking-cancellation-policy' | 'GET /site-content/contact' | 'GET /site-content/cookie-policy' | 'GET /site-content/faqs' | 'GET /site-content/footer' | 'GET /site-content/header' | 'GET /site-content/health-safety-support' | 'GET /site-content/home' | 'GET /site-content/iran-travel-status' | 'GET /site-content/iran-visa-information' | 'GET /site-content/money-in-iran' | 'GET /site-content/privacy' | 'GET /site-content/responsible-travel' | 'GET /site-content/terms' | 'GET /site-content/travel-insurance' | 'GET /site-features' | 'GET /site-navigation' | 'GET /sitemap' | 'GET /tour-categories' | 'GET /tours' | 'GET /tours/{slug}' | 'GET /tours/{slug}/accommodations' | 'GET /tours/{slug}/availability' | 'GET /tours/{slug}/departures' | 'GET /tours/{slug}/experiences' | 'GET /tours/{slug}/itinerary' | 'GET /tours/{slug}/questions' | 'GET /tours/{slug}/reviews' | 'GET /tours/{slug}/reviews-summary' | 'GET /tours/{slug}/route' | 'GET /travel-knowledge' | 'GET /travel-status' | 'GET /traveller-stories' | 'POST /booking-intents' | 'POST /brochure-leads' | 'POST /inquiries';
|
|
4
|
-
export type GeneratedPublicApiActiveOperation = 'GET /destinations' | 'GET /destinations/{slug}' | 'GET /homepage' | 'GET /search-suggestions' | 'GET /site-content/about' | 'GET /site-content/accessibility-statement' | 'GET /site-content/booking-cancellation-policy' | 'GET /site-content/contact' | 'GET /site-content/cookie-policy' | 'GET /site-content/faqs' | 'GET /site-content/footer' | 'GET /site-content/header' | 'GET /site-content/health-safety-support' | 'GET /site-content/home' | 'GET /site-content/iran-travel-status' | 'GET /site-content/iran-visa-information' | 'GET /site-content/money-in-iran' | 'GET /site-content/privacy' | 'GET /site-content/responsible-travel' | 'GET /site-content/terms' | 'GET /site-content/travel-insurance' | 'GET /site-features' | 'GET /site-navigation' | 'GET /sitemap' | 'GET /tour-categories' | 'GET /tours' | 'GET /tours/{slug}' | 'GET /tours/{slug}/accommodations' | 'GET /tours/{slug}/availability' | 'GET /tours/{slug}/departures' | 'GET /tours/{slug}/experiences' | 'GET /tours/{slug}/itinerary' | 'GET /tours/{slug}/questions' | 'GET /tours/{slug}/reviews' | 'GET /tours/{slug}/reviews-summary' | 'GET /tours/{slug}/route' | 'GET /travel-knowledge' | 'GET /travel-status' | 'GET /traveller-stories' | 'POST /booking-intents' | 'POST /brochure-leads' | 'POST /inquiries';
|
|
2
|
+
export type GeneratedPublicApiPath = '/booking-intents' | '/booking-intents/{id}' | '/brochure-leads' | '/destinations' | '/destinations/{slug}' | '/homepage' | '/inquiries' | '/search-suggestions' | '/site-content/about' | '/site-content/accessibility-statement' | '/site-content/booking-cancellation-policy' | '/site-content/contact' | '/site-content/cookie-policy' | '/site-content/faqs' | '/site-content/footer' | '/site-content/header' | '/site-content/health-safety-support' | '/site-content/home' | '/site-content/iran-travel-status' | '/site-content/iran-visa-information' | '/site-content/money-in-iran' | '/site-content/privacy' | '/site-content/responsible-travel' | '/site-content/terms' | '/site-content/travel-insurance' | '/site-features' | '/site-navigation' | '/sitemap' | '/tour-categories' | '/tours' | '/tours/{slug}' | '/tours/{slug}/accommodations' | '/tours/{slug}/availability' | '/tours/{slug}/departures' | '/tours/{slug}/experiences' | '/tours/{slug}/itinerary' | '/tours/{slug}/preview' | '/tours/{slug}/questions' | '/tours/{slug}/reviews' | '/tours/{slug}/reviews-summary' | '/tours/{slug}/route' | '/travel-knowledge' | '/travel-status' | '/traveller-stories';
|
|
3
|
+
export type GeneratedPublicApiOperation = 'GET /booking-intents/{id}' | 'GET /destinations' | 'GET /destinations/{slug}' | 'GET /homepage' | 'GET /search-suggestions' | 'GET /site-content/about' | 'GET /site-content/accessibility-statement' | 'GET /site-content/booking-cancellation-policy' | 'GET /site-content/contact' | 'GET /site-content/cookie-policy' | 'GET /site-content/faqs' | 'GET /site-content/footer' | 'GET /site-content/header' | 'GET /site-content/health-safety-support' | 'GET /site-content/home' | 'GET /site-content/iran-travel-status' | 'GET /site-content/iran-visa-information' | 'GET /site-content/money-in-iran' | 'GET /site-content/privacy' | 'GET /site-content/responsible-travel' | 'GET /site-content/terms' | 'GET /site-content/travel-insurance' | 'GET /site-features' | 'GET /site-navigation' | 'GET /sitemap' | 'GET /tour-categories' | 'GET /tours' | 'GET /tours/{slug}' | 'GET /tours/{slug}/accommodations' | 'GET /tours/{slug}/availability' | 'GET /tours/{slug}/departures' | 'GET /tours/{slug}/experiences' | 'GET /tours/{slug}/itinerary' | 'GET /tours/{slug}/preview' | 'GET /tours/{slug}/questions' | 'GET /tours/{slug}/reviews' | 'GET /tours/{slug}/reviews-summary' | 'GET /tours/{slug}/route' | 'GET /travel-knowledge' | 'GET /travel-status' | 'GET /traveller-stories' | 'POST /booking-intents' | 'POST /brochure-leads' | 'POST /inquiries';
|
|
4
|
+
export type GeneratedPublicApiActiveOperation = 'GET /destinations' | 'GET /destinations/{slug}' | 'GET /homepage' | 'GET /search-suggestions' | 'GET /site-content/about' | 'GET /site-content/accessibility-statement' | 'GET /site-content/booking-cancellation-policy' | 'GET /site-content/contact' | 'GET /site-content/cookie-policy' | 'GET /site-content/faqs' | 'GET /site-content/footer' | 'GET /site-content/header' | 'GET /site-content/health-safety-support' | 'GET /site-content/home' | 'GET /site-content/iran-travel-status' | 'GET /site-content/iran-visa-information' | 'GET /site-content/money-in-iran' | 'GET /site-content/privacy' | 'GET /site-content/responsible-travel' | 'GET /site-content/terms' | 'GET /site-content/travel-insurance' | 'GET /site-features' | 'GET /site-navigation' | 'GET /sitemap' | 'GET /tour-categories' | 'GET /tours' | 'GET /tours/{slug}' | 'GET /tours/{slug}/accommodations' | 'GET /tours/{slug}/availability' | 'GET /tours/{slug}/departures' | 'GET /tours/{slug}/experiences' | 'GET /tours/{slug}/itinerary' | 'GET /tours/{slug}/preview' | 'GET /tours/{slug}/questions' | 'GET /tours/{slug}/reviews' | 'GET /tours/{slug}/reviews-summary' | 'GET /tours/{slug}/route' | 'GET /travel-knowledge' | 'GET /travel-status' | 'GET /traveller-stories' | 'POST /booking-intents' | 'POST /brochure-leads' | 'POST /inquiries';
|
|
5
5
|
export type GeneratedPublicApiBlockedOperation = 'GET /booking-intents/{id}';
|
|
6
|
-
export type GeneratedPublicApiOperationId = 'getBookingIntent' | 'listPublicDestinations' | 'getPublicDestinationBySlug' | 'getPublicHomepage' | 'getPublicSearchSuggestions' | 'getPublicSiteContentAbout' | 'getPublicSiteContentAccessibilityStatement' | 'getPublicSiteContentBookingCancellationPolicy' | 'getPublicSiteContentContact' | 'getPublicSiteContentCookiePolicy' | 'getPublicSiteContentFaqs' | 'getPublicSiteContentFooter' | 'getPublicSiteContentHeader' | 'getPublicSiteContentHealthSafetySupport' | 'getPublicSiteContentHome' | 'getPublicSiteContentIranTravelStatus' | 'getPublicSiteContentIranVisaInformation' | 'getPublicSiteContentMoneyInIran' | 'getPublicSiteContentPrivacy' | 'getPublicSiteContentResponsibleTravel' | 'getPublicSiteContentTerms' | 'getPublicSiteContentTravelInsurance' | 'getPublicSiteFeatures' | 'getPublicSiteNavigation' | 'getPublicSitemap' | 'listPublicTourCategories' | 'listPublicTours' | 'getPublicTourBySlug' | 'listPublicTourAccommodations' | 'listPublicTourAvailability' | 'listPublicTourDepartures' | 'listPublicTourExperiences' | 'listPublicTourItinerary' | 'listPublicTourQuestions' | 'listPublicTourReviews' | 'getPublicTourReviewsSummary' | 'listPublicTourRoute' | 'listPublicTravelKnowledge' | 'getPublicTravelStatus' | 'listPublicTravellerStories' | 'createPublicBookingIntent' | 'createPublicBrochureLead' | 'createPublicInquiry';
|
|
7
|
-
export type GeneratedPublicApiSchemaName = 'BookingIntentConflictErrorResponse' | 'BookingIntentResponse' | 'CreateBookingIntentRequest' | 'CreateBookingIntentSuccessResponse' | 'CreateBrochureLeadRequest' | 'CreateBrochureLeadResponse' | 'CreateInquiryRequest' | 'CreateInquiryResponse' | 'GetBookingIntentStatusResponse' | 'PaginationMeta' | 'PublicApiAbuseBlockedError' | 'PublicApiError' | 'PublicApiInternalError' | 'PublicApiNotFoundError' | 'PublicApiNotImplementedError' | 'PublicApiRateLimitError' | 'PublicApiTravelStatusUnavailableError' | 'PublicApiValidationError' | 'PublicAvailabilityListItem' | 'PublicAvailabilityListResponse' | 'PublicBookingIntentLinks' | 'PublicBookingIntentPublicStatus' | 'PublicBookingIntentStatus' | 'PublicDepartureListItem' | 'PublicDepartureListResponse' | 'PublicDestinationDetail' | 'PublicDestinationDetailResponse' | 'PublicDestinationListItem' | 'PublicDestinationListResponse' | 'PublicError' | 'PublicErrorEnvelope' | 'PublicHomepageResponse' | 'PublicHomepageSeo' | 'PublicHomepageStats' | 'PublicNavLink' | 'PublicOfficialSourceCard' | 'PublicSearchSuggestion' | 'PublicSearchSuggestionsResponse' | 'PublicSeo' | 'PublicSiteChromeContent' | 'PublicSiteChromeContentResponse' | 'PublicSiteCta' | 'PublicSiteFeaturesResponse' | 'PublicSiteFeatureStates' | 'PublicSiteHomeContent' | 'PublicSiteHomeContentResponse' | 'PublicSiteHomeSection' | 'PublicSitemapEntry' | 'PublicSitemapResponse' | 'PublicSiteNavigationResponse' | 'PublicSiteNavItem' | 'PublicSiteRouteKey' | 'PublicSiteSocialLink' | 'PublicSiteTrustPageContent' | 'PublicSiteTrustPageContentResponse' | 'PublicSiteTrustPageSeo' | 'PublicSiteTrustSection' | 'PublicSiteTrustTitledItem' | 'PublicStaticLink' | 'PublicSurfiranOperationalUpdate' | 'PublicTourAccommodationListItem' | 'PublicTourAccommodationListResponse' | 'PublicTourCategoryListItem' | 'PublicTourCategoryListResponse' | 'PublicTourDetail' | 'PublicTourDetailEditorial' | 'PublicTourDetailResponse' | 'PublicTourExperienceFrame' | 'PublicTourExperienceListItem' | 'PublicTourExperienceListResponse' | 'PublicTourItineraryDay' | 'PublicTourItineraryResponse' | 'PublicTourListItem' | 'PublicTourListResponse' | 'PublicTourQuestionListItem' | 'PublicTourQuestionListResponse' | 'PublicTourRatingBreakdownItem' | 'PublicTourReviewListItem' | 'PublicTourReviewListResponse' | 'PublicTourReviewsAggregate' | 'PublicTourReviewsSummary' | 'PublicTourReviewsSummaryResponse' | 'PublicTourRouteResponse' | 'PublicTourRouteStop' | 'PublicTravelKnowledgeItem' | 'PublicTravelKnowledgeResponse' | 'PublicTravellerStoryListItem' | 'PublicTravellerStoryListResponse' | 'PublicTravelStatusCorrectionNotice' | 'PublicTravelStatusFreshness' | 'PublicTravelStatusHandoff' | 'PublicTravelStatusResponse' | 'PublicTravelStatusReviewerLabel' | 'PublicTravelStatusSection' | 'PublicTravelStatusState';
|
|
6
|
+
export type GeneratedPublicApiOperationId = 'getBookingIntent' | 'listPublicDestinations' | 'getPublicDestinationBySlug' | 'getPublicHomepage' | 'getPublicSearchSuggestions' | 'getPublicSiteContentAbout' | 'getPublicSiteContentAccessibilityStatement' | 'getPublicSiteContentBookingCancellationPolicy' | 'getPublicSiteContentContact' | 'getPublicSiteContentCookiePolicy' | 'getPublicSiteContentFaqs' | 'getPublicSiteContentFooter' | 'getPublicSiteContentHeader' | 'getPublicSiteContentHealthSafetySupport' | 'getPublicSiteContentHome' | 'getPublicSiteContentIranTravelStatus' | 'getPublicSiteContentIranVisaInformation' | 'getPublicSiteContentMoneyInIran' | 'getPublicSiteContentPrivacy' | 'getPublicSiteContentResponsibleTravel' | 'getPublicSiteContentTerms' | 'getPublicSiteContentTravelInsurance' | 'getPublicSiteFeatures' | 'getPublicSiteNavigation' | 'getPublicSitemap' | 'listPublicTourCategories' | 'listPublicTours' | 'getPublicTourBySlug' | 'listPublicTourAccommodations' | 'listPublicTourAvailability' | 'listPublicTourDepartures' | 'listPublicTourExperiences' | 'listPublicTourItinerary' | 'getPublicTourPreviewBySlug' | 'listPublicTourQuestions' | 'listPublicTourReviews' | 'getPublicTourReviewsSummary' | 'listPublicTourRoute' | 'listPublicTravelKnowledge' | 'getPublicTravelStatus' | 'listPublicTravellerStories' | 'createPublicBookingIntent' | 'createPublicBrochureLead' | 'createPublicInquiry';
|
|
7
|
+
export type GeneratedPublicApiSchemaName = 'BookingIntentConflictErrorResponse' | 'BookingIntentResponse' | 'CanonicalIntakeAttribution' | 'CanonicalIntakeConsent' | 'CreateBookingIntentRequest' | 'CreateBookingIntentSuccessResponse' | 'CreateBrochureLeadRequest' | 'CreateBrochureLeadResponse' | 'CreateInquiryRequest' | 'CreateInquiryResponse' | 'GetBookingIntentStatusResponse' | 'PaginationMeta' | 'PublicApiAbuseBlockedError' | 'PublicApiError' | 'PublicApiInternalError' | 'PublicApiNotFoundError' | 'PublicApiNotImplementedError' | 'PublicApiRateLimitError' | 'PublicApiTravelStatusUnavailableError' | 'PublicApiValidationError' | 'PublicAvailabilityListItem' | 'PublicAvailabilityListResponse' | 'PublicBookingIntentLinks' | 'PublicBookingIntentPublicStatus' | 'PublicBookingIntentStatus' | 'PublicDepartureListItem' | 'PublicDepartureListResponse' | 'PublicDestinationDetail' | 'PublicDestinationDetailResponse' | 'PublicDestinationListItem' | 'PublicDestinationListResponse' | 'PublicError' | 'PublicErrorEnvelope' | 'PublicHomepageResponse' | 'PublicHomepageSeo' | 'PublicHomepageStats' | 'PublicNavLink' | 'PublicOfficialSourceCard' | 'PublicSearchSuggestion' | 'PublicSearchSuggestionsResponse' | 'PublicSeo' | 'PublicSiteChromeContent' | 'PublicSiteChromeContentResponse' | 'PublicSiteCta' | 'PublicSiteFeaturesResponse' | 'PublicSiteFeatureStates' | 'PublicSiteHomeContent' | 'PublicSiteHomeContentResponse' | 'PublicSiteHomeSection' | 'PublicSitemapEntry' | 'PublicSitemapResponse' | 'PublicSiteNavigationResponse' | 'PublicSiteNavItem' | 'PublicSiteRouteKey' | 'PublicSiteSocialLink' | 'PublicSiteTrustPageContent' | 'PublicSiteTrustPageContentResponse' | 'PublicSiteTrustPageSeo' | 'PublicSiteTrustSection' | 'PublicSiteTrustTitledItem' | 'PublicStaticLink' | 'PublicSurfiranOperationalUpdate' | 'PublicTourAccommodationListItem' | 'PublicTourAccommodationListResponse' | 'PublicTourCategoryListItem' | 'PublicTourCategoryListResponse' | 'PublicTourDetail' | 'PublicTourDetailEditorial' | 'PublicTourDetailResponse' | 'PublicTourExperienceFrame' | 'PublicTourExperienceListItem' | 'PublicTourExperienceListResponse' | 'PublicTourItineraryDay' | 'PublicTourItineraryResponse' | 'PublicTourListItem' | 'PublicTourListResponse' | 'PublicTourQuestionListItem' | 'PublicTourQuestionListResponse' | 'PublicTourRatingBreakdownItem' | 'PublicTourReviewListItem' | 'PublicTourReviewListResponse' | 'PublicTourReviewsAggregate' | 'PublicTourReviewsSummary' | 'PublicTourReviewsSummaryResponse' | 'PublicTourRouteResponse' | 'PublicTourRouteStop' | 'PublicTourTailorJourney' | 'PublicTravelKnowledgeItem' | 'PublicTravelKnowledgeResponse' | 'PublicTravellerStoryListItem' | 'PublicTravellerStoryListResponse' | 'PublicTravelStatusCorrectionNotice' | 'PublicTravelStatusFreshness' | 'PublicTravelStatusHandoff' | 'PublicTravelStatusResponse' | 'PublicTravelStatusReviewerLabel' | 'PublicTravelStatusSection' | 'PublicTravelStatusState';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { createPublicApiClient } from './client.js';
|
|
2
|
-
export type { PublicApiErrorCode, PublicApiV1Path, PublicApiV1RouteMap, PublicError, PublicErrorEnvelope, PublicApiError, PublicApiNotImplementedError, PublicApiValidationError, PublicApiRateLimitError, PublicApiAbuseBlockedError, PublicTourListItem, PublicTourDetail, PublicTourDetailEditorial, PublicDepartureListItem, PublicAvailabilityStatus, PublicAvailabilityListItem, PublicAvailabilityListResponse, PublicDestinationListItem, PublicDestinationDetail, PublicTourListResponse, PublicTourDetailResponse, PublicDepartureListResponse, PublicDestinationListResponse, PublicDestinationDetailResponse, PublicApiResult, ListPublicToursParams, ListPublicDeparturesParams, ListPublicTourAvailabilityParams, ListPublicDestinationsParams, PublicInquiryRequest, PublicInquiryResponse, PublicBookingIntentRequest, PublicBookingIntentData, PublicBookingIntentResponse, PublicHomepageStats, PublicHomepageSeo, PublicHomepageResponse, PublicSitemapEntry, PublicSitemapResponse, PublicNavLink, PublicStaticLink, PublicSiteNavigationResponse, PublicTourCategoryListItem, PublicTourCategoryListResponse, PublicSearchSuggestion, PublicSearchSuggestionsResponse, PublicSiteRouteKey, PublicSiteCta, PublicSiteHomeSectionType, PublicSiteHomeSection, PublicSiteHomeContent, PublicSiteHomeContentResponse, PublicSiteNavItem, PublicSiteSocialPlatform, PublicSiteSocialLink, PublicSiteChromeContent, PublicSiteChromeContentResponse, PublicSiteFeatureStates, PublicSiteFeaturesResponse, PublicSiteTrustSectionType, PublicSiteTrustTitledItem, PublicSiteTrustParagraphGroup, PublicSiteTrustTitledItemList, PublicSiteTrustBulletList, PublicSiteTrustSection, PublicSiteTrustPageSeo, PublicSiteTrustPageContent, PublicSiteTrustPageContentResponse, PublicTravelStatusState, PublicTravelStatusFreshness, PublicSurfiranOperationalUpdate, PublicTravelStatusResponse, PublicTravelKnowledgeType, PublicTravelKnowledgeItem, PublicTravelKnowledgeResponse, GetPublicSitemapParams, GetPublicSearchSuggestionsParams, GetPublicTravelKnowledgeParams, ListPublicTourCategoriesParams, PublicTravellerStoryListItem, PublicTravellerStoryListResponse, ListPublicTravellerStoriesParams, PublicTourQuestionListItem, PublicTourQuestionListResponse, ListPublicTourQuestionsParams, PublicTourExperienceFrame, PublicTourExperienceListItem, PublicTourExperienceListResponse, ListPublicTourExperiencesParams, PublicTourAccommodationListItem, PublicTourAccommodationListResponse, ListPublicTourAccommodationsParams, PublicTourReviewsAggregate, PublicTourRatingBreakdownItem, PublicTourReviewsSummary, PublicTourReviewsSummaryResponse, PublicTourReviewListItem, PublicTourReviewListResponse, PublicTourReviewsLimit, ListPublicTourReviewsParams, PublicTourRouteStop, PublicTourRouteResponse, ListPublicTourRouteParams, PublicItineraryMealCode, PublicTourItineraryDay, PublicTourItineraryResponse, ListPublicTourItineraryParams, PublicBrochureLeadRequest, PublicBrochureLeadResponse, } from './types.js';
|
|
2
|
+
export type { PublicApiErrorCode, PublicApiV1Path, PublicApiV1RouteMap, PublicError, PublicErrorEnvelope, PublicApiError, PublicApiNotImplementedError, PublicApiValidationError, PublicApiRateLimitError, PublicApiAbuseBlockedError, PublicTourListItem, PublicTourDetail, PublicTourDetailEditorial, PublicDepartureListItem, PublicAvailabilityStatus, PublicAvailabilityListItem, PublicAvailabilityListResponse, PublicDestinationListItem, PublicDestinationDetail, PublicTourListResponse, PublicTourDetailResponse, PublicDepartureListResponse, PublicDestinationListResponse, PublicDestinationDetailResponse, PublicApiResult, ListPublicToursParams, GetPublicTourPreviewParams, ListPublicDeparturesParams, ListPublicTourAvailabilityParams, ListPublicDestinationsParams, PublicInquiryRequest, PublicTourTailorJourney, PublicInquiryResponse, PublicBookingIntentRequest, PublicBookingIntentData, PublicBookingIntentResponse, PublicHomepageStats, PublicHomepageSeo, PublicHomepageResponse, PublicSitemapEntry, PublicSitemapResponse, PublicNavLink, PublicStaticLink, PublicSiteNavigationResponse, PublicTourCategoryListItem, PublicTourCategoryListResponse, PublicSearchSuggestion, PublicSearchSuggestionsResponse, PublicSiteRouteKey, PublicSiteCta, PublicSiteHomeSectionType, PublicSiteHomeSection, PublicSiteHomeContent, PublicSiteHomeContentResponse, PublicSiteNavItem, PublicSiteSocialPlatform, PublicSiteSocialLink, PublicSiteChromeContent, PublicSiteChromeContentResponse, PublicSiteFeatureStates, PublicSiteFeaturesResponse, PublicSiteTrustSectionType, PublicSiteTrustTitledItem, PublicSiteTrustParagraphGroup, PublicSiteTrustTitledItemList, PublicSiteTrustBulletList, PublicSiteTrustSection, PublicSiteTrustPageSeo, PublicSiteTrustPageContent, PublicSiteTrustPageContentResponse, PublicTravelStatusState, PublicTravelStatusFreshness, PublicSurfiranOperationalUpdate, PublicTravelStatusResponse, PublicTravelKnowledgeType, PublicTravelKnowledgeItem, PublicTravelKnowledgeResponse, GetPublicSitemapParams, GetPublicSearchSuggestionsParams, GetPublicTravelKnowledgeParams, ListPublicTourCategoriesParams, PublicTravellerStoryListItem, PublicTravellerStoryListResponse, ListPublicTravellerStoriesParams, PublicTourQuestionListItem, PublicTourQuestionListResponse, ListPublicTourQuestionsParams, PublicTourExperienceFrame, PublicTourExperienceListItem, PublicTourExperienceListResponse, ListPublicTourExperiencesParams, PublicTourAccommodationListItem, PublicTourAccommodationListResponse, ListPublicTourAccommodationsParams, PublicTourReviewsAggregate, PublicTourRatingBreakdownItem, PublicTourReviewsSummary, PublicTourReviewsSummaryResponse, PublicTourReviewListItem, PublicTourReviewListResponse, PublicTourReviewsLimit, ListPublicTourReviewsParams, PublicTourRouteStop, PublicTourRouteResponse, ListPublicTourRouteParams, PublicItineraryMealCode, PublicTourItineraryDay, PublicTourItineraryResponse, ListPublicTourItineraryParams, PublicBrochureLeadRequest, PublicBrochureLeadResponse, } from './types.js';
|
|
3
3
|
export type { PublicApiClientOptions } from './client.js';
|
|
4
4
|
export type { GeneratedPublicApiVersion, GeneratedPublicApiPath, GeneratedPublicApiOperation, GeneratedPublicApiActiveOperation, GeneratedPublicApiBlockedOperation, GeneratedPublicApiOperationId, GeneratedPublicApiSchemaName, } from './generated/public-api-v1.js';
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export type PublicApiErrorCode = 'PUBLIC_API_ROUTE_NOT_IMPLEMENTED' | 'PUBLIC_API_INTERNAL_ERROR' | 'PUBLIC_API_TOUR_NOT_FOUND' | 'PUBLIC_API_DESTINATION_NOT_FOUND' | 'PUBLIC_API_INVALID_QUERY' | 'PUBLIC_API_BOOKING_INTENT_VALIDATION_ERROR' | 'PUBLIC_API_IDEMPOTENCY_CONFLICT' | 'PUBLIC_API_RATE_LIMITED' | 'PUBLIC_API_ABUSE_BLOCKED' | 'PUBLIC_API_TRAVEL_STATUS_UNAVAILABLE' | 'PUBLIC_API_SITE_CONTENT_UNAVAILABLE' | 'PUBLIC_API_CLIENT_TIMEOUT';
|
|
2
|
-
export type PublicApiV1Path = '/homepage' | '/site-navigation' | '/site-features' | '/sitemap' | '/search-suggestions' | '/tour-categories' | '/tours' | '/tours/{slug}' | '/tours/{slug}/departures' | '/tours/{slug}/availability' | '/tours/{slug}/reviews' | '/destinations' | '/destinations/{slug}' | '/inquiries' | '/booking-intents' | '/travel-status' | '/travel-knowledge' | '/site-content/home' | '/site-content/header' | '/site-content/footer' | '/site-content/about' | '/site-content/contact' | '/site-content/faqs' | '/site-content/privacy' | '/site-content/terms' | '/site-content/responsible-travel' | '/site-content/iran-travel-status' | '/site-content/iran-visa-information' | '/site-content/money-in-iran' | '/site-content/travel-insurance' | '/site-content/health-safety-support' | '/site-content/booking-cancellation-policy' | '/site-content/cookie-policy' | '/site-content/accessibility-statement';
|
|
2
|
+
export type PublicApiV1Path = '/homepage' | '/site-navigation' | '/site-features' | '/sitemap' | '/search-suggestions' | '/tour-categories' | '/tours' | '/tours/{slug}' | '/tours/{slug}/preview' | '/tours/{slug}/departures' | '/tours/{slug}/availability' | '/tours/{slug}/reviews' | '/destinations' | '/destinations/{slug}' | '/inquiries' | '/booking-intents' | '/travel-status' | '/travel-knowledge' | '/site-content/home' | '/site-content/header' | '/site-content/footer' | '/site-content/about' | '/site-content/contact' | '/site-content/faqs' | '/site-content/privacy' | '/site-content/terms' | '/site-content/responsible-travel' | '/site-content/iran-travel-status' | '/site-content/iran-visa-information' | '/site-content/money-in-iran' | '/site-content/travel-insurance' | '/site-content/health-safety-support' | '/site-content/booking-cancellation-policy' | '/site-content/cookie-policy' | '/site-content/accessibility-statement';
|
|
3
3
|
export type PublicError = {
|
|
4
4
|
code: string;
|
|
5
5
|
message: string;
|
|
@@ -100,6 +100,16 @@ export type PublicTourListItem = {
|
|
|
100
100
|
* here — it has no fixed tour to attach to; it is the `/inquire` flow.
|
|
101
101
|
*/
|
|
102
102
|
travelFormat?: string | null;
|
|
103
|
+
/**
|
|
104
|
+
* True when staff have flagged this tour as a "Signature Trip" from
|
|
105
|
+
* `tour_packages.is_signature` (draft migration
|
|
106
|
+
* `20260820_tour_packages_is_signature.sql`, not yet executed in
|
|
107
|
+
* production, so this is `false` for every tour today). Independent of the
|
|
108
|
+
* homepage's positional "Signature Iran Tours" grid, which does not read
|
|
109
|
+
* this column. Optional so a response projected before this field existed
|
|
110
|
+
* still typechecks; absent means false.
|
|
111
|
+
*/
|
|
112
|
+
isSignature?: boolean;
|
|
103
113
|
/**
|
|
104
114
|
* Owner directive 2026-08-07 (full Home design application): staff-authored
|
|
105
115
|
* "was" price display for a current deal
|
|
@@ -128,6 +138,20 @@ export type PublicTourListItem = {
|
|
|
128
138
|
* published.
|
|
129
139
|
*/
|
|
130
140
|
maxGroupSize?: number | null;
|
|
141
|
+
/**
|
|
142
|
+
* Staff-authored city the tour begins in (`tour_packages.start_city`).
|
|
143
|
+
* Published so a curated value can override the endpoints the card otherwise
|
|
144
|
+
* derives from itinerary day objects, whose fallback reaches a day title when
|
|
145
|
+
* the day itself names no city. Null when unpublished — never backfilled and
|
|
146
|
+
* never guessed, so a consumer should fall back to its own derivation rather
|
|
147
|
+
* than treat null as "this tour has no start city".
|
|
148
|
+
*/
|
|
149
|
+
startCity?: string | null;
|
|
150
|
+
/**
|
|
151
|
+
* Staff-authored city the tour ends in (`tour_packages.finish_city`). Same
|
|
152
|
+
* provenance and null semantics as `startCity`.
|
|
153
|
+
*/
|
|
154
|
+
finishCity?: string | null;
|
|
131
155
|
status: string;
|
|
132
156
|
updatedAt: string | null;
|
|
133
157
|
};
|
|
@@ -141,10 +165,37 @@ export type PublicTourDetail = PublicTourListItem & {
|
|
|
141
165
|
seoTitle: string | null;
|
|
142
166
|
seoDescription: string | null;
|
|
143
167
|
editorial?: PublicTourDetailEditorial | null;
|
|
168
|
+
/**
|
|
169
|
+
* Operator-configured "Tailor This Journey" call to action.
|
|
170
|
+
*
|
|
171
|
+
* Absent when no operator has configured the module for this tour, so a
|
|
172
|
+
* consumer keeps whatever default tailor-made hand-off it already renders.
|
|
173
|
+
* Present with `enabled: false` and no other field when an operator switched
|
|
174
|
+
* it off — that is the signal to render nothing for this tour.
|
|
175
|
+
*
|
|
176
|
+
* The call to action leads to a personalised-proposal inquiry only. It never
|
|
177
|
+
* represents a booking, reservation, inventory hold, price guarantee,
|
|
178
|
+
* payment, or confirmed departure.
|
|
179
|
+
*/
|
|
180
|
+
tailorThisJourney?: PublicTourTailorJourney;
|
|
181
|
+
/** Operator-curated related tours (PR-13 / OA-9), in the pinned order. Empty when none are pinned/published. */
|
|
182
|
+
relatedJourneys?: PublicTourListItem[];
|
|
183
|
+
};
|
|
184
|
+
export type PublicTourTailorJourney = {
|
|
185
|
+
enabled: boolean;
|
|
186
|
+
/** Canonical public slug of the source tour, for inquiry attribution. Present only when enabled. */
|
|
187
|
+
tourSlug?: string;
|
|
188
|
+
/** Operator override for the headline. Null means the consumer uses its own default copy. */
|
|
189
|
+
ctaTitle?: string | null;
|
|
190
|
+
/** Operator override for the supporting text. Null means the consumer uses its own default copy. */
|
|
191
|
+
ctaText?: string | null;
|
|
192
|
+
/** Published customisation prompts, in the operator's authored order. */
|
|
193
|
+
suggestedCustomizationOptions?: string[];
|
|
144
194
|
};
|
|
145
195
|
export type PublicTourDetailEditorial = {
|
|
146
196
|
tourType: string | null;
|
|
147
197
|
tourCode: string | null;
|
|
198
|
+
breadcrumbTitle: string | null;
|
|
148
199
|
authorName: string | null;
|
|
149
200
|
authorUrl: string | null;
|
|
150
201
|
authorRole: string | null;
|
|
@@ -172,6 +223,7 @@ export type PublicTourDetailEditorial = {
|
|
|
172
223
|
heroQuote: {
|
|
173
224
|
text: string;
|
|
174
225
|
authorName: string | null;
|
|
226
|
+
travelDate: string | null;
|
|
175
227
|
sourceUrl: string | null;
|
|
176
228
|
} | null;
|
|
177
229
|
payment?: {
|
|
@@ -196,6 +248,7 @@ export type PublicTourDetailEditorial = {
|
|
|
196
248
|
body: string;
|
|
197
249
|
ctaLabel: string | null;
|
|
198
250
|
href: string | null;
|
|
251
|
+
icon: 'info' | 'card' | 'shield' | 'globe' | 'people' | 'route' | null;
|
|
199
252
|
}>;
|
|
200
253
|
};
|
|
201
254
|
export type PublicDepartureListItem = {
|
|
@@ -471,20 +524,58 @@ export type PublicInquiryRequest = {
|
|
|
471
524
|
name: string;
|
|
472
525
|
email: string;
|
|
473
526
|
message: string;
|
|
527
|
+
/**
|
|
528
|
+
* Stable event identifier shared by the structured API submission and any
|
|
529
|
+
* transport fallback. The server creates one when an older client omits it.
|
|
530
|
+
*/
|
|
531
|
+
leadEventId?: string | null;
|
|
532
|
+
phone?: string | null;
|
|
533
|
+
travelersCount?: number | null;
|
|
534
|
+
locale?: string | null;
|
|
535
|
+
formId?: string | null;
|
|
536
|
+
attribution?: {
|
|
537
|
+
landingPage?: string | null;
|
|
538
|
+
referrer?: string | null;
|
|
539
|
+
utmSource?: string | null;
|
|
540
|
+
utmMedium?: string | null;
|
|
541
|
+
utmCampaign?: string | null;
|
|
542
|
+
utmContent?: string | null;
|
|
543
|
+
utmTerm?: string | null;
|
|
544
|
+
sessionId?: string | null;
|
|
545
|
+
clickId?: string | null;
|
|
546
|
+
} | null;
|
|
547
|
+
consent?: {
|
|
548
|
+
purpose: string;
|
|
549
|
+
policyVersion: string;
|
|
550
|
+
/** ISO-8601 timestamp with an explicit timezone. */
|
|
551
|
+
capturedAt: string;
|
|
552
|
+
} | null;
|
|
474
553
|
tourSlug?: string | null;
|
|
475
|
-
/**
|
|
476
|
-
|
|
554
|
+
/**
|
|
555
|
+
* Closed public intent used by the CRM sales queue for inquiry routing.
|
|
556
|
+
* `tailor_made` requires a `tourSlug` whose tour is publicly eligible and
|
|
557
|
+
* whose Tailor This Journey call to action is enabled.
|
|
558
|
+
*/
|
|
559
|
+
requestType?: 'tour_inquiry' | 'waiting_list' | 'specialist_question' | 'tailor_made' | null;
|
|
477
560
|
/**
|
|
478
561
|
* Optional requested departure date (YYYY-MM-DD) when the inquiry was
|
|
479
562
|
* submitted from a specific public departure card. No departure identifier or
|
|
480
563
|
* commercial data is sent.
|
|
481
564
|
*/
|
|
482
565
|
departureDate?: string | null;
|
|
566
|
+
/**
|
|
567
|
+
* Customisation options the traveller selected from the ones published for
|
|
568
|
+
* the named tour. Requires `tourSlug` and `requestType: 'tailor_made'`, and
|
|
569
|
+
* every entry must match one of that tour's published
|
|
570
|
+
* `suggestedCustomizationOptions`. Free-text preferences belong in `message`.
|
|
571
|
+
*/
|
|
572
|
+
customizationOptions?: string[] | null;
|
|
483
573
|
};
|
|
484
574
|
export type PublicInquiryResponse = {
|
|
485
575
|
data: {
|
|
486
576
|
accepted: boolean;
|
|
487
577
|
inquiryId: string;
|
|
578
|
+
leadEventId: string;
|
|
488
579
|
};
|
|
489
580
|
};
|
|
490
581
|
export type PublicBookingIntentRequest = {
|
|
@@ -495,10 +586,16 @@ export type PublicBookingIntentRequest = {
|
|
|
495
586
|
leadTravelerEmail?: string | null;
|
|
496
587
|
leadTravelerPhone?: string | null;
|
|
497
588
|
notes?: string | null;
|
|
589
|
+
leadEventId?: string | null;
|
|
590
|
+
locale?: string | null;
|
|
591
|
+
formId?: string | null;
|
|
592
|
+
attribution?: PublicInquiryRequest['attribution'];
|
|
593
|
+
consent?: PublicInquiryRequest['consent'];
|
|
498
594
|
};
|
|
499
595
|
export type PublicBookingIntentStatus = 'received' | 'needs_review' | 'expired' | 'cancelled' | 'converted_internal';
|
|
500
596
|
export type PublicBookingIntentData = {
|
|
501
597
|
publicId: string;
|
|
598
|
+
leadEventId: string;
|
|
502
599
|
status: PublicBookingIntentStatus;
|
|
503
600
|
tourSlug: string;
|
|
504
601
|
departureId: number | null;
|
|
@@ -523,11 +620,17 @@ export type PublicBrochureLeadRequest = {
|
|
|
523
620
|
utmSource?: string | null;
|
|
524
621
|
utmMedium?: string | null;
|
|
525
622
|
utmCampaign?: string | null;
|
|
623
|
+
leadEventId?: string | null;
|
|
624
|
+
locale?: string | null;
|
|
625
|
+
formId?: string | null;
|
|
626
|
+
attribution?: PublicInquiryRequest['attribution'];
|
|
627
|
+
consent?: PublicInquiryRequest['consent'];
|
|
526
628
|
};
|
|
527
629
|
export type PublicBrochureLeadResponse = {
|
|
528
630
|
data: {
|
|
529
631
|
accepted: boolean;
|
|
530
632
|
leadId: string;
|
|
633
|
+
leadEventId: string;
|
|
531
634
|
};
|
|
532
635
|
};
|
|
533
636
|
export type PublicHomepageStats = {
|
|
@@ -768,6 +871,52 @@ export type PublicSiteFeatureStates = {
|
|
|
768
871
|
* selections already stored in a visitor's browser are not affected.
|
|
769
872
|
*/
|
|
770
873
|
compareTours: boolean;
|
|
874
|
+
/**
|
|
875
|
+
* True when the website may show traveller reviews and ratings. When false,
|
|
876
|
+
* review sections are removed from tour pages, the homepage, the tours
|
|
877
|
+
* catalog, and the tailor-made enquiry page, the dedicated reviews page is
|
|
878
|
+
* unavailable, and review ratings are omitted from structured data.
|
|
879
|
+
*/
|
|
880
|
+
tourReviews: boolean;
|
|
881
|
+
/**
|
|
882
|
+
* True when the website may show deal ribbons, previous prices, and savings
|
|
883
|
+
* notes on tour cards. When false, those promotional marks are hidden while
|
|
884
|
+
* current prices and availability stay visible.
|
|
885
|
+
*/
|
|
886
|
+
dealBadges: boolean;
|
|
887
|
+
/**
|
|
888
|
+
* True when the website may offer the email-gated PDF brochure download on
|
|
889
|
+
* tour pages. When false, every brochure control and the download dialog are
|
|
890
|
+
* removed.
|
|
891
|
+
*/
|
|
892
|
+
brochureDownload: boolean;
|
|
893
|
+
/**
|
|
894
|
+
* True when the website may show the published traveller questions section
|
|
895
|
+
* on tour pages. When false, the section is removed and the questions are
|
|
896
|
+
* omitted from structured data.
|
|
897
|
+
*/
|
|
898
|
+
tourQuestions: boolean;
|
|
899
|
+
/**
|
|
900
|
+
* True when the website may show the related-tours rail on tour pages. When
|
|
901
|
+
* false, the rail is removed.
|
|
902
|
+
*/
|
|
903
|
+
relatedTours: boolean;
|
|
904
|
+
/**
|
|
905
|
+
* True when the website may promote the tailor-made service on tour pages
|
|
906
|
+
* and the tours catalog. When false, those teaser sections are removed;
|
|
907
|
+
* tailor-made pages stay reachable directly.
|
|
908
|
+
*/
|
|
909
|
+
tailorMadeTeaser: boolean;
|
|
910
|
+
/**
|
|
911
|
+
* True when the website may show the guided trip-finder widget on the
|
|
912
|
+
* homepage. When false, the widget is removed.
|
|
913
|
+
*/
|
|
914
|
+
tripFinder: boolean;
|
|
915
|
+
/**
|
|
916
|
+
* True when the website may show the traveller moments and stories section
|
|
917
|
+
* on the homepage. When false, the section is removed.
|
|
918
|
+
*/
|
|
919
|
+
travellerStories: boolean;
|
|
771
920
|
};
|
|
772
921
|
export type PublicSiteFeaturesResponse = {
|
|
773
922
|
data: {
|
|
@@ -783,6 +932,7 @@ export type PublicApiV1RouteMap = {
|
|
|
783
932
|
'GET /tour-categories': PublicTourCategoryListResponse;
|
|
784
933
|
'GET /tours': PublicTourListResponse;
|
|
785
934
|
'GET /tours/{slug}': PublicTourDetailResponse;
|
|
935
|
+
'GET /tours/{slug}/preview': PublicTourDetailResponse;
|
|
786
936
|
'GET /tours/{slug}/departures': PublicDepartureListResponse;
|
|
787
937
|
'GET /tours/{slug}/availability': PublicAvailabilityListResponse;
|
|
788
938
|
'GET /tours/{slug}/reviews': PublicTourReviewListResponse;
|
|
@@ -836,6 +986,10 @@ export type ListPublicDeparturesParams = {
|
|
|
836
986
|
limit?: number;
|
|
837
987
|
cursor?: string;
|
|
838
988
|
};
|
|
989
|
+
export type GetPublicTourPreviewParams = {
|
|
990
|
+
/** Short-lived signed candidate-preview token minted by the CRM (ADR-0022). Required. */
|
|
991
|
+
token: string;
|
|
992
|
+
};
|
|
839
993
|
export type ListPublicTourQuestionsParams = {
|
|
840
994
|
limit?: number;
|
|
841
995
|
};
|