@v-office/website-sdk 2.8.0 → 2.10.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/cli.mjs +2 -2
- package/dist/{client-BNbBfJtO.mjs → client-DYAHnU5F.mjs} +3 -3
- package/dist/index.d.mts +19 -0
- package/dist/index.mjs +1 -1
- package/dist/instructions/CHANGELOG.md +2 -0
- package/dist/instructions/MIGRATION.md +2 -0
- package/dist/instructions/README.md +4 -2
- package/dist/instructions/booking.md +5 -1
- package/dist/instructions/creation.md +17 -2
- package/dist/instructions/custom-attributes.md +5 -1
- package/dist/instructions/filter.md +12 -1
- package/dist/instructions/rentals.md +18 -1
- package/dist/instructions/versions/2.10.0/CHANGELOG.md +26 -0
- package/dist/instructions/versions/2.10.0/MIGRATION.md +63 -0
- package/dist/instructions/versions/2.9.0/CHANGELOG.md +37 -0
- package/dist/instructions/versions/2.9.0/MIGRATION.md +153 -0
- package/dist/{rentals-cCejb_2d.mjs → rentals-CFod9H4m.mjs} +1 -1
- package/dist/{search-Dzzra6IW.mjs → search-QlZrI7ue.mjs} +2 -2
- package/dist/{to-rental-highlights-OvNe9ZQS.mjs → to-rental-highlights-B6a_fi0j.mjs} +25 -2
- package/instructions/CHANGELOG.md +2 -0
- package/instructions/MIGRATION.md +2 -0
- package/instructions/README.md +4 -2
- package/instructions/booking.md +5 -1
- package/instructions/creation.md +17 -2
- package/instructions/custom-attributes.md +5 -1
- package/instructions/filter.md +12 -1
- package/instructions/rentals.md +18 -1
- package/instructions/versions/2.10.0/CHANGELOG.md +26 -0
- package/instructions/versions/2.10.0/MIGRATION.md +63 -0
- package/instructions/versions/2.9.0/CHANGELOG.md +37 -0
- package/instructions/versions/2.9.0/MIGRATION.md +153 -0
- package/package.json +2 -2
package/dist/cli.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { t as createWebsiteSDK, zt as defineWebsiteSDKOptions } from "./client-
|
|
2
|
+
import { t as createWebsiteSDK, zt as defineWebsiteSDKOptions } from "./client-DYAHnU5F.mjs";
|
|
3
3
|
import { SearchSearchSortSchema, defineCustomAttributesFromUnknown } from "@v-office/sdk-core";
|
|
4
4
|
import { Console, Effect, FileSystem, Layer, Option, Path, Schema, Stdio, Terminal } from "effect";
|
|
5
5
|
import { Command, Flag } from "effect/unstable/cli";
|
|
@@ -16,7 +16,7 @@ var CLICheckFailed = class extends Error {
|
|
|
16
16
|
const toCLIError = (message, cause) => cause instanceof Error ? new CLICheckFailed(`${message}: ${cause.message}`, { cause }) : new CLICheckFailed(message, { cause });
|
|
17
17
|
//#endregion
|
|
18
18
|
//#region package.json
|
|
19
|
-
var version = "2.
|
|
19
|
+
var version = "2.10.0";
|
|
20
20
|
//#endregion
|
|
21
21
|
//#region src/cli/output.ts
|
|
22
22
|
const toJson = (value) => Effect.try({
|
|
@@ -3770,7 +3770,7 @@ const toBookingInput = ({ input }) => Effect.gen(function* () {
|
|
|
3770
3770
|
message: "Expected a v9 quote for v9 booking."
|
|
3771
3771
|
}));
|
|
3772
3772
|
return {
|
|
3773
|
-
action: "booking",
|
|
3773
|
+
action: input.kind === "OPTION" ? "option" : "booking",
|
|
3774
3774
|
reservation: { customer: {
|
|
3775
3775
|
...input.contact.title === void 0 ? {} : { title: input.contact.title },
|
|
3776
3776
|
forename: input.contact.forename,
|
|
@@ -4952,7 +4952,7 @@ const parseV9SearchCursor = (cursor) => Effect.gen(function* () {
|
|
|
4952
4952
|
return page;
|
|
4953
4953
|
});
|
|
4954
4954
|
const loadV9SearchRuntime = Effect.tryPromise({
|
|
4955
|
-
try: () => import("./search-
|
|
4955
|
+
try: () => import("./search-QlZrI7ue.mjs"),
|
|
4956
4956
|
catch: (cause) => new CoreSDKError({
|
|
4957
4957
|
source: "v10",
|
|
4958
4958
|
operation: "v9.search.runtime",
|
|
@@ -5315,7 +5315,7 @@ const DEFAULT_RENTAL_FEEDBACK_DATA_ATTRIBUTES = [
|
|
|
5315
5315
|
"avgRating"
|
|
5316
5316
|
];
|
|
5317
5317
|
const loadV9RentalsRuntime = Effect.tryPromise({
|
|
5318
|
-
try: () => import("./rentals-
|
|
5318
|
+
try: () => import("./rentals-CFod9H4m.mjs"),
|
|
5319
5319
|
catch: (cause) => new CoreSDKError({
|
|
5320
5320
|
source: "v10",
|
|
5321
5321
|
operation: "v9.rentals.runtime",
|
package/dist/index.d.mts
CHANGED
|
@@ -22,7 +22,26 @@ type WebsiteSDKOptions = {
|
|
|
22
22
|
readonly translationOverrides?: TranslationOverrides$1; /** The validated registry returned by `defineCustomAttributes`. */
|
|
23
23
|
readonly customAttributes?: CustomAttributeRegistrySnapshot$1;
|
|
24
24
|
readonly customAttributeFilterDefinitions?: readonly CustomAttributeFilterDefinition$1[];
|
|
25
|
+
/**
|
|
26
|
+
* Selects and orders rental highlights. This is an ordered allowlist, not a sort
|
|
27
|
+
* over every available fact.
|
|
28
|
+
*
|
|
29
|
+
* Only listed keys are emitted, even when an omitted key has a source value.
|
|
30
|
+
* `undefined` uses the SDK default; `[]` emits no rental highlights. Duplicate
|
|
31
|
+
* keys are emitted once, and unknown, unsupported, or unresolved keys are ignored.
|
|
32
|
+
* When multiple listed view facts have values, only the first is emitted. This
|
|
33
|
+
* affects `highlights` only, not `attributes` or `vicinity`.
|
|
34
|
+
*/
|
|
25
35
|
readonly rentalHighlightPrioritization?: readonly RentalHighlightPrioritizationKey$1[];
|
|
36
|
+
/**
|
|
37
|
+
* Selects and orders v10 property highlights. This is an ordered allowlist, not
|
|
38
|
+
* a sort over every available fact.
|
|
39
|
+
*
|
|
40
|
+
* Only listed keys are emitted, even when an omitted key has a source value.
|
|
41
|
+
* `undefined` uses the SDK default; `[]` emits no property highlights. Duplicate
|
|
42
|
+
* keys are emitted once, and unknown, unsupported, or unresolved keys are ignored.
|
|
43
|
+
* This affects `highlights` only, not `attributes` or `vicinity`.
|
|
44
|
+
*/
|
|
26
45
|
readonly rentalPropertyHighlightPrioritization?: readonly RentalPropertyHighlightPrioritizationKey$1[];
|
|
27
46
|
readonly rentalScope?: RentalScope;
|
|
28
47
|
readonly shouldAddProposedAdditionalServiceAmount?: boolean;
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as ServiceBeonDataSchema, A as ErgoBookRequestSchema, At as quoteEffect, B as OnOfficeUnitSchema, C as DocumentResourceSchema, Ct as clearAdditionalServicesEffect, D as DocumentTypeSchema, Dt as getRentalsEffect, E as DocumentSummarySchema, Et as getInitialAvailabilityEffect, F as ErgoPolicyNumberRequestSchema, Ft as selectInsurancePaymentEffect, G as QuotePricesResponseSchema, H as PaymentScheduleSchema, I as ErgoReadPreContractRequestSchema, It as submitContactEffect, J as RawObjectResponseSchema, K as QuoteSchema, L as ErgoTripAndCustomerRequestSchema, Lt as submitPaymentOption, M as ErgoCreatePreContractRequestSchema, Mt as searchEffect, N as ErgoPersonSchema, Nt as selectCancellationPolicyEffect, O as ErgoAddressSchema, Ot as getStartDateSelectedAvailabilityEffect, P as ErgoPlanSearchRequestSchema, Pt as selectInsuranceEffect, Q as SearchPropertiesResponseSchema, R as FacilityListResponseSchema, Rt as submitPaymentOptionEffect, S as DocumentResourceResponseSchema, St as bookInsuranceEffect, T as DocumentStatusUpdateRequestSchema, Tt as getFiltersEffect, U as QuoteLineSchema, V as PaymentScheduleItemSchema, W as QuotePricesPayloadSchema, X as RegionListResponseSchema, Y as RawVofficeObjectSchema, Z as RoomImageSchema, _ as CalendarDaySchema, _t as V1_OPERATIONS, at as TileCollectionResponseSchema, b as CustomerUnitSummarySchema, bt as addAdditionalServiceEffect, c as V0OpenApiClient, ct as TravelInsuranceBookingSchema, d as makeV0OpenApiClientLive, dt as UnitListItemSchema, et as ServiceImageSchema, f as V1OpenApiClient, ft as UnitListResponseSchema, g as ApiEnvelopeBaseSchema, gt as V1_BASE_URL, h as makeV1OpenApiClientLive, ht as UnitServicePriceSchema, it as SetupResponseSchema, j as ErgoCommonFieldsSchema, jt as removeAdditionalServiceEffect, k as ErgoBankSchema, kt as getTermsAndPrivacyPolicyEffect, l as V0OpenApiClientError, lt as TravelInsuranceBookingStoreRequestSchema, m as makeV1OpenApiClientFetchLive, mt as UnitResponseSchema, nt as ServiceListResponseSchema, ot as TileSchema, p as V1OpenApiClientError, pt as UnitOfferSchema, q as QuoteServiceSchema, rt as SetupDataSchema, st as TileTagSchema, t as createWebsiteSDK, tt as ServiceLimitSchema, u as makeV0OpenApiClientFetchLive, ut as UnitIdsResponseSchema, v as CalendarResponseSchema, vt as VideoResponseSchema, w as DocumentStatusSchema, wt as createInsurancePreContractEffect, x as DocumentCollectionResponseSchema, xt as bookEffect, y as CurrentMemberResponseSchema, yt as decodeV1OperationResponse, z as OnOfficeUnitCollectionResponseSchema, zt as defineWebsiteSDKOptions } from "./client-
|
|
1
|
+
import { $ as ServiceBeonDataSchema, A as ErgoBookRequestSchema, At as quoteEffect, B as OnOfficeUnitSchema, C as DocumentResourceSchema, Ct as clearAdditionalServicesEffect, D as DocumentTypeSchema, Dt as getRentalsEffect, E as DocumentSummarySchema, Et as getInitialAvailabilityEffect, F as ErgoPolicyNumberRequestSchema, Ft as selectInsurancePaymentEffect, G as QuotePricesResponseSchema, H as PaymentScheduleSchema, I as ErgoReadPreContractRequestSchema, It as submitContactEffect, J as RawObjectResponseSchema, K as QuoteSchema, L as ErgoTripAndCustomerRequestSchema, Lt as submitPaymentOption, M as ErgoCreatePreContractRequestSchema, Mt as searchEffect, N as ErgoPersonSchema, Nt as selectCancellationPolicyEffect, O as ErgoAddressSchema, Ot as getStartDateSelectedAvailabilityEffect, P as ErgoPlanSearchRequestSchema, Pt as selectInsuranceEffect, Q as SearchPropertiesResponseSchema, R as FacilityListResponseSchema, Rt as submitPaymentOptionEffect, S as DocumentResourceResponseSchema, St as bookInsuranceEffect, T as DocumentStatusUpdateRequestSchema, Tt as getFiltersEffect, U as QuoteLineSchema, V as PaymentScheduleItemSchema, W as QuotePricesPayloadSchema, X as RegionListResponseSchema, Y as RawVofficeObjectSchema, Z as RoomImageSchema, _ as CalendarDaySchema, _t as V1_OPERATIONS, at as TileCollectionResponseSchema, b as CustomerUnitSummarySchema, bt as addAdditionalServiceEffect, c as V0OpenApiClient, ct as TravelInsuranceBookingSchema, d as makeV0OpenApiClientLive, dt as UnitListItemSchema, et as ServiceImageSchema, f as V1OpenApiClient, ft as UnitListResponseSchema, g as ApiEnvelopeBaseSchema, gt as V1_BASE_URL, h as makeV1OpenApiClientLive, ht as UnitServicePriceSchema, it as SetupResponseSchema, j as ErgoCommonFieldsSchema, jt as removeAdditionalServiceEffect, k as ErgoBankSchema, kt as getTermsAndPrivacyPolicyEffect, l as V0OpenApiClientError, lt as TravelInsuranceBookingStoreRequestSchema, m as makeV1OpenApiClientFetchLive, mt as UnitResponseSchema, nt as ServiceListResponseSchema, ot as TileSchema, p as V1OpenApiClientError, pt as UnitOfferSchema, q as QuoteServiceSchema, rt as SetupDataSchema, st as TileTagSchema, t as createWebsiteSDK, tt as ServiceLimitSchema, u as makeV0OpenApiClientFetchLive, ut as UnitIdsResponseSchema, v as CalendarResponseSchema, vt as VideoResponseSchema, w as DocumentStatusSchema, wt as createInsurancePreContractEffect, x as DocumentCollectionResponseSchema, xt as bookEffect, y as CurrentMemberResponseSchema, yt as decodeV1OperationResponse, z as OnOfficeUnitCollectionResponseSchema, zt as defineWebsiteSDKOptions } from "./client-DYAHnU5F.mjs";
|
|
2
2
|
import { AdditionalServiceLimitExceeded, CoreSDKError, CoreSDKError as CMSError, CustomAttributeCatalogSchema, GuestQuoteSchema, InvalidAdditionalServiceQuantity, LocaleSchema, SearchSearchFieldOrderBySchema, SearchSearchFieldSortSchema, SearchSearchInputSchema, SearchSearchOutputSchema, SearchSearchPriceSortSchema, SearchSearchRandomSortSchema, SearchSearchRatingSortSchema, SearchSearchSortSchema, SearchSortDirectionSchema, UnknownAdditionalService, defineCustomAttributes, defineCustomAttributesFromUnknown, fetchCustomAttributeCatalog, parseCustomAttributeCatalog, validateContactSubmitInput } from "@v-office/sdk-core";
|
|
3
3
|
//#region codegen/v9/heuristic-generation/public-api.ts
|
|
4
4
|
const customDataAttribute = (name) => name;
|
|
@@ -4,6 +4,8 @@ This file is the versioned changelog index for the website SDK instructions.
|
|
|
4
4
|
|
|
5
5
|
## Versions
|
|
6
6
|
|
|
7
|
+
- `versions/2.10.0/CHANGELOG.md`: `@v-office/website-sdk` 2.10.0 release notes.
|
|
8
|
+
- `versions/2.9.0/CHANGELOG.md`: `@v-office/website-sdk` 2.9.0 release notes.
|
|
7
9
|
- `versions/2.8.0/CHANGELOG.md`: `@v-office/website-sdk` 2.8.0 release notes.
|
|
8
10
|
- `versions/2.7.0/CHANGELOG.md`: `@v-office/website-sdk` 2.7.0 release notes.
|
|
9
11
|
- `versions/2.6.0/CHANGELOG.md`: compatibility note for an unreleased version label.
|
|
@@ -4,6 +4,8 @@ This file is the versioned migration index for the website SDK instructions.
|
|
|
4
4
|
|
|
5
5
|
## Available Guides
|
|
6
6
|
|
|
7
|
+
- `versions/2.10.0/MIGRATION.md`: migrate from `@v-office/website-sdk` 2.9.0 to 2.10.0.
|
|
8
|
+
- `versions/2.9.0/MIGRATION.md`: migrate from `@v-office/website-sdk` 2.8.0 to 2.9.0.
|
|
7
9
|
- `versions/2.8.0/MIGRATION.md`: migrate from `@v-office/website-sdk` 2.7.0 to 2.8.0.
|
|
8
10
|
- `versions/2.7.0/MIGRATION.md`: migrate from `@v-office/website-sdk` 2.5.x to 2.7.0.
|
|
9
11
|
- `versions/2.6.0/MIGRATION.md`: compatibility note for an unreleased version label.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Website SDK Instructions
|
|
2
2
|
|
|
3
3
|
These instructions describe the current source targeted for
|
|
4
|
-
`@v-office/website-sdk` 2.
|
|
4
|
+
`@v-office/website-sdk` 2.10.0. Package versions remain unchanged until the release
|
|
5
5
|
workflow performs the coordinated core and website bumps.
|
|
6
6
|
|
|
7
7
|
Use this directory as the consumer-facing reference for the package:
|
|
@@ -18,6 +18,8 @@ Use this directory as the consumer-facing reference for the package:
|
|
|
18
18
|
- `document-structured-json.md`: `sdk.static.documents.getTermsAndPrivacyPolicy` and structured document JSON rendering rules.
|
|
19
19
|
- `CHANGELOG.md`: versioned changelog index.
|
|
20
20
|
- `MIGRATION.md`: versioned migration index.
|
|
21
|
+
- `versions/2.10.0/`: 2.10.0 option-booking release notes and 2.9.0-to-2.10.0 migration guide.
|
|
22
|
+
- `versions/2.9.0/`: 2.9.0 highlight-selection release notes and 2.8.0-to-2.9.0 migration guide.
|
|
21
23
|
- `versions/2.8.0/`: 2.8.0 custom-attribute release notes and 2.7.0-to-2.8.0 migration guide.
|
|
22
24
|
- `versions/2.7.0/`: 2.7.0 release notes and 2.5.x-to-2.7.0 migration guide.
|
|
23
25
|
- `versions/2.6.0/`: compatibility pointers for the unreleased 2.6.0 version label.
|
|
@@ -74,4 +76,4 @@ website-sdk --backend v10 search --locale de-DE --query "adults=2"
|
|
|
74
76
|
website-sdk --backend v10 search --locale de-DE --query "adults=2" --sort '{"by":"field","orderBy":{"label":"ASC"}}'
|
|
75
77
|
```
|
|
76
78
|
|
|
77
|
-
Config file examples in these docs use the flat `WebsiteSDKConfig` shape introduced in 2.0.0 and kept in 2.
|
|
79
|
+
Config file examples in these docs use the flat `WebsiteSDKConfig` shape introduced in 2.0.0 and kept in 2.10.0. v10 config additionally requires `searchEndpoint` as of 2.5.0.
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
## Service
|
|
4
4
|
|
|
5
|
-
Use the live booking API to turn an available `GuestQuote` into a
|
|
5
|
+
Use the live booking API to turn an available `GuestQuote` into a confirmed or
|
|
6
|
+
option booking:
|
|
6
7
|
|
|
7
8
|
```ts
|
|
8
9
|
const booking = await sdk.live.booking.book(input);
|
|
@@ -31,6 +32,7 @@ type BookingInput = {
|
|
|
31
32
|
note?: string;
|
|
32
33
|
};
|
|
33
34
|
relativeRedirectUrl: string;
|
|
35
|
+
kind?: "CONFIRMED" | "OPTION";
|
|
34
36
|
};
|
|
35
37
|
```
|
|
36
38
|
|
|
@@ -63,6 +65,8 @@ const booking = await sdk.live.booking.book({
|
|
|
63
65
|
});
|
|
64
66
|
```
|
|
65
67
|
|
|
68
|
+
`kind: "OPTION"` creates an option booking on v10 and legacy v9. Omitting `kind`,
|
|
69
|
+
or passing `"CONFIRMED"`, retains the existing confirmed-booking behavior.
|
|
66
70
|
`relativeRedirectUrl` is used for online payment redirects after booking creation.
|
|
67
71
|
|
|
68
72
|
## Output
|
|
@@ -101,12 +101,24 @@ type WebsiteSDKOptions = {
|
|
|
101
101
|
};
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
+
`rentalHighlightPrioritization` and `rentalPropertyHighlightPrioritization` select
|
|
105
|
+
which facts become highlights and set their order. They are ordered allowlists, not
|
|
106
|
+
sorts over every available fact. A key that is not listed is not emitted even when
|
|
107
|
+
the source contains a value. This affects `highlights` only, not `attributes` or
|
|
108
|
+
`vicinity`. Property highlights are available only with v10 property data.
|
|
109
|
+
|
|
110
|
+
For either option, `undefined` uses the SDK default and `[]` emits no highlights.
|
|
111
|
+
Duplicate keys are emitted once; unknown, unsupported, or unresolved keys are
|
|
112
|
+
ignored. When several configured rental view facts have values, only the first one
|
|
113
|
+
in the ordered allowlist is emitted. View-type descriptors qualify a view and are
|
|
114
|
+
not part of this strongest-view selection.
|
|
115
|
+
|
|
104
116
|
Unset options are normalized by the SDK:
|
|
105
117
|
|
|
106
118
|
- `customAttributes` defaults to an empty registry.
|
|
107
119
|
- `customAttributeFilterDefinitions` defaults to `[]`.
|
|
108
|
-
- `rentalHighlightPrioritization` defaults to the SDK default rental highlight
|
|
109
|
-
- `rentalPropertyHighlightPrioritization` defaults to the SDK default property highlight
|
|
120
|
+
- `rentalHighlightPrioritization` defaults to the SDK default rental highlight selection.
|
|
121
|
+
- `rentalPropertyHighlightPrioritization` defaults to the SDK default property highlight selection.
|
|
110
122
|
- `rentalScope` defaults to `{}`.
|
|
111
123
|
- `shouldAddProposedAdditionalServiceAmount` defaults to `false`.
|
|
112
124
|
- `translationOverrides` is omitted unless provided.
|
|
@@ -194,6 +206,9 @@ Supported sources:
|
|
|
194
206
|
active backend, and no generated leaf is committed unless all leaves are valid.
|
|
195
207
|
Nested compositions are rejected while recursive expansion is unsupported.
|
|
196
208
|
|
|
209
|
+
For a new v9 `backendFilter` key, ask someone at be-on! with Hub access to add or
|
|
210
|
+
confirm the backend filter before configuring it in the SDK.
|
|
211
|
+
|
|
197
212
|
Exposure:
|
|
198
213
|
|
|
199
214
|
- `internal: false` exposes searchable filters through `static.filter.getFilters(...)`.
|
|
@@ -279,7 +279,7 @@ them, so an advertised bound always round-trips.
|
|
|
279
279
|
## Highlights and Attributes
|
|
280
280
|
|
|
281
281
|
A custom attribute appears in `highlights` only when its key is listed in
|
|
282
|
-
`rentalHighlightPrioritization`, which
|
|
282
|
+
`rentalHighlightPrioritization`, which is the ordered allowlist:
|
|
283
283
|
|
|
284
284
|
```ts
|
|
285
285
|
const options = defineWebsiteSDKOptions({
|
|
@@ -382,6 +382,10 @@ These are **not** custom attributes and stay in `customAttributeFilterDefinition
|
|
|
382
382
|
filters. Advertised only when every configured leaf can execute on the active
|
|
383
383
|
backend with its configured value.
|
|
384
384
|
|
|
385
|
+
Compositions may reference stable v9 built-ins directly; `backendFilter` is only for
|
|
386
|
+
additional v9 keys. SDK configuration does not create those keys in Hub; ask someone
|
|
387
|
+
at be-on! with Hub access to add or confirm the filter before configuring it.
|
|
388
|
+
|
|
385
389
|
```ts
|
|
386
390
|
const options = defineWebsiteSDKOptions({
|
|
387
391
|
customAttributes,
|
|
@@ -93,6 +93,14 @@ Filter variants:
|
|
|
93
93
|
}
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
+
v9 has a fixed built-in filter set. These filters are always advertised, parsed,
|
|
97
|
+
and usable as composition leaves; do not repeat them as `backendFilter` definitions.
|
|
98
|
+
|
|
99
|
+
- Numeric: `bedrooms`, `bathrooms`.
|
|
100
|
+
- Boolean: `pool`, `wifi`, `pets`, `privateparking`, `ac`, `washer`, `dishwasher`,
|
|
101
|
+
`beachfront`, `seaview`, `balcony`, `terrace`, `garden`, `bbq`, `sauna`,
|
|
102
|
+
`fireplace`, `tv`, `childrenWelcome`, `nonsmoking`, `kitchen`.
|
|
103
|
+
|
|
96
104
|
`v10` config:
|
|
97
105
|
|
|
98
106
|
```json
|
|
@@ -111,7 +119,10 @@ Custom attributes come from `customAttributes`, and a definition is advertised o
|
|
|
111
119
|
when it has a public filter and the selected backend can execute it. v9 has no
|
|
112
120
|
custom-attribute search path, so v9 never advertises one; see `custom-attributes.md`.
|
|
113
121
|
|
|
114
|
-
Backend filters and compositions come from `customAttributeFilterDefinitions
|
|
122
|
+
Backend filters and compositions come from `customAttributeFilterDefinitions`.
|
|
123
|
+
SDK configuration cannot create a Hub filter: for another v9 key, first ask someone
|
|
124
|
+
at be-on! with Hub access to add or confirm it, then configure that key as a
|
|
125
|
+
`backendFilter`.
|
|
115
126
|
|
|
116
127
|
```json
|
|
117
128
|
{
|
|
@@ -167,7 +167,24 @@ Optional `WebsiteSDKOptions`:
|
|
|
167
167
|
}
|
|
168
168
|
```
|
|
169
169
|
|
|
170
|
-
`rentalHighlightPrioritization`
|
|
170
|
+
`rentalHighlightPrioritization` selects which facts become rental `highlights` and
|
|
171
|
+
sets their order. It is an ordered allowlist, not a sort over every available fact.
|
|
172
|
+
A key that is not listed is not emitted even when the source contains a value.
|
|
173
|
+
`rentalPropertyHighlightPrioritization` has the same semantics for v10 property
|
|
174
|
+
highlights. Both options affect `highlights` only, not `attributes` or `vicinity`.
|
|
175
|
+
|
|
176
|
+
For either option, `undefined` uses the SDK default and `[]` emits no highlights.
|
|
177
|
+
Duplicate keys are emitted once; unknown, unsupported, or unresolved keys are
|
|
178
|
+
ignored. When several configured rental view facts have values, only the first one
|
|
179
|
+
in the ordered allowlist is emitted. View-type descriptors qualify a view and are
|
|
180
|
+
not part of this strongest-view selection. Translation overrides affect localized
|
|
181
|
+
labels.
|
|
182
|
+
|
|
183
|
+
The active defaults are exported as
|
|
184
|
+
`DEFAULT_RENTAL_HIGHLIGHT_PRIORITIZATION` and
|
|
185
|
+
`DEFAULT_RENTAL_PROPERTY_HIGHLIGHT_PRIORITIZATION` from
|
|
186
|
+
`@v-office/sdk-core`. See `versions/2.9.0/CHANGELOG.md` for the release notes and
|
|
187
|
+
`versions/2.9.0/MIGRATION.md` for the complete default lists and upgrade checks.
|
|
171
188
|
|
|
172
189
|
In CLI JSON, `customAttributes` contains catalog and selection inputs; the CLI builds
|
|
173
190
|
the validated registry. Typed applications normally call `defineCustomAttributes`
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Changelog: 2.10.0
|
|
2
|
+
|
|
3
|
+
This release adds option bookings to the shared booking input and supports them
|
|
4
|
+
consistently through the v10 and legacy v9 backends.
|
|
5
|
+
|
|
6
|
+
## Added
|
|
7
|
+
|
|
8
|
+
- `BookingInput.kind` accepts `"CONFIRMED"` or `"OPTION"`.
|
|
9
|
+
- Passing `kind: "OPTION"` creates an option booking through
|
|
10
|
+
`sdk.live.booking.book(...)`.
|
|
11
|
+
|
|
12
|
+
## Changed
|
|
13
|
+
|
|
14
|
+
- v10 maps `"OPTION"` to the GraphQL booking status `OPTION`.
|
|
15
|
+
- Legacy v9 maps `"OPTION"` to the v0 booking action `option`.
|
|
16
|
+
- Omitting `kind`, or passing `"CONFIRMED"`, retains the existing confirmed-booking
|
|
17
|
+
behavior on both backends.
|
|
18
|
+
|
|
19
|
+
## Migration Impact
|
|
20
|
+
|
|
21
|
+
- Existing booking calls require no changes because `kind` is optional.
|
|
22
|
+
- The booking service name, remaining input fields, and `BookingOutput` are
|
|
23
|
+
unchanged.
|
|
24
|
+
- `relativeRedirectUrl` remains required for both booking kinds.
|
|
25
|
+
- Sites that want to create option bookings can opt in by passing
|
|
26
|
+
`kind: "OPTION"`. See `versions/2.10.0/MIGRATION.md`.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Migration: 2.9.0 to 2.10.0
|
|
2
|
+
|
|
3
|
+
2.10.0 adds an optional booking kind. Existing calls continue to create confirmed
|
|
4
|
+
bookings and require no migration.
|
|
5
|
+
|
|
6
|
+
## 1. Choose the Booking Kind
|
|
7
|
+
|
|
8
|
+
`BookingInput` now includes:
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
kind?: "CONFIRMED" | "OPTION";
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The values behave as follows:
|
|
15
|
+
|
|
16
|
+
- Omit `kind`, or pass `"CONFIRMED"`, to create a confirmed booking.
|
|
17
|
+
- Pass `"OPTION"` to create an option booking.
|
|
18
|
+
|
|
19
|
+
The SDK maps these values to the native backend representation:
|
|
20
|
+
|
|
21
|
+
- v10 uses booking status `CONFIRMED` or `OPTION`.
|
|
22
|
+
- Legacy v9 uses booking action `booking` or `option`.
|
|
23
|
+
|
|
24
|
+
## 2. Create an Option Booking
|
|
25
|
+
|
|
26
|
+
Use the existing booking service and set `kind` to `"OPTION"`:
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
const optionBooking = await sdk.live.booking.book({
|
|
30
|
+
quote,
|
|
31
|
+
contact,
|
|
32
|
+
relativeRedirectUrl: "/booking/payment-return",
|
|
33
|
+
kind: "OPTION",
|
|
34
|
+
});
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
No separate option-booking method is required. The returned value remains a
|
|
38
|
+
`BookingOutput`.
|
|
39
|
+
|
|
40
|
+
## 3. Keep Existing Confirmed Bookings Unchanged
|
|
41
|
+
|
|
42
|
+
Existing calls remain valid:
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
const booking = await sdk.live.booking.book({
|
|
46
|
+
quote,
|
|
47
|
+
contact,
|
|
48
|
+
relativeRedirectUrl: "/booking/payment-return",
|
|
49
|
+
});
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Passing `kind: "CONFIRMED"` is equivalent to omitting the field. Other input
|
|
53
|
+
requirements, including `relativeRedirectUrl`, are unchanged.
|
|
54
|
+
|
|
55
|
+
## Recommended Verification
|
|
56
|
+
|
|
57
|
+
1. Create a booking without `kind` and confirm it remains confirmed.
|
|
58
|
+
2. Create a booking with `kind: "OPTION"` and confirm the backend records it as an
|
|
59
|
+
option.
|
|
60
|
+
3. Repeat both checks against v10 and legacy v9 when the site supports both
|
|
61
|
+
backends.
|
|
62
|
+
4. Verify existing booking-result and payment handling still accepts the unchanged
|
|
63
|
+
`BookingOutput`.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Changelog: 2.9.0
|
|
2
|
+
|
|
3
|
+
This release makes highlight selection explicit, improves the default rental and
|
|
4
|
+
property rankings across coastal, lake, and mountain portfolios, and removes
|
|
5
|
+
duplicate rental views.
|
|
6
|
+
|
|
7
|
+
## Changed
|
|
8
|
+
|
|
9
|
+
- `rentalHighlightPrioritization` and
|
|
10
|
+
`rentalPropertyHighlightPrioritization` are documented as ordered allowlists,
|
|
11
|
+
not sorts over every available fact. A key that is not listed is not emitted as
|
|
12
|
+
a highlight even when the source contains a value.
|
|
13
|
+
- The default rental allowlist now starts with capacity and size, moves distinctive
|
|
14
|
+
views and facilities ahead of common fittings, places `youthgroups` last, and
|
|
15
|
+
includes previously omitted terrain-specific and practical facts.
|
|
16
|
+
- `outdoorPool`, `indoorPool`, lake, mountain, countryside, river, and secondary
|
|
17
|
+
views can now appear through the default rental highlights, alongside facilities
|
|
18
|
+
such as `spa`, `terrace`, `lift`, `garage`, `dryer`, and `skiBootWarmer`.
|
|
19
|
+
- The default v10 property allowlist now prioritizes beach location and shared
|
|
20
|
+
facilities ahead of utilities. It also includes `locLake`, `lakedistance`,
|
|
21
|
+
`locMountain`, and `skidistance`.
|
|
22
|
+
- Rental highlights now emit only the first configured view fact that has a value.
|
|
23
|
+
The configured order defines which view is strongest. View-type descriptors such
|
|
24
|
+
as `seaviewType` remain independent qualifiers.
|
|
25
|
+
- Strongest-view selection applies consistently to v10 and legacy v9 rental
|
|
26
|
+
highlights. Keys unsupported by the active backend remain ignored.
|
|
27
|
+
|
|
28
|
+
## Migration Impact
|
|
29
|
+
|
|
30
|
+
- Sites using the SDK defaults may receive a different highlight order and more
|
|
31
|
+
highlight values.
|
|
32
|
+
- Sites that displayed several simultaneous rental views now receive at most one
|
|
33
|
+
view highlight.
|
|
34
|
+
- Explicit custom allowlists retain their configured order and membership, apart
|
|
35
|
+
from the new strongest-view rule.
|
|
36
|
+
- No SDK construction, service-call, or output-type changes are required. Review
|
|
37
|
+
`versions/2.9.0/MIGRATION.md` before upgrading.
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Migration: 2.8.0 to 2.9.0
|
|
2
|
+
|
|
3
|
+
2.9.0 changes default highlight membership and order and emits at most one rental
|
|
4
|
+
view highlight. Configuration and output types are unchanged.
|
|
5
|
+
|
|
6
|
+
## 1. Treat Highlight Configuration as an Ordered Allowlist
|
|
7
|
+
|
|
8
|
+
`rentalHighlightPrioritization` and
|
|
9
|
+
`rentalPropertyHighlightPrioritization` select which facts become highlights and
|
|
10
|
+
set their order. They do not sort a complete list generated elsewhere.
|
|
11
|
+
|
|
12
|
+
- An omitted key is not emitted even when the source contains a value.
|
|
13
|
+
- `undefined` uses the SDK default.
|
|
14
|
+
- `[]` emits no highlights.
|
|
15
|
+
- Duplicate keys are evaluated once.
|
|
16
|
+
- Unknown, unresolved, or backend-unsupported keys are ignored.
|
|
17
|
+
- These options affect `highlights`, not `attributes` or `vicinity`.
|
|
18
|
+
|
|
19
|
+
Audit custom lists that were shortened only to express a preferred order. Add every
|
|
20
|
+
fact that must remain eligible for highlight output.
|
|
21
|
+
|
|
22
|
+
## 2. Review the New Rental Default
|
|
23
|
+
|
|
24
|
+
The default rental allowlist is now:
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
[
|
|
28
|
+
"maxPersons",
|
|
29
|
+
"bedrooms",
|
|
30
|
+
"squareMeters",
|
|
31
|
+
"bathrooms",
|
|
32
|
+
"seaview",
|
|
33
|
+
"lakeview",
|
|
34
|
+
"mountainview",
|
|
35
|
+
"valleyView",
|
|
36
|
+
"countrysideView",
|
|
37
|
+
"riverView",
|
|
38
|
+
"outdoorPool",
|
|
39
|
+
"indoorPool",
|
|
40
|
+
"sauna",
|
|
41
|
+
"spa",
|
|
42
|
+
"whirlpool",
|
|
43
|
+
"balcony",
|
|
44
|
+
"terrace",
|
|
45
|
+
"garden",
|
|
46
|
+
"beachChair",
|
|
47
|
+
"landingStage",
|
|
48
|
+
"boatBerth",
|
|
49
|
+
"skiBootWarmer",
|
|
50
|
+
"detached",
|
|
51
|
+
"fireplace",
|
|
52
|
+
"bbq",
|
|
53
|
+
"gym",
|
|
54
|
+
"closedPlot",
|
|
55
|
+
"beachview",
|
|
56
|
+
"gardenView",
|
|
57
|
+
"poolView",
|
|
58
|
+
"cityView",
|
|
59
|
+
"quietStreetView",
|
|
60
|
+
"innerCourtView",
|
|
61
|
+
"washer",
|
|
62
|
+
"dryer",
|
|
63
|
+
"privateparking",
|
|
64
|
+
"garage",
|
|
65
|
+
"carport",
|
|
66
|
+
"wifi",
|
|
67
|
+
"lift",
|
|
68
|
+
"childrenWelcome",
|
|
69
|
+
"nonsmoking",
|
|
70
|
+
"kitchen",
|
|
71
|
+
"dishwasher",
|
|
72
|
+
"tv",
|
|
73
|
+
"ac",
|
|
74
|
+
"heating",
|
|
75
|
+
"fridge",
|
|
76
|
+
"microwave",
|
|
77
|
+
"oven",
|
|
78
|
+
"stove",
|
|
79
|
+
"coffeemaker",
|
|
80
|
+
"freezer",
|
|
81
|
+
"electricKettle",
|
|
82
|
+
"youthgroups",
|
|
83
|
+
];
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Capacity and size come first, followed by distinctive views, facilities, outdoor
|
|
87
|
+
space, terrain-specific draws, practical confirmers, common fittings, and finally
|
|
88
|
+
the minority booking rule `youthgroups`.
|
|
89
|
+
|
|
90
|
+
## 3. Review the New Property Default
|
|
91
|
+
|
|
92
|
+
Property highlights apply only to v10 property data. Their default allowlist is:
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
[
|
|
96
|
+
"beachfront",
|
|
97
|
+
"beachaccess",
|
|
98
|
+
"beachdistance",
|
|
99
|
+
"seadistance",
|
|
100
|
+
"locBeach",
|
|
101
|
+
"locLake",
|
|
102
|
+
"lakedistance",
|
|
103
|
+
"locMountain",
|
|
104
|
+
"skidistance",
|
|
105
|
+
"outdoorPool",
|
|
106
|
+
"indoorPool",
|
|
107
|
+
"garden",
|
|
108
|
+
"terrace",
|
|
109
|
+
"bbqFacilities",
|
|
110
|
+
"playground",
|
|
111
|
+
"pool4kids",
|
|
112
|
+
"familyRoomsAvailable",
|
|
113
|
+
"parking",
|
|
114
|
+
"wifi",
|
|
115
|
+
"washer",
|
|
116
|
+
"dryer",
|
|
117
|
+
"ac",
|
|
118
|
+
"heating",
|
|
119
|
+
"locGroceries",
|
|
120
|
+
"restaurantdistance",
|
|
121
|
+
"publictransportdistance",
|
|
122
|
+
];
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Location and terrain now precede shared facilities, family signals, utilities, and
|
|
126
|
+
secondary map facts.
|
|
127
|
+
|
|
128
|
+
## 4. Expect One Rental View Highlight
|
|
129
|
+
|
|
130
|
+
When several configured view facts have values, only the first one in
|
|
131
|
+
`rentalHighlightPrioritization` is emitted:
|
|
132
|
+
|
|
133
|
+
```ts
|
|
134
|
+
rentalHighlightPrioritization: ["mountainview", "lakeview", "seaview", "gardenView", "wifi"];
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
For this configuration, a rental with both mountain and lake views emits only the
|
|
138
|
+
mountain view. If `mountainview` has no value, the lake view can emit instead.
|
|
139
|
+
View-type descriptors such as `mountainviewType` and `seaviewType` qualify a view
|
|
140
|
+
and do not compete for the single view slot.
|
|
141
|
+
|
|
142
|
+
The rule applies to v10 and legacy v9. An unsupported v9 view key does not prevent
|
|
143
|
+
a later supported view from being emitted.
|
|
144
|
+
|
|
145
|
+
## Recommended Verification
|
|
146
|
+
|
|
147
|
+
1. Check search cards and rental pages that truncate highlights.
|
|
148
|
+
2. Compare coastal, lake, and mountain workspaces against the new defaults.
|
|
149
|
+
3. Confirm capacity and size remain available to consumers that read them from
|
|
150
|
+
search highlights.
|
|
151
|
+
4. Verify rentals with cumulative view facts emit the expected first configured
|
|
152
|
+
view.
|
|
153
|
+
5. Review explicit custom allowlists for facts that were unintentionally omitted.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { c as VofficeUnitDataFieldSchemas, d as VofficeUnitDataPropertyMetadata, f as parseVofficeFacilityData, i as toLocalizedString, l as VofficeUnitDataPropertyCategoryLabelKeys, m as parseVofficeUnitData, n as toImages, o as rentalsAllFeedbacksQuery, p as parseVofficeFeedbackData, r as toAddress, s as rentalsAllWithoutFeedbacksQuery, t as toRentalHighlights, u as VofficeUnitDataPropertyCategoryValues } from "./to-rental-highlights-
|
|
1
|
+
import { c as VofficeUnitDataFieldSchemas, d as VofficeUnitDataPropertyMetadata, f as parseVofficeFacilityData, i as toLocalizedString, l as VofficeUnitDataPropertyCategoryLabelKeys, m as parseVofficeUnitData, n as toImages, o as rentalsAllFeedbacksQuery, p as parseVofficeFeedbackData, r as toAddress, s as rentalsAllWithoutFeedbacksQuery, t as toRentalHighlights, u as VofficeUnitDataPropertyCategoryValues } from "./to-rental-highlights-B6a_fi0j.mjs";
|
|
2
2
|
import { makeTranslate, renderLabeledAttributeValue, renderResolvedCustomAttribute, toCustomAttributeList, toResolvedCustomAttributeCategoryTranslationKey } from "@v-office/sdk-core";
|
|
3
3
|
import { Effect } from "effect";
|
|
4
4
|
//#region src/legacy-v9/parser/rentals/to-description.ts
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as parseQueryParameters, i as collectQueryParameters, n as makeV9CustomAttributeFilterCapabilities, o as toQueryString, r as toBasicQueryInputs, s as applyVofficeFilterDerivedBasicQueryInputs } from "./client-
|
|
2
|
-
import { a as searchQuery, c as VofficeUnitDataFieldSchemas, m as parseVofficeUnitData, n as toImages, r as toAddress, t as toRentalHighlights } from "./to-rental-highlights-
|
|
1
|
+
import { a as parseQueryParameters, i as collectQueryParameters, n as makeV9CustomAttributeFilterCapabilities, o as toQueryString, r as toBasicQueryInputs, s as applyVofficeFilterDerivedBasicQueryInputs } from "./client-DYAHnU5F.mjs";
|
|
2
|
+
import { a as searchQuery, c as VofficeUnitDataFieldSchemas, m as parseVofficeUnitData, n as toImages, r as toAddress, t as toRentalHighlights } from "./to-rental-highlights-B6a_fi0j.mjs";
|
|
3
3
|
import { CoreSDKError, STABLE_SEARCH_INPUTS, daysBetweenLocalDates, expandCustomAttributeFilterCompositions, parseChildrenAges, parseOccupancyCount, resolveExpandedCompositions, toFormattedSearchPrice, toIsoDateFromPeriodQueryDate, toStableSearchInputBackendQueryKeys, toStableSearchInputParameterValues, toStableSearchInputQueryKeys, toUnusedFilterKeys } from "@v-office/sdk-core";
|
|
4
4
|
import { Effect } from "effect";
|
|
5
5
|
//#region src/legacy-v9/parser/search/input/search-input-error.ts
|
|
@@ -5870,12 +5870,29 @@ const toV9RentalHighlightKey = (key) => {
|
|
|
5870
5870
|
};
|
|
5871
5871
|
//#endregion
|
|
5872
5872
|
//#region src/legacy-v9/parser/rentals/to-rental-highlights.ts
|
|
5873
|
+
const RENTAL_VIEW_HIGHLIGHT_KEYS = /* @__PURE__ */ new Set([
|
|
5874
|
+
"beachview",
|
|
5875
|
+
"cityView",
|
|
5876
|
+
"countrysideView",
|
|
5877
|
+
"gardenView",
|
|
5878
|
+
"innerCourtView",
|
|
5879
|
+
"lakeview",
|
|
5880
|
+
"mountainview",
|
|
5881
|
+
"poolView",
|
|
5882
|
+
"quietStreetView",
|
|
5883
|
+
"riverView",
|
|
5884
|
+
"seaview",
|
|
5885
|
+
"valleyView"
|
|
5886
|
+
]);
|
|
5873
5887
|
const toRentalHighlights = ({ locale, translations, highlightPrioritization, customAttributes, attributes }) => Effect.gen(function* () {
|
|
5874
5888
|
const highlights = [];
|
|
5875
5889
|
const seenKeys = /* @__PURE__ */ new Set();
|
|
5876
5890
|
const knownAttributes = attributes.known;
|
|
5877
5891
|
const translate = makeTranslate(translations, locale);
|
|
5892
|
+
let hasViewHighlight = false;
|
|
5878
5893
|
for (const highlightKey of highlightPrioritization) {
|
|
5894
|
+
const isViewHighlight = RENTAL_VIEW_HIGHLIGHT_KEYS.has(highlightKey);
|
|
5895
|
+
if (isViewHighlight && hasViewHighlight) continue;
|
|
5879
5896
|
const v9Key = toV9RentalHighlightKey(highlightKey);
|
|
5880
5897
|
if (v9Key == null) {
|
|
5881
5898
|
if (seenKeys.has(highlightKey)) continue;
|
|
@@ -5888,7 +5905,10 @@ const toRentalHighlights = ({ locale, translations, highlightPrioritization, cus
|
|
|
5888
5905
|
locale,
|
|
5889
5906
|
value: binding === void 0 ? void 0 : knownAttributes[binding] ?? attributes.unknown[binding]
|
|
5890
5907
|
});
|
|
5891
|
-
if (highlight != null)
|
|
5908
|
+
if (highlight != null) {
|
|
5909
|
+
highlights.push(highlight);
|
|
5910
|
+
if (isViewHighlight) hasViewHighlight = true;
|
|
5911
|
+
}
|
|
5892
5912
|
continue;
|
|
5893
5913
|
}
|
|
5894
5914
|
if (seenKeys.has(v9Key)) continue;
|
|
@@ -5900,7 +5920,10 @@ const toRentalHighlights = ({ locale, translations, highlightPrioritization, cus
|
|
|
5900
5920
|
locale,
|
|
5901
5921
|
value: knownAttributes[v9Key]
|
|
5902
5922
|
});
|
|
5903
|
-
if (highlight != null)
|
|
5923
|
+
if (highlight != null) {
|
|
5924
|
+
highlights.push(highlight);
|
|
5925
|
+
if (isViewHighlight) hasViewHighlight = true;
|
|
5926
|
+
}
|
|
5904
5927
|
}
|
|
5905
5928
|
return highlights;
|
|
5906
5929
|
});
|
|
@@ -4,6 +4,8 @@ This file is the versioned changelog index for the website SDK instructions.
|
|
|
4
4
|
|
|
5
5
|
## Versions
|
|
6
6
|
|
|
7
|
+
- `versions/2.10.0/CHANGELOG.md`: `@v-office/website-sdk` 2.10.0 release notes.
|
|
8
|
+
- `versions/2.9.0/CHANGELOG.md`: `@v-office/website-sdk` 2.9.0 release notes.
|
|
7
9
|
- `versions/2.8.0/CHANGELOG.md`: `@v-office/website-sdk` 2.8.0 release notes.
|
|
8
10
|
- `versions/2.7.0/CHANGELOG.md`: `@v-office/website-sdk` 2.7.0 release notes.
|
|
9
11
|
- `versions/2.6.0/CHANGELOG.md`: compatibility note for an unreleased version label.
|
|
@@ -4,6 +4,8 @@ This file is the versioned migration index for the website SDK instructions.
|
|
|
4
4
|
|
|
5
5
|
## Available Guides
|
|
6
6
|
|
|
7
|
+
- `versions/2.10.0/MIGRATION.md`: migrate from `@v-office/website-sdk` 2.9.0 to 2.10.0.
|
|
8
|
+
- `versions/2.9.0/MIGRATION.md`: migrate from `@v-office/website-sdk` 2.8.0 to 2.9.0.
|
|
7
9
|
- `versions/2.8.0/MIGRATION.md`: migrate from `@v-office/website-sdk` 2.7.0 to 2.8.0.
|
|
8
10
|
- `versions/2.7.0/MIGRATION.md`: migrate from `@v-office/website-sdk` 2.5.x to 2.7.0.
|
|
9
11
|
- `versions/2.6.0/MIGRATION.md`: compatibility note for an unreleased version label.
|
package/instructions/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Website SDK Instructions
|
|
2
2
|
|
|
3
3
|
These instructions describe the current source targeted for
|
|
4
|
-
`@v-office/website-sdk` 2.
|
|
4
|
+
`@v-office/website-sdk` 2.10.0. Package versions remain unchanged until the release
|
|
5
5
|
workflow performs the coordinated core and website bumps.
|
|
6
6
|
|
|
7
7
|
Use this directory as the consumer-facing reference for the package:
|
|
@@ -18,6 +18,8 @@ Use this directory as the consumer-facing reference for the package:
|
|
|
18
18
|
- `document-structured-json.md`: `sdk.static.documents.getTermsAndPrivacyPolicy` and structured document JSON rendering rules.
|
|
19
19
|
- `CHANGELOG.md`: versioned changelog index.
|
|
20
20
|
- `MIGRATION.md`: versioned migration index.
|
|
21
|
+
- `versions/2.10.0/`: 2.10.0 option-booking release notes and 2.9.0-to-2.10.0 migration guide.
|
|
22
|
+
- `versions/2.9.0/`: 2.9.0 highlight-selection release notes and 2.8.0-to-2.9.0 migration guide.
|
|
21
23
|
- `versions/2.8.0/`: 2.8.0 custom-attribute release notes and 2.7.0-to-2.8.0 migration guide.
|
|
22
24
|
- `versions/2.7.0/`: 2.7.0 release notes and 2.5.x-to-2.7.0 migration guide.
|
|
23
25
|
- `versions/2.6.0/`: compatibility pointers for the unreleased 2.6.0 version label.
|
|
@@ -74,4 +76,4 @@ website-sdk --backend v10 search --locale de-DE --query "adults=2"
|
|
|
74
76
|
website-sdk --backend v10 search --locale de-DE --query "adults=2" --sort '{"by":"field","orderBy":{"label":"ASC"}}'
|
|
75
77
|
```
|
|
76
78
|
|
|
77
|
-
Config file examples in these docs use the flat `WebsiteSDKConfig` shape introduced in 2.0.0 and kept in 2.
|
|
79
|
+
Config file examples in these docs use the flat `WebsiteSDKConfig` shape introduced in 2.0.0 and kept in 2.10.0. v10 config additionally requires `searchEndpoint` as of 2.5.0.
|
package/instructions/booking.md
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
## Service
|
|
4
4
|
|
|
5
|
-
Use the live booking API to turn an available `GuestQuote` into a
|
|
5
|
+
Use the live booking API to turn an available `GuestQuote` into a confirmed or
|
|
6
|
+
option booking:
|
|
6
7
|
|
|
7
8
|
```ts
|
|
8
9
|
const booking = await sdk.live.booking.book(input);
|
|
@@ -31,6 +32,7 @@ type BookingInput = {
|
|
|
31
32
|
note?: string;
|
|
32
33
|
};
|
|
33
34
|
relativeRedirectUrl: string;
|
|
35
|
+
kind?: "CONFIRMED" | "OPTION";
|
|
34
36
|
};
|
|
35
37
|
```
|
|
36
38
|
|
|
@@ -63,6 +65,8 @@ const booking = await sdk.live.booking.book({
|
|
|
63
65
|
});
|
|
64
66
|
```
|
|
65
67
|
|
|
68
|
+
`kind: "OPTION"` creates an option booking on v10 and legacy v9. Omitting `kind`,
|
|
69
|
+
or passing `"CONFIRMED"`, retains the existing confirmed-booking behavior.
|
|
66
70
|
`relativeRedirectUrl` is used for online payment redirects after booking creation.
|
|
67
71
|
|
|
68
72
|
## Output
|
package/instructions/creation.md
CHANGED
|
@@ -101,12 +101,24 @@ type WebsiteSDKOptions = {
|
|
|
101
101
|
};
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
+
`rentalHighlightPrioritization` and `rentalPropertyHighlightPrioritization` select
|
|
105
|
+
which facts become highlights and set their order. They are ordered allowlists, not
|
|
106
|
+
sorts over every available fact. A key that is not listed is not emitted even when
|
|
107
|
+
the source contains a value. This affects `highlights` only, not `attributes` or
|
|
108
|
+
`vicinity`. Property highlights are available only with v10 property data.
|
|
109
|
+
|
|
110
|
+
For either option, `undefined` uses the SDK default and `[]` emits no highlights.
|
|
111
|
+
Duplicate keys are emitted once; unknown, unsupported, or unresolved keys are
|
|
112
|
+
ignored. When several configured rental view facts have values, only the first one
|
|
113
|
+
in the ordered allowlist is emitted. View-type descriptors qualify a view and are
|
|
114
|
+
not part of this strongest-view selection.
|
|
115
|
+
|
|
104
116
|
Unset options are normalized by the SDK:
|
|
105
117
|
|
|
106
118
|
- `customAttributes` defaults to an empty registry.
|
|
107
119
|
- `customAttributeFilterDefinitions` defaults to `[]`.
|
|
108
|
-
- `rentalHighlightPrioritization` defaults to the SDK default rental highlight
|
|
109
|
-
- `rentalPropertyHighlightPrioritization` defaults to the SDK default property highlight
|
|
120
|
+
- `rentalHighlightPrioritization` defaults to the SDK default rental highlight selection.
|
|
121
|
+
- `rentalPropertyHighlightPrioritization` defaults to the SDK default property highlight selection.
|
|
110
122
|
- `rentalScope` defaults to `{}`.
|
|
111
123
|
- `shouldAddProposedAdditionalServiceAmount` defaults to `false`.
|
|
112
124
|
- `translationOverrides` is omitted unless provided.
|
|
@@ -194,6 +206,9 @@ Supported sources:
|
|
|
194
206
|
active backend, and no generated leaf is committed unless all leaves are valid.
|
|
195
207
|
Nested compositions are rejected while recursive expansion is unsupported.
|
|
196
208
|
|
|
209
|
+
For a new v9 `backendFilter` key, ask someone at be-on! with Hub access to add or
|
|
210
|
+
confirm the backend filter before configuring it in the SDK.
|
|
211
|
+
|
|
197
212
|
Exposure:
|
|
198
213
|
|
|
199
214
|
- `internal: false` exposes searchable filters through `static.filter.getFilters(...)`.
|
|
@@ -279,7 +279,7 @@ them, so an advertised bound always round-trips.
|
|
|
279
279
|
## Highlights and Attributes
|
|
280
280
|
|
|
281
281
|
A custom attribute appears in `highlights` only when its key is listed in
|
|
282
|
-
`rentalHighlightPrioritization`, which
|
|
282
|
+
`rentalHighlightPrioritization`, which is the ordered allowlist:
|
|
283
283
|
|
|
284
284
|
```ts
|
|
285
285
|
const options = defineWebsiteSDKOptions({
|
|
@@ -382,6 +382,10 @@ These are **not** custom attributes and stay in `customAttributeFilterDefinition
|
|
|
382
382
|
filters. Advertised only when every configured leaf can execute on the active
|
|
383
383
|
backend with its configured value.
|
|
384
384
|
|
|
385
|
+
Compositions may reference stable v9 built-ins directly; `backendFilter` is only for
|
|
386
|
+
additional v9 keys. SDK configuration does not create those keys in Hub; ask someone
|
|
387
|
+
at be-on! with Hub access to add or confirm the filter before configuring it.
|
|
388
|
+
|
|
385
389
|
```ts
|
|
386
390
|
const options = defineWebsiteSDKOptions({
|
|
387
391
|
customAttributes,
|
package/instructions/filter.md
CHANGED
|
@@ -93,6 +93,14 @@ Filter variants:
|
|
|
93
93
|
}
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
+
v9 has a fixed built-in filter set. These filters are always advertised, parsed,
|
|
97
|
+
and usable as composition leaves; do not repeat them as `backendFilter` definitions.
|
|
98
|
+
|
|
99
|
+
- Numeric: `bedrooms`, `bathrooms`.
|
|
100
|
+
- Boolean: `pool`, `wifi`, `pets`, `privateparking`, `ac`, `washer`, `dishwasher`,
|
|
101
|
+
`beachfront`, `seaview`, `balcony`, `terrace`, `garden`, `bbq`, `sauna`,
|
|
102
|
+
`fireplace`, `tv`, `childrenWelcome`, `nonsmoking`, `kitchen`.
|
|
103
|
+
|
|
96
104
|
`v10` config:
|
|
97
105
|
|
|
98
106
|
```json
|
|
@@ -111,7 +119,10 @@ Custom attributes come from `customAttributes`, and a definition is advertised o
|
|
|
111
119
|
when it has a public filter and the selected backend can execute it. v9 has no
|
|
112
120
|
custom-attribute search path, so v9 never advertises one; see `custom-attributes.md`.
|
|
113
121
|
|
|
114
|
-
Backend filters and compositions come from `customAttributeFilterDefinitions
|
|
122
|
+
Backend filters and compositions come from `customAttributeFilterDefinitions`.
|
|
123
|
+
SDK configuration cannot create a Hub filter: for another v9 key, first ask someone
|
|
124
|
+
at be-on! with Hub access to add or confirm it, then configure that key as a
|
|
125
|
+
`backendFilter`.
|
|
115
126
|
|
|
116
127
|
```json
|
|
117
128
|
{
|
package/instructions/rentals.md
CHANGED
|
@@ -167,7 +167,24 @@ Optional `WebsiteSDKOptions`:
|
|
|
167
167
|
}
|
|
168
168
|
```
|
|
169
169
|
|
|
170
|
-
`rentalHighlightPrioritization`
|
|
170
|
+
`rentalHighlightPrioritization` selects which facts become rental `highlights` and
|
|
171
|
+
sets their order. It is an ordered allowlist, not a sort over every available fact.
|
|
172
|
+
A key that is not listed is not emitted even when the source contains a value.
|
|
173
|
+
`rentalPropertyHighlightPrioritization` has the same semantics for v10 property
|
|
174
|
+
highlights. Both options affect `highlights` only, not `attributes` or `vicinity`.
|
|
175
|
+
|
|
176
|
+
For either option, `undefined` uses the SDK default and `[]` emits no highlights.
|
|
177
|
+
Duplicate keys are emitted once; unknown, unsupported, or unresolved keys are
|
|
178
|
+
ignored. When several configured rental view facts have values, only the first one
|
|
179
|
+
in the ordered allowlist is emitted. View-type descriptors qualify a view and are
|
|
180
|
+
not part of this strongest-view selection. Translation overrides affect localized
|
|
181
|
+
labels.
|
|
182
|
+
|
|
183
|
+
The active defaults are exported as
|
|
184
|
+
`DEFAULT_RENTAL_HIGHLIGHT_PRIORITIZATION` and
|
|
185
|
+
`DEFAULT_RENTAL_PROPERTY_HIGHLIGHT_PRIORITIZATION` from
|
|
186
|
+
`@v-office/sdk-core`. See `versions/2.9.0/CHANGELOG.md` for the release notes and
|
|
187
|
+
`versions/2.9.0/MIGRATION.md` for the complete default lists and upgrade checks.
|
|
171
188
|
|
|
172
189
|
In CLI JSON, `customAttributes` contains catalog and selection inputs; the CLI builds
|
|
173
190
|
the validated registry. Typed applications normally call `defineCustomAttributes`
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Changelog: 2.10.0
|
|
2
|
+
|
|
3
|
+
This release adds option bookings to the shared booking input and supports them
|
|
4
|
+
consistently through the v10 and legacy v9 backends.
|
|
5
|
+
|
|
6
|
+
## Added
|
|
7
|
+
|
|
8
|
+
- `BookingInput.kind` accepts `"CONFIRMED"` or `"OPTION"`.
|
|
9
|
+
- Passing `kind: "OPTION"` creates an option booking through
|
|
10
|
+
`sdk.live.booking.book(...)`.
|
|
11
|
+
|
|
12
|
+
## Changed
|
|
13
|
+
|
|
14
|
+
- v10 maps `"OPTION"` to the GraphQL booking status `OPTION`.
|
|
15
|
+
- Legacy v9 maps `"OPTION"` to the v0 booking action `option`.
|
|
16
|
+
- Omitting `kind`, or passing `"CONFIRMED"`, retains the existing confirmed-booking
|
|
17
|
+
behavior on both backends.
|
|
18
|
+
|
|
19
|
+
## Migration Impact
|
|
20
|
+
|
|
21
|
+
- Existing booking calls require no changes because `kind` is optional.
|
|
22
|
+
- The booking service name, remaining input fields, and `BookingOutput` are
|
|
23
|
+
unchanged.
|
|
24
|
+
- `relativeRedirectUrl` remains required for both booking kinds.
|
|
25
|
+
- Sites that want to create option bookings can opt in by passing
|
|
26
|
+
`kind: "OPTION"`. See `versions/2.10.0/MIGRATION.md`.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Migration: 2.9.0 to 2.10.0
|
|
2
|
+
|
|
3
|
+
2.10.0 adds an optional booking kind. Existing calls continue to create confirmed
|
|
4
|
+
bookings and require no migration.
|
|
5
|
+
|
|
6
|
+
## 1. Choose the Booking Kind
|
|
7
|
+
|
|
8
|
+
`BookingInput` now includes:
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
kind?: "CONFIRMED" | "OPTION";
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
The values behave as follows:
|
|
15
|
+
|
|
16
|
+
- Omit `kind`, or pass `"CONFIRMED"`, to create a confirmed booking.
|
|
17
|
+
- Pass `"OPTION"` to create an option booking.
|
|
18
|
+
|
|
19
|
+
The SDK maps these values to the native backend representation:
|
|
20
|
+
|
|
21
|
+
- v10 uses booking status `CONFIRMED` or `OPTION`.
|
|
22
|
+
- Legacy v9 uses booking action `booking` or `option`.
|
|
23
|
+
|
|
24
|
+
## 2. Create an Option Booking
|
|
25
|
+
|
|
26
|
+
Use the existing booking service and set `kind` to `"OPTION"`:
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
const optionBooking = await sdk.live.booking.book({
|
|
30
|
+
quote,
|
|
31
|
+
contact,
|
|
32
|
+
relativeRedirectUrl: "/booking/payment-return",
|
|
33
|
+
kind: "OPTION",
|
|
34
|
+
});
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
No separate option-booking method is required. The returned value remains a
|
|
38
|
+
`BookingOutput`.
|
|
39
|
+
|
|
40
|
+
## 3. Keep Existing Confirmed Bookings Unchanged
|
|
41
|
+
|
|
42
|
+
Existing calls remain valid:
|
|
43
|
+
|
|
44
|
+
```ts
|
|
45
|
+
const booking = await sdk.live.booking.book({
|
|
46
|
+
quote,
|
|
47
|
+
contact,
|
|
48
|
+
relativeRedirectUrl: "/booking/payment-return",
|
|
49
|
+
});
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Passing `kind: "CONFIRMED"` is equivalent to omitting the field. Other input
|
|
53
|
+
requirements, including `relativeRedirectUrl`, are unchanged.
|
|
54
|
+
|
|
55
|
+
## Recommended Verification
|
|
56
|
+
|
|
57
|
+
1. Create a booking without `kind` and confirm it remains confirmed.
|
|
58
|
+
2. Create a booking with `kind: "OPTION"` and confirm the backend records it as an
|
|
59
|
+
option.
|
|
60
|
+
3. Repeat both checks against v10 and legacy v9 when the site supports both
|
|
61
|
+
backends.
|
|
62
|
+
4. Verify existing booking-result and payment handling still accepts the unchanged
|
|
63
|
+
`BookingOutput`.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Changelog: 2.9.0
|
|
2
|
+
|
|
3
|
+
This release makes highlight selection explicit, improves the default rental and
|
|
4
|
+
property rankings across coastal, lake, and mountain portfolios, and removes
|
|
5
|
+
duplicate rental views.
|
|
6
|
+
|
|
7
|
+
## Changed
|
|
8
|
+
|
|
9
|
+
- `rentalHighlightPrioritization` and
|
|
10
|
+
`rentalPropertyHighlightPrioritization` are documented as ordered allowlists,
|
|
11
|
+
not sorts over every available fact. A key that is not listed is not emitted as
|
|
12
|
+
a highlight even when the source contains a value.
|
|
13
|
+
- The default rental allowlist now starts with capacity and size, moves distinctive
|
|
14
|
+
views and facilities ahead of common fittings, places `youthgroups` last, and
|
|
15
|
+
includes previously omitted terrain-specific and practical facts.
|
|
16
|
+
- `outdoorPool`, `indoorPool`, lake, mountain, countryside, river, and secondary
|
|
17
|
+
views can now appear through the default rental highlights, alongside facilities
|
|
18
|
+
such as `spa`, `terrace`, `lift`, `garage`, `dryer`, and `skiBootWarmer`.
|
|
19
|
+
- The default v10 property allowlist now prioritizes beach location and shared
|
|
20
|
+
facilities ahead of utilities. It also includes `locLake`, `lakedistance`,
|
|
21
|
+
`locMountain`, and `skidistance`.
|
|
22
|
+
- Rental highlights now emit only the first configured view fact that has a value.
|
|
23
|
+
The configured order defines which view is strongest. View-type descriptors such
|
|
24
|
+
as `seaviewType` remain independent qualifiers.
|
|
25
|
+
- Strongest-view selection applies consistently to v10 and legacy v9 rental
|
|
26
|
+
highlights. Keys unsupported by the active backend remain ignored.
|
|
27
|
+
|
|
28
|
+
## Migration Impact
|
|
29
|
+
|
|
30
|
+
- Sites using the SDK defaults may receive a different highlight order and more
|
|
31
|
+
highlight values.
|
|
32
|
+
- Sites that displayed several simultaneous rental views now receive at most one
|
|
33
|
+
view highlight.
|
|
34
|
+
- Explicit custom allowlists retain their configured order and membership, apart
|
|
35
|
+
from the new strongest-view rule.
|
|
36
|
+
- No SDK construction, service-call, or output-type changes are required. Review
|
|
37
|
+
`versions/2.9.0/MIGRATION.md` before upgrading.
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Migration: 2.8.0 to 2.9.0
|
|
2
|
+
|
|
3
|
+
2.9.0 changes default highlight membership and order and emits at most one rental
|
|
4
|
+
view highlight. Configuration and output types are unchanged.
|
|
5
|
+
|
|
6
|
+
## 1. Treat Highlight Configuration as an Ordered Allowlist
|
|
7
|
+
|
|
8
|
+
`rentalHighlightPrioritization` and
|
|
9
|
+
`rentalPropertyHighlightPrioritization` select which facts become highlights and
|
|
10
|
+
set their order. They do not sort a complete list generated elsewhere.
|
|
11
|
+
|
|
12
|
+
- An omitted key is not emitted even when the source contains a value.
|
|
13
|
+
- `undefined` uses the SDK default.
|
|
14
|
+
- `[]` emits no highlights.
|
|
15
|
+
- Duplicate keys are evaluated once.
|
|
16
|
+
- Unknown, unresolved, or backend-unsupported keys are ignored.
|
|
17
|
+
- These options affect `highlights`, not `attributes` or `vicinity`.
|
|
18
|
+
|
|
19
|
+
Audit custom lists that were shortened only to express a preferred order. Add every
|
|
20
|
+
fact that must remain eligible for highlight output.
|
|
21
|
+
|
|
22
|
+
## 2. Review the New Rental Default
|
|
23
|
+
|
|
24
|
+
The default rental allowlist is now:
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
[
|
|
28
|
+
"maxPersons",
|
|
29
|
+
"bedrooms",
|
|
30
|
+
"squareMeters",
|
|
31
|
+
"bathrooms",
|
|
32
|
+
"seaview",
|
|
33
|
+
"lakeview",
|
|
34
|
+
"mountainview",
|
|
35
|
+
"valleyView",
|
|
36
|
+
"countrysideView",
|
|
37
|
+
"riverView",
|
|
38
|
+
"outdoorPool",
|
|
39
|
+
"indoorPool",
|
|
40
|
+
"sauna",
|
|
41
|
+
"spa",
|
|
42
|
+
"whirlpool",
|
|
43
|
+
"balcony",
|
|
44
|
+
"terrace",
|
|
45
|
+
"garden",
|
|
46
|
+
"beachChair",
|
|
47
|
+
"landingStage",
|
|
48
|
+
"boatBerth",
|
|
49
|
+
"skiBootWarmer",
|
|
50
|
+
"detached",
|
|
51
|
+
"fireplace",
|
|
52
|
+
"bbq",
|
|
53
|
+
"gym",
|
|
54
|
+
"closedPlot",
|
|
55
|
+
"beachview",
|
|
56
|
+
"gardenView",
|
|
57
|
+
"poolView",
|
|
58
|
+
"cityView",
|
|
59
|
+
"quietStreetView",
|
|
60
|
+
"innerCourtView",
|
|
61
|
+
"washer",
|
|
62
|
+
"dryer",
|
|
63
|
+
"privateparking",
|
|
64
|
+
"garage",
|
|
65
|
+
"carport",
|
|
66
|
+
"wifi",
|
|
67
|
+
"lift",
|
|
68
|
+
"childrenWelcome",
|
|
69
|
+
"nonsmoking",
|
|
70
|
+
"kitchen",
|
|
71
|
+
"dishwasher",
|
|
72
|
+
"tv",
|
|
73
|
+
"ac",
|
|
74
|
+
"heating",
|
|
75
|
+
"fridge",
|
|
76
|
+
"microwave",
|
|
77
|
+
"oven",
|
|
78
|
+
"stove",
|
|
79
|
+
"coffeemaker",
|
|
80
|
+
"freezer",
|
|
81
|
+
"electricKettle",
|
|
82
|
+
"youthgroups",
|
|
83
|
+
];
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Capacity and size come first, followed by distinctive views, facilities, outdoor
|
|
87
|
+
space, terrain-specific draws, practical confirmers, common fittings, and finally
|
|
88
|
+
the minority booking rule `youthgroups`.
|
|
89
|
+
|
|
90
|
+
## 3. Review the New Property Default
|
|
91
|
+
|
|
92
|
+
Property highlights apply only to v10 property data. Their default allowlist is:
|
|
93
|
+
|
|
94
|
+
```ts
|
|
95
|
+
[
|
|
96
|
+
"beachfront",
|
|
97
|
+
"beachaccess",
|
|
98
|
+
"beachdistance",
|
|
99
|
+
"seadistance",
|
|
100
|
+
"locBeach",
|
|
101
|
+
"locLake",
|
|
102
|
+
"lakedistance",
|
|
103
|
+
"locMountain",
|
|
104
|
+
"skidistance",
|
|
105
|
+
"outdoorPool",
|
|
106
|
+
"indoorPool",
|
|
107
|
+
"garden",
|
|
108
|
+
"terrace",
|
|
109
|
+
"bbqFacilities",
|
|
110
|
+
"playground",
|
|
111
|
+
"pool4kids",
|
|
112
|
+
"familyRoomsAvailable",
|
|
113
|
+
"parking",
|
|
114
|
+
"wifi",
|
|
115
|
+
"washer",
|
|
116
|
+
"dryer",
|
|
117
|
+
"ac",
|
|
118
|
+
"heating",
|
|
119
|
+
"locGroceries",
|
|
120
|
+
"restaurantdistance",
|
|
121
|
+
"publictransportdistance",
|
|
122
|
+
];
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Location and terrain now precede shared facilities, family signals, utilities, and
|
|
126
|
+
secondary map facts.
|
|
127
|
+
|
|
128
|
+
## 4. Expect One Rental View Highlight
|
|
129
|
+
|
|
130
|
+
When several configured view facts have values, only the first one in
|
|
131
|
+
`rentalHighlightPrioritization` is emitted:
|
|
132
|
+
|
|
133
|
+
```ts
|
|
134
|
+
rentalHighlightPrioritization: ["mountainview", "lakeview", "seaview", "gardenView", "wifi"];
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
For this configuration, a rental with both mountain and lake views emits only the
|
|
138
|
+
mountain view. If `mountainview` has no value, the lake view can emit instead.
|
|
139
|
+
View-type descriptors such as `mountainviewType` and `seaviewType` qualify a view
|
|
140
|
+
and do not compete for the single view slot.
|
|
141
|
+
|
|
142
|
+
The rule applies to v10 and legacy v9. An unsupported v9 view key does not prevent
|
|
143
|
+
a later supported view from being emitted.
|
|
144
|
+
|
|
145
|
+
## Recommended Verification
|
|
146
|
+
|
|
147
|
+
1. Check search cards and rental pages that truncate highlights.
|
|
148
|
+
2. Compare coastal, lake, and mountain workspaces against the new defaults.
|
|
149
|
+
3. Confirm capacity and size remain available to consumers that read them from
|
|
150
|
+
search highlights.
|
|
151
|
+
4. Verify rentals with cumulative view facts emit the expected first configured
|
|
152
|
+
view.
|
|
153
|
+
5. Review explicit custom allowlists for facts that were unintentionally omitted.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@v-office/website-sdk",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.10.0",
|
|
4
4
|
"description": "Website-facing SDK facade backed by @v-office/sdk-core",
|
|
5
5
|
"bin": {
|
|
6
6
|
"website-sdk": "./dist/cli.mjs"
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@graphql-typed-document-node/core": "3.2.0",
|
|
44
|
-
"@v-office/sdk-core": "^1.
|
|
44
|
+
"@v-office/sdk-core": "^1.10.0",
|
|
45
45
|
"effect": "4.0.0-beta.85",
|
|
46
46
|
"graphql": "16.14.2",
|
|
47
47
|
"yaml": "^2.9.0"
|