@surfiran/public-api-client 0.34.0 → 0.36.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/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Public API Client
2
2
 
3
- Zero-runtime-dependency TypeScript types and fetch client for SURFIRAN Public API V1. The checked-in package-local contract snapshot is OpenAPI `v0.22.0`.
3
+ Zero-runtime-dependency TypeScript types and fetch client for SURFIRAN Public API V1, generated from a checked-in package-local contract snapshot.
4
4
 
5
5
  Repository: `SURFIRAN/surfiran-public-api-client`
6
6
 
@@ -18,7 +18,7 @@ The repository split and production cutover are complete. This repository is the
18
18
 
19
19
  `contract/public-api-v1.yaml` is the package-local immutable snapshot used for generation. `contract/provenance.json` records its source identity, immutable source revision, checksums, and, for standalone releases, the exact API artifact identity.
20
20
 
21
- The checked-in `0.31.0` snapshot and provenance come from the `SURFIRAN/surfiran-crm-api` main-branch release `public-api-contract/ce5f1c0231e47dd3d438d8e43cdeab899b5b9d45-37219746311-1`. Published `0.20.0` and earlier keep their historical provenance, which may still reference the former monorepo owner or path. Do not rewrite an already published package version solely to rename historical provenance.
21
+ The package version, contract version, source commit, and API release identity of the checked-in snapshot are recorded in `package.json`, `info.version` of the snapshot, and `contract/provenance.json`; read them there rather than from this README. Every current snapshot comes from a `SURFIRAN/surfiran-crm-api` main-branch contract release. Published `0.20.0` and earlier keep their historical provenance, which may still reference the former monorepo owner or path. Do not rewrite an already published package version solely to rename historical provenance.
22
22
 
23
23
  New client versions must consume the exact immutable GitHub Release assets produced from a successful `SURFIRAN/surfiran-crm-api` main-branch CI run. The release tag is `public-api-contract/<source SHA>-<run ID>-<attempt>` and contains only `public-api-v1.yaml` and `manifest.json`. Publication verifies the immutable release and both GitHub release attestations, the tag SHA, final successful source run, asset digests, manifest identity, and checked-in snapshot bytes. If any check is unavailable, publication stops. Pull-request artifacts are verification evidence only and are not valid release inputs. This repository must never read another repository's private working tree at build time.
24
24
 
@@ -95,6 +95,6 @@ Published versions are immutable. Rollback means pinning consumers to the previo
95
95
  - This README owns local setup, contract synchronization, CI, publication, and rollback guidance.
96
96
  - [AGENTS.md](AGENTS.md) owns agent operating instructions.
97
97
  - [Repository boundaries and documentation governance](https://github.com/SURFIRAN/surfiran-crm-api/blob/main/docs/architecture/REPOSITORY_BOUNDARIES.md) own shared architecture and current system state.
98
- - [Contract snapshot](contract/public-api-v1.yaml) and [provenance](contract/provenance.json) are immutable evidence for `0.31.0`, not current API ownership authorities.
98
+ - [Contract snapshot](contract/public-api-v1.yaml) and [provenance](contract/provenance.json) are immutable evidence for the package version recorded in `package.json`, not current API ownership authorities.
99
99
 
100
100
  Update existing guidance instead of creating duplicate contract or publication authorities. Preserve the historical snapshot, provenance, and generated bytes until a reviewed new package version imports a verified API artifact.
package/dist/client.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { GetPublicSearchResultsParams, GetPublicDestinationParams, GetPublicSearchSuggestionsParams, GetPublicSitemapParams, GetPublicTourPreviewParams, GetPublicTravelKnowledgeParams, ListPublicDeparturesParams, ListPublicDestinationsParams, ListPublicTourAccommodationsParams, ListPublicTourAvailabilityParams, ListPublicTourCategoriesParams, ListPublicTourExperiencesParams, ListPublicTravellerStoriesParams, ListPublicTourQuestionsParams, ListPublicTourReviewsParams, ListPublicSiteReviewsParams, ListPublicTourItineraryParams, ListPublicTourRouteParams, ListPublicToursParams, GetPublicTourParams, PublicApiResult, PublicAvailabilityListResponse, PublicBookingIntentRequest, PublicBookingIntentResponse, PublicBrochureLeadRequest, PublicBrochureLeadResponse, PublicDepartureListResponse, PublicDestinationDetailResponse, PublicDestinationListResponse, PublicHomepageResponse, PublicInquiryRequest, PublicInquiryResponse, PublicSupportRequest, PublicSupportRequestResponse, PublicMarketingUnsubscribeRequest, PublicMarketingUnsubscribeResponse, PublicNewsletterSubscriptionOptions, PublicNewsletterSubscriptionRequest, PublicNewsletterSubscriptionResponse, PublicSearchResultsResponse, PublicSearchSuggestionsResponse, PublicSitemapResponse, PublicSiteChromeContentResponse, PublicSiteFeaturesResponse, PublicBotProtectionResponse, PublicTravelInsuranceRatesResponse, PublicLocaleRegistryResponse, PublicLocalizationCandidatePreviewResponse, PublicLocalizationReleaseResponse, PublicUiCatalogResponse, LocalizationReleaseId, LocalizationPreviewCapability, UiCatalogSnapshotId, PublicSiteHomeContentResponse, PublicSiteNavigationResponse, PublicSiteTrustPageContentResponse, PublicSiteBlockPageContentResponse, PublicTourAccommodationListResponse, PublicTourCategoryListResponse, PublicTourDetailResponse, PublicTourExperienceListResponse, PublicTravellerStoryListResponse, PublicTourListResponse, PublicTourQuestionListResponse, PublicTourReviewsSummaryResponse, PublicTourReviewListResponse, PublicSiteReviewListResponse, PublicTourItineraryResponse, PublicTourRouteResponse, PublicTravelKnowledgeResponse, PublicTravelStatusResponse } from './types.js';
1
+ import type { GetPublicSearchResultsParams, GetPublicDestinationParams, GetPublicSearchSuggestionsParams, GetPublicSitemapParams, GetPublicTourPreviewParams, GetPublicTravelKnowledgeParams, ListPublicDeparturesParams, ListPublicDestinationsParams, ListPublicTourAccommodationsParams, ListPublicTourAvailabilityParams, ListPublicTourCategoriesParams, ListPublicTourExperiencesParams, ListPublicTravellerStoriesParams, ListPublicTourQuestionsParams, ListPublicTourReviewsParams, ListPublicSiteReviewsParams, ListPublicTourItineraryParams, ListPublicTourRouteParams, ListPublicToursParams, GetPublicTourParams, PublicApiResult, PublicAvailabilityListResponse, PublicBookingIntentRequest, PublicBookingIntentResponse, PublicBrochureLeadRequest, PublicBrochureLeadResponse, PublicDepartureListResponse, PublicDestinationDetailResponse, PublicDestinationListResponse, PublicHomepageResponse, PublicInquiryRequest, PublicInquiryResponse, PublicSupportRequest, PublicSupportRequestResponse, PublicMarketingUnsubscribeRequest, PublicMarketingUnsubscribeResponse, PublicNewsletterSubscriptionOptions, PublicNewsletterSubscriptionRequest, PublicNewsletterSubscriptionResponse, PublicSearchResultsResponse, PublicSearchSuggestionsResponse, PublicSitemapResponse, PublicSiteChromeContentResponse, PublicSiteFeaturesResponse, PublicBotProtectionResponse, PublicTravelInsuranceRatesResponse, PublicLocaleRegistryResponse, PublicLocalizationCandidatePreviewResponse, PublicLocalizationReleaseResponse, PublicUiCatalogResponse, LocalizationReleaseId, LocalizationPreviewCapability, UiCatalogSnapshotId, PublicSiteHomeContentResponse, PublicSiteNavigationResponse, PublicSiteTrustPageContentResponse, PublicSiteBlockPageContentResponse, PublicTourAccommodationListResponse, PublicTourCategoryListResponse, PublicTourDetailResponse, PublicTourPageResponse, PublicTourExperienceListResponse, PublicTravellerStoryListResponse, PublicTourListResponse, PublicTourQuestionListResponse, PublicTourReviewsSummaryResponse, PublicTourReviewListResponse, PublicSiteReviewListResponse, PublicTourItineraryResponse, PublicTourRouteResponse, PublicTravelKnowledgeResponse, PublicTravelStatusResponse } from './types.js';
2
2
  export type PublicApiClientOptions = {
3
3
  baseUrl: string;
4
4
  fetchImpl?: typeof fetch;
@@ -20,6 +20,18 @@ export declare const createPublicApiClient: (options: PublicApiClientOptions) =>
20
20
  * objects) — there is no unauthenticated variant of this call.
21
21
  */
22
22
  getPublicTourPreviewBySlug(slug: string, params: GetPublicTourPreviewParams): Promise<PublicApiResult<PublicTourDetailResponse>>;
23
+ /**
24
+ * One read for the tour detail page: the complete projection with every
25
+ * derived display value computed by the API. Takes the same content
26
+ * `locale` as getPublicTourBySlug.
27
+ */
28
+ getPublicTourPageBySlug(slug: string, params?: GetPublicTourParams): Promise<PublicApiResult<PublicTourPageResponse>>;
29
+ /**
30
+ * Candidate preview of the tour page projection (ADR-0022): the shape of
31
+ * getPublicTourPageBySlug with the unpublished Edition overlaid. `token`
32
+ * is the short-lived signed token minted by the CRM and is required.
33
+ */
34
+ getPublicTourPagePreviewBySlug(slug: string, token: string): Promise<PublicApiResult<PublicTourPageResponse>>;
23
35
  listPublicTourDepartures(slug: string, params?: ListPublicDeparturesParams): Promise<PublicApiResult<PublicDepartureListResponse>>;
24
36
  listPublicTourQuestions(slug: string, params?: ListPublicTourQuestionsParams): Promise<PublicApiResult<PublicTourQuestionListResponse>>;
25
37
  listPublicTourExperiences(slug: string, params?: ListPublicTourExperiencesParams): Promise<PublicApiResult<PublicTourExperienceListResponse>>;
package/dist/client.js CHANGED
@@ -219,6 +219,22 @@ export const createPublicApiClient = (options) => {
219
219
  getPublicTourPreviewBySlug(slug, params) {
220
220
  return requestJson(`${baseUrl}/api/v1/tours/${encodeURIComponent(slug)}/preview?token=${encodeURIComponent(params.token)}`, options);
221
221
  },
222
+ /**
223
+ * One read for the tour detail page: the complete projection with every
224
+ * derived display value computed by the API. Takes the same content
225
+ * `locale` as getPublicTourBySlug.
226
+ */
227
+ getPublicTourPageBySlug(slug, params) {
228
+ return requestJson(`${baseUrl}/api/v1/tours/${encodeURIComponent(slug)}/page${toContentLocaleQueryString(params)}`, options);
229
+ },
230
+ /**
231
+ * Candidate preview of the tour page projection (ADR-0022): the shape of
232
+ * getPublicTourPageBySlug with the unpublished Edition overlaid. `token`
233
+ * is the short-lived signed token minted by the CRM and is required.
234
+ */
235
+ getPublicTourPagePreviewBySlug(slug, token) {
236
+ return requestJson(`${baseUrl}/api/v1/tours/${encodeURIComponent(slug)}/preview/page?token=${encodeURIComponent(token)}`, options);
237
+ },
222
238
  listPublicTourDepartures(slug, params) {
223
239
  return requestJson(`${baseUrl}/api/v1/tours/${encodeURIComponent(slug)}/departures${toPaginationQueryString(params)}`, options);
224
240
  },
@@ -1,7 +1,7 @@
1
- export type GeneratedPublicApiVersion = '0.26.0';
2
- export type GeneratedPublicApiPath = '/booking-intents' | '/booking-intents/{id}' | '/bot-protection' | '/brochure-leads' | '/destinations' | '/destinations/{slug}' | '/homepage' | '/inquiries' | '/locales' | '/localization/previews/{candidateId}' | '/localization/releases/{releaseId}' | '/localization/ui-catalogs/{snapshotId}' | '/marketing-unsubscribes' | '/newsletter/confirm' | '/newsletter/subscriptions' | '/reviews' | '/search' | '/search-suggestions' | '/site-content/about' | '/site-content/accessibility-statement' | '/site-content/booking-cancellation-policy' | '/site-content/contact' | '/site-content/cookie-policy' | '/site-content/destination-iran' | '/site-content/destinations/{country}' | '/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' | '/support-requests' | '/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-insurance/rates' | '/travel-knowledge' | '/travel-status' | '/traveller-stories';
3
- export type GeneratedPublicApiOperation = 'GET /booking-intents/{id}' | 'GET /bot-protection' | 'GET /destinations' | 'GET /destinations/{slug}' | 'GET /homepage' | 'GET /locales' | 'GET /localization/previews/{candidateId}' | 'GET /localization/releases/{releaseId}' | 'GET /localization/ui-catalogs/{snapshotId}' | 'GET /marketing-unsubscribes' | 'GET /newsletter/confirm' | 'GET /reviews' | '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/destination-iran' | 'GET /site-content/destinations/{country}' | '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-insurance/rates' | 'GET /travel-knowledge' | 'GET /travel-status' | 'GET /traveller-stories' | 'POST /booking-intents' | 'POST /brochure-leads' | 'POST /inquiries' | 'POST /marketing-unsubscribes' | 'POST /newsletter/subscriptions' | 'POST /support-requests';
4
- export type GeneratedPublicApiActiveOperation = 'GET /bot-protection' | 'GET /destinations' | 'GET /destinations/{slug}' | 'GET /homepage' | 'GET /locales' | 'GET /localization/previews/{candidateId}' | 'GET /localization/releases/{releaseId}' | 'GET /localization/ui-catalogs/{snapshotId}' | 'GET /marketing-unsubscribes' | 'GET /newsletter/confirm' | 'GET /reviews' | '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/destination-iran' | 'GET /site-content/destinations/{country}' | '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-insurance/rates' | 'GET /travel-knowledge' | 'GET /travel-status' | 'GET /traveller-stories' | 'POST /booking-intents' | 'POST /brochure-leads' | 'POST /inquiries' | 'POST /marketing-unsubscribes' | 'POST /newsletter/subscriptions' | 'POST /support-requests';
1
+ export type GeneratedPublicApiVersion = '0.28.0';
2
+ export type GeneratedPublicApiPath = '/booking-intents' | '/booking-intents/{id}' | '/bot-protection' | '/brochure-leads' | '/destinations' | '/destinations/{slug}' | '/homepage' | '/inquiries' | '/locales' | '/localization/previews/{candidateId}' | '/localization/releases/{releaseId}' | '/localization/ui-catalogs/{snapshotId}' | '/marketing-unsubscribes' | '/newsletter/confirm' | '/newsletter/subscriptions' | '/reviews' | '/search' | '/search-suggestions' | '/site-content/about' | '/site-content/accessibility-statement' | '/site-content/booking-cancellation-policy' | '/site-content/contact' | '/site-content/cookie-policy' | '/site-content/destination-iran' | '/site-content/destinations/{country}' | '/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' | '/support-requests' | '/tour-categories' | '/tours' | '/tours/{slug}' | '/tours/{slug}/accommodations' | '/tours/{slug}/availability' | '/tours/{slug}/departures' | '/tours/{slug}/experiences' | '/tours/{slug}/itinerary' | '/tours/{slug}/page' | '/tours/{slug}/preview' | '/tours/{slug}/preview/page' | '/tours/{slug}/questions' | '/tours/{slug}/reviews' | '/tours/{slug}/reviews-summary' | '/tours/{slug}/route' | '/travel-insurance/rates' | '/travel-knowledge' | '/travel-status' | '/traveller-stories';
3
+ export type GeneratedPublicApiOperation = 'GET /booking-intents/{id}' | 'GET /bot-protection' | 'GET /destinations' | 'GET /destinations/{slug}' | 'GET /homepage' | 'GET /locales' | 'GET /localization/previews/{candidateId}' | 'GET /localization/releases/{releaseId}' | 'GET /localization/ui-catalogs/{snapshotId}' | 'GET /marketing-unsubscribes' | 'GET /newsletter/confirm' | 'GET /reviews' | '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/destination-iran' | 'GET /site-content/destinations/{country}' | '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}/page' | 'GET /tours/{slug}/preview' | 'GET /tours/{slug}/preview/page' | 'GET /tours/{slug}/questions' | 'GET /tours/{slug}/reviews' | 'GET /tours/{slug}/reviews-summary' | 'GET /tours/{slug}/route' | 'GET /travel-insurance/rates' | 'GET /travel-knowledge' | 'GET /travel-status' | 'GET /traveller-stories' | 'POST /booking-intents' | 'POST /brochure-leads' | 'POST /inquiries' | 'POST /marketing-unsubscribes' | 'POST /newsletter/subscriptions' | 'POST /support-requests';
4
+ export type GeneratedPublicApiActiveOperation = 'GET /bot-protection' | 'GET /destinations' | 'GET /destinations/{slug}' | 'GET /homepage' | 'GET /locales' | 'GET /localization/previews/{candidateId}' | 'GET /localization/releases/{releaseId}' | 'GET /localization/ui-catalogs/{snapshotId}' | 'GET /marketing-unsubscribes' | 'GET /newsletter/confirm' | 'GET /reviews' | '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/destination-iran' | 'GET /site-content/destinations/{country}' | '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}/page' | 'GET /tours/{slug}/preview' | 'GET /tours/{slug}/preview/page' | 'GET /tours/{slug}/questions' | 'GET /tours/{slug}/reviews' | 'GET /tours/{slug}/reviews-summary' | 'GET /tours/{slug}/route' | 'GET /travel-insurance/rates' | 'GET /travel-knowledge' | 'GET /travel-status' | 'GET /traveller-stories' | 'POST /booking-intents' | 'POST /brochure-leads' | 'POST /inquiries' | 'POST /marketing-unsubscribes' | 'POST /newsletter/subscriptions' | 'POST /support-requests';
5
5
  export type GeneratedPublicApiBlockedOperation = 'GET /booking-intents/{id}';
6
- export type GeneratedPublicApiOperationId = 'getBookingIntent' | 'getPublicBotProtection' | 'listPublicDestinations' | 'getPublicDestinationBySlug' | 'getPublicHomepage' | 'listPublicLocales' | 'getPublicLocalizationCandidatePreview' | 'getPublicLocalizationRelease' | 'getPublicUiCatalog' | 'redirectPublicMarketingUnsubscribe' | 'confirmPublicNewsletterSubscription' | 'listPublicSiteReviews' | 'getPublicSearchResults' | 'getPublicSearchSuggestions' | 'getPublicSiteContentAbout' | 'getPublicSiteContentAccessibilityStatement' | 'getPublicSiteContentBookingCancellationPolicy' | 'getPublicSiteContentContact' | 'getPublicSiteContentCookiePolicy' | 'getPublicSiteContentDestinationIran' | 'getPublicSiteContentDestinationCountry' | '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' | 'getPublicTravelInsuranceRates' | 'listPublicTravelKnowledge' | 'getPublicTravelStatus' | 'listPublicTravellerStories' | 'createPublicBookingIntent' | 'createPublicBrochureLead' | 'createPublicInquiry' | 'createPublicMarketingUnsubscribe' | 'createPublicNewsletterSubscription' | 'createPublicSupportRequest';
7
- export type GeneratedPublicApiSchemaName = 'BookingIntentConflictErrorResponse' | 'BookingIntentResponse' | 'CanonicalIntakeAttribution' | 'CanonicalIntakeConsent' | 'CreateBookingIntentRequest' | 'CreateBookingIntentSuccessResponse' | 'CreateBrochureLeadRequest' | 'CreateBrochureLeadResponse' | 'CreateInquiryRequest' | 'CreateInquiryResponse' | 'CreateMarketingUnsubscribeRequest' | 'CreateMarketingUnsubscribeResponse' | 'CreateNewsletterSubscriptionRequest' | 'CreateNewsletterSubscriptionResponse' | 'CreateSupportRequestRequest' | 'CreateSupportRequestResponse' | 'GetBookingIntentStatusResponse' | 'NewsletterInvalidEmailError' | 'NewsletterRateLimitError' | 'PaginationMeta' | 'PublicApiAbuseBlockedError' | 'PublicApiBotCheckError' | 'PublicApiError' | 'PublicApiInternalError' | 'PublicApiNotFoundError' | 'PublicApiNotImplementedError' | 'PublicApiRateLimitError' | 'PublicApiTravelStatusUnavailableError' | 'PublicApiValidationError' | 'PublicAvailabilityListItem' | 'PublicAvailabilityListResponse' | 'PublicBookingIntentLinks' | 'PublicBookingIntentPublicStatus' | 'PublicBookingIntentStatus' | 'PublicBotProtectionResponse' | 'PublicCityDestinationContent' | 'PublicCityExperience' | 'PublicCityImage' | 'PublicCityLabelledValue' | 'PublicCityLink' | 'PublicCityNextPlace' | 'PublicCityReason' | 'PublicCityResource' | 'PublicCityRoutePattern' | 'PublicCityStayLink' | 'PublicCmsContentSnapshotId' | 'PublicDepartureListItem' | 'PublicDepartureListResponse' | 'PublicDestinationDetail' | 'PublicDestinationDetailResponse' | 'PublicDestinationListItem' | 'PublicDestinationListResponse' | 'PublicError' | 'PublicErrorEnvelope' | 'PublicHomepageResponse' | 'PublicHomepageSeo' | 'PublicHomepageStats' | 'PublicLocaleRegistryData' | 'PublicLocaleRegistryItem' | 'PublicLocaleRegistryResponse' | 'PublicLocaleTag' | 'PublicLocalizationCandidatePreview' | 'PublicLocalizationCandidatePreviewResponse' | 'PublicLocalizationRelease' | 'PublicLocalizationReleaseId' | 'PublicLocalizationReleaseResponse' | 'PublicLocalizationSnapshotReferences' | 'PublicNavLink' | 'PublicOfficialSourceCard' | 'PublicPriceDisplayByCurrency' | 'PublicSearchResultGroup' | 'PublicSearchResultItem' | 'PublicSearchResultsResponse' | 'PublicSearchSuggestion' | 'PublicSearchSuggestionsResponse' | 'PublicSeo' | 'PublicSiteBlockPageContentResponse' | 'PublicSiteChromeContent' | 'PublicSiteChromeContentResponse' | 'PublicSiteCta' | 'PublicSiteFeaturesResponse' | 'PublicSiteFeatureStates' | 'PublicSiteFooterNavGroup' | 'PublicSiteFooterNavGroupLink' | 'PublicSiteFooterPaymentNote' | 'PublicSiteFooterSupportBand' | 'PublicSiteHeaderMenuCategory' | 'PublicSiteHeaderMenuEditorial' | 'PublicSiteHeaderOffice' | 'PublicSiteHeaderQuickLink' | 'PublicSiteHeaderSearchShortcuts' | 'PublicSiteHomeContent' | 'PublicSiteHomeContentResponse' | 'PublicSiteHomeSection' | 'PublicSitemapEntry' | 'PublicSitemapResponse' | 'PublicSiteNavigationResponse' | 'PublicSiteNavItem' | 'PublicSiteReviewListResponse' | 'PublicSiteRouteKey' | 'PublicSiteSocialLink' | 'PublicSiteTrustPageContent' | 'PublicSiteTrustPageContentResponse' | 'PublicSiteTrustPageSeo' | 'PublicSiteTrustSection' | 'PublicSiteTrustTitledItem' | 'PublicStaticLink' | 'PublicSurfiranOperationalUpdate' | 'PublicTourAccommodationListItem' | 'PublicTourAccommodationListResponse' | 'PublicTourCatalogDepartureSummary' | 'PublicTourCatalogFacetOption' | 'PublicTourCatalogMetadata' | 'PublicTourCatalogStartingFrom' | 'PublicTourCategoryListItem' | 'PublicTourCategoryListResponse' | 'PublicTourDetail' | 'PublicTourDetailEditorial' | 'PublicTourDetailResponse' | 'PublicTourExperienceFrame' | 'PublicTourExperienceListItem' | 'PublicTourExperienceListResponse' | 'PublicTourItineraryDay' | 'PublicTourItineraryResponse' | 'PublicTourListItem' | 'PublicTourListResponse' | 'PublicTourMediaItem' | 'PublicTourQuestionListItem' | 'PublicTourQuestionListResponse' | 'PublicTourRatingBreakdownItem' | 'PublicTourReviewListItem' | 'PublicTourReviewListResponse' | 'PublicTourReviewsAggregate' | 'PublicTourReviewsSummary' | 'PublicTourReviewsSummaryResponse' | 'PublicTourRouteResponse' | 'PublicTourRouteStop' | 'PublicTourTailorJourney' | 'PublicTravelInsuranceAgeBand' | 'PublicTravelInsuranceDurationBand' | 'PublicTravelInsuranceRates' | 'PublicTravelInsuranceRatesResponse' | 'PublicTravelKnowledgeItem' | 'PublicTravelKnowledgeResponse' | 'PublicTravellerStoryListItem' | 'PublicTravellerStoryListResponse' | 'PublicTravelStatusCorrectionNotice' | 'PublicTravelStatusFreshness' | 'PublicTravelStatusHandoff' | 'PublicTravelStatusResponse' | 'PublicTravelStatusReviewerLabel' | 'PublicTravelStatusSection' | 'PublicTravelStatusState' | 'PublicTripBrief' | 'PublicUiCatalog' | 'PublicUiCatalogFallbackSummary' | 'PublicUiCatalogMessage' | 'PublicUiCatalogResponse' | 'PublicUiCatalogSnapshotId' | 'SupportRequestRecaptchaEvidence';
6
+ export type GeneratedPublicApiOperationId = 'getBookingIntent' | 'getPublicBotProtection' | 'listPublicDestinations' | 'getPublicDestinationBySlug' | 'getPublicHomepage' | 'listPublicLocales' | 'getPublicLocalizationCandidatePreview' | 'getPublicLocalizationRelease' | 'getPublicUiCatalog' | 'redirectPublicMarketingUnsubscribe' | 'confirmPublicNewsletterSubscription' | 'listPublicSiteReviews' | 'getPublicSearchResults' | 'getPublicSearchSuggestions' | 'getPublicSiteContentAbout' | 'getPublicSiteContentAccessibilityStatement' | 'getPublicSiteContentBookingCancellationPolicy' | 'getPublicSiteContentContact' | 'getPublicSiteContentCookiePolicy' | 'getPublicSiteContentDestinationIran' | 'getPublicSiteContentDestinationCountry' | 'getPublicSiteContentFaqs' | 'getPublicSiteContentFooter' | 'getPublicSiteContentHeader' | 'getPublicSiteContentHealthSafetySupport' | 'getPublicSiteContentHome' | 'getPublicSiteContentIranTravelStatus' | 'getPublicSiteContentIranVisaInformation' | 'getPublicSiteContentMoneyInIran' | 'getPublicSiteContentPrivacy' | 'getPublicSiteContentResponsibleTravel' | 'getPublicSiteContentTailorMade' | 'getPublicSiteContentTerms' | 'getPublicSiteContentTravelInsurance' | 'getPublicSiteFeatures' | 'getPublicSiteNavigation' | 'getPublicSitemap' | 'listPublicTourCategories' | 'listPublicTours' | 'getPublicTourBySlug' | 'listPublicTourAccommodations' | 'listPublicTourAvailability' | 'listPublicTourDepartures' | 'listPublicTourExperiences' | 'listPublicTourItinerary' | 'getPublicTourPageBySlug' | 'getPublicTourPreviewBySlug' | 'getPublicTourPagePreviewBySlug' | 'listPublicTourQuestions' | 'listPublicTourReviews' | 'getPublicTourReviewsSummary' | 'listPublicTourRoute' | 'getPublicTravelInsuranceRates' | 'listPublicTravelKnowledge' | 'getPublicTravelStatus' | 'listPublicTravellerStories' | 'createPublicBookingIntent' | 'createPublicBrochureLead' | 'createPublicInquiry' | 'createPublicMarketingUnsubscribe' | 'createPublicNewsletterSubscription' | 'createPublicSupportRequest';
7
+ export type GeneratedPublicApiSchemaName = 'BookingIntentConflictErrorResponse' | 'BookingIntentResponse' | 'CanonicalIntakeAttribution' | 'CanonicalIntakeConsent' | 'CreateBookingIntentRequest' | 'CreateBookingIntentSuccessResponse' | 'CreateBrochureLeadRequest' | 'CreateBrochureLeadResponse' | 'CreateInquiryRequest' | 'CreateInquiryResponse' | 'CreateMarketingUnsubscribeRequest' | 'CreateMarketingUnsubscribeResponse' | 'CreateNewsletterSubscriptionRequest' | 'CreateNewsletterSubscriptionResponse' | 'CreateSupportRequestRequest' | 'CreateSupportRequestResponse' | 'GetBookingIntentStatusResponse' | 'NewsletterInvalidEmailError' | 'NewsletterRateLimitError' | 'PaginationMeta' | 'PublicApiAbuseBlockedError' | 'PublicApiBotCheckError' | 'PublicApiError' | 'PublicApiInternalError' | 'PublicApiNotFoundError' | 'PublicApiNotImplementedError' | 'PublicApiRateLimitError' | 'PublicApiTravelStatusUnavailableError' | 'PublicApiValidationError' | 'PublicAvailabilityListItem' | 'PublicAvailabilityListResponse' | 'PublicAvailabilityState' | 'PublicBookingIntentLinks' | 'PublicBookingIntentPublicStatus' | 'PublicBookingIntentStatus' | 'PublicBotProtectionResponse' | 'PublicCityDestinationContent' | 'PublicCityExperience' | 'PublicCityImage' | 'PublicCityLabelledValue' | 'PublicCityLink' | 'PublicCityNextPlace' | 'PublicCityReason' | 'PublicCityResource' | 'PublicCityRoutePattern' | 'PublicCityStayLink' | 'PublicCmsContentSnapshotId' | 'PublicDepartureListItem' | 'PublicDepartureListResponse' | 'PublicDestinationDetail' | 'PublicDestinationDetailResponse' | 'PublicDestinationListItem' | 'PublicDestinationListResponse' | 'PublicError' | 'PublicErrorEnvelope' | 'PublicHomepageResponse' | 'PublicHomepageSeo' | 'PublicHomepageStats' | 'PublicLocaleRegistryData' | 'PublicLocaleRegistryItem' | 'PublicLocaleRegistryResponse' | 'PublicLocaleTag' | 'PublicLocalizationCandidatePreview' | 'PublicLocalizationCandidatePreviewResponse' | 'PublicLocalizationRelease' | 'PublicLocalizationReleaseId' | 'PublicLocalizationReleaseResponse' | 'PublicLocalizationSnapshotReferences' | 'PublicNavLink' | 'PublicOfficialSourceCard' | 'PublicPriceDisplayByCurrency' | 'PublicSearchResultGroup' | 'PublicSearchResultItem' | 'PublicSearchResultsResponse' | 'PublicSearchSuggestion' | 'PublicSearchSuggestionsResponse' | 'PublicSeo' | 'PublicSiteBlockPageContentResponse' | 'PublicSiteChromeContent' | 'PublicSiteChromeContentResponse' | 'PublicSiteCta' | 'PublicSiteFeaturesResponse' | 'PublicSiteFeatureStates' | 'PublicSiteFooterNavGroup' | 'PublicSiteFooterNavGroupLink' | 'PublicSiteFooterPaymentNote' | 'PublicSiteFooterSupportBand' | 'PublicSiteHeaderMenuCategory' | 'PublicSiteHeaderMenuEditorial' | 'PublicSiteHeaderOffice' | 'PublicSiteHeaderQuickLink' | 'PublicSiteHeaderSearchShortcuts' | 'PublicSiteHomeContent' | 'PublicSiteHomeContentResponse' | 'PublicSiteHomeSection' | 'PublicSitemapEntry' | 'PublicSitemapResponse' | 'PublicSiteNavigationResponse' | 'PublicSiteNavItem' | 'PublicSiteReviewListResponse' | 'PublicSiteRouteKey' | 'PublicSiteSocialLink' | 'PublicSiteTrustPageContent' | 'PublicSiteTrustPageContentResponse' | 'PublicSiteTrustPageSeo' | 'PublicSiteTrustSection' | 'PublicSiteTrustTitledItem' | 'PublicStaticLink' | 'PublicSurfiranOperationalUpdate' | 'PublicTourAccommodationListItem' | 'PublicTourAccommodationListResponse' | 'PublicTourCatalogDepartureSummary' | 'PublicTourCatalogFacetOption' | 'PublicTourCatalogMetadata' | 'PublicTourCatalogStartingFrom' | 'PublicTourCategoryListItem' | 'PublicTourCategoryListResponse' | 'PublicTourDetail' | 'PublicTourDetailEditorial' | 'PublicTourDetailResponse' | 'PublicTourExperienceFrame' | 'PublicTourExperienceListItem' | 'PublicTourExperienceListResponse' | 'PublicTourItineraryDay' | 'PublicTourItineraryResponse' | 'PublicTourListItem' | 'PublicTourListResponse' | 'PublicTourMediaItem' | 'PublicTourPage' | 'PublicTourPageBadge' | 'PublicTourPageBrochure' | 'PublicTourPageByline' | 'PublicTourPageChecked' | 'PublicTourPageCredibility' | 'PublicTourPageDeparture' | 'PublicTourPageDeparturesEmpty' | 'PublicTourPageExperience' | 'PublicTourPageExperienceFrame' | 'PublicTourPageFact' | 'PublicTourPageGalleryGroup' | 'PublicTourPageHero' | 'PublicTourPageImage' | 'PublicTourPageItineraryDay' | 'PublicTourPageKeyValue' | 'PublicTourPageKnowExtra' | 'PublicTourPageMap' | 'PublicTourPageMonth' | 'PublicTourPageOpenGraphImage' | 'PublicTourPageOperator' | 'PublicTourPagePlace' | 'PublicTourPagePriceFrom' | 'PublicTourPagePrivateOverride' | 'PublicTourPageQuestion' | 'PublicTourPageQuote' | 'PublicTourPageRelatedCard' | 'PublicTourPageResponse' | 'PublicTourPageReviewItem' | 'PublicTourPageReviewReply' | 'PublicTourPageReviews' | 'PublicTourPageReviewSubRating' | 'PublicTourPageRoomOption' | 'PublicTourPageRoomPriceByCurrency' | 'PublicTourPageStay' | 'PublicTourPageStop' | 'PublicTourPageTailorBand' | 'PublicTourPageTitledBody' | 'PublicTourPageVideo' | 'PublicTourQuestionListItem' | 'PublicTourQuestionListResponse' | 'PublicTourRatingBreakdownItem' | 'PublicTourReviewListItem' | 'PublicTourReviewListResponse' | 'PublicTourReviewsAggregate' | 'PublicTourReviewsSummary' | 'PublicTourReviewsSummaryResponse' | 'PublicTourRouteResponse' | 'PublicTourRouteStop' | 'PublicTourTailorJourney' | 'PublicTravelInsuranceAgeBand' | 'PublicTravelInsuranceDurationBand' | 'PublicTravelInsuranceRates' | 'PublicTravelInsuranceRatesResponse' | 'PublicTravelKnowledgeItem' | 'PublicTravelKnowledgeResponse' | 'PublicTravellerStoryListItem' | 'PublicTravellerStoryListResponse' | 'PublicTravelStatusCorrectionNotice' | 'PublicTravelStatusFreshness' | 'PublicTravelStatusHandoff' | 'PublicTravelStatusResponse' | 'PublicTravelStatusReviewerLabel' | 'PublicTravelStatusSection' | 'PublicTravelStatusState' | 'PublicTripBrief' | 'PublicUiCatalog' | 'PublicUiCatalogFallbackSummary' | 'PublicUiCatalogMessage' | 'PublicUiCatalogResponse' | 'PublicUiCatalogSnapshotId' | 'SupportRequestRecaptchaEvidence';
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, PublicTourRegion, PublicTourDetail, PublicTourDetailEditorial, PublicDepartureListItem, PublicAvailabilityStatus, PublicAvailabilityListItem, PublicAvailabilityListResponse, PublicDestinationListItem, PublicCityDestinationContent, PublicCityExperience, PublicCityImage, PublicCityLabelledValue, PublicCityLink, PublicCityNextPlace, PublicCityReason, PublicCityResource, PublicCityStayLink, PublicDestinationDetail, PublicTourListResponse, PublicTourCatalogMetadata, PublicTourCatalogFacetKey, PublicTourCatalogFacetOption, PublicTourCatalogSort, PublicTourCatalogStartingFrom, PublicTourCatalogDepartureSummary, PublicTourDetailResponse, PublicDepartureListResponse, PublicDestinationListResponse, PublicDestinationDetailResponse, PublicApiResult, ListPublicToursParams, GetPublicTourParams, GetPublicDestinationParams, PublicContentLocale, GetPublicTourPreviewParams, ListPublicDeparturesParams, ListPublicTourAvailabilityParams, ListPublicDestinationsParams, PublicInquiryRequest, PublicTourTailorJourney, PublicInquiryResponse, PublicSupportRequestCategory, PublicSupportRequest, PublicSupportRequestRecaptcha, PublicSupportRequestResponse, PublicMarketingUnsubscribeRequest, PublicMarketingUnsubscribeResponse, PublicNewsletterSubscriptionSource, PublicNewsletterSubscriptionLocale, PublicNewsletterSubscriptionRequest, PublicNewsletterSubscriptionResponse, PublicNewsletterSubscriptionOptions, 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, PublicSiteFooterNavGroupLink, PublicSiteFooterNavGroup, PublicSiteFooterSupportBand, PublicSiteFooterPaymentNote, PublicSiteChromeContent, PublicSiteChromeContentResponse, PublicSiteFeatureStates, PublicSiteFeaturesResponse, PublicBotCheckErrorCode, PublicBotProtectionRecaptcha, PublicBotProtectionResponse, PublicTravelInsuranceAgeBand, PublicTravelInsuranceDurationBand, PublicTravelInsuranceRates, PublicTravelInsuranceRatesResponse, LocaleTag, LocalizationReleaseId, UiCatalogSnapshotId, CmsContentSnapshotId, PublicLocaleRegistryItem, PublicLocaleRegistryResponse, PublicLocalizationRelease, PublicLocalizationReleaseResponse, PublicUiCatalogMessage, PublicUiCatalog, PublicUiCatalogResponse, PublicSiteTrustSectionType, PublicSiteTrustTitledItem, PublicSiteTrustParagraphGroup, PublicSiteTrustTitledItemList, PublicSiteTrustBulletList, PublicSiteTrustSection, PublicSiteTrustPageSeo, PublicSiteTrustPageContent, PublicSiteTrustPageContentResponse, PublicSiteBlock, PublicSiteBlockPageContent, PublicSiteBlockPageContentResponse, 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, PublicSiteReviewListResponse, ListPublicSiteReviewsParams, PublicTourReviewsLimit, ListPublicTourReviewsParams, PublicTourRouteStop, PublicRouteTransportMode, 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, PublicTourRegion, PublicTourDetail, PublicTourDetailEditorial, PublicDepartureListItem, PublicAvailabilityStatus, PublicAvailabilityListItem, PublicAvailabilityListResponse, PublicDestinationListItem, PublicCityDestinationContent, PublicCityExperience, PublicCityImage, PublicCityLabelledValue, PublicCityLink, PublicCityNextPlace, PublicCityReason, PublicCityResource, PublicCityStayLink, PublicDestinationDetail, PublicTourListResponse, PublicTourCatalogMetadata, PublicTourCatalogFacetKey, PublicTourCatalogFacetOption, PublicTourCatalogSort, PublicTourCatalogStartingFrom, PublicTourCatalogDepartureSummary, PublicTourDetailResponse, PublicAvailabilityState, PublicTourPageFormat, PublicTourPagePrivateOption, PublicTourPageLeg, PublicTourPageMeal, PublicTourPageKnowSlot, PublicTourPageBadgeTone, PublicTourPageFactKey, PublicTourPageFactIcon, PublicTourPageGalleryKey, PublicTourPageRoomOptionId, PublicTourPageImage, PublicTourPageKeyValue, PublicTourPageBadge, PublicTourPageOpenGraphImage, PublicTourPageByline, PublicTourPageChecked, PublicTourPagePrivateOverride, PublicTourPageFact, PublicTourPageHero, PublicTourPageVideo, PublicTourPageQuote, PublicTourPageGalleryGroup, PublicTourPageExperienceFrame, PublicTourPageExperience, PublicTourPageMap, PublicTourPageStop, PublicTourPageItineraryDay, PublicTourPagePlace, PublicTourPageStay, PublicTourPageTitledBody, PublicTourPageDeparturesEmpty, PublicTourPageMonth, PublicTourPageRoomOption, PublicTourPageRoomPriceByCurrency, PublicTourPageDeparture, PublicTourPagePriceFrom, PublicTourPageReviewSubRating, PublicTourPageReviewReply, PublicTourPageReviewItem, PublicTourPageReviews, PublicTourPageQuestion, PublicTourPageKnowExtra, PublicTourPageCredibility, PublicTourPageOperator, PublicTourPageTailorBand, PublicTourPageBrochure, PublicTourPageRelatedCard, PublicTourPage, PublicTourPageResponse, PublicDepartureListResponse, PublicDestinationListResponse, PublicDestinationDetailResponse, PublicApiResult, ListPublicToursParams, GetPublicTourParams, GetPublicDestinationParams, PublicContentLocale, GetPublicTourPreviewParams, ListPublicDeparturesParams, ListPublicTourAvailabilityParams, ListPublicDestinationsParams, PublicInquiryRequest, PublicTourTailorJourney, PublicInquiryResponse, PublicSupportRequestCategory, PublicSupportRequest, PublicSupportRequestRecaptcha, PublicSupportRequestResponse, PublicMarketingUnsubscribeRequest, PublicMarketingUnsubscribeResponse, PublicNewsletterSubscriptionSource, PublicNewsletterSubscriptionLocale, PublicNewsletterSubscriptionRequest, PublicNewsletterSubscriptionResponse, PublicNewsletterSubscriptionOptions, 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, PublicSiteFooterNavGroupLink, PublicSiteFooterNavGroup, PublicSiteFooterSupportBand, PublicSiteFooterPaymentNote, PublicSiteChromeContent, PublicSiteChromeContentResponse, PublicSiteFeatureStates, PublicSiteFeaturesResponse, PublicBotCheckErrorCode, PublicBotProtectionRecaptcha, PublicBotProtectionResponse, PublicTravelInsuranceAgeBand, PublicTravelInsuranceDurationBand, PublicTravelInsuranceRates, PublicTravelInsuranceRatesResponse, LocaleTag, LocalizationReleaseId, UiCatalogSnapshotId, CmsContentSnapshotId, PublicLocaleRegistryItem, PublicLocaleRegistryResponse, PublicLocalizationRelease, PublicLocalizationReleaseResponse, PublicUiCatalogMessage, PublicUiCatalog, PublicUiCatalogResponse, PublicSiteTrustSectionType, PublicSiteTrustTitledItem, PublicSiteTrustParagraphGroup, PublicSiteTrustTitledItemList, PublicSiteTrustBulletList, PublicSiteTrustSection, PublicSiteTrustPageSeo, PublicSiteTrustPageContent, PublicSiteTrustPageContentResponse, PublicSiteBlock, PublicSiteBlockPageContent, PublicSiteBlockPageContentResponse, 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, PublicSiteReviewListResponse, ListPublicSiteReviewsParams, PublicTourReviewsLimit, ListPublicTourReviewsParams, PublicTourRouteStop, PublicRouteTransportMode, 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
@@ -71,6 +71,8 @@ export type PublicPriceDisplayByCurrency = {
71
71
  */
72
72
  export type PublicTourRegion = 'iran' | 'beyond-iran';
73
73
  export type PublicTourListItem = {
74
+ /** Tour-level six-state availability. */
75
+ availabilityState: PublicAvailabilityState;
74
76
  /** Published dates, independent of capacity; present in catalog mode. */
75
77
  departureSummary?: PublicTourCatalogDepartureSummary;
76
78
  id: number;
@@ -302,6 +304,9 @@ export type PublicDepartureListItem = {
302
304
  priceDisplay: string | null;
303
305
  currency: string | null;
304
306
  bookingStatus: string | null;
307
+ state: PublicAvailabilityState;
308
+ /** Places left, published only for the limited state (1 to 4); otherwise null. */
309
+ left: number | null;
305
310
  };
306
311
  export type PublicTourQuestionListItem = {
307
312
  id: number;
@@ -451,6 +456,9 @@ export type PublicAvailabilityListItem = {
451
456
  availabilityLabel?: string;
452
457
  capacityStatus: PublicAvailabilityStatus;
453
458
  bookingStatus: 'open' | 'closed' | null;
459
+ state: PublicAvailabilityState;
460
+ /** Places left, published only for the limited state (1 to 4); otherwise null. */
461
+ left: number | null;
454
462
  currency: string | null;
455
463
  priceDisplay: string | null;
456
464
  priceDisplayByCurrency: PublicPriceDisplayByCurrency;
@@ -693,6 +701,366 @@ export type PublicTourCatalogSort = 'departure-soonest' | 'duration-asc' | 'dura
693
701
  export type PublicTourDetailResponse = {
694
702
  data: PublicTourDetail;
695
703
  };
704
+ /**
705
+ * Six-state availability from the API's single normaliser. At tour level,
706
+ * dates means a group tour with no offered departure (new dates to come, no
707
+ * bookable price).
708
+ */
709
+ export type PublicAvailabilityState = 'available' | 'limited' | 'soldout' | 'dates' | 'request' | 'unpublished';
710
+ /**
711
+ * Tour detail page projection (GET /tours/{slug}/page). Every property is
712
+ * always present: an absent optional value is null and an empty list is [].
713
+ * Money is a number in major units of the record's currency. Display strings
714
+ * are finished text; consumers never recompute them.
715
+ */
716
+ export type PublicTourPageFormat = 'group' | 'private';
717
+ export type PublicTourPagePrivateOption = 'exact' | 'similar' | 'none';
718
+ export type PublicTourPageLeg = 'start' | 'road' | 'flight';
719
+ export type PublicTourPageMeal = 'B' | 'L' | 'D';
720
+ export type PublicTourPageKnowSlot = 'visa' | 'money' | 'dress' | 'connectivity' | 'safety';
721
+ export type PublicTourPageBadgeTone = 'brand' | 'neutral';
722
+ export type PublicTourPageFactKey = 'Duration' | 'Group size' | 'Pace' | 'Comfort' | 'Guide' | 'Start / end';
723
+ export type PublicTourPageFactIcon = 'clock' | 'people' | 'route' | 'bed' | 'globe' | 'pin';
724
+ export type PublicTourPageGalleryKey = 'route' | 'people' | 'activities' | 'stay' | 'transport';
725
+ export type PublicTourPageRoomOptionId = 'twin' | 'single';
726
+ export type PublicTourPageImage = {
727
+ img: string;
728
+ alt: string;
729
+ pos: string;
730
+ caption: string | null;
731
+ };
732
+ export type PublicTourPageKeyValue = {
733
+ k: string;
734
+ v: string;
735
+ };
736
+ export type PublicTourPageBadge = {
737
+ label: string;
738
+ tone: PublicTourPageBadgeTone;
739
+ };
740
+ export type PublicTourPageOpenGraphImage = {
741
+ url: string;
742
+ w: number;
743
+ h: number;
744
+ alt: string;
745
+ };
746
+ export type PublicTourPageByline = {
747
+ name: string;
748
+ href: string;
749
+ role: string | null;
750
+ };
751
+ export type PublicTourPageChecked = {
752
+ iso: string;
753
+ label: string;
754
+ };
755
+ export type PublicTourPagePrivateOverride = {
756
+ title: string;
757
+ body: string;
758
+ bodyLong: string | null;
759
+ cta: string;
760
+ href: string;
761
+ };
762
+ export type PublicTourPageFact = {
763
+ k: PublicTourPageFactKey;
764
+ v: string;
765
+ note: string | null;
766
+ icon: PublicTourPageFactIcon;
767
+ };
768
+ export type PublicTourPageHero = {
769
+ main: PublicTourPageImage | null;
770
+ sideA: PublicTourPageImage | null;
771
+ sideB: PublicTourPageImage | null;
772
+ };
773
+ export type PublicTourPageVideo = {
774
+ label: string;
775
+ aria: string;
776
+ url: string;
777
+ posterUrl: string | null;
778
+ };
779
+ export type PublicTourPageQuote = {
780
+ text: string;
781
+ author: string | null;
782
+ score: number;
783
+ };
784
+ export type PublicTourPageGalleryGroup = {
785
+ key: PublicTourPageGalleryKey;
786
+ label: string;
787
+ note: string | null;
788
+ items: PublicTourPageImage[];
789
+ };
790
+ /** One frame of an experience story: a photograph, or a placeholder note while footage is awaited (img null). */
791
+ export type PublicTourPageExperienceFrame = {
792
+ img: string | null;
793
+ alt: string | null;
794
+ pos: string | null;
795
+ note: string | null;
796
+ caption: string | null;
797
+ };
798
+ export type PublicTourPageExperience = {
799
+ title: string;
800
+ meta: string;
801
+ badge: string;
802
+ day: number | null;
803
+ frames: PublicTourPageExperienceFrame[];
804
+ };
805
+ export type PublicTourPageMap = {
806
+ route: boolean;
807
+ img: string | null;
808
+ alt: string;
809
+ };
810
+ export type PublicTourPageStop = {
811
+ name: string;
812
+ meta: string | null;
813
+ lat: number | null;
814
+ lon: number | null;
815
+ leg: PublicTourPageLeg | null;
816
+ nights: number | null;
817
+ };
818
+ export type PublicTourPageItineraryDay = {
819
+ n: number;
820
+ title: string;
821
+ meta: string | null;
822
+ meals: PublicTourPageMeal[];
823
+ body: string;
824
+ rows: PublicTourPageKeyValue[];
825
+ img: string | null;
826
+ alt: string | null;
827
+ pos: string | null;
828
+ };
829
+ export type PublicTourPagePlace = {
830
+ city: string;
831
+ country: string;
832
+ airport: string | null;
833
+ };
834
+ export type PublicTourPageStay = {
835
+ name: string;
836
+ note: string | null;
837
+ nights: number | null;
838
+ nightsLabel: string;
839
+ };
840
+ export type PublicTourPageTitledBody = {
841
+ title: string;
842
+ body: string;
843
+ };
844
+ export type PublicTourPageDeparturesEmpty = {
845
+ title: string;
846
+ body: string;
847
+ cta: string;
848
+ href: string;
849
+ note: string | null;
850
+ };
851
+ export type PublicTourPageMonth = {
852
+ key: string;
853
+ label: string;
854
+ };
855
+ /** Per-currency display strings for the departure room figures, matching twin and single. */
856
+ export type PublicTourPageRoomPriceByCurrency = {
857
+ twin: PublicPriceDisplayByCurrency | null;
858
+ single: PublicPriceDisplayByCurrency | null;
859
+ };
860
+ export type PublicTourPageRoomOption = {
861
+ id: PublicTourPageRoomOptionId;
862
+ label: string;
863
+ note: string;
864
+ base: PublicTourPageRoomOptionId;
865
+ };
866
+ export type PublicTourPageDeparture = {
867
+ id: string;
868
+ departureId: number;
869
+ startDate: string;
870
+ endDate: string;
871
+ iso: string;
872
+ startLabel: string;
873
+ endLabel: string;
874
+ range: string;
875
+ dow: string;
876
+ month: string;
877
+ monthLabel: string;
878
+ monthShort: string;
879
+ state: PublicAvailabilityState;
880
+ stateLabel: string;
881
+ stateShort: string;
882
+ left: number | null;
883
+ stateNote: string | null;
884
+ requestNote: string | null;
885
+ price: string | null;
886
+ priceNote: string | null;
887
+ twin: number | null;
888
+ single: number | null;
889
+ priv: number | null;
890
+ currency: string;
891
+ /** `price` per display currency, same text form. Null exactly when price is null; display only. */
892
+ priceByCurrency: PublicPriceDisplayByCurrency | null;
893
+ /** `twin` and `single` per display currency. Null when the departure publishes neither figure. */
894
+ roomPriceByCurrency: PublicTourPageRoomPriceByCurrency | null;
895
+ };
896
+ export type PublicTourPagePriceFrom = {
897
+ amount: number | null;
898
+ currency: string;
899
+ basis: string | null;
900
+ singleSupp: number | null;
901
+ onRequest: boolean;
902
+ note: string | null;
903
+ state: PublicAvailabilityState;
904
+ stateLabel: string;
905
+ display: string;
906
+ prefix: string;
907
+ unit: string;
908
+ chip: string;
909
+ /** `display` per display currency (bare amount form). Null while the price is on request. */
910
+ displayByCurrency: PublicPriceDisplayByCurrency | null;
911
+ };
912
+ export type PublicTourPageReviewSubRating = {
913
+ k: string;
914
+ v: string;
915
+ pct: number;
916
+ };
917
+ export type PublicTourPageReviewReply = {
918
+ by: string;
919
+ body: string;
920
+ };
921
+ export type PublicTourPageReviewItem = {
922
+ i: string;
923
+ name: string;
924
+ meta: string;
925
+ score: string;
926
+ date: string | null;
927
+ title: string;
928
+ body: string;
929
+ reply: PublicTourPageReviewReply | null;
930
+ };
931
+ export type PublicTourPageReviews = {
932
+ count: number;
933
+ countLabel: string;
934
+ badgeLabel: string;
935
+ rating: string | null;
936
+ source: string | null;
937
+ sourceUrl: string | null;
938
+ checked: PublicTourPageChecked | null;
939
+ sub: PublicTourPageReviewSubRating[];
940
+ items: PublicTourPageReviewItem[];
941
+ };
942
+ export type PublicTourPageQuestion = {
943
+ q: string;
944
+ asked: string | null;
945
+ i: string | null;
946
+ by: string | null;
947
+ a: string;
948
+ };
949
+ export type PublicTourPageKnowExtra = {
950
+ t: string;
951
+ b: string;
952
+ cta: string | null;
953
+ href: string | null;
954
+ icon: string | null;
955
+ after: PublicTourPageKnowSlot | null;
956
+ };
957
+ export type PublicTourPageCredibility = {
958
+ v: string;
959
+ k: string;
960
+ };
961
+ export type PublicTourPageOperator = {
962
+ body: string;
963
+ };
964
+ export type PublicTourPageTailorBand = {
965
+ kicker: string | null;
966
+ title: string;
967
+ body: string;
968
+ image: PublicTourPageImage | null;
969
+ };
970
+ export type PublicTourPageBrochure = {
971
+ blurb: string;
972
+ };
973
+ export type PublicTourPageRelatedCard = {
974
+ name: string;
975
+ kind: 'Small Group' | 'Private';
976
+ diff: string;
977
+ price: string;
978
+ days: number;
979
+ basis: string;
980
+ daysLabel: string;
981
+ state: PublicAvailabilityState;
982
+ stateLabel: string;
983
+ href: string;
984
+ img: string | null;
985
+ alt: string | null;
986
+ pos: string | null;
987
+ /** `price` per display currency, same From form. Null while the card is on request. */
988
+ priceByCurrency: PublicPriceDisplayByCurrency | null;
989
+ };
990
+ export type PublicTourPage = {
991
+ id: string;
992
+ slug: string;
993
+ title: string;
994
+ titleShort: string;
995
+ metaTitle: string;
996
+ metaDescription: string;
997
+ ogDescription: string;
998
+ ogImage: PublicTourPageOpenGraphImage | null;
999
+ schemaDescription: string;
1000
+ badges: PublicTourPageBadge[];
1001
+ countries: string[];
1002
+ format: PublicTourPageFormat | null;
1003
+ days: number;
1004
+ nights: number | null;
1005
+ durationLabel: string;
1006
+ touristType: string[];
1007
+ maxTravellers: number | null;
1008
+ runsFrom: number | null;
1009
+ privateOption: PublicTourPagePrivateOption;
1010
+ privateOverride: PublicTourPagePrivateOverride | null;
1011
+ summary: string[];
1012
+ byline: PublicTourPageByline | null;
1013
+ checked: PublicTourPageChecked | null;
1014
+ routeChain: string[];
1015
+ route: string;
1016
+ facts: PublicTourPageFact[];
1017
+ highlights: string[];
1018
+ hero: PublicTourPageHero;
1019
+ video: PublicTourPageVideo | null;
1020
+ quote: PublicTourPageQuote | null;
1021
+ gallery: PublicTourPageGalleryGroup[];
1022
+ experiences: PublicTourPageExperience[];
1023
+ experiencesIntro: string | null;
1024
+ experiencesNote: string | null;
1025
+ routeNote: string | null;
1026
+ map: PublicTourPageMap | null;
1027
+ mapEmpty: string | null;
1028
+ stops: PublicTourPageStop[];
1029
+ itinerary: PublicTourPageItineraryDay[];
1030
+ included: PublicTourPageKeyValue[];
1031
+ excluded: PublicTourPageKeyValue[];
1032
+ includedNote: string | null;
1033
+ stays: PublicTourPageStay[];
1034
+ staysNote: string | null;
1035
+ staysEmpty: PublicTourPageTitledBody | null;
1036
+ departures: PublicTourPageDeparture[];
1037
+ departuresEmpty: PublicTourPageDeparturesEmpty | null;
1038
+ /** False when no departure is offered: the page shows departuresEmpty, or its own default copy when that is null (D25). */
1039
+ departuresOffered: boolean;
1040
+ months: PublicTourPageMonth[];
1041
+ priceFrom: PublicTourPagePriceFrom;
1042
+ roomOptions: PublicTourPageRoomOption[];
1043
+ soldOutNote: string | null;
1044
+ ctaNote: string | null;
1045
+ deposit: string | null;
1046
+ reassurance: string[];
1047
+ start: PublicTourPagePlace;
1048
+ end: PublicTourPagePlace;
1049
+ reviews: PublicTourPageReviews | null;
1050
+ qa: PublicTourPageQuestion[];
1051
+ knowSlots: PublicTourPageKnowSlot[];
1052
+ knowExtra: PublicTourPageKnowExtra[];
1053
+ credibility: PublicTourPageCredibility[];
1054
+ replyTime: string | null;
1055
+ operator: PublicTourPageOperator | null;
1056
+ tailorBand: PublicTourPageTailorBand | null;
1057
+ related: PublicTourPageRelatedCard[];
1058
+ brochure: PublicTourPageBrochure | null;
1059
+ newsletterNote: string | null;
1060
+ };
1061
+ export type PublicTourPageResponse = {
1062
+ data: PublicTourPage;
1063
+ };
696
1064
  export type PublicDepartureListResponse = {
697
1065
  data: PublicDepartureListItem[];
698
1066
  nextCursor: string | null;
@@ -1571,6 +1939,8 @@ export type PublicApiV1RouteMap = {
1571
1939
  'GET /tours': PublicTourListResponse;
1572
1940
  'GET /tours/{slug}': PublicTourDetailResponse;
1573
1941
  'GET /tours/{slug}/preview': PublicTourDetailResponse;
1942
+ 'GET /tours/{slug}/page': PublicTourPageResponse;
1943
+ 'GET /tours/{slug}/preview/page': PublicTourPageResponse;
1574
1944
  'GET /tours/{slug}/departures': PublicDepartureListResponse;
1575
1945
  'GET /tours/{slug}/availability': PublicAvailabilityListResponse;
1576
1946
  'GET /tours/{slug}/reviews': PublicTourReviewListResponse;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@surfiran/public-api-client",
3
- "version": "0.34.0",
3
+ "version": "0.36.0",
4
4
  "description": "TypeScript types and client for SURFIRAN CRM Public API V1",
5
5
  "type": "module",
6
6
  "engines": {