@voyantjs/storefront 0.81.11 → 0.81.13
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-booking-session-bootstrap.d.ts","sourceRoot":"","sources":["../src/service-booking-session-bootstrap.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,iBAAiB,CAAA;AAE7E,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,kBAAkB,CAAA;IACtB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,wCAAwC;IACvD,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,oBAAoB,CAAC,EAAE,CACrB,KAAK,EAAE,sCAAsC,GAAG,iCAAiC,KAC9E,OAAO,CAAC,aAAa,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,aAAa,GAAG,IAAI,GAAG,SAAS,CAAA;IACjF,KAAK,CAAC,EAAE,IAAI,CAAA;CACb;
|
|
1
|
+
{"version":3,"file":"service-booking-session-bootstrap.d.ts","sourceRoot":"","sources":["../src/service-booking-session-bootstrap.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,iBAAiB,CAAA;AAE7E,MAAM,WAAW,iCAAiC;IAChD,EAAE,EAAE,kBAAkB,CAAA;IACtB,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,wCAAwC;IACvD,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,oBAAoB,CAAC,EAAE,CACrB,KAAK,EAAE,sCAAsC,GAAG,iCAAiC,KAC9E,OAAO,CAAC,aAAa,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,aAAa,GAAG,IAAI,GAAG,SAAS,CAAA;IACjF,KAAK,CAAC,EAAE,IAAI,CAAA;CACb;AA2PD,wBAAsB,iCAAiC,CACrD,OAAO,EAAE,iCAAiC,EAC1C,KAAK,EAAE,sCAAsC,EAC7C,OAAO,EAAE,wCAAwC,GAAG,SAAS,EAC7D,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;4BAhKD,MAAM;wBACV,MAAM;uBACP,MAAM;2BACF,MAAM,GAAG,IAAI;0BACd,MAAM,GAAG,IAAI;8BACT,MAAM,GAAG,IAAI;gCACX,MAAM,GAAG,IAAI;gCACb,MAAM,GAAG,IAAI;mCACV,MAAM,GAAG,IAAI;0BACtB,MAAM;6BACH,MAAM;qCACE,MAAM,GAAG,IAAI;sCACZ,MAAM,GAAG,IAAI;0BACzB,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAXX,MAAM;+BACF,MAAM,GAAG,IAAI;8BACd,MAAM,GAAG,IAAI;kCACT,MAAM,GAAG,IAAI;oCACX,MAAM,GAAG,IAAI;oCACb,MAAM,GAAG,IAAI;uCACV,MAAM,GAAG,IAAI;8BACtB,MAAM;iCACH,MAAM;yCACE,MAAM,GAAG,IAAI;0CACZ,MAAM,GAAG,IAAI;8BACzB,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwTrB"}
|
|
@@ -57,6 +57,10 @@ type PricingContext = {
|
|
|
57
57
|
sellAmountCents: number | null;
|
|
58
58
|
sortOrder: number;
|
|
59
59
|
}>;
|
|
60
|
+
unitPriceOverrides: Map<string, {
|
|
61
|
+
sellAmountCents: number;
|
|
62
|
+
costAmountCents: number | null;
|
|
63
|
+
}>;
|
|
60
64
|
};
|
|
61
65
|
export interface StorefrontDeparturePricePreviewOfferResolvers {
|
|
62
66
|
listApplicableOffers?: (input: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-departures.d.ts","sourceRoot":"","sources":["../src/service-departures.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service-departures.d.ts","sourceRoot":"","sources":["../src/service-departures.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getSlotResourceAvailability, getSlotsResourceAvailability, } from "@voyantjs/availability";
|
|
2
2
|
import { availabilitySlots, availabilityStartTimes } from "@voyantjs/availability/schema";
|
|
3
3
|
import { productExtras } from "@voyantjs/extras/schema";
|
|
4
|
+
import { loadDeparturePriceOverrides } from "@voyantjs/pricing";
|
|
4
5
|
import { extraPriceRules, optionPriceRules, optionUnitPriceRules, optionUnitTiers, priceCatalogs, } from "@voyantjs/pricing/schema";
|
|
5
6
|
import { optionUnits, productDayServices, productDays, productItineraries, productLocations, productMedia, productOptions, products, } from "@voyantjs/products/schema";
|
|
6
7
|
import { sellabilityService } from "@voyantjs/sellability";
|
|
@@ -62,6 +63,13 @@ function selectTierAmount(unitRule, tiers, quantity) {
|
|
|
62
63
|
const tier = selectUnitTier(unitRule, tiers, quantity);
|
|
63
64
|
return tier?.sellAmountCents ?? unitRule.sellAmountCents ?? null;
|
|
64
65
|
}
|
|
66
|
+
function selectUnitAmount(context, unitRule, quantity) {
|
|
67
|
+
if (!unitRule) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
return (context.unitPriceOverrides.get(unitRule.unitId)?.sellAmountCents ??
|
|
71
|
+
selectTierAmount(unitRule, context.tiers, quantity));
|
|
72
|
+
}
|
|
65
73
|
function findNamedUnit(units, matcher) {
|
|
66
74
|
return units.find(matcher) ?? null;
|
|
67
75
|
}
|
|
@@ -219,7 +227,7 @@ async function countSlots(db, filters = {}) {
|
|
|
219
227
|
.where(and(...conditions));
|
|
220
228
|
return result?.value ?? 0;
|
|
221
229
|
}
|
|
222
|
-
async function resolvePricingContext(db, productId, optionId) {
|
|
230
|
+
async function resolvePricingContext(db, productId, optionId, departureId) {
|
|
223
231
|
const [product] = await db
|
|
224
232
|
.select({
|
|
225
233
|
id: products.id,
|
|
@@ -259,6 +267,7 @@ async function resolvePricingContext(db, productId, optionId) {
|
|
|
259
267
|
unitRules: [],
|
|
260
268
|
tiers: [],
|
|
261
269
|
extraRules: [],
|
|
270
|
+
unitPriceOverrides: new Map(),
|
|
262
271
|
};
|
|
263
272
|
}
|
|
264
273
|
const [rule] = await db
|
|
@@ -297,6 +306,7 @@ async function resolvePricingContext(db, productId, optionId) {
|
|
|
297
306
|
unitRules: [],
|
|
298
307
|
tiers: [],
|
|
299
308
|
extraRules: [],
|
|
309
|
+
unitPriceOverrides: new Map(),
|
|
300
310
|
};
|
|
301
311
|
}
|
|
302
312
|
const unitRules = await db
|
|
@@ -337,6 +347,12 @@ async function resolvePricingContext(db, productId, optionId) {
|
|
|
337
347
|
.from(extraPriceRules)
|
|
338
348
|
.where(and(eq(extraPriceRules.optionPriceRuleId, rule.id), eq(extraPriceRules.active, true)))
|
|
339
349
|
.orderBy(asc(extraPriceRules.sortOrder), asc(extraPriceRules.createdAt));
|
|
350
|
+
const unitPriceOverrides = departureId
|
|
351
|
+
? await loadDeparturePriceOverrides(db, {
|
|
352
|
+
departureId,
|
|
353
|
+
catalogId: catalog.id,
|
|
354
|
+
})
|
|
355
|
+
: new Map();
|
|
340
356
|
return {
|
|
341
357
|
product: product ?? null,
|
|
342
358
|
catalog,
|
|
@@ -346,6 +362,7 @@ async function resolvePricingContext(db, productId, optionId) {
|
|
|
346
362
|
unitRules,
|
|
347
363
|
tiers,
|
|
348
364
|
extraRules,
|
|
365
|
+
unitPriceOverrides,
|
|
349
366
|
};
|
|
350
367
|
}
|
|
351
368
|
function buildRatePlans(context) {
|
|
@@ -358,7 +375,7 @@ function buildRatePlans(context) {
|
|
|
358
375
|
.map((unit) => {
|
|
359
376
|
const unitRule = context.unitRules.find((row) => row.unitId === unit.id);
|
|
360
377
|
const quantityHint = Math.max(1, unit.occupancyMax ?? unit.occupancyMin ?? 1);
|
|
361
|
-
const amount = centsToAmount(
|
|
378
|
+
const amount = centsToAmount(selectUnitAmount(context, unitRule, quantityHint));
|
|
362
379
|
if (amount == null) {
|
|
363
380
|
return null;
|
|
364
381
|
}
|
|
@@ -412,7 +429,7 @@ function computeFallbackLineItems(args) {
|
|
|
412
429
|
if (!unitRule) {
|
|
413
430
|
continue;
|
|
414
431
|
}
|
|
415
|
-
const amountCents =
|
|
432
|
+
const amountCents = selectUnitAmount(args.context, unitRule, Math.max(1, room.occupancy * room.quantity));
|
|
416
433
|
const unitAmount = centsToAmount(amountCents) ?? 0;
|
|
417
434
|
const quantity = unitRule.pricingMode === "per_person"
|
|
418
435
|
? Math.max(1, room.occupancy * room.quantity)
|
|
@@ -442,7 +459,7 @@ function computeFallbackLineItems(args) {
|
|
|
442
459
|
if (!unitRule) {
|
|
443
460
|
continue;
|
|
444
461
|
}
|
|
445
|
-
const unitAmount = centsToAmount(
|
|
462
|
+
const unitAmount = centsToAmount(selectUnitAmount(args.context, unitRule, request.quantity)) ?? 0;
|
|
446
463
|
const totalAmount = Number((unitAmount * request.quantity).toFixed(2));
|
|
447
464
|
total += totalAmount;
|
|
448
465
|
const unit = request.unitId
|
|
@@ -789,7 +806,7 @@ async function buildOfferPreview(input) {
|
|
|
789
806
|
};
|
|
790
807
|
}
|
|
791
808
|
async function buildDeparture(db, slot, defaultItineraryByProduct, meetingPointByProduct, resourceAvailability) {
|
|
792
|
-
const context = await resolvePricingContext(db, slot.productId, slot.optionId);
|
|
809
|
+
const context = await resolvePricingContext(db, slot.productId, slot.optionId, slot.id);
|
|
793
810
|
const itineraryId = slot.itineraryId ?? defaultItineraryByProduct.get(slot.productId) ?? null;
|
|
794
811
|
const resources = resourceAvailability ?? [];
|
|
795
812
|
return {
|
|
@@ -1024,7 +1041,7 @@ export async function previewStorefrontDeparturePrice(db, departureId, input, of
|
|
|
1024
1041
|
if (!slot) {
|
|
1025
1042
|
return null;
|
|
1026
1043
|
}
|
|
1027
|
-
const context = await resolvePricingContext(db, slot.productId, slot.optionId);
|
|
1044
|
+
const context = await resolvePricingContext(db, slot.productId, slot.optionId, slot.id);
|
|
1028
1045
|
const adults = Math.max(0, input.pax?.adults ?? 1);
|
|
1029
1046
|
const children = Math.max(0, input.pax?.children ?? 0);
|
|
1030
1047
|
const infants = Math.max(0, input.pax?.infants ?? 0);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voyantjs/storefront",
|
|
3
|
-
"version": "0.81.
|
|
3
|
+
"version": "0.81.13",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -39,22 +39,22 @@
|
|
|
39
39
|
"drizzle-orm": "^0.45.2",
|
|
40
40
|
"hono": "^4.12.10",
|
|
41
41
|
"zod": "^4.3.6",
|
|
42
|
-
"@voyantjs/availability": "0.81.
|
|
43
|
-
"@voyantjs/
|
|
44
|
-
"@voyantjs/core": "0.81.
|
|
45
|
-
"@voyantjs/
|
|
46
|
-
"@voyantjs/
|
|
47
|
-
"@voyantjs/finance": "0.81.
|
|
48
|
-
"@voyantjs/hono": "0.81.
|
|
49
|
-
"@voyantjs/
|
|
50
|
-
"@voyantjs/products": "0.81.
|
|
51
|
-
"@voyantjs/
|
|
42
|
+
"@voyantjs/availability": "0.81.13",
|
|
43
|
+
"@voyantjs/extras": "0.81.13",
|
|
44
|
+
"@voyantjs/core": "0.81.13",
|
|
45
|
+
"@voyantjs/crm": "0.81.13",
|
|
46
|
+
"@voyantjs/bookings": "0.81.13",
|
|
47
|
+
"@voyantjs/finance": "0.81.13",
|
|
48
|
+
"@voyantjs/hono": "0.81.13",
|
|
49
|
+
"@voyantjs/sellability": "0.81.13",
|
|
50
|
+
"@voyantjs/products": "0.81.13",
|
|
51
|
+
"@voyantjs/pricing": "0.81.13"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"typescript": "^6.0.2",
|
|
55
55
|
"vitest": "^4.1.2",
|
|
56
|
-
"@voyantjs/
|
|
57
|
-
"@voyantjs/
|
|
56
|
+
"@voyantjs/db": "0.81.13",
|
|
57
|
+
"@voyantjs/voyant-typescript-config": "0.1.0"
|
|
58
58
|
},
|
|
59
59
|
"files": [
|
|
60
60
|
"dist"
|