@voyantjs/bookings 0.1.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/LICENSE +109 -0
- package/README.md +42 -0
- package/dist/availability-ref.d.ts +418 -0
- package/dist/availability-ref.d.ts.map +1 -0
- package/dist/availability-ref.js +28 -0
- package/dist/extensions/suppliers.d.ts +3 -0
- package/dist/extensions/suppliers.d.ts.map +1 -0
- package/dist/extensions/suppliers.js +103 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/pii.d.ts +29 -0
- package/dist/pii.d.ts.map +1 -0
- package/dist/pii.js +131 -0
- package/dist/products-ref.d.ts +1043 -0
- package/dist/products-ref.d.ts.map +1 -0
- package/dist/products-ref.js +76 -0
- package/dist/routes.d.ts +2171 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +659 -0
- package/dist/schema/travel-details.d.ts +179 -0
- package/dist/schema/travel-details.d.ts.map +1 -0
- package/dist/schema/travel-details.js +46 -0
- package/dist/schema.d.ts +3180 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +509 -0
- package/dist/service.d.ts +5000 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +2016 -0
- package/dist/tasks/expire-stale-holds.d.ts +12 -0
- package/dist/tasks/expire-stale-holds.d.ts.map +1 -0
- package/dist/tasks/expire-stale-holds.js +7 -0
- package/dist/tasks/index.d.ts +2 -0
- package/dist/tasks/index.d.ts.map +1 -0
- package/dist/tasks/index.js +1 -0
- package/dist/transactions-ref.d.ts +2223 -0
- package/dist/transactions-ref.d.ts.map +1 -0
- package/dist/transactions-ref.js +147 -0
- package/dist/validation.d.ts +643 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +355 -0
- package/package.json +68 -0
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const bookingStatusSchema = z.enum([
|
|
3
|
+
"draft",
|
|
4
|
+
"on_hold",
|
|
5
|
+
"confirmed",
|
|
6
|
+
"in_progress",
|
|
7
|
+
"completed",
|
|
8
|
+
"expired",
|
|
9
|
+
"cancelled",
|
|
10
|
+
]);
|
|
11
|
+
const supplierConfirmationStatusSchema = z.enum(["pending", "confirmed", "rejected", "cancelled"]);
|
|
12
|
+
const bookingSourceTypeSchema = z.enum([
|
|
13
|
+
"direct",
|
|
14
|
+
"manual",
|
|
15
|
+
"affiliate",
|
|
16
|
+
"ota",
|
|
17
|
+
"reseller",
|
|
18
|
+
"api_partner",
|
|
19
|
+
"internal",
|
|
20
|
+
]);
|
|
21
|
+
const bookingParticipantTypeSchema = z.enum([
|
|
22
|
+
"traveler",
|
|
23
|
+
"booker",
|
|
24
|
+
"contact",
|
|
25
|
+
"occupant",
|
|
26
|
+
"staff",
|
|
27
|
+
"other",
|
|
28
|
+
]);
|
|
29
|
+
const bookingTravelerCategorySchema = z.enum(["adult", "child", "infant", "senior", "other"]);
|
|
30
|
+
const bookingItemTypeSchema = z.enum([
|
|
31
|
+
"unit",
|
|
32
|
+
"extra",
|
|
33
|
+
"service",
|
|
34
|
+
"fee",
|
|
35
|
+
"tax",
|
|
36
|
+
"discount",
|
|
37
|
+
"adjustment",
|
|
38
|
+
"accommodation",
|
|
39
|
+
"transport",
|
|
40
|
+
"other",
|
|
41
|
+
]);
|
|
42
|
+
const bookingItemStatusSchema = z.enum([
|
|
43
|
+
"draft",
|
|
44
|
+
"on_hold",
|
|
45
|
+
"confirmed",
|
|
46
|
+
"cancelled",
|
|
47
|
+
"expired",
|
|
48
|
+
"fulfilled",
|
|
49
|
+
]);
|
|
50
|
+
const bookingItemParticipantRoleSchema = z.enum([
|
|
51
|
+
"traveler",
|
|
52
|
+
"occupant",
|
|
53
|
+
"primary_contact",
|
|
54
|
+
"service_assignee",
|
|
55
|
+
"beneficiary",
|
|
56
|
+
"other",
|
|
57
|
+
]);
|
|
58
|
+
const bookingAllocationTypeSchema = z.enum(["unit", "pickup", "resource"]);
|
|
59
|
+
const bookingAllocationStatusSchema = z.enum([
|
|
60
|
+
"held",
|
|
61
|
+
"confirmed",
|
|
62
|
+
"released",
|
|
63
|
+
"expired",
|
|
64
|
+
"cancelled",
|
|
65
|
+
"fulfilled",
|
|
66
|
+
]);
|
|
67
|
+
const bookingFulfillmentTypeSchema = z.enum([
|
|
68
|
+
"voucher",
|
|
69
|
+
"ticket",
|
|
70
|
+
"pdf",
|
|
71
|
+
"qr_code",
|
|
72
|
+
"barcode",
|
|
73
|
+
"mobile",
|
|
74
|
+
"other",
|
|
75
|
+
]);
|
|
76
|
+
const bookingFulfillmentDeliveryChannelSchema = z.enum([
|
|
77
|
+
"download",
|
|
78
|
+
"email",
|
|
79
|
+
"api",
|
|
80
|
+
"wallet",
|
|
81
|
+
"other",
|
|
82
|
+
]);
|
|
83
|
+
const bookingFulfillmentStatusSchema = z.enum([
|
|
84
|
+
"pending",
|
|
85
|
+
"issued",
|
|
86
|
+
"reissued",
|
|
87
|
+
"revoked",
|
|
88
|
+
"failed",
|
|
89
|
+
]);
|
|
90
|
+
const bookingRedemptionMethodSchema = z.enum(["manual", "scan", "api", "other"]);
|
|
91
|
+
// ---------- bookings ----------
|
|
92
|
+
const bookingCoreSchema = z.object({
|
|
93
|
+
bookingNumber: z.string().min(1).max(50),
|
|
94
|
+
status: bookingStatusSchema.default("draft"),
|
|
95
|
+
personId: z.string().optional().nullable(),
|
|
96
|
+
organizationId: z.string().optional().nullable(),
|
|
97
|
+
sourceType: bookingSourceTypeSchema.default("manual"),
|
|
98
|
+
externalBookingRef: z.string().optional().nullable(),
|
|
99
|
+
communicationLanguage: z.string().max(35).optional().nullable(),
|
|
100
|
+
sellCurrency: z.string().min(3).max(3),
|
|
101
|
+
baseCurrency: z.string().min(3).max(3).optional().nullable(),
|
|
102
|
+
sellAmountCents: z.number().int().min(0).optional().nullable(),
|
|
103
|
+
baseSellAmountCents: z.number().int().min(0).optional().nullable(),
|
|
104
|
+
costAmountCents: z.number().int().min(0).optional().nullable(),
|
|
105
|
+
baseCostAmountCents: z.number().int().min(0).optional().nullable(),
|
|
106
|
+
marginPercent: z.number().int().optional().nullable(),
|
|
107
|
+
startDate: z.string().optional().nullable(),
|
|
108
|
+
endDate: z.string().optional().nullable(),
|
|
109
|
+
pax: z.number().int().positive().optional().nullable(),
|
|
110
|
+
internalNotes: z.string().optional().nullable(),
|
|
111
|
+
holdExpiresAt: z.string().datetime().optional().nullable(),
|
|
112
|
+
confirmedAt: z.string().datetime().optional().nullable(),
|
|
113
|
+
expiredAt: z.string().datetime().optional().nullable(),
|
|
114
|
+
cancelledAt: z.string().datetime().optional().nullable(),
|
|
115
|
+
completedAt: z.string().datetime().optional().nullable(),
|
|
116
|
+
redeemedAt: z.string().datetime().optional().nullable(),
|
|
117
|
+
});
|
|
118
|
+
export const insertBookingSchema = bookingCoreSchema;
|
|
119
|
+
export const updateBookingSchema = bookingCoreSchema.partial();
|
|
120
|
+
export const createBookingSchema = bookingCoreSchema
|
|
121
|
+
.extend({
|
|
122
|
+
sourceType: z.enum(["manual", "internal"]).default("manual"),
|
|
123
|
+
})
|
|
124
|
+
.refine((value) => value.status !== "on_hold", {
|
|
125
|
+
message: "Use the reservation flow to create on-hold bookings",
|
|
126
|
+
path: ["status"],
|
|
127
|
+
})
|
|
128
|
+
.refine((value) => value.holdExpiresAt == null, {
|
|
129
|
+
message: "Use the reservation flow to manage booking hold expiry",
|
|
130
|
+
path: ["holdExpiresAt"],
|
|
131
|
+
});
|
|
132
|
+
export const bookingListQuerySchema = z.object({
|
|
133
|
+
status: bookingStatusSchema.optional(),
|
|
134
|
+
search: z.string().optional(),
|
|
135
|
+
limit: z.coerce.number().int().min(1).max(100).default(50),
|
|
136
|
+
offset: z.coerce.number().int().min(0).default(0),
|
|
137
|
+
});
|
|
138
|
+
export const convertProductSchema = z.object({
|
|
139
|
+
productId: z.string().min(1),
|
|
140
|
+
optionId: z.string().optional().nullable(),
|
|
141
|
+
bookingNumber: z.string().min(1).max(50),
|
|
142
|
+
personId: z.string().optional().nullable(),
|
|
143
|
+
organizationId: z.string().optional().nullable(),
|
|
144
|
+
internalNotes: z.string().optional().nullable(),
|
|
145
|
+
});
|
|
146
|
+
export const updateBookingStatusSchema = z.object({
|
|
147
|
+
status: bookingStatusSchema,
|
|
148
|
+
note: z.string().optional().nullable(),
|
|
149
|
+
});
|
|
150
|
+
export const reserveBookingItemSchema = z.object({
|
|
151
|
+
title: z.string().min(1).max(255),
|
|
152
|
+
description: z.string().optional().nullable(),
|
|
153
|
+
itemType: bookingItemTypeSchema.default("unit"),
|
|
154
|
+
quantity: z.number().int().positive().default(1),
|
|
155
|
+
sellCurrency: z.string().min(3).max(3).optional().nullable(),
|
|
156
|
+
unitSellAmountCents: z.number().int().min(0).optional().nullable(),
|
|
157
|
+
totalSellAmountCents: z.number().int().min(0).optional().nullable(),
|
|
158
|
+
costCurrency: z.string().min(3).max(3).optional().nullable(),
|
|
159
|
+
unitCostAmountCents: z.number().int().min(0).optional().nullable(),
|
|
160
|
+
totalCostAmountCents: z.number().int().min(0).optional().nullable(),
|
|
161
|
+
notes: z.string().optional().nullable(),
|
|
162
|
+
productId: z.string().optional().nullable(),
|
|
163
|
+
optionId: z.string().optional().nullable(),
|
|
164
|
+
optionUnitId: z.string().optional().nullable(),
|
|
165
|
+
pricingCategoryId: z.string().optional().nullable(),
|
|
166
|
+
sourceSnapshotId: z.string().optional().nullable(),
|
|
167
|
+
sourceOfferId: z.string().optional().nullable(),
|
|
168
|
+
availabilitySlotId: z.string().min(1),
|
|
169
|
+
allocationType: bookingAllocationTypeSchema.default("unit"),
|
|
170
|
+
metadata: z.record(z.string(), z.unknown()).optional().nullable(),
|
|
171
|
+
});
|
|
172
|
+
export const reserveBookingSchema = bookingCoreSchema
|
|
173
|
+
.omit({
|
|
174
|
+
status: true,
|
|
175
|
+
holdExpiresAt: true,
|
|
176
|
+
confirmedAt: true,
|
|
177
|
+
expiredAt: true,
|
|
178
|
+
cancelledAt: true,
|
|
179
|
+
completedAt: true,
|
|
180
|
+
redeemedAt: true,
|
|
181
|
+
})
|
|
182
|
+
.extend({
|
|
183
|
+
holdMinutes: z.number().int().positive().max(24 * 60).default(30),
|
|
184
|
+
holdExpiresAt: z.string().datetime().optional().nullable(),
|
|
185
|
+
items: z.array(reserveBookingItemSchema).min(1),
|
|
186
|
+
});
|
|
187
|
+
export const extendBookingHoldSchema = z
|
|
188
|
+
.object({
|
|
189
|
+
holdMinutes: z.number().int().positive().max(24 * 60).optional(),
|
|
190
|
+
holdExpiresAt: z.string().datetime().optional().nullable(),
|
|
191
|
+
})
|
|
192
|
+
.refine((value) => value.holdMinutes !== undefined || value.holdExpiresAt !== undefined, {
|
|
193
|
+
message: "holdMinutes or holdExpiresAt is required",
|
|
194
|
+
});
|
|
195
|
+
export const confirmBookingSchema = z.object({
|
|
196
|
+
note: z.string().optional().nullable(),
|
|
197
|
+
});
|
|
198
|
+
export const cancelBookingSchema = z.object({
|
|
199
|
+
note: z.string().optional().nullable(),
|
|
200
|
+
});
|
|
201
|
+
export const expireBookingSchema = z.object({
|
|
202
|
+
note: z.string().optional().nullable(),
|
|
203
|
+
});
|
|
204
|
+
export const expireStaleBookingsSchema = z.object({
|
|
205
|
+
before: z.string().datetime().optional().nullable(),
|
|
206
|
+
note: z.string().optional().nullable(),
|
|
207
|
+
});
|
|
208
|
+
export const reserveBookingFromTransactionSchema = z.object({
|
|
209
|
+
bookingNumber: z.string().min(1).max(50),
|
|
210
|
+
sourceType: bookingSourceTypeSchema.default("internal"),
|
|
211
|
+
holdMinutes: z.number().int().positive().max(24 * 60).default(30),
|
|
212
|
+
holdExpiresAt: z.string().datetime().optional().nullable(),
|
|
213
|
+
internalNotes: z.string().optional().nullable(),
|
|
214
|
+
note: z.string().optional().nullable(),
|
|
215
|
+
includeParticipants: z.boolean().default(true),
|
|
216
|
+
});
|
|
217
|
+
// ---------- participants ----------
|
|
218
|
+
const participantCoreSchema = z.object({
|
|
219
|
+
personId: z.string().optional().nullable(),
|
|
220
|
+
participantType: bookingParticipantTypeSchema.default("traveler"),
|
|
221
|
+
travelerCategory: bookingTravelerCategorySchema.optional().nullable(),
|
|
222
|
+
firstName: z.string().min(1).max(255),
|
|
223
|
+
lastName: z.string().min(1).max(255),
|
|
224
|
+
email: z.string().email().optional().nullable(),
|
|
225
|
+
phone: z.string().max(50).optional().nullable(),
|
|
226
|
+
preferredLanguage: z.string().max(35).optional().nullable(),
|
|
227
|
+
accessibilityNeeds: z.string().optional().nullable(),
|
|
228
|
+
specialRequests: z.string().optional().nullable(),
|
|
229
|
+
isPrimary: z.boolean().default(false),
|
|
230
|
+
notes: z.string().optional().nullable(),
|
|
231
|
+
});
|
|
232
|
+
export const insertParticipantSchema = participantCoreSchema;
|
|
233
|
+
export const updateParticipantSchema = participantCoreSchema.partial();
|
|
234
|
+
// ---------- passengers (legacy compatibility) ----------
|
|
235
|
+
const passengerCoreSchema = z.object({
|
|
236
|
+
firstName: z.string().min(1).max(255),
|
|
237
|
+
lastName: z.string().min(1).max(255),
|
|
238
|
+
email: z.string().email().optional().nullable(),
|
|
239
|
+
phone: z.string().max(50).optional().nullable(),
|
|
240
|
+
specialRequests: z.string().optional().nullable(),
|
|
241
|
+
isLeadPassenger: z.boolean().optional().nullable(),
|
|
242
|
+
});
|
|
243
|
+
export const insertPassengerSchema = passengerCoreSchema;
|
|
244
|
+
export const updatePassengerSchema = passengerCoreSchema.partial();
|
|
245
|
+
// ---------- participant travel details ----------
|
|
246
|
+
export const upsertParticipantTravelDetailsSchema = z.object({
|
|
247
|
+
nationality: z.string().max(100).optional().nullable(),
|
|
248
|
+
passportNumber: z.string().max(255).optional().nullable(),
|
|
249
|
+
passportExpiry: z.string().optional().nullable(),
|
|
250
|
+
dateOfBirth: z.string().optional().nullable(),
|
|
251
|
+
dietaryRequirements: z.string().optional().nullable(),
|
|
252
|
+
isLeadTraveler: z.boolean().optional().nullable(),
|
|
253
|
+
});
|
|
254
|
+
// ---------- booking items ----------
|
|
255
|
+
const bookingItemCoreSchema = z.object({
|
|
256
|
+
title: z.string().min(1).max(255),
|
|
257
|
+
description: z.string().optional().nullable(),
|
|
258
|
+
itemType: bookingItemTypeSchema.default("unit"),
|
|
259
|
+
status: bookingItemStatusSchema.default("draft"),
|
|
260
|
+
serviceDate: z.string().optional().nullable(),
|
|
261
|
+
startsAt: z.string().optional().nullable(),
|
|
262
|
+
endsAt: z.string().optional().nullable(),
|
|
263
|
+
quantity: z.number().int().positive().default(1),
|
|
264
|
+
sellCurrency: z.string().min(3).max(3),
|
|
265
|
+
unitSellAmountCents: z.number().int().optional().nullable(),
|
|
266
|
+
totalSellAmountCents: z.number().int().optional().nullable(),
|
|
267
|
+
costCurrency: z.string().min(3).max(3).optional().nullable(),
|
|
268
|
+
unitCostAmountCents: z.number().int().optional().nullable(),
|
|
269
|
+
totalCostAmountCents: z.number().int().optional().nullable(),
|
|
270
|
+
notes: z.string().optional().nullable(),
|
|
271
|
+
productId: z.string().optional().nullable(),
|
|
272
|
+
optionId: z.string().optional().nullable(),
|
|
273
|
+
optionUnitId: z.string().optional().nullable(),
|
|
274
|
+
pricingCategoryId: z.string().optional().nullable(),
|
|
275
|
+
sourceSnapshotId: z.string().optional().nullable(),
|
|
276
|
+
sourceOfferId: z.string().optional().nullable(),
|
|
277
|
+
metadata: z.record(z.string(), z.unknown()).optional().nullable(),
|
|
278
|
+
});
|
|
279
|
+
export const insertBookingItemSchema = bookingItemCoreSchema;
|
|
280
|
+
export const updateBookingItemSchema = bookingItemCoreSchema.partial();
|
|
281
|
+
export const insertBookingAllocationSchema = z.object({
|
|
282
|
+
bookingItemId: z.string().min(1),
|
|
283
|
+
productId: z.string().optional().nullable(),
|
|
284
|
+
optionId: z.string().optional().nullable(),
|
|
285
|
+
optionUnitId: z.string().optional().nullable(),
|
|
286
|
+
pricingCategoryId: z.string().optional().nullable(),
|
|
287
|
+
availabilitySlotId: z.string().optional().nullable(),
|
|
288
|
+
quantity: z.number().int().positive().default(1),
|
|
289
|
+
allocationType: bookingAllocationTypeSchema.default("unit"),
|
|
290
|
+
status: bookingAllocationStatusSchema.default("held"),
|
|
291
|
+
holdExpiresAt: z.string().datetime().optional().nullable(),
|
|
292
|
+
confirmedAt: z.string().datetime().optional().nullable(),
|
|
293
|
+
releasedAt: z.string().datetime().optional().nullable(),
|
|
294
|
+
metadata: z.record(z.string(), z.unknown()).optional().nullable(),
|
|
295
|
+
});
|
|
296
|
+
export const updateBookingAllocationSchema = insertBookingAllocationSchema.partial();
|
|
297
|
+
// ---------- booking fulfillments ----------
|
|
298
|
+
const bookingFulfillmentCoreSchema = z.object({
|
|
299
|
+
bookingItemId: z.string().optional().nullable(),
|
|
300
|
+
participantId: z.string().optional().nullable(),
|
|
301
|
+
fulfillmentType: bookingFulfillmentTypeSchema,
|
|
302
|
+
deliveryChannel: bookingFulfillmentDeliveryChannelSchema,
|
|
303
|
+
status: bookingFulfillmentStatusSchema.default("issued"),
|
|
304
|
+
artifactUrl: z.string().url().optional().nullable(),
|
|
305
|
+
payload: z.record(z.string(), z.unknown()).optional().nullable(),
|
|
306
|
+
issuedAt: z.string().datetime().optional().nullable(),
|
|
307
|
+
revokedAt: z.string().datetime().optional().nullable(),
|
|
308
|
+
});
|
|
309
|
+
export const insertBookingFulfillmentSchema = bookingFulfillmentCoreSchema;
|
|
310
|
+
export const updateBookingFulfillmentSchema = bookingFulfillmentCoreSchema.partial();
|
|
311
|
+
// ---------- booking redemption events ----------
|
|
312
|
+
export const recordBookingRedemptionSchema = z.object({
|
|
313
|
+
bookingItemId: z.string().optional().nullable(),
|
|
314
|
+
participantId: z.string().optional().nullable(),
|
|
315
|
+
redeemedAt: z.string().datetime().optional().nullable(),
|
|
316
|
+
redeemedBy: z.string().max(255).optional().nullable(),
|
|
317
|
+
location: z.string().max(500).optional().nullable(),
|
|
318
|
+
method: bookingRedemptionMethodSchema.default("manual"),
|
|
319
|
+
metadata: z.record(z.string(), z.unknown()).optional().nullable(),
|
|
320
|
+
});
|
|
321
|
+
// ---------- booking item participants ----------
|
|
322
|
+
export const insertBookingItemParticipantSchema = z.object({
|
|
323
|
+
participantId: z.string().min(1),
|
|
324
|
+
role: bookingItemParticipantRoleSchema.default("traveler"),
|
|
325
|
+
isPrimary: z.boolean().default(false),
|
|
326
|
+
});
|
|
327
|
+
// ---------- supplier statuses ----------
|
|
328
|
+
const supplierStatusCoreSchema = z.object({
|
|
329
|
+
supplierServiceId: z.string().optional().nullable(),
|
|
330
|
+
serviceName: z.string().min(1).max(255),
|
|
331
|
+
status: supplierConfirmationStatusSchema.default("pending"),
|
|
332
|
+
supplierReference: z.string().max(255).optional().nullable(),
|
|
333
|
+
costCurrency: z.string().min(3).max(3),
|
|
334
|
+
costAmountCents: z.number().int().min(0),
|
|
335
|
+
notes: z.string().optional().nullable(),
|
|
336
|
+
});
|
|
337
|
+
export const insertSupplierStatusSchema = supplierStatusCoreSchema;
|
|
338
|
+
export const updateSupplierStatusSchema = supplierStatusCoreSchema.partial().extend({
|
|
339
|
+
confirmedAt: z.string().optional().nullable(),
|
|
340
|
+
});
|
|
341
|
+
// ---------- notes ----------
|
|
342
|
+
export const insertBookingNoteSchema = z.object({
|
|
343
|
+
content: z.string().min(1).max(10000),
|
|
344
|
+
});
|
|
345
|
+
// ---------- documents ----------
|
|
346
|
+
const bookingDocumentTypeSchema = z.enum(["visa", "insurance", "health", "passport_copy", "other"]);
|
|
347
|
+
export const insertBookingDocumentSchema = z.object({
|
|
348
|
+
participantId: z.string().optional().nullable(),
|
|
349
|
+
passengerId: z.string().optional().nullable(),
|
|
350
|
+
type: bookingDocumentTypeSchema,
|
|
351
|
+
fileName: z.string().min(1).max(500),
|
|
352
|
+
fileUrl: z.string().url(),
|
|
353
|
+
expiresAt: z.string().optional().nullable(),
|
|
354
|
+
notes: z.string().optional().nullable(),
|
|
355
|
+
});
|
package/package.json
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@voyantjs/bookings",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"license": "FSL-1.1-Apache-2.0",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"import": "./dist/index.js"
|
|
10
|
+
},
|
|
11
|
+
"./pii": {
|
|
12
|
+
"types": "./dist/pii.d.ts",
|
|
13
|
+
"import": "./dist/pii.js"
|
|
14
|
+
},
|
|
15
|
+
"./schema": {
|
|
16
|
+
"types": "./dist/schema.d.ts",
|
|
17
|
+
"import": "./dist/schema.js"
|
|
18
|
+
},
|
|
19
|
+
"./tasks": {
|
|
20
|
+
"types": "./dist/tasks/index.d.ts",
|
|
21
|
+
"import": "./dist/tasks/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./validation": {
|
|
24
|
+
"types": "./dist/validation.d.ts",
|
|
25
|
+
"import": "./dist/validation.js"
|
|
26
|
+
},
|
|
27
|
+
"./routes": {
|
|
28
|
+
"types": "./dist/routes.d.ts",
|
|
29
|
+
"import": "./dist/routes.js"
|
|
30
|
+
},
|
|
31
|
+
"./schema/travel-details": {
|
|
32
|
+
"types": "./dist/schema/travel-details.d.ts",
|
|
33
|
+
"import": "./dist/schema/travel-details.js"
|
|
34
|
+
},
|
|
35
|
+
"./extensions/suppliers": {
|
|
36
|
+
"types": "./dist/extensions/suppliers.d.ts",
|
|
37
|
+
"import": "./dist/extensions/suppliers.js"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"drizzle-orm": "^0.45.2",
|
|
42
|
+
"hono": "^4.12.10",
|
|
43
|
+
"zod": "^4.3.6",
|
|
44
|
+
"@voyantjs/core": "0.1.0",
|
|
45
|
+
"@voyantjs/utils": "0.1.0",
|
|
46
|
+
"@voyantjs/db": "0.1.0",
|
|
47
|
+
"@voyantjs/hono": "0.1.0"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"typescript": "^6.0.2",
|
|
51
|
+
"@voyantjs/voyant-typescript-config": "0.1.0"
|
|
52
|
+
},
|
|
53
|
+
"files": [
|
|
54
|
+
"dist"
|
|
55
|
+
],
|
|
56
|
+
"publishConfig": {
|
|
57
|
+
"access": "public"
|
|
58
|
+
},
|
|
59
|
+
"scripts": {
|
|
60
|
+
"typecheck": "tsc --noEmit",
|
|
61
|
+
"lint": "biome check src/",
|
|
62
|
+
"test": "vitest run",
|
|
63
|
+
"build": "tsc -p tsconfig.json",
|
|
64
|
+
"clean": "rm -rf dist"
|
|
65
|
+
},
|
|
66
|
+
"main": "./dist/index.js",
|
|
67
|
+
"types": "./dist/index.d.ts"
|
|
68
|
+
}
|