@voyantjs/travel-composer 0.55.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.
Files changed (56) hide show
  1. package/README.md +38 -0
  2. package/dist/catalog-component-adapter.d.ts +16 -0
  3. package/dist/catalog-component-adapter.d.ts.map +1 -0
  4. package/dist/catalog-component-adapter.js +34 -0
  5. package/dist/cruise-extension.d.ts +48 -0
  6. package/dist/cruise-extension.d.ts.map +1 -0
  7. package/dist/cruise-extension.js +66 -0
  8. package/dist/index.d.ts +21 -0
  9. package/dist/index.d.ts.map +1 -0
  10. package/dist/index.js +29 -0
  11. package/dist/mcp-tools.d.ts +157 -0
  12. package/dist/mcp-tools.d.ts.map +1 -0
  13. package/dist/mcp-tools.js +109 -0
  14. package/dist/routes.d.ts +1988 -0
  15. package/dist/routes.d.ts.map +1 -0
  16. package/dist/routes.js +239 -0
  17. package/dist/schema.d.ts +1228 -0
  18. package/dist/schema.d.ts.map +1 -0
  19. package/dist/schema.js +163 -0
  20. package/dist/service-cancellation.d.ts +6 -0
  21. package/dist/service-cancellation.d.ts.map +1 -0
  22. package/dist/service-cancellation.js +251 -0
  23. package/dist/service-checkout.d.ts +6 -0
  24. package/dist/service-checkout.d.ts.map +1 -0
  25. package/dist/service-checkout.js +328 -0
  26. package/dist/service-drafts.d.ts +13 -0
  27. package/dist/service-drafts.d.ts.map +1 -0
  28. package/dist/service-drafts.js +223 -0
  29. package/dist/service-helpers.d.ts +17 -0
  30. package/dist/service-helpers.d.ts.map +1 -0
  31. package/dist/service-helpers.js +161 -0
  32. package/dist/service-internals.d.ts +11 -0
  33. package/dist/service-internals.d.ts.map +1 -0
  34. package/dist/service-internals.js +72 -0
  35. package/dist/service-pricing.d.ts +8 -0
  36. package/dist/service-pricing.d.ts.map +1 -0
  37. package/dist/service-pricing.js +142 -0
  38. package/dist/service-reservation.d.ts +5 -0
  39. package/dist/service-reservation.d.ts.map +1 -0
  40. package/dist/service-reservation.js +447 -0
  41. package/dist/service-trips.d.ts +14 -0
  42. package/dist/service-trips.d.ts.map +1 -0
  43. package/dist/service-trips.js +377 -0
  44. package/dist/service-types.d.ts +252 -0
  45. package/dist/service-types.d.ts.map +1 -0
  46. package/dist/service-types.js +6 -0
  47. package/dist/service.d.ts +33 -0
  48. package/dist/service.d.ts.map +1 -0
  49. package/dist/service.js +35 -0
  50. package/dist/traveler-party-validation.d.ts +3 -0
  51. package/dist/traveler-party-validation.d.ts.map +1 -0
  52. package/dist/traveler-party-validation.js +68 -0
  53. package/dist/validation.d.ts +363 -0
  54. package/dist/validation.d.ts.map +1 -0
  55. package/dist/validation.js +226 -0
  56. package/package.json +88 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAE3D,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACjF,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EACL,yBAAyB,EACzB,gCAAgC,EAChC,+BAA+B,EAC/B,iCAAiC,EACjC,mCAAmC,EACnC,8BAA8B,EAC9B,8BAA8B,EAC9B,4BAA4B,EAC5B,6BAA6B,EAC7B,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EACL,YAAY,EACZ,UAAU,EACV,OAAO,EACP,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,UAAU,GACX,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EACV,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,2BAA2B,EAC3B,4BAA4B,EAC5B,iCAAiC,EACjC,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,aAAa,EACb,eAAe,EACf,6BAA6B,EAC7B,8BAA8B,EAC9B,qBAAqB,EACrB,+BAA+B,EAC/B,+BAA+B,EAC/B,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,4BAA4B,EAC5B,IAAI,EACJ,6BAA6B,EAC7B,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,GACf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAA;AAEjE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACjF,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EACL,YAAY,EACZ,UAAU,EACV,OAAO,EACP,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,UAAU,EACX,MAAM,oBAAoB,CAAA;AAE3B,eAAO,MAAM,qBAAqB;iBACnB,oBAAoB;;;;;;;;;;;;;;;;CAqBlC,CAAA"}
@@ -0,0 +1,35 @@
1
+ export { cancelComponents, previewCancellation } from "./service-cancellation.js";
2
+ export { completeTripCheckout, startCheckout } from "./service-checkout.js";
3
+ export { aggregateComponentPricing, assertTripComponentCanBeReserved, assertTripComponentCanBeUpdated, assertTripComponentCanReceiveRefs, assertTripComponentCanStartCheckout, checkoutResultToComponentPatch, hasCommittedComponentReference, pricingSnapshotFromBreakdown, reserveResultToComponentPatch, shouldReplayCheckout, shouldReplayReserve, taxLinesFromBreakdown, } from "./service-helpers.js";
4
+ export { applyQuoteToComponent, priceTrip } from "./service-pricing.js";
5
+ export { reserveTrip } from "./service-reservation.js";
6
+ export { addComponent, createTrip, getTrip, listTrips, removeComponent, reorderComponents, updateComponent, updateComponentRefs, updateTrip, } from "./service-trips.js";
7
+ export { TravelComposerInvariantError } from "./service-types.js";
8
+ import { cancelComponents, previewCancellation } from "./service-cancellation.js";
9
+ import { completeTripCheckout, startCheckout } from "./service-checkout.js";
10
+ import { priceTrip } from "./service-pricing.js";
11
+ import { reserveTrip } from "./service-reservation.js";
12
+ import { addComponent, createTrip, getTrip, listTrips, removeComponent, reorderComponents, updateComponent, updateComponentRefs, updateTrip, } from "./service-trips.js";
13
+ export const travelComposerService = {
14
+ getStatus() {
15
+ return {
16
+ module: "travel-composer",
17
+ status: "scaffolded",
18
+ };
19
+ },
20
+ createTrip,
21
+ getTrip,
22
+ listTrips,
23
+ updateTrip,
24
+ addComponent,
25
+ updateComponent,
26
+ updateComponentRefs,
27
+ removeComponent,
28
+ reorderComponents,
29
+ priceTrip,
30
+ reserveTrip,
31
+ startCheckout,
32
+ completeTripCheckout,
33
+ previewCancellation,
34
+ cancelComponents,
35
+ };
@@ -0,0 +1,3 @@
1
+ export declare function assertTripTravelerPartyComplete(travelerParty: Record<string, unknown>, context?: string): void;
2
+ export declare function validateTripTravelerParty(travelerParty: Record<string, unknown>): string[];
3
+ //# sourceMappingURL=traveler-party-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traveler-party-validation.d.ts","sourceRoot":"","sources":["../src/traveler-party-validation.ts"],"names":[],"mappings":"AAQA,wBAAgB,+BAA+B,CAC7C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,OAAO,SAAS,GACf,IAAI,CAIN;AAED,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CA6C1F"}
@@ -0,0 +1,68 @@
1
+ import { TravelComposerInvariantError } from "./service-types.js";
2
+ const placeholderEmails = new Set([
3
+ "noreply@example.com",
4
+ "tbd@example.com",
5
+ "traveler@example.com",
6
+ ]);
7
+ export function assertTripTravelerPartyComplete(travelerParty, context = "Trip") {
8
+ const errors = validateTripTravelerParty(travelerParty);
9
+ if (errors.length === 0)
10
+ return;
11
+ throw new TravelComposerInvariantError(`${context} requires ${errors.join(", ")}`);
12
+ }
13
+ export function validateTripTravelerParty(travelerParty) {
14
+ const errors = [];
15
+ const billing = asRecord(travelerParty.billing);
16
+ const contact = asRecord(billing?.contact);
17
+ const billingEmail = stringValue(contact?.email);
18
+ const billingFirstName = stringValue(contact?.firstName);
19
+ const billingLastName = stringValue(contact?.lastName);
20
+ const billingPersonId = stringValue(billing?.personId);
21
+ const billingOrganizationId = stringValue(billing?.organizationId);
22
+ if (!billing) {
23
+ errors.push("billing information");
24
+ }
25
+ else {
26
+ if (!billingPersonId && !billingOrganizationId && (!billingFirstName || !billingLastName)) {
27
+ errors.push("a billing person, organization, or full billing contact name");
28
+ }
29
+ if (!isRealEmail(billingEmail)) {
30
+ errors.push("a real billing email");
31
+ }
32
+ }
33
+ const travelers = Array.isArray(travelerParty.travelers)
34
+ ? travelerParty.travelers
35
+ .map(asRecord)
36
+ .filter((traveler) => Boolean(traveler))
37
+ : [];
38
+ if (travelers.length === 0) {
39
+ errors.push("at least one traveler");
40
+ }
41
+ travelers.forEach((traveler, index) => {
42
+ const personId = stringValue(traveler.personId);
43
+ const firstName = stringValue(traveler.firstName);
44
+ const lastName = stringValue(traveler.lastName);
45
+ const email = stringValue(traveler.email);
46
+ if (!personId && (!firstName || !lastName)) {
47
+ errors.push(`traveler ${index + 1} name or person record`);
48
+ }
49
+ if (email && !isRealEmail(email)) {
50
+ errors.push(`traveler ${index + 1} real email`);
51
+ }
52
+ });
53
+ return errors;
54
+ }
55
+ function isRealEmail(value) {
56
+ if (!value)
57
+ return false;
58
+ const normalized = value.trim().toLowerCase();
59
+ return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(normalized) && !placeholderEmails.has(normalized);
60
+ }
61
+ function asRecord(value) {
62
+ return value && typeof value === "object" && !Array.isArray(value)
63
+ ? value
64
+ : null;
65
+ }
66
+ function stringValue(value) {
67
+ return typeof value === "string" && value.trim() ? value.trim() : null;
68
+ }
@@ -0,0 +1,363 @@
1
+ import { z } from "zod";
2
+ export declare const tripEnvelopeStatusSchema: z.ZodEnum<{
3
+ cancelled: "cancelled";
4
+ draft: "draft";
5
+ priced: "priced";
6
+ reserve_in_progress: "reserve_in_progress";
7
+ reserved: "reserved";
8
+ checkout_started: "checkout_started";
9
+ booked: "booked";
10
+ failed: "failed";
11
+ }>;
12
+ export type TripEnvelopeStatus = z.infer<typeof tripEnvelopeStatusSchema>;
13
+ export declare const tripComponentKindSchema: z.ZodEnum<{
14
+ catalog_booking: "catalog_booking";
15
+ manual_placeholder: "manual_placeholder";
16
+ flight_placeholder: "flight_placeholder";
17
+ flight_order: "flight_order";
18
+ external_order: "external_order";
19
+ }>;
20
+ export type TripComponentKind = z.infer<typeof tripComponentKindSchema>;
21
+ export declare const tripComponentStatusSchema: z.ZodEnum<{
22
+ cancelled: "cancelled";
23
+ draft: "draft";
24
+ priced: "priced";
25
+ checkout_started: "checkout_started";
26
+ booked: "booked";
27
+ failed: "failed";
28
+ unavailable: "unavailable";
29
+ held: "held";
30
+ removed: "removed";
31
+ }>;
32
+ export type TripComponentStatus = z.infer<typeof tripComponentStatusSchema>;
33
+ export declare const tripComponentEventTypeSchema: z.ZodEnum<{
34
+ cancelled: "cancelled";
35
+ priced: "priced";
36
+ checkout_started: "checkout_started";
37
+ booked: "booked";
38
+ failed: "failed";
39
+ removed: "removed";
40
+ hold_placed: "hold_placed";
41
+ created: "created";
42
+ updated: "updated";
43
+ staff_remediation_required: "staff_remediation_required";
44
+ }>;
45
+ export type TripComponentEventType = z.infer<typeof tripComponentEventTypeSchema>;
46
+ export declare const tripComponentTaxLineSchema: z.ZodObject<{
47
+ code: z.ZodString;
48
+ label: z.ZodString;
49
+ amountCents: z.ZodNumber;
50
+ baseAmountCents: z.ZodNumber;
51
+ rate: z.ZodOptional<z.ZodNumber>;
52
+ jurisdiction: z.ZodOptional<z.ZodString>;
53
+ includedInPrice: z.ZodOptional<z.ZodBoolean>;
54
+ source: z.ZodOptional<z.ZodString>;
55
+ }, z.core.$strip>;
56
+ export type TripComponentTaxLine = z.infer<typeof tripComponentTaxLineSchema>;
57
+ export declare const tripComponentPricingSnapshotSchema: z.ZodObject<{
58
+ currency: z.ZodString;
59
+ subtotalAmountCents: z.ZodNumber;
60
+ taxAmountCents: z.ZodNumber;
61
+ totalAmountCents: z.ZodNumber;
62
+ priceExpiresAt: z.ZodOptional<z.ZodString>;
63
+ warnings: z.ZodOptional<z.ZodArray<z.ZodString>>;
64
+ }, z.core.$strip>;
65
+ export type TripComponentPricingSnapshot = z.infer<typeof tripComponentPricingSnapshotSchema>;
66
+ export declare const tripEnvelopePricingSnapshotSchema: z.ZodObject<{
67
+ currency: z.ZodString;
68
+ subtotalAmountCents: z.ZodNumber;
69
+ taxAmountCents: z.ZodNumber;
70
+ totalAmountCents: z.ZodNumber;
71
+ componentCount: z.ZodNumber;
72
+ pricedComponentCount: z.ZodNumber;
73
+ warnings: z.ZodOptional<z.ZodArray<z.ZodString>>;
74
+ }, z.core.$strip>;
75
+ export type TripEnvelopePricingSnapshot = z.infer<typeof tripEnvelopePricingSnapshotSchema>;
76
+ export declare const catalogComponentReferenceSchema: z.ZodObject<{
77
+ entityModule: z.ZodString;
78
+ entityId: z.ZodString;
79
+ sourceKind: z.ZodString;
80
+ sourceConnectionId: z.ZodOptional<z.ZodString>;
81
+ sourceRef: z.ZodOptional<z.ZodString>;
82
+ }, z.core.$strip>;
83
+ export type CatalogComponentReference = z.infer<typeof catalogComponentReferenceSchema>;
84
+ export declare const committedComponentReferenceSchema: z.ZodObject<{
85
+ bookingId: z.ZodOptional<z.ZodString>;
86
+ bookingGroupId: z.ZodOptional<z.ZodString>;
87
+ orderId: z.ZodOptional<z.ZodString>;
88
+ paymentSessionId: z.ZodOptional<z.ZodString>;
89
+ providerRef: z.ZodOptional<z.ZodString>;
90
+ supplierRef: z.ZodOptional<z.ZodString>;
91
+ }, z.core.$strip>;
92
+ export type CommittedComponentReference = z.infer<typeof committedComponentReferenceSchema>;
93
+ export declare const createTripEnvelopeSchema: z.ZodObject<{
94
+ title: z.ZodOptional<z.ZodString>;
95
+ description: z.ZodOptional<z.ZodString>;
96
+ travelerParty: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
97
+ constraints: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
98
+ createdBy: z.ZodOptional<z.ZodString>;
99
+ }, z.core.$strip>;
100
+ export type CreateTripEnvelopeInput = z.infer<typeof createTripEnvelopeSchema>;
101
+ export declare const tripsListSortFieldSchema: z.ZodEnum<{
102
+ status: "status";
103
+ createdAt: "createdAt";
104
+ updatedAt: "updatedAt";
105
+ total: "total";
106
+ }>;
107
+ export type TripsListSortField = z.infer<typeof tripsListSortFieldSchema>;
108
+ export declare const tripsListSortDirSchema: z.ZodEnum<{
109
+ asc: "asc";
110
+ desc: "desc";
111
+ }>;
112
+ export type TripsListSortDir = z.infer<typeof tripsListSortDirSchema>;
113
+ export declare const listTripsQuerySchema: z.ZodObject<{
114
+ status: z.ZodOptional<z.ZodEnum<{
115
+ cancelled: "cancelled";
116
+ draft: "draft";
117
+ priced: "priced";
118
+ reserve_in_progress: "reserve_in_progress";
119
+ reserved: "reserved";
120
+ checkout_started: "checkout_started";
121
+ booked: "booked";
122
+ failed: "failed";
123
+ }>>;
124
+ search: z.ZodOptional<z.ZodString>;
125
+ productId: z.ZodOptional<z.ZodString>;
126
+ hospitalityId: z.ZodOptional<z.ZodString>;
127
+ cruiseId: z.ZodOptional<z.ZodString>;
128
+ hasFlight: z.ZodOptional<z.ZodCoercedBoolean<unknown>>;
129
+ totalMinCents: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
130
+ totalMaxCents: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
131
+ createdFrom: z.ZodOptional<z.ZodString>;
132
+ createdTo: z.ZodOptional<z.ZodString>;
133
+ sortBy: z.ZodDefault<z.ZodEnum<{
134
+ status: "status";
135
+ createdAt: "createdAt";
136
+ updatedAt: "updatedAt";
137
+ total: "total";
138
+ }>>;
139
+ sortDir: z.ZodDefault<z.ZodEnum<{
140
+ asc: "asc";
141
+ desc: "desc";
142
+ }>>;
143
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
144
+ offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
145
+ }, z.core.$strip>;
146
+ export type ListTripsQuery = z.infer<typeof listTripsQuerySchema>;
147
+ export declare const updateTripEnvelopeSchema: z.ZodObject<{
148
+ title: z.ZodOptional<z.ZodNullable<z.ZodString>>;
149
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
150
+ travelerParty: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
151
+ constraints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
152
+ status: z.ZodOptional<z.ZodEnum<{
153
+ cancelled: "cancelled";
154
+ draft: "draft";
155
+ priced: "priced";
156
+ reserve_in_progress: "reserve_in_progress";
157
+ reserved: "reserved";
158
+ checkout_started: "checkout_started";
159
+ booked: "booked";
160
+ failed: "failed";
161
+ }>>;
162
+ updatedBy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
163
+ }, z.core.$strip>;
164
+ export type UpdateTripEnvelopeInput = z.infer<typeof updateTripEnvelopeSchema>;
165
+ export declare const createTripComponentSchema: z.ZodObject<{
166
+ envelopeId: z.ZodString;
167
+ sequence: z.ZodDefault<z.ZodNumber>;
168
+ kind: z.ZodEnum<{
169
+ catalog_booking: "catalog_booking";
170
+ manual_placeholder: "manual_placeholder";
171
+ flight_placeholder: "flight_placeholder";
172
+ flight_order: "flight_order";
173
+ external_order: "external_order";
174
+ }>;
175
+ description: z.ZodOptional<z.ZodString>;
176
+ catalogRef: z.ZodOptional<z.ZodObject<{
177
+ entityModule: z.ZodString;
178
+ entityId: z.ZodString;
179
+ sourceKind: z.ZodString;
180
+ sourceConnectionId: z.ZodOptional<z.ZodString>;
181
+ sourceRef: z.ZodOptional<z.ZodString>;
182
+ }, z.core.$strip>>;
183
+ estimatedPricing: z.ZodOptional<z.ZodObject<{
184
+ currency: z.ZodString;
185
+ subtotalAmountCents: z.ZodNumber;
186
+ taxAmountCents: z.ZodNumber;
187
+ totalAmountCents: z.ZodNumber;
188
+ priceExpiresAt: z.ZodOptional<z.ZodString>;
189
+ warnings: z.ZodOptional<z.ZodArray<z.ZodString>>;
190
+ }, z.core.$strip>>;
191
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
192
+ }, z.core.$strict>;
193
+ export type CreateTripComponentInput = z.infer<typeof createTripComponentSchema>;
194
+ export declare const createTripComponentBodySchema: z.ZodObject<{
195
+ description: z.ZodOptional<z.ZodString>;
196
+ sequence: z.ZodDefault<z.ZodNumber>;
197
+ kind: z.ZodEnum<{
198
+ catalog_booking: "catalog_booking";
199
+ manual_placeholder: "manual_placeholder";
200
+ flight_placeholder: "flight_placeholder";
201
+ flight_order: "flight_order";
202
+ external_order: "external_order";
203
+ }>;
204
+ metadata: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
205
+ catalogRef: z.ZodOptional<z.ZodObject<{
206
+ entityModule: z.ZodString;
207
+ entityId: z.ZodString;
208
+ sourceKind: z.ZodString;
209
+ sourceConnectionId: z.ZodOptional<z.ZodString>;
210
+ sourceRef: z.ZodOptional<z.ZodString>;
211
+ }, z.core.$strip>>;
212
+ estimatedPricing: z.ZodOptional<z.ZodObject<{
213
+ currency: z.ZodString;
214
+ subtotalAmountCents: z.ZodNumber;
215
+ taxAmountCents: z.ZodNumber;
216
+ totalAmountCents: z.ZodNumber;
217
+ priceExpiresAt: z.ZodOptional<z.ZodString>;
218
+ warnings: z.ZodOptional<z.ZodArray<z.ZodString>>;
219
+ }, z.core.$strip>>;
220
+ }, z.core.$strict>;
221
+ export type CreateTripComponentBodyInput = z.infer<typeof createTripComponentBodySchema>;
222
+ export declare const updateTripComponentSchema: z.ZodObject<{
223
+ sequence: z.ZodOptional<z.ZodNumber>;
224
+ status: z.ZodOptional<z.ZodEnum<{
225
+ cancelled: "cancelled";
226
+ draft: "draft";
227
+ priced: "priced";
228
+ checkout_started: "checkout_started";
229
+ booked: "booked";
230
+ failed: "failed";
231
+ unavailable: "unavailable";
232
+ held: "held";
233
+ removed: "removed";
234
+ }>>;
235
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
236
+ catalogRef: z.ZodOptional<z.ZodNullable<z.ZodObject<{
237
+ entityModule: z.ZodString;
238
+ entityId: z.ZodString;
239
+ sourceKind: z.ZodString;
240
+ sourceConnectionId: z.ZodOptional<z.ZodString>;
241
+ sourceRef: z.ZodOptional<z.ZodString>;
242
+ }, z.core.$strip>>>;
243
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
244
+ warningCodes: z.ZodOptional<z.ZodArray<z.ZodString>>;
245
+ }, z.core.$strip>;
246
+ export type UpdateTripComponentInput = z.infer<typeof updateTripComponentSchema>;
247
+ export declare const reorderTripComponentsSchema: z.ZodObject<{
248
+ envelopeId: z.ZodString;
249
+ componentIds: z.ZodArray<z.ZodString>;
250
+ }, z.core.$strip>;
251
+ export type ReorderTripComponentsInput = z.infer<typeof reorderTripComponentsSchema>;
252
+ export declare const updateTripComponentRefsSchema: z.ZodObject<{
253
+ bookingDraftId: z.ZodOptional<z.ZodString>;
254
+ catalogQuoteId: z.ZodOptional<z.ZodString>;
255
+ committedRef: z.ZodOptional<z.ZodObject<{
256
+ bookingId: z.ZodOptional<z.ZodString>;
257
+ bookingGroupId: z.ZodOptional<z.ZodString>;
258
+ orderId: z.ZodOptional<z.ZodString>;
259
+ paymentSessionId: z.ZodOptional<z.ZodString>;
260
+ providerRef: z.ZodOptional<z.ZodString>;
261
+ supplierRef: z.ZodOptional<z.ZodString>;
262
+ }, z.core.$strip>>;
263
+ }, z.core.$strip>;
264
+ export type UpdateTripComponentRefsInput = z.infer<typeof updateTripComponentRefsSchema>;
265
+ export declare const priceTripSchema: z.ZodObject<{
266
+ envelopeId: z.ZodString;
267
+ scope: z.ZodObject<{
268
+ locale: z.ZodString;
269
+ audience: z.ZodEnum<{
270
+ staff: "staff";
271
+ customer: "customer";
272
+ partner: "partner";
273
+ supplier: "supplier";
274
+ }>;
275
+ market: z.ZodString;
276
+ currency: z.ZodOptional<z.ZodString>;
277
+ }, z.core.$strip>;
278
+ ttlMs: z.ZodOptional<z.ZodNumber>;
279
+ }, z.core.$strip>;
280
+ export type PriceTripInput = z.infer<typeof priceTripSchema>;
281
+ export declare const reserveTripSchema: z.ZodObject<{
282
+ envelopeId: z.ZodString;
283
+ idempotencyKey: z.ZodOptional<z.ZodString>;
284
+ refreshScope: z.ZodOptional<z.ZodObject<{
285
+ locale: z.ZodString;
286
+ audience: z.ZodEnum<{
287
+ staff: "staff";
288
+ customer: "customer";
289
+ partner: "partner";
290
+ supplier: "supplier";
291
+ }>;
292
+ market: z.ZodString;
293
+ currency: z.ZodOptional<z.ZodString>;
294
+ }, z.core.$strip>>;
295
+ }, z.core.$strip>;
296
+ export type ReserveTripInput = z.infer<typeof reserveTripSchema>;
297
+ export declare const startTripCheckoutSchema: z.ZodObject<{
298
+ envelopeId: z.ZodString;
299
+ idempotencyKey: z.ZodOptional<z.ZodString>;
300
+ intent: z.ZodDefault<z.ZodEnum<{
301
+ hold: "hold";
302
+ card: "card";
303
+ bank_transfer: "bank_transfer";
304
+ inquiry: "inquiry";
305
+ }>>;
306
+ request: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
307
+ }, z.core.$strip>;
308
+ export type StartTripCheckoutInput = z.infer<typeof startTripCheckoutSchema>;
309
+ export declare const previewTripCancellationSchema: z.ZodObject<{
310
+ envelopeId: z.ZodString;
311
+ componentIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
312
+ reason: z.ZodOptional<z.ZodString>;
313
+ requestedAt: z.ZodOptional<z.ZodString>;
314
+ request: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
315
+ }, z.core.$strip>;
316
+ export type PreviewTripCancellationInput = z.infer<typeof previewTripCancellationSchema>;
317
+ export declare const cancelTripComponentsSchema: z.ZodObject<{
318
+ envelopeId: z.ZodString;
319
+ componentIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
320
+ reason: z.ZodOptional<z.ZodString>;
321
+ requestedAt: z.ZodOptional<z.ZodString>;
322
+ request: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
323
+ idempotencyKey: z.ZodOptional<z.ZodString>;
324
+ }, z.core.$strip>;
325
+ export type CancelTripComponentsInput = z.infer<typeof cancelTripComponentsSchema>;
326
+ export declare function isAllowedTripComponentStatusTransition(from: TripComponentStatus, to: TripComponentStatus): boolean;
327
+ export declare const tripComponentStatusTransitionSchema: z.ZodObject<{
328
+ from: z.ZodEnum<{
329
+ cancelled: "cancelled";
330
+ draft: "draft";
331
+ priced: "priced";
332
+ checkout_started: "checkout_started";
333
+ booked: "booked";
334
+ failed: "failed";
335
+ unavailable: "unavailable";
336
+ held: "held";
337
+ removed: "removed";
338
+ }>;
339
+ to: z.ZodEnum<{
340
+ cancelled: "cancelled";
341
+ draft: "draft";
342
+ priced: "priced";
343
+ checkout_started: "checkout_started";
344
+ booked: "booked";
345
+ failed: "failed";
346
+ unavailable: "unavailable";
347
+ held: "held";
348
+ removed: "removed";
349
+ }>;
350
+ }, z.core.$strip>;
351
+ export type TripComponentStatusTransition = z.infer<typeof tripComponentStatusTransitionSchema>;
352
+ export declare function isTerminalTripComponentStatus(status: TripComponentStatus): boolean;
353
+ export declare const travelComposerStatusSchema: z.ZodObject<{
354
+ module: z.ZodLiteral<"travel-composer">;
355
+ status: z.ZodLiteral<"scaffolded">;
356
+ }, z.core.$strip>;
357
+ export type TravelComposerStatus = z.infer<typeof travelComposerStatusSchema>;
358
+ export declare const travelComposerHealthCheckSchema: z.ZodObject<{
359
+ module: z.ZodLiteral<"travel-composer">;
360
+ status: z.ZodLiteral<"scaffolded">;
361
+ }, z.core.$strip>;
362
+ export type TravelComposerHealthCheck = z.infer<typeof travelComposerHealthCheckSchema>;
363
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}