@voyantjs/catalog 0.59.0 → 0.60.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.
@@ -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":"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"}
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 supportsContentFetch + supportedContentLocales when declared", () => {
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;;;;;;;;;;;;;;;;;;;;;iBAcpC,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,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,2CAsB/B,CAAA"}
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"}
@@ -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";
@@ -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.59.0",
3
+ "version": "0.60.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.59.0",
149
- "@voyantjs/db": "0.59.0",
150
- "@voyantjs/hono": "0.59.0"
148
+ "@voyantjs/core": "0.60.0",
149
+ "@voyantjs/db": "0.60.0",
150
+ "@voyantjs/hono": "0.60.0"
151
151
  },
152
152
  "devDependencies": {
153
153
  "drizzle-kit": "^0.31.10",