@voyantjs/catalog 0.59.0 → 0.61.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/adapter/contract.d.ts +59 -0
- package/dist/adapter/contract.d.ts.map +1 -1
- package/dist/adapter/contract.test.js +87 -2
- package/dist/adapter/schemas.d.ts +78 -2
- package/dist/adapter/schemas.d.ts.map +1 -1
- package/dist/adapter/schemas.js +36 -0
- package/dist/adapter/schemas.test.js +58 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -18,6 +18,32 @@ import type { CatalogDriftEvent } from "../drift/events.js";
|
|
|
18
18
|
import type { Provenance } from "../provenance.js";
|
|
19
19
|
import type { CancelRequest, CancelResult, ReserveRequest, ReserveResult, SourceAdapterRequestScope } from "./booking-forwarding.js";
|
|
20
20
|
export type { CancelRequest, CancelResult, ReserveRequest, ReserveResult, SourceAdapterRequestScope, } from "./booking-forwarding.js";
|
|
21
|
+
export interface GetReservationRequest {
|
|
22
|
+
upstream_ref: string;
|
|
23
|
+
scope?: SourceAdapterRequestScope;
|
|
24
|
+
}
|
|
25
|
+
export type ReservationStatus = ReserveResult["status"] | CancelResult["status"] | "cancelling";
|
|
26
|
+
export interface GetReservationResult {
|
|
27
|
+
upstream_ref: string;
|
|
28
|
+
status: ReservationStatus;
|
|
29
|
+
/** When the upstream itself last modified this reservation. */
|
|
30
|
+
source_updated_at?: Date;
|
|
31
|
+
/** Opaque per-vertical payload (itinerary, pricing snapshot, traveler details). */
|
|
32
|
+
upstream_payload?: Record<string, unknown>;
|
|
33
|
+
}
|
|
34
|
+
export interface ListReservationsQuery {
|
|
35
|
+
cursor?: DiscoveryCursor;
|
|
36
|
+
limit?: number;
|
|
37
|
+
/** Filter by status. Empty / omitted means all statuses. */
|
|
38
|
+
status?: ReadonlyArray<ReservationStatus>;
|
|
39
|
+
/** Incremental sync helper — return reservations modified since this instant. */
|
|
40
|
+
updated_after?: Date;
|
|
41
|
+
scope?: SourceAdapterRequestScope;
|
|
42
|
+
}
|
|
43
|
+
export interface ListReservationsPage {
|
|
44
|
+
reservations: GetReservationResult[];
|
|
45
|
+
next_cursor: DiscoveryCursor;
|
|
46
|
+
}
|
|
21
47
|
/**
|
|
22
48
|
* Capability declaration. Adapters return their capabilities at registration
|
|
23
49
|
* so the catalog plane can route operations correctly and fail fast on
|
|
@@ -40,6 +66,11 @@ export interface AdapterCapabilities {
|
|
|
40
66
|
supportsDriftDetection: boolean;
|
|
41
67
|
/** Whether the adapter forwards bookings to the upstream source. */
|
|
42
68
|
supportsBookingForwarding: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Whether the adapter can retrieve upstream reservations on demand.
|
|
71
|
+
* Gates `getReservation` and `listReservations`.
|
|
72
|
+
*/
|
|
73
|
+
supportsReservationRetrieval?: boolean;
|
|
43
74
|
/**
|
|
44
75
|
* Whether `cancel` returns a terminal upstream status synchronously.
|
|
45
76
|
* When false, the adapter may return `status: "pending"` and drive the
|
|
@@ -72,6 +103,22 @@ export interface AdapterCapabilities {
|
|
|
72
103
|
* supported. Empty / absent → unknown; the plane probes per-call.
|
|
73
104
|
*/
|
|
74
105
|
supportedContentLocales?: ReadonlyArray<string>;
|
|
106
|
+
/**
|
|
107
|
+
* When true, the adapter owns its content cache. The catalog plane treats
|
|
108
|
+
* `getContent` as pass-through: reads call the adapter directly, skip
|
|
109
|
+
* `*_sourced_content` cache reads/writes, and do not serve SWR fallback rows.
|
|
110
|
+
*
|
|
111
|
+
* Default false: the catalog plane owns the sourced-content cache.
|
|
112
|
+
*/
|
|
113
|
+
ownsContentCache?: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* When true, the adapter owns its availability / live-resolve cache. The
|
|
116
|
+
* catalog plane treats `liveResolve` as pass-through and must not memoize
|
|
117
|
+
* live availability results.
|
|
118
|
+
*
|
|
119
|
+
* Default false.
|
|
120
|
+
*/
|
|
121
|
+
ownsAvailabilityCache?: boolean;
|
|
75
122
|
/**
|
|
76
123
|
* Per-supplier hold-release grace period in milliseconds. When the
|
|
77
124
|
* booking-journey reaper finds an expired draft, it defers calling
|
|
@@ -389,6 +436,18 @@ export interface SourceAdapter {
|
|
|
389
436
|
reserve?(ctx: SourceAdapterContext, request: ReserveRequest): Promise<ReserveResult>;
|
|
390
437
|
/** Forward a cancel request. */
|
|
391
438
|
cancel?(ctx: SourceAdapterContext, request: CancelRequest): Promise<CancelResult>;
|
|
439
|
+
/**
|
|
440
|
+
* Fetch one reservation by upstream reference. Capability-gated by
|
|
441
|
+
* `supportsReservationRetrieval`. Returns `null` when the upstream cannot
|
|
442
|
+
* find the reservation; transport / auth errors should reject.
|
|
443
|
+
*/
|
|
444
|
+
getReservation?(ctx: SourceAdapterContext, request: GetReservationRequest): Promise<GetReservationResult | null>;
|
|
445
|
+
/**
|
|
446
|
+
* Paginated list of reservations attributed to this connection. Capability-
|
|
447
|
+
* gated by `supportsReservationRetrieval`; supports pagination, status
|
|
448
|
+
* filtering, and incremental sync by `updated_after`.
|
|
449
|
+
*/
|
|
450
|
+
listReservations?(ctx: SourceAdapterContext, query: ListReservationsQuery): Promise<ListReservationsPage>;
|
|
392
451
|
/**
|
|
393
452
|
* Push a booking commit to the upstream channel. Called by the
|
|
394
453
|
* channel-push booking workflow when a booking commits against an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/adapter/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,EACb,yBAAyB,EAC1B,MAAM,yBAAyB,CAAA;AAEhC,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,EACb,yBAAyB,GAC1B,MAAM,yBAAyB,CAAA;AAMhC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,sEAAsE;IACtE,sBAAsB,EAAE,OAAO,CAAA;IAC/B,iDAAiD;IACjD,sBAAsB,EAAE,OAAO,CAAA;IAC/B,oEAAoE;IACpE,yBAAyB,EAAE,OAAO,CAAA;IAClC;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,kFAAkF;IAClF,kBAAkB,EAAE,aAAa,CAAC,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC,CAAA;IAClG;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAE/
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/adapter/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { cancelRequestSchema, reserveRequestSchema } from "./schemas.js";
|
|
2
|
+
import { cancelRequestSchema, getReservationRequestSchema, getReservationResultSchema, listReservationsPageSchema, reservationStatusSchema, reserveRequestSchema, } from "./schemas.js";
|
|
3
3
|
describe("AdapterCapabilities — content fetch declaration", () => {
|
|
4
4
|
it("accepts adapters that omit supportsContentFetch (backward compatible)", () => {
|
|
5
5
|
const cap = {
|
|
@@ -11,19 +11,27 @@ describe("AdapterCapabilities — content fetch declaration", () => {
|
|
|
11
11
|
};
|
|
12
12
|
expect(cap.supportsContentFetch).toBeUndefined();
|
|
13
13
|
expect(cap.supportedContentLocales).toBeUndefined();
|
|
14
|
+
expect(cap.ownsContentCache).toBeUndefined();
|
|
15
|
+
expect(cap.ownsAvailabilityCache).toBeUndefined();
|
|
14
16
|
});
|
|
15
|
-
it("records
|
|
17
|
+
it("records content and availability cache ownership when declared", () => {
|
|
16
18
|
const cap = {
|
|
17
19
|
verticals: ["products"],
|
|
18
20
|
supportsLiveResolution: true,
|
|
19
21
|
supportsDriftDetection: false,
|
|
20
22
|
supportsBookingForwarding: true,
|
|
23
|
+
supportsReservationRetrieval: true,
|
|
21
24
|
postBookOperations: ["cancel"],
|
|
22
25
|
supportsContentFetch: true,
|
|
23
26
|
supportedContentLocales: ["en-GB", "ro-RO", "de-DE"],
|
|
27
|
+
ownsContentCache: true,
|
|
28
|
+
ownsAvailabilityCache: true,
|
|
24
29
|
};
|
|
25
30
|
expect(cap.supportsContentFetch).toBe(true);
|
|
26
31
|
expect(cap.supportedContentLocales).toEqual(["en-GB", "ro-RO", "de-DE"]);
|
|
32
|
+
expect(cap.ownsContentCache).toBe(true);
|
|
33
|
+
expect(cap.ownsAvailabilityCache).toBe(true);
|
|
34
|
+
expect(cap.supportsReservationRetrieval).toBe(true);
|
|
27
35
|
});
|
|
28
36
|
});
|
|
29
37
|
describe("GetContentRequest / GetContentResult shape", () => {
|
|
@@ -137,6 +145,83 @@ describe("SourceAdapter — getContent capability gating", () => {
|
|
|
137
145
|
expect(result.content_schema_version).toBe("products/v1");
|
|
138
146
|
});
|
|
139
147
|
});
|
|
148
|
+
describe("SourceAdapter — reservation retrieval capability gating", () => {
|
|
149
|
+
it("typechecks without reservation read methods when capability is false", () => {
|
|
150
|
+
const adapter = {
|
|
151
|
+
kind: "booking-write-only",
|
|
152
|
+
capabilities: {
|
|
153
|
+
verticals: ["products"],
|
|
154
|
+
supportsLiveResolution: false,
|
|
155
|
+
supportsDriftDetection: false,
|
|
156
|
+
supportsBookingForwarding: true,
|
|
157
|
+
supportsReservationRetrieval: false,
|
|
158
|
+
postBookOperations: ["cancel"],
|
|
159
|
+
},
|
|
160
|
+
async reserve() {
|
|
161
|
+
return { upstream_ref: "booking_abc", status: "held" };
|
|
162
|
+
},
|
|
163
|
+
async cancel() {
|
|
164
|
+
return { status: "cancelled" };
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
expect(adapter.getReservation).toBeUndefined();
|
|
168
|
+
expect(adapter.listReservations).toBeUndefined();
|
|
169
|
+
expect(adapter.capabilities.supportsReservationRetrieval).toBe(false);
|
|
170
|
+
});
|
|
171
|
+
it("typechecks with getReservation and listReservations implemented", async () => {
|
|
172
|
+
const reservation = {
|
|
173
|
+
upstream_ref: "booking_abc",
|
|
174
|
+
status: "confirmed",
|
|
175
|
+
source_updated_at: new Date("2026-01-01T00:00:00Z"),
|
|
176
|
+
upstream_payload: { travelers: 2 },
|
|
177
|
+
};
|
|
178
|
+
const page = {
|
|
179
|
+
reservations: [reservation],
|
|
180
|
+
next_cursor: "cursor_2",
|
|
181
|
+
};
|
|
182
|
+
const adapter = {
|
|
183
|
+
kind: "booking-readable",
|
|
184
|
+
capabilities: {
|
|
185
|
+
verticals: ["products"],
|
|
186
|
+
supportsLiveResolution: false,
|
|
187
|
+
supportsDriftDetection: true,
|
|
188
|
+
supportsBookingForwarding: true,
|
|
189
|
+
supportsReservationRetrieval: true,
|
|
190
|
+
postBookOperations: ["cancel", "status"],
|
|
191
|
+
},
|
|
192
|
+
async getReservation(_ctx, request) {
|
|
193
|
+
return request.upstream_ref === reservation.upstream_ref ? reservation : null;
|
|
194
|
+
},
|
|
195
|
+
async listReservations() {
|
|
196
|
+
return page;
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
const request = {
|
|
200
|
+
upstream_ref: "missing",
|
|
201
|
+
scope: { locale: "en-GB", audience: "operator", market: "GB", currency: "GBP" },
|
|
202
|
+
};
|
|
203
|
+
expect(getReservationRequestSchema.parse(request)).toEqual(request);
|
|
204
|
+
await expect(adapter.getReservation({ connection_id: "conn_1" }, request)).resolves.toBeNull();
|
|
205
|
+
await expect(adapter.getReservation({ connection_id: "conn_1" }, { upstream_ref: "booking_abc" })).resolves.toEqual(reservation);
|
|
206
|
+
await expect(adapter.listReservations({ connection_id: "conn_1" }, { status: ["confirmed"] })).resolves.toEqual(page);
|
|
207
|
+
expect(getReservationResultSchema.parse(reservation)).toEqual(reservation);
|
|
208
|
+
expect(listReservationsPageSchema.parse(page)).toEqual(page);
|
|
209
|
+
});
|
|
210
|
+
it("accepts every reservation status and rejects unknown statuses", () => {
|
|
211
|
+
const statuses = [
|
|
212
|
+
"held",
|
|
213
|
+
"confirmed",
|
|
214
|
+
"ticketed",
|
|
215
|
+
"failed",
|
|
216
|
+
"cancelled",
|
|
217
|
+
"pending",
|
|
218
|
+
"refused",
|
|
219
|
+
"cancelling",
|
|
220
|
+
];
|
|
221
|
+
expect(statuses.map((status) => reservationStatusSchema.parse(status))).toEqual(statuses);
|
|
222
|
+
expect(reservationStatusSchema.safeParse("expired").success).toBe(false);
|
|
223
|
+
});
|
|
224
|
+
});
|
|
140
225
|
describe("ReserveRequest / CancelRequest scoped write shape", () => {
|
|
141
226
|
it("round-trips reserve requests with request scope and idempotency key", () => {
|
|
142
227
|
const request = {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import type { SourceAdapter } from "./contract.js";
|
|
3
3
|
export declare const postBookOperationSchema: z.ZodEnum<{
|
|
4
|
+
status: "status";
|
|
4
5
|
modify: "modify";
|
|
5
6
|
cancel: "cancel";
|
|
6
|
-
status: "status";
|
|
7
7
|
refund: "refund";
|
|
8
8
|
exchange: "exchange";
|
|
9
9
|
void: "void";
|
|
@@ -13,11 +13,12 @@ export declare const adapterCapabilitiesSchema: z.ZodObject<{
|
|
|
13
13
|
supportsLiveResolution: z.ZodBoolean;
|
|
14
14
|
supportsDriftDetection: z.ZodBoolean;
|
|
15
15
|
supportsBookingForwarding: z.ZodBoolean;
|
|
16
|
+
supportsReservationRetrieval: z.ZodOptional<z.ZodBoolean>;
|
|
16
17
|
supportsSyncCancellation: z.ZodOptional<z.ZodBoolean>;
|
|
17
18
|
postBookOperations: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
|
|
19
|
+
status: "status";
|
|
18
20
|
modify: "modify";
|
|
19
21
|
cancel: "cancel";
|
|
20
|
-
status: "status";
|
|
21
22
|
refund: "refund";
|
|
22
23
|
exchange: "exchange";
|
|
23
24
|
void: "void";
|
|
@@ -25,6 +26,8 @@ export declare const adapterCapabilitiesSchema: z.ZodObject<{
|
|
|
25
26
|
cacheTtlSeconds: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
26
27
|
supportsContentFetch: z.ZodOptional<z.ZodBoolean>;
|
|
27
28
|
supportedContentLocales: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
|
|
29
|
+
ownsContentCache: z.ZodOptional<z.ZodBoolean>;
|
|
30
|
+
ownsAvailabilityCache: z.ZodOptional<z.ZodBoolean>;
|
|
28
31
|
holdReleaseGraceMs: z.ZodOptional<z.ZodNumber>;
|
|
29
32
|
supportsBookingPush: z.ZodOptional<z.ZodBoolean>;
|
|
30
33
|
supportsAvailabilityPush: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -221,6 +224,79 @@ export declare const cancelResultSchema: z.ZodObject<{
|
|
|
221
224
|
refund_currency: z.ZodOptional<z.ZodString>;
|
|
222
225
|
pending_channel: z.ZodOptional<z.ZodString>;
|
|
223
226
|
}, z.core.$strip>;
|
|
227
|
+
export declare const reservationStatusSchema: z.ZodEnum<{
|
|
228
|
+
held: "held";
|
|
229
|
+
confirmed: "confirmed";
|
|
230
|
+
ticketed: "ticketed";
|
|
231
|
+
failed: "failed";
|
|
232
|
+
cancelled: "cancelled";
|
|
233
|
+
pending: "pending";
|
|
234
|
+
refused: "refused";
|
|
235
|
+
cancelling: "cancelling";
|
|
236
|
+
}>;
|
|
237
|
+
export declare const getReservationRequestSchema: z.ZodObject<{
|
|
238
|
+
upstream_ref: z.ZodString;
|
|
239
|
+
scope: z.ZodOptional<z.ZodObject<{
|
|
240
|
+
locale: z.ZodString;
|
|
241
|
+
audience: z.ZodString;
|
|
242
|
+
market: z.ZodString;
|
|
243
|
+
currency: z.ZodOptional<z.ZodString>;
|
|
244
|
+
}, z.core.$strip>>;
|
|
245
|
+
}, z.core.$strip>;
|
|
246
|
+
export declare const getReservationResultSchema: z.ZodObject<{
|
|
247
|
+
upstream_ref: z.ZodString;
|
|
248
|
+
status: z.ZodEnum<{
|
|
249
|
+
held: "held";
|
|
250
|
+
confirmed: "confirmed";
|
|
251
|
+
ticketed: "ticketed";
|
|
252
|
+
failed: "failed";
|
|
253
|
+
cancelled: "cancelled";
|
|
254
|
+
pending: "pending";
|
|
255
|
+
refused: "refused";
|
|
256
|
+
cancelling: "cancelling";
|
|
257
|
+
}>;
|
|
258
|
+
source_updated_at: z.ZodOptional<z.ZodDate>;
|
|
259
|
+
upstream_payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
260
|
+
}, z.core.$strip>;
|
|
261
|
+
export declare const listReservationsQuerySchema: z.ZodObject<{
|
|
262
|
+
cursor: z.ZodOptional<z.ZodCustom<string | undefined, string | undefined>>;
|
|
263
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
264
|
+
status: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodEnum<{
|
|
265
|
+
held: "held";
|
|
266
|
+
confirmed: "confirmed";
|
|
267
|
+
ticketed: "ticketed";
|
|
268
|
+
failed: "failed";
|
|
269
|
+
cancelled: "cancelled";
|
|
270
|
+
pending: "pending";
|
|
271
|
+
refused: "refused";
|
|
272
|
+
cancelling: "cancelling";
|
|
273
|
+
}>>>>;
|
|
274
|
+
updated_after: z.ZodOptional<z.ZodDate>;
|
|
275
|
+
scope: z.ZodOptional<z.ZodObject<{
|
|
276
|
+
locale: z.ZodString;
|
|
277
|
+
audience: z.ZodString;
|
|
278
|
+
market: z.ZodString;
|
|
279
|
+
currency: z.ZodOptional<z.ZodString>;
|
|
280
|
+
}, z.core.$strip>>;
|
|
281
|
+
}, z.core.$strip>;
|
|
282
|
+
export declare const listReservationsPageSchema: z.ZodObject<{
|
|
283
|
+
reservations: z.ZodArray<z.ZodObject<{
|
|
284
|
+
upstream_ref: z.ZodString;
|
|
285
|
+
status: z.ZodEnum<{
|
|
286
|
+
held: "held";
|
|
287
|
+
confirmed: "confirmed";
|
|
288
|
+
ticketed: "ticketed";
|
|
289
|
+
failed: "failed";
|
|
290
|
+
cancelled: "cancelled";
|
|
291
|
+
pending: "pending";
|
|
292
|
+
refused: "refused";
|
|
293
|
+
cancelling: "cancelling";
|
|
294
|
+
}>;
|
|
295
|
+
source_updated_at: z.ZodOptional<z.ZodDate>;
|
|
296
|
+
upstream_payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
297
|
+
}, z.core.$strip>>;
|
|
298
|
+
next_cursor: z.ZodCustom<string | undefined, string | undefined>;
|
|
299
|
+
}, z.core.$strip>;
|
|
224
300
|
export declare const pushBookingRequestSchema: z.ZodObject<{
|
|
225
301
|
idempotencyKey: z.ZodString;
|
|
226
302
|
bookingId: z.ZodString;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/adapter/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAalD,eAAO,MAAM,uBAAuB;;;;;;;EAOlC,CAAA;AAEF,eAAO,MAAM,yBAAyB
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/adapter/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAalD,eAAO,MAAM,uBAAuB;;;;;;;EAOlC,CAAA;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;iBAiBpC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;EAAwD,CAAA;AAE1F,eAAO,MAAM,0BAA0B;;;;;iBAKrC,CAAA;AAEF,eAAO,MAAM,qBAAqB;;;;;GAA4D,CAAA;AAE9F,eAAO,MAAM,gBAAgB;;;;;;;;;;;;iBAO3B,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;iBAKlC,CAAA;AAEF,eAAO,MAAM,qBAAqB,qDAEjC,CAAA;AAED,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;iBAG9B,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;iBAKjC,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;;iBAAyB,CAAA;AAErE,eAAO,MAAM,wBAAwB;;;;;;;;;iBAInC,CAAA;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;EAQxC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;iBAGlC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;iBAMlC,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;iBAWjC,CAAA;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;iBAQ/B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;EAAsD,CAAA;AAEtF,eAAO,MAAM,mBAAmB;;;;;;;;;iBAI9B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAK9B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;EAAwD,CAAA;AAEvF,eAAO,MAAM,kBAAkB;;;;;;;;;;iBAK7B,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;EASlC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;iBAGtC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;iBAKrC,CAAA;AAEF,eAAO,MAAM,2BAA2B;;;;;;;;;;;;;;;;;;;;iBAMtC,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;iBAGrC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;iBAUnC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;iBAKlC,CAAA;AAEF,eAAO,MAAM,6BAA6B;;;;;;;;;;;iBAWxC,CAAA;AAEF,eAAO,MAAM,4BAA4B;;;iBAGvC,CAAA;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;iBAQnC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;iBAIlC,CAAA;AAEF,eAAO,MAAM,mBAAmB,2CAwB/B,CAAA"}
|
package/dist/adapter/schemas.js
CHANGED
|
@@ -19,11 +19,14 @@ export const adapterCapabilitiesSchema = z.object({
|
|
|
19
19
|
supportsLiveResolution: z.boolean(),
|
|
20
20
|
supportsDriftDetection: z.boolean(),
|
|
21
21
|
supportsBookingForwarding: z.boolean(),
|
|
22
|
+
supportsReservationRetrieval: z.boolean().optional(),
|
|
22
23
|
supportsSyncCancellation: z.boolean().optional(),
|
|
23
24
|
postBookOperations: z.array(postBookOperationSchema).readonly(),
|
|
24
25
|
cacheTtlSeconds: z.number().int().min(0).nullable().optional(),
|
|
25
26
|
supportsContentFetch: z.boolean().optional(),
|
|
26
27
|
supportedContentLocales: z.array(localeSchema).readonly().optional(),
|
|
28
|
+
ownsContentCache: z.boolean().optional(),
|
|
29
|
+
ownsAvailabilityCache: z.boolean().optional(),
|
|
27
30
|
holdReleaseGraceMs: z.number().int().min(0).optional(),
|
|
28
31
|
supportsBookingPush: z.boolean().optional(),
|
|
29
32
|
supportsAvailabilityPush: z.boolean().optional(),
|
|
@@ -128,6 +131,37 @@ export const cancelResultSchema = z.object({
|
|
|
128
131
|
refund_currency: currencySchema.optional(),
|
|
129
132
|
pending_channel: z.string().optional(),
|
|
130
133
|
});
|
|
134
|
+
export const reservationStatusSchema = z.enum([
|
|
135
|
+
"held",
|
|
136
|
+
"confirmed",
|
|
137
|
+
"ticketed",
|
|
138
|
+
"failed",
|
|
139
|
+
"cancelled",
|
|
140
|
+
"pending",
|
|
141
|
+
"refused",
|
|
142
|
+
"cancelling",
|
|
143
|
+
]);
|
|
144
|
+
export const getReservationRequestSchema = z.object({
|
|
145
|
+
upstream_ref: z.string(),
|
|
146
|
+
scope: sourceAdapterRequestScopeSchema.optional(),
|
|
147
|
+
});
|
|
148
|
+
export const getReservationResultSchema = z.object({
|
|
149
|
+
upstream_ref: z.string(),
|
|
150
|
+
status: reservationStatusSchema,
|
|
151
|
+
source_updated_at: z.date().optional(),
|
|
152
|
+
upstream_payload: recordSchema.optional(),
|
|
153
|
+
});
|
|
154
|
+
export const listReservationsQuerySchema = z.object({
|
|
155
|
+
cursor: discoveryCursorSchema.optional(),
|
|
156
|
+
limit: z.number().int().positive().optional(),
|
|
157
|
+
status: z.array(reservationStatusSchema).readonly().optional(),
|
|
158
|
+
updated_after: z.date().optional(),
|
|
159
|
+
scope: sourceAdapterRequestScopeSchema.optional(),
|
|
160
|
+
});
|
|
161
|
+
export const listReservationsPageSchema = z.object({
|
|
162
|
+
reservations: z.array(getReservationResultSchema),
|
|
163
|
+
next_cursor: discoveryCursorSchema,
|
|
164
|
+
});
|
|
131
165
|
export const pushBookingRequestSchema = z.object({
|
|
132
166
|
idempotencyKey: z.string(),
|
|
133
167
|
bookingId: z.string(),
|
|
@@ -191,6 +225,8 @@ export const sourceAdapterSchema = z.custom((value) => {
|
|
|
191
225
|
"getContent",
|
|
192
226
|
"reserve",
|
|
193
227
|
"cancel",
|
|
228
|
+
"getReservation",
|
|
229
|
+
"listReservations",
|
|
194
230
|
"pushBooking",
|
|
195
231
|
"pushAvailability",
|
|
196
232
|
"pushContent",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
|
-
import { adapterCapabilitiesSchema, cancelRequestSchema, cancelResultSchema, catalogProjectionSchema, connectionStateSchema, discoveryCursorSchema, discoveryPageSchema, getContentRequestSchema, getContentResultSchema, liveResolveRequestSchema, liveResolveResultSchema, provenanceSchema, pushAvailabilityRequestSchema, pushAvailabilityResultSchema, pushBookingRequestSchema, pushBookingResultSchema, pushContentRequestSchema, pushContentResultSchema, reserveRequestSchema, reserveResultSchema, sourceAdapterContextSchema, sourceAdapterRequestScopeSchema, sourceAdapterSchema, } from "./schemas.js";
|
|
2
|
+
import { adapterCapabilitiesSchema, cancelRequestSchema, cancelResultSchema, catalogProjectionSchema, connectionStateSchema, discoveryCursorSchema, discoveryPageSchema, getContentRequestSchema, getContentResultSchema, getReservationRequestSchema, getReservationResultSchema, listReservationsPageSchema, listReservationsQuerySchema, liveResolveRequestSchema, liveResolveResultSchema, provenanceSchema, pushAvailabilityRequestSchema, pushAvailabilityResultSchema, pushBookingRequestSchema, pushBookingResultSchema, pushContentRequestSchema, pushContentResultSchema, reservationStatusSchema, reserveRequestSchema, reserveResultSchema, sourceAdapterContextSchema, sourceAdapterRequestScopeSchema, sourceAdapterSchema, } from "./schemas.js";
|
|
3
3
|
const typeChecks = [
|
|
4
4
|
true,
|
|
5
5
|
true,
|
|
@@ -24,6 +24,11 @@ const typeChecks = [
|
|
|
24
24
|
true,
|
|
25
25
|
true,
|
|
26
26
|
true,
|
|
27
|
+
true,
|
|
28
|
+
true,
|
|
29
|
+
true,
|
|
30
|
+
true,
|
|
31
|
+
true,
|
|
27
32
|
];
|
|
28
33
|
void typeChecks;
|
|
29
34
|
const capabilities = {
|
|
@@ -31,11 +36,14 @@ const capabilities = {
|
|
|
31
36
|
supportsLiveResolution: true,
|
|
32
37
|
supportsDriftDetection: true,
|
|
33
38
|
supportsBookingForwarding: true,
|
|
39
|
+
supportsReservationRetrieval: true,
|
|
34
40
|
supportsSyncCancellation: false,
|
|
35
41
|
postBookOperations: ["cancel", "status"],
|
|
36
42
|
cacheTtlSeconds: 300,
|
|
37
43
|
supportsContentFetch: true,
|
|
38
44
|
supportedContentLocales: ["en-GB", "ro-RO"],
|
|
45
|
+
ownsContentCache: true,
|
|
46
|
+
ownsAvailabilityCache: false,
|
|
39
47
|
holdReleaseGraceMs: 1000,
|
|
40
48
|
supportsBookingPush: true,
|
|
41
49
|
supportsAvailabilityPush: true,
|
|
@@ -128,6 +136,27 @@ const cancelResult = {
|
|
|
128
136
|
status: "pending",
|
|
129
137
|
pending_channel: "partner portal",
|
|
130
138
|
};
|
|
139
|
+
const getReservationRequest = {
|
|
140
|
+
upstream_ref: "booking_123",
|
|
141
|
+
scope: sourceAdapterRequestScope,
|
|
142
|
+
};
|
|
143
|
+
const getReservationResult = {
|
|
144
|
+
upstream_ref: "booking_123",
|
|
145
|
+
status: "confirmed",
|
|
146
|
+
source_updated_at: new Date("2026-01-04T00:00:00Z"),
|
|
147
|
+
upstream_payload: { travelers: 2, supplierStatus: "OK" },
|
|
148
|
+
};
|
|
149
|
+
const listReservationsQuery = {
|
|
150
|
+
cursor: "cursor_1",
|
|
151
|
+
limit: 50,
|
|
152
|
+
status: ["held", "confirmed", "cancelling"],
|
|
153
|
+
updated_after: new Date("2026-01-01T00:00:00Z"),
|
|
154
|
+
scope: sourceAdapterRequestScope,
|
|
155
|
+
};
|
|
156
|
+
const listReservationsPage = {
|
|
157
|
+
reservations: [getReservationResult],
|
|
158
|
+
next_cursor: "cursor_2",
|
|
159
|
+
};
|
|
131
160
|
const pushBookingRequest = {
|
|
132
161
|
idempotencyKey: "idem_1",
|
|
133
162
|
bookingId: "book_1",
|
|
@@ -188,6 +217,12 @@ const sourceAdapter = {
|
|
|
188
217
|
async getContent(_ctx, request) {
|
|
189
218
|
return { ...getContentResult, entity_id: request.entity_id };
|
|
190
219
|
},
|
|
220
|
+
async getReservation(_ctx, request) {
|
|
221
|
+
return request.upstream_ref === getReservationResult.upstream_ref ? getReservationResult : null;
|
|
222
|
+
},
|
|
223
|
+
async listReservations() {
|
|
224
|
+
return listReservationsPage;
|
|
225
|
+
},
|
|
191
226
|
};
|
|
192
227
|
const roundTripCases = [
|
|
193
228
|
["adapterCapabilitiesSchema", adapterCapabilitiesSchema, capabilities],
|
|
@@ -206,6 +241,11 @@ const roundTripCases = [
|
|
|
206
241
|
["reserveResultSchema", reserveResultSchema, reserveResult],
|
|
207
242
|
["cancelRequestSchema", cancelRequestSchema, cancelRequest],
|
|
208
243
|
["cancelResultSchema", cancelResultSchema, cancelResult],
|
|
244
|
+
["reservationStatusSchema", reservationStatusSchema, "cancelling"],
|
|
245
|
+
["getReservationRequestSchema", getReservationRequestSchema, getReservationRequest],
|
|
246
|
+
["getReservationResultSchema", getReservationResultSchema, getReservationResult],
|
|
247
|
+
["listReservationsQuerySchema", listReservationsQuerySchema, listReservationsQuery],
|
|
248
|
+
["listReservationsPageSchema", listReservationsPageSchema, listReservationsPage],
|
|
209
249
|
["pushBookingRequestSchema", pushBookingRequestSchema, pushBookingRequest],
|
|
210
250
|
["pushBookingResultSchema", pushBookingResultSchema, pushBookingResult],
|
|
211
251
|
["pushAvailabilityRequestSchema", pushAvailabilityRequestSchema, pushAvailabilityRequest],
|
|
@@ -243,6 +283,23 @@ const invalidCases = [
|
|
|
243
283
|
["reserveResultSchema", reserveResultSchema, { ...reserveResult, status: "pending" }],
|
|
244
284
|
["cancelRequestSchema", cancelRequestSchema, { reason: "customer_request" }],
|
|
245
285
|
["cancelResultSchema", cancelResultSchema, { ...cancelResult, refund_currency: "GB" }],
|
|
286
|
+
["reservationStatusSchema", reservationStatusSchema, "expired"],
|
|
287
|
+
[
|
|
288
|
+
"getReservationRequestSchema",
|
|
289
|
+
getReservationRequestSchema,
|
|
290
|
+
{ ...getReservationRequest, upstream_ref: undefined },
|
|
291
|
+
],
|
|
292
|
+
[
|
|
293
|
+
"getReservationResultSchema",
|
|
294
|
+
getReservationResultSchema,
|
|
295
|
+
{ ...getReservationResult, status: "expired" },
|
|
296
|
+
],
|
|
297
|
+
["listReservationsQuerySchema", listReservationsQuerySchema, { limit: 0 }],
|
|
298
|
+
[
|
|
299
|
+
"listReservationsPageSchema",
|
|
300
|
+
listReservationsPageSchema,
|
|
301
|
+
{ reservations: [{ ...getReservationResult, upstream_payload: "raw" }] },
|
|
302
|
+
],
|
|
246
303
|
[
|
|
247
304
|
"pushBookingRequestSchema",
|
|
248
305
|
pushBookingRequestSchema,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ADAPTER_RATE_LIMITED, type AdapterCapabilities, AdapterRateLimitedError, CAPABILITY_NOT_SUPPORTED, type CancelRequest, type CancelResult, CapabilityNotSupportedError, type CatalogProjection, type ConnectionState, type DiscoveryCursor, type DiscoveryPage, type GetContentRequest, type GetContentResult, type LiveResolveRequest, type LiveResolveResult, type PushAvailabilityRequest, type PushAvailabilityResult, type PushBookingRequest, type PushBookingResult, type PushContentRequest, type PushContentResult, type ReserveRequest, type ReserveResult, type SourceAdapter, type SourceAdapterContext, type SourceAdapterRequestScope, } from "./adapter/contract.js";
|
|
1
|
+
export { ADAPTER_RATE_LIMITED, type AdapterCapabilities, AdapterRateLimitedError, CAPABILITY_NOT_SUPPORTED, type CancelRequest, type CancelResult, CapabilityNotSupportedError, type CatalogProjection, type ConnectionState, type DiscoveryCursor, type DiscoveryPage, type GetContentRequest, type GetContentResult, type GetReservationRequest, type GetReservationResult, type ListReservationsPage, type ListReservationsQuery, type LiveResolveRequest, type LiveResolveResult, type PushAvailabilityRequest, type PushAvailabilityResult, type PushBookingRequest, type PushBookingResult, type PushContentRequest, type PushContentResult, type ReservationStatus, type ReserveRequest, type ReserveResult, type SourceAdapter, type SourceAdapterContext, type SourceAdapterRequestScope, } from "./adapter/contract.js";
|
|
2
2
|
export * from "./adapter/schemas.js";
|
|
3
3
|
export { type CatalogBookingAdapterContextInput, type CatalogBookingBookBody, type CatalogBookingBookTransformInput, type CatalogBookingCommittedEvent, type CatalogBookingContentScopeInput, type CatalogBookingDraftBody, type CatalogBookingDraftConsumedError, type CatalogBookingHoldPlaceBody, type CatalogBookingHoldReleaseBody, type CatalogBookingHoldTtlInput, type CatalogBookingProvenance, type CatalogBookingProvenanceInput, type CatalogBookingQuoteBody, type CatalogBookingQuoteTransformInput, type CatalogBookingRoutesOptions, createCatalogBookingHonoModule, createCatalogBookingRoutes, } from "./booking-engine/routes.js";
|
|
4
4
|
export * from "./contract.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voyantjs/catalog",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.61.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -145,9 +145,9 @@
|
|
|
145
145
|
"drizzle-orm": "^0.45.2",
|
|
146
146
|
"hono": "^4.12.10",
|
|
147
147
|
"zod": "^4.1.4",
|
|
148
|
-
"@voyantjs/core": "0.
|
|
149
|
-
"@voyantjs/db": "0.
|
|
150
|
-
"@voyantjs/hono": "0.
|
|
148
|
+
"@voyantjs/core": "0.61.0",
|
|
149
|
+
"@voyantjs/db": "0.61.0",
|
|
150
|
+
"@voyantjs/hono": "0.61.0"
|
|
151
151
|
},
|
|
152
152
|
"devDependencies": {
|
|
153
153
|
"drizzle-kit": "^0.31.10",
|