@surfiran/public-api-client 0.12.0 → 0.15.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 +2 -1
- package/dist/client.js +18 -0
- package/dist/generated/public-api-v1.d.ts +5 -5
- package/dist/index.d.ts +1 -1
- package/dist/types.d.ts +158 -0
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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';
|
|
1
|
+
import type { GetPublicSearchResultsParams, 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, PublicSearchResultsResponse, 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;
|
|
@@ -43,6 +43,7 @@ export declare const createPublicApiClient: (options: PublicApiClientOptions) =>
|
|
|
43
43
|
getPublicSiteFeatures(): Promise<PublicApiResult<PublicSiteFeaturesResponse>>;
|
|
44
44
|
getPublicSitemap(params?: GetPublicSitemapParams): Promise<PublicApiResult<PublicSitemapResponse>>;
|
|
45
45
|
getPublicSearchSuggestions(params: GetPublicSearchSuggestionsParams): Promise<PublicApiResult<PublicSearchSuggestionsResponse>>;
|
|
46
|
+
getPublicSearchResults(params: GetPublicSearchResultsParams): Promise<PublicApiResult<PublicSearchResultsResponse>>;
|
|
46
47
|
listPublicTourCategories(params?: ListPublicTourCategoriesParams): Promise<PublicApiResult<PublicTourCategoryListResponse>>;
|
|
47
48
|
getPublicTravelStatus(): Promise<PublicApiResult<PublicTravelStatusResponse>>;
|
|
48
49
|
getPublicSiteContentHome(): Promise<PublicApiResult<PublicSiteHomeContentResponse>>;
|
package/dist/client.js
CHANGED
|
@@ -102,6 +102,21 @@ const toSearchSuggestionsQueryString = (params) => {
|
|
|
102
102
|
search.set('type', params.type);
|
|
103
103
|
return `?${search.toString()}`;
|
|
104
104
|
};
|
|
105
|
+
/*
|
|
106
|
+
* Same shape as the suggestion query, kept as its own builder rather than
|
|
107
|
+
* shared: the two endpoints have separate limit ranges and are free to diverge,
|
|
108
|
+
* and the server rejects any parameter it does not name, so a builder that
|
|
109
|
+
* quietly served both would be the thing that broke on the first divergence.
|
|
110
|
+
*/
|
|
111
|
+
const toSearchResultsQueryString = (params) => {
|
|
112
|
+
const search = new URLSearchParams();
|
|
113
|
+
search.set('q', params.q);
|
|
114
|
+
if (params.limit !== undefined)
|
|
115
|
+
search.set('limit', String(params.limit));
|
|
116
|
+
if (params.type)
|
|
117
|
+
search.set('type', params.type);
|
|
118
|
+
return `?${search.toString()}`;
|
|
119
|
+
};
|
|
105
120
|
const toTravelKnowledgeQueryString = (params) => {
|
|
106
121
|
const search = new URLSearchParams();
|
|
107
122
|
search.set('type', params.type);
|
|
@@ -238,6 +253,9 @@ export const createPublicApiClient = (options) => {
|
|
|
238
253
|
getPublicSearchSuggestions(params) {
|
|
239
254
|
return requestJson(`${baseUrl}/api/v1/search-suggestions${toSearchSuggestionsQueryString(params)}`, options);
|
|
240
255
|
},
|
|
256
|
+
getPublicSearchResults(params) {
|
|
257
|
+
return requestJson(`${baseUrl}/api/v1/search${toSearchResultsQueryString(params)}`, options);
|
|
258
|
+
},
|
|
241
259
|
listPublicTourCategories(params) {
|
|
242
260
|
return requestJson(`${baseUrl}/api/v1/tour-categories${toPaginationQueryString(params)}`, options);
|
|
243
261
|
},
|
|
@@ -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/tailor-made' | '/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/tailor-made' | '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/tailor-made' | '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';
|
|
2
|
+
export type GeneratedPublicApiPath = '/booking-intents' | '/booking-intents/{id}' | '/brochure-leads' | '/destinations' | '/destinations/{slug}' | '/homepage' | '/inquiries' | '/search' | '/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/tailor-made' | '/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' | '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/tailor-made' | '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' | '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/tailor-made' | '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' | 'getPublicSiteContentTailorMade' | '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' | 'PublicCityDestinationContent' | 'PublicCityExperience' | 'PublicCityImage' | 'PublicCityLabelledValue' | 'PublicCityLink' | 'PublicCityNextPlace' | 'PublicCityReason' | 'PublicCityResource' | 'PublicCityStayLink' | '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' | 'PublicTripBrief';
|
|
6
|
+
export type GeneratedPublicApiOperationId = 'getBookingIntent' | 'listPublicDestinations' | 'getPublicDestinationBySlug' | 'getPublicHomepage' | 'getPublicSearchResults' | 'getPublicSearchSuggestions' | 'getPublicSiteContentAbout' | 'getPublicSiteContentAccessibilityStatement' | 'getPublicSiteContentBookingCancellationPolicy' | 'getPublicSiteContentContact' | 'getPublicSiteContentCookiePolicy' | 'getPublicSiteContentFaqs' | 'getPublicSiteContentFooter' | 'getPublicSiteContentHeader' | 'getPublicSiteContentHealthSafetySupport' | 'getPublicSiteContentHome' | 'getPublicSiteContentIranTravelStatus' | 'getPublicSiteContentIranVisaInformation' | 'getPublicSiteContentMoneyInIran' | 'getPublicSiteContentPrivacy' | 'getPublicSiteContentResponsibleTravel' | 'getPublicSiteContentTailorMade' | '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' | 'PublicCityDestinationContent' | 'PublicCityExperience' | 'PublicCityImage' | 'PublicCityLabelledValue' | 'PublicCityLink' | 'PublicCityNextPlace' | 'PublicCityReason' | 'PublicCityResource' | 'PublicCityRoutePattern' | 'PublicCityStayLink' | 'PublicDepartureListItem' | 'PublicDepartureListResponse' | 'PublicDestinationDetail' | 'PublicDestinationDetailResponse' | 'PublicDestinationListItem' | 'PublicDestinationListResponse' | 'PublicError' | 'PublicErrorEnvelope' | 'PublicHomepageResponse' | 'PublicHomepageSeo' | 'PublicHomepageStats' | 'PublicNavLink' | 'PublicOfficialSourceCard' | 'PublicPriceDisplayByCurrency' | 'PublicSearchResultGroup' | 'PublicSearchResultItem' | 'PublicSearchResultsResponse' | 'PublicSearchSuggestion' | 'PublicSearchSuggestionsResponse' | 'PublicSeo' | 'PublicSiteChromeContent' | 'PublicSiteChromeContentResponse' | 'PublicSiteCta' | 'PublicSiteFeaturesResponse' | 'PublicSiteFeatureStates' | 'PublicSiteHeaderMenuCategory' | 'PublicSiteHeaderMenuEditorial' | 'PublicSiteHeaderOffice' | 'PublicSiteHeaderQuickLink' | 'PublicSiteHeaderSearchShortcuts' | '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' | 'PublicTripBrief';
|
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, PublicCityDestinationContent, PublicCityExperience, PublicCityImage, PublicCityLabelledValue, PublicCityLink, PublicCityNextPlace, PublicCityReason, PublicCityResource, PublicCityStayLink, 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';
|
|
2
|
+
export type { PublicApiErrorCode, PublicApiV1Path, PublicApiV1RouteMap, PublicError, PublicErrorEnvelope, PublicApiError, PublicApiNotImplementedError, PublicApiValidationError, PublicApiRateLimitError, PublicApiAbuseBlockedError, PublicTourListItem, PublicTourDetail, PublicTourDetailEditorial, PublicDepartureListItem, PublicAvailabilityStatus, PublicAvailabilityListItem, PublicAvailabilityListResponse, PublicDestinationListItem, PublicCityDestinationContent, PublicCityExperience, PublicCityImage, PublicCityLabelledValue, PublicCityLink, PublicCityNextPlace, PublicCityReason, PublicCityResource, PublicCityStayLink, 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, PublicPriceDisplayByCurrency, PublicSearchResultItem, PublicSearchResultGroup, PublicSearchResultsResponse, PublicSearchSuggestion, PublicSearchSuggestionsResponse, PublicSiteRouteKey, PublicSiteCta, PublicSiteHomeSectionType, PublicSiteHomeSection, PublicSiteHomeContent, PublicSiteHomeContentResponse, PublicSiteNavItem, PublicSiteSocialPlatform, PublicSiteSocialLink, PublicSiteHeaderOffice, PublicSiteHeaderMenuCategory, PublicSiteHeaderMenuEditorial, PublicSiteHeaderQuickLink, PublicSiteHeaderSearchShortcuts, PublicSiteChromeContent, PublicSiteChromeContentResponse, PublicSiteFeatureStates, PublicSiteFeaturesResponse, PublicSiteTrustSectionType, PublicSiteTrustTitledItem, PublicSiteTrustParagraphGroup, PublicSiteTrustTitledItemList, PublicSiteTrustBulletList, PublicSiteTrustSection, PublicSiteTrustPageSeo, PublicSiteTrustPageContent, PublicSiteTrustPageContentResponse, PublicTravelStatusState, PublicTravelStatusFreshness, PublicSurfiranOperationalUpdate, PublicTravelStatusResponse, PublicTravelKnowledgeType, PublicTravelKnowledgeItem, PublicTravelKnowledgeResponse, GetPublicSitemapParams, GetPublicSearchResultsParams, 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
|
@@ -51,6 +51,20 @@ export type PublicApiIdempotencyConflictError = {
|
|
|
51
51
|
status: 409;
|
|
52
52
|
};
|
|
53
53
|
};
|
|
54
|
+
/**
|
|
55
|
+
* One finished display string per public display currency.
|
|
56
|
+
*
|
|
57
|
+
* Deliberately a per-payload map rather than a `?currency=` query parameter: a
|
|
58
|
+
* parameter would multiply every cached page by the number of currencies, while
|
|
59
|
+
* a map is one cache entry serving all of them and lets a consumer switch
|
|
60
|
+
* currency with no refetch. Every entry is `null` when the price, or the amount
|
|
61
|
+
* behind it, is not publishable.
|
|
62
|
+
*/
|
|
63
|
+
export type PublicPriceDisplayByCurrency = {
|
|
64
|
+
USD: string | null;
|
|
65
|
+
EUR: string | null;
|
|
66
|
+
GBP: string | null;
|
|
67
|
+
};
|
|
54
68
|
export type PublicTourListItem = {
|
|
55
69
|
id: number;
|
|
56
70
|
slug: string;
|
|
@@ -60,6 +74,17 @@ export type PublicTourListItem = {
|
|
|
60
74
|
durationNights: number | null;
|
|
61
75
|
startingPriceDisplay: string | null;
|
|
62
76
|
currency: string | null;
|
|
77
|
+
/**
|
|
78
|
+
* The same published starting price rendered in each display currency the
|
|
79
|
+
* public site offers. Finished display strings, never rates or raw amounts:
|
|
80
|
+
* the CRM converts from its own operational `fx_rates`, so a consumer picks a
|
|
81
|
+
* string and can neither round nor format differently.
|
|
82
|
+
*
|
|
83
|
+
* A currency with no active rate for this price's own currency is `null`, and
|
|
84
|
+
* the consumer falls back to `startingPriceDisplay` as published. Optional so
|
|
85
|
+
* a response projected before this field existed still typechecks.
|
|
86
|
+
*/
|
|
87
|
+
priceDisplayByCurrency?: PublicPriceDisplayByCurrency;
|
|
63
88
|
heroImage: string | null;
|
|
64
89
|
primaryDestinations: string[];
|
|
65
90
|
/**
|
|
@@ -476,6 +501,19 @@ export type PublicCityLink = {
|
|
|
476
501
|
label: string;
|
|
477
502
|
href: string;
|
|
478
503
|
};
|
|
504
|
+
/**
|
|
505
|
+
* A route sketch. Node names are display labels, not Place references — a chain
|
|
506
|
+
* may include waypoints outside the catalogue. Onward Places with real identity
|
|
507
|
+
* are published in `nextPlaces`.
|
|
508
|
+
*/
|
|
509
|
+
export type PublicCityRoutePattern = {
|
|
510
|
+
label: string;
|
|
511
|
+
nodes: Array<{
|
|
512
|
+
name: string;
|
|
513
|
+
current: boolean;
|
|
514
|
+
}>;
|
|
515
|
+
note?: string | null;
|
|
516
|
+
};
|
|
479
517
|
export type PublicCityStayLink = {
|
|
480
518
|
label: string;
|
|
481
519
|
url: string;
|
|
@@ -486,6 +524,19 @@ export type PublicCityStayLink = {
|
|
|
486
524
|
* it as optional and render nothing when it is absent.
|
|
487
525
|
*/
|
|
488
526
|
export type PublicCityDestinationContent = {
|
|
527
|
+
/** One-line geographic orientation from the shared place profile. */
|
|
528
|
+
geoLine?: string | null;
|
|
529
|
+
/** Resolved from the canonical place hierarchy; never authored. */
|
|
530
|
+
country?: {
|
|
531
|
+
name: string;
|
|
532
|
+
slug: string;
|
|
533
|
+
} | null;
|
|
534
|
+
/** Caption of the published hero asset; the image itself is `heroImage`. */
|
|
535
|
+
heroCaption?: string | null;
|
|
536
|
+
/** Alt text of the published hero asset. */
|
|
537
|
+
heroAlt?: string | null;
|
|
538
|
+
/** CSS object-position for this city's hero crop. */
|
|
539
|
+
heroFocalPoint?: string | null;
|
|
489
540
|
countryNote?: string | null;
|
|
490
541
|
facts?: PublicCityLabelledValue[];
|
|
491
542
|
why?: PublicCityReason[];
|
|
@@ -505,6 +556,9 @@ export type PublicCityDestinationContent = {
|
|
|
505
556
|
allJourneys?: PublicCityLink | null;
|
|
506
557
|
readingIntro?: string | null;
|
|
507
558
|
resources?: PublicCityResource[];
|
|
559
|
+
/** Position within `facts` of the derived "journeys that stay" fact. */
|
|
560
|
+
journeysFactIndex?: number | null;
|
|
561
|
+
patterns?: PublicCityRoutePattern[];
|
|
508
562
|
closingHeading?: string | null;
|
|
509
563
|
closingBody?: string | null;
|
|
510
564
|
};
|
|
@@ -779,6 +833,17 @@ export type PublicTourCategoryListItem = {
|
|
|
779
833
|
slug: string;
|
|
780
834
|
name: string;
|
|
781
835
|
tourCount: number;
|
|
836
|
+
/**
|
|
837
|
+
* Shortest published duration among this category's active tours, in days.
|
|
838
|
+
* Derived from active tour data, never authored, so a rendered range cannot
|
|
839
|
+
* disagree with the catalogue. `null` when no tour in the category publishes
|
|
840
|
+
* a usable duration -- never a guessed value.
|
|
841
|
+
*
|
|
842
|
+
* Optional so a response projected before these fields existed typechecks.
|
|
843
|
+
*/
|
|
844
|
+
durationMinDays?: number | null;
|
|
845
|
+
/** Longest published duration. Same derivation and same null rule. */
|
|
846
|
+
durationMaxDays?: number | null;
|
|
782
847
|
};
|
|
783
848
|
export type PublicTourCategoryListResponse = {
|
|
784
849
|
data: PublicTourCategoryListItem[];
|
|
@@ -796,6 +861,37 @@ export type PublicSearchSuggestionsResponse = {
|
|
|
796
861
|
total: number;
|
|
797
862
|
query: string;
|
|
798
863
|
};
|
|
864
|
+
/**
|
|
865
|
+
* One search hit. Already-public identity and published summary text only.
|
|
866
|
+
*
|
|
867
|
+
* Guides are deliberately absent from the union: guide records are staff and
|
|
868
|
+
* supplier data and no public-safe guide projection exists, so a guide group
|
|
869
|
+
* would be a promise the contract cannot keep.
|
|
870
|
+
*/
|
|
871
|
+
export type PublicSearchResultItem = {
|
|
872
|
+
type: 'tour' | 'destination';
|
|
873
|
+
label: string;
|
|
874
|
+
slug: string;
|
|
875
|
+
path: string;
|
|
876
|
+
summary: string | null;
|
|
877
|
+
};
|
|
878
|
+
export type PublicSearchResultGroup = {
|
|
879
|
+
type: 'tour' | 'destination';
|
|
880
|
+
/** Every match found in the scanned set, which may exceed `items.length`. */
|
|
881
|
+
total: number;
|
|
882
|
+
items: PublicSearchResultItem[];
|
|
883
|
+
};
|
|
884
|
+
export type PublicSearchResultsResponse = {
|
|
885
|
+
query: string;
|
|
886
|
+
groups: PublicSearchResultGroup[];
|
|
887
|
+
/** Sum of every group total. */
|
|
888
|
+
total: number;
|
|
889
|
+
/**
|
|
890
|
+
* False when the published set outgrew the server's scan bound, so a caller
|
|
891
|
+
* can tell "no more matches" from "we stopped looking". Never silently true.
|
|
892
|
+
*/
|
|
893
|
+
complete: boolean;
|
|
894
|
+
};
|
|
799
895
|
export type PublicTravelKnowledgeType = 'city' | 'landmark' | 'activity' | 'accommodation_label' | 'theme';
|
|
800
896
|
export type PublicTravelKnowledgeItem = {
|
|
801
897
|
type: PublicTravelKnowledgeType;
|
|
@@ -893,12 +989,67 @@ export type PublicSiteSocialLink = {
|
|
|
893
989
|
platform: PublicSiteSocialPlatform;
|
|
894
990
|
url: string;
|
|
895
991
|
};
|
|
992
|
+
/**
|
|
993
|
+
* Published office line for the site chrome.
|
|
994
|
+
*
|
|
995
|
+
* `timeZone` is an IANA zone name, so a consumer formats a real local time from
|
|
996
|
+
* it. A numeric UTC offset is deliberately not representable -- it would be
|
|
997
|
+
* wrong for half the year in any zone that observes a transition -- and a zone
|
|
998
|
+
* the serving runtime cannot format is emitted as `null` rather than passed on.
|
|
999
|
+
*/
|
|
1000
|
+
export type PublicSiteHeaderOffice = {
|
|
1001
|
+
label: string | null;
|
|
1002
|
+
hoursText: string | null;
|
|
1003
|
+
/** IANA time zone name, for example `Asia/Tehran`. */
|
|
1004
|
+
timeZone: string | null;
|
|
1005
|
+
};
|
|
1006
|
+
/**
|
|
1007
|
+
* Operator-authored editorial for one tour category, keyed on the slug
|
|
1008
|
+
* `GET /tour-categories` publishes.
|
|
1009
|
+
*
|
|
1010
|
+
* Editorial text only. Tour counts and duration ranges are derived from active
|
|
1011
|
+
* tour data and are deliberately not representable here, so a published value
|
|
1012
|
+
* can never disagree with the catalogue.
|
|
1013
|
+
*/
|
|
1014
|
+
export type PublicSiteHeaderMenuCategory = {
|
|
1015
|
+
categorySlug: string;
|
|
1016
|
+
blurb: string | null;
|
|
1017
|
+
ctaLabel: string | null;
|
|
1018
|
+
tags: string[];
|
|
1019
|
+
};
|
|
1020
|
+
export type PublicSiteHeaderMenuEditorial = {
|
|
1021
|
+
iranTagline: string | null;
|
|
1022
|
+
categories: PublicSiteHeaderMenuCategory[];
|
|
1023
|
+
};
|
|
1024
|
+
/**
|
|
1025
|
+
* A search-dialog shortcut. Carries a closed route key, never a path or URL, so
|
|
1026
|
+
* a shortcut can never point off-site or at an internal CRM route.
|
|
1027
|
+
*/
|
|
1028
|
+
export type PublicSiteHeaderQuickLink = {
|
|
1029
|
+
label: string;
|
|
1030
|
+
routeKey: PublicSiteRouteKey;
|
|
1031
|
+
};
|
|
1032
|
+
export type PublicSiteHeaderSearchShortcuts = {
|
|
1033
|
+
popularSearches: string[];
|
|
1034
|
+
quickLinks: PublicSiteHeaderQuickLink[];
|
|
1035
|
+
};
|
|
896
1036
|
export type PublicSiteChromeContent = {
|
|
897
1037
|
navItems: PublicSiteNavItem[];
|
|
898
1038
|
cta: PublicSiteCta | null;
|
|
899
1039
|
contactEmail: string | null;
|
|
900
1040
|
contactPhone: string | null;
|
|
901
1041
|
socialLinks: PublicSiteSocialLink[];
|
|
1042
|
+
/**
|
|
1043
|
+
* Header editorial. These three exist on both shared surfaces so the shape is
|
|
1044
|
+
* stable, but they are Header concepts: the Footer publishes `null` for each.
|
|
1045
|
+
* An unpublished or unusable value is `null` rather than an empty object, so a
|
|
1046
|
+
* consumer has one absent case to handle rather than two.
|
|
1047
|
+
*
|
|
1048
|
+
* Optional so a response projected before these fields existed typechecks.
|
|
1049
|
+
*/
|
|
1050
|
+
office?: PublicSiteHeaderOffice | null;
|
|
1051
|
+
menuEditorial?: PublicSiteHeaderMenuEditorial | null;
|
|
1052
|
+
searchShortcuts?: PublicSiteHeaderSearchShortcuts | null;
|
|
902
1053
|
};
|
|
903
1054
|
export type PublicSiteChromeContentResponse = {
|
|
904
1055
|
data: PublicSiteChromeContent | null;
|
|
@@ -1026,6 +1177,7 @@ export type PublicApiV1RouteMap = {
|
|
|
1026
1177
|
'GET /site-navigation': PublicSiteNavigationResponse;
|
|
1027
1178
|
'GET /site-features': PublicSiteFeaturesResponse;
|
|
1028
1179
|
'GET /sitemap': PublicSitemapResponse;
|
|
1180
|
+
'GET /search': PublicSearchResultsResponse;
|
|
1029
1181
|
'GET /search-suggestions': PublicSearchSuggestionsResponse;
|
|
1030
1182
|
'GET /tour-categories': PublicTourCategoryListResponse;
|
|
1031
1183
|
'GET /tours': PublicTourListResponse;
|
|
@@ -1124,6 +1276,12 @@ export type GetPublicSearchSuggestionsParams = {
|
|
|
1124
1276
|
limit?: number;
|
|
1125
1277
|
type?: 'tour' | 'destination';
|
|
1126
1278
|
};
|
|
1279
|
+
export type GetPublicSearchResultsParams = {
|
|
1280
|
+
q: string;
|
|
1281
|
+
/** Maximum items per group. 1 through 25; defaults to 10 server-side. Group totals still report every match. */
|
|
1282
|
+
limit?: number;
|
|
1283
|
+
type?: 'tour' | 'destination';
|
|
1284
|
+
};
|
|
1127
1285
|
export type ListPublicTourCategoriesParams = {
|
|
1128
1286
|
limit?: number;
|
|
1129
1287
|
cursor?: string;
|