@voyantjs/storefront 0.64.1 → 0.66.6
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,5 +1,63 @@
|
|
|
1
1
|
import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
|
|
2
2
|
import type { StorefrontDepartureListQuery, StorefrontDeparturePricePreviewInput, StorefrontOfferMutationResult, StorefrontProductAvailabilitySummaryQuery, StorefrontPromotionalOffer } from "./validation.js";
|
|
3
|
+
type PricingContext = {
|
|
4
|
+
product: {
|
|
5
|
+
id: string;
|
|
6
|
+
sellCurrency: string;
|
|
7
|
+
sellAmountCents: number | null;
|
|
8
|
+
capacityMode: string;
|
|
9
|
+
} | null;
|
|
10
|
+
catalog: {
|
|
11
|
+
id: string;
|
|
12
|
+
currencyCode: string | null;
|
|
13
|
+
} | null;
|
|
14
|
+
option: {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
description: string | null;
|
|
18
|
+
} | null;
|
|
19
|
+
rule: {
|
|
20
|
+
id: string;
|
|
21
|
+
name: string;
|
|
22
|
+
description: string | null;
|
|
23
|
+
pricingMode: string;
|
|
24
|
+
baseSellAmountCents: number | null;
|
|
25
|
+
} | null;
|
|
26
|
+
units: Array<{
|
|
27
|
+
id: string;
|
|
28
|
+
name: string;
|
|
29
|
+
unitType: string;
|
|
30
|
+
minAge: number | null;
|
|
31
|
+
maxAge: number | null;
|
|
32
|
+
occupancyMin: number | null;
|
|
33
|
+
occupancyMax: number | null;
|
|
34
|
+
isRequired: boolean;
|
|
35
|
+
}>;
|
|
36
|
+
unitRules: Array<{
|
|
37
|
+
id: string;
|
|
38
|
+
unitId: string;
|
|
39
|
+
pricingMode: string;
|
|
40
|
+
sellAmountCents: number | null;
|
|
41
|
+
minQuantity: number | null;
|
|
42
|
+
maxQuantity: number | null;
|
|
43
|
+
sortOrder: number;
|
|
44
|
+
}>;
|
|
45
|
+
tiers: Array<{
|
|
46
|
+
id: string;
|
|
47
|
+
optionUnitPriceRuleId: string;
|
|
48
|
+
minQuantity: number;
|
|
49
|
+
maxQuantity: number | null;
|
|
50
|
+
sellAmountCents: number | null;
|
|
51
|
+
sortOrder: number;
|
|
52
|
+
}>;
|
|
53
|
+
extraRules: Array<{
|
|
54
|
+
id: string;
|
|
55
|
+
productExtraId: string | null;
|
|
56
|
+
pricingMode: string;
|
|
57
|
+
sellAmountCents: number | null;
|
|
58
|
+
sortOrder: number;
|
|
59
|
+
}>;
|
|
60
|
+
};
|
|
3
61
|
export interface StorefrontDeparturePricePreviewOfferResolvers {
|
|
4
62
|
listApplicableOffers?: (input: {
|
|
5
63
|
productId: string;
|
|
@@ -33,6 +91,16 @@ export interface StorefrontDeparturePricePreviewOfferResolvers {
|
|
|
33
91
|
};
|
|
34
92
|
}) => Promise<StorefrontOfferMutationResult | null> | StorefrontOfferMutationResult | null;
|
|
35
93
|
}
|
|
94
|
+
export declare function buildTravelerRequestedUnits(args: {
|
|
95
|
+
units: PricingContext["units"];
|
|
96
|
+
adults: number;
|
|
97
|
+
children: number;
|
|
98
|
+
infants: number;
|
|
99
|
+
}): {
|
|
100
|
+
unitId?: string;
|
|
101
|
+
requestRef?: string;
|
|
102
|
+
quantity: number;
|
|
103
|
+
}[];
|
|
36
104
|
export declare function getStorefrontDeparture(db: PostgresJsDatabase, departureId: string): Promise<{
|
|
37
105
|
id: string;
|
|
38
106
|
productId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-departures.d.ts","sourceRoot":"","sources":["../src/service-departures.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,OAAO,KAAK,EAEV,4BAA4B,EAC5B,oCAAoC,EACpC,6BAA6B,EAC7B,yCAAyC,EACzC,0BAA0B,EAC3B,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"service-departures.d.ts","sourceRoot":"","sources":["../src/service-departures.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,9 +65,9 @@ function selectTierAmount(unitRule, tiers, quantity) {
|
|
|
65
65
|
function findNamedUnit(units, matcher) {
|
|
66
66
|
return units.find(matcher) ?? null;
|
|
67
67
|
}
|
|
68
|
-
function buildTravelerRequestedUnits(args) {
|
|
68
|
+
export function buildTravelerRequestedUnits(args) {
|
|
69
69
|
const requestedUnits = [];
|
|
70
|
-
const normalized = args.units.filter((unit) => unit.unitType === "person"
|
|
70
|
+
const normalized = args.units.filter((unit) => unit.unitType === "person");
|
|
71
71
|
const adultUnit = findNamedUnit(normalized, (unit) => (unit.maxAge == null || unit.maxAge >= 18) &&
|
|
72
72
|
(unit.minAge == null || unit.minAge < 18) &&
|
|
73
73
|
!/child|infant/i.test(unit.name)) ?? normalized[0];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voyantjs/storefront",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.66.6",
|
|
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/
|
|
43
|
-
"@voyantjs/core": "0.
|
|
44
|
-
"@voyantjs/
|
|
45
|
-
"@voyantjs/extras": "0.
|
|
46
|
-
"@voyantjs/
|
|
47
|
-
"@voyantjs/
|
|
48
|
-
"@voyantjs/
|
|
49
|
-
"@voyantjs/
|
|
50
|
-
"@voyantjs/
|
|
51
|
-
"@voyantjs/
|
|
42
|
+
"@voyantjs/availability": "0.66.6",
|
|
43
|
+
"@voyantjs/core": "0.66.6",
|
|
44
|
+
"@voyantjs/crm": "0.66.6",
|
|
45
|
+
"@voyantjs/extras": "0.66.6",
|
|
46
|
+
"@voyantjs/bookings": "0.66.6",
|
|
47
|
+
"@voyantjs/finance": "0.66.6",
|
|
48
|
+
"@voyantjs/hono": "0.66.6",
|
|
49
|
+
"@voyantjs/products": "0.66.6",
|
|
50
|
+
"@voyantjs/pricing": "0.66.6",
|
|
51
|
+
"@voyantjs/sellability": "0.66.6"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"typescript": "^6.0.2",
|
|
55
55
|
"vitest": "^4.1.2",
|
|
56
|
-
"@voyantjs/
|
|
57
|
-
"@voyantjs/
|
|
56
|
+
"@voyantjs/voyant-typescript-config": "0.1.0",
|
|
57
|
+
"@voyantjs/db": "0.66.6"
|
|
58
58
|
},
|
|
59
59
|
"files": [
|
|
60
60
|
"dist"
|