@voyantjs/products 0.3.1 → 0.4.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 (52) hide show
  1. package/dist/index.d.ts +6 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +5 -1
  4. package/dist/routes-public.d.ts +167 -12
  5. package/dist/routes-public.d.ts.map +1 -1
  6. package/dist/routes-public.js +13 -1
  7. package/dist/routes.d.ts +669 -0
  8. package/dist/routes.d.ts.map +1 -1
  9. package/dist/routes.js +117 -1
  10. package/dist/schema-itinerary.d.ts +51 -0
  11. package/dist/schema-itinerary.d.ts.map +1 -1
  12. package/dist/schema-itinerary.js +3 -0
  13. package/dist/schema-relations.d.ts +14 -0
  14. package/dist/schema-relations.d.ts.map +1 -1
  15. package/dist/schema-relations.js +28 -1
  16. package/dist/schema-taxonomy.d.ts +435 -0
  17. package/dist/schema-taxonomy.d.ts.map +1 -1
  18. package/dist/schema-taxonomy.js +47 -0
  19. package/dist/service-catalog.d.ts +237 -0
  20. package/dist/service-catalog.d.ts.map +1 -0
  21. package/dist/service-catalog.js +478 -0
  22. package/dist/service-public.d.ts +136 -12
  23. package/dist/service-public.d.ts.map +1 -1
  24. package/dist/service-public.js +146 -260
  25. package/dist/service.d.ts +292 -1
  26. package/dist/service.d.ts.map +1 -1
  27. package/dist/service.js +388 -2
  28. package/dist/tasks/brochure-printers.d.ts +29 -0
  29. package/dist/tasks/brochure-printers.d.ts.map +1 -0
  30. package/dist/tasks/brochure-printers.js +94 -0
  31. package/dist/tasks/brochure-templates.d.ts +36 -0
  32. package/dist/tasks/brochure-templates.d.ts.map +1 -0
  33. package/dist/tasks/brochure-templates.js +98 -0
  34. package/dist/tasks/brochures.d.ts +42 -0
  35. package/dist/tasks/brochures.d.ts.map +1 -0
  36. package/dist/tasks/brochures.js +69 -0
  37. package/dist/tasks/index.d.ts +3 -0
  38. package/dist/tasks/index.d.ts.map +1 -1
  39. package/dist/tasks/index.js +3 -0
  40. package/dist/validation-catalog.d.ts +388 -0
  41. package/dist/validation-catalog.d.ts.map +1 -0
  42. package/dist/validation-catalog.js +54 -0
  43. package/dist/validation-content.d.ts +109 -0
  44. package/dist/validation-content.d.ts.map +1 -1
  45. package/dist/validation-content.js +63 -1
  46. package/dist/validation-public.d.ts +208 -19
  47. package/dist/validation-public.d.ts.map +1 -1
  48. package/dist/validation-public.js +39 -2
  49. package/dist/validation-shared.d.ts +6 -0
  50. package/dist/validation-shared.d.ts.map +1 -1
  51. package/dist/validation-shared.js +1 -0
  52. package/package.json +6 -4
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { booleanQueryParam, languageTagSchema, productBookingModeSchema, productCapabilitySchema, productCapacityModeSchema, productFeatureTypeSchema, productLocationTypeSchema, productMediaTypeSchema, productVisibilitySchema, } from "./validation-shared.js";
2
+ import { booleanQueryParam, destinationTypeSchema, languageTagSchema, productBookingModeSchema, productCapabilitySchema, productCapacityModeSchema, productFeatureTypeSchema, productLocationTypeSchema, productMediaTypeSchema, productVisibilitySchema, } from "./validation-shared.js";
3
3
  export const publicCatalogProductListQuerySchema = z.object({
4
4
  search: z.string().optional(),
5
5
  languageTag: languageTagSchema.optional(),
@@ -8,6 +8,12 @@ export const publicCatalogProductListQuerySchema = z.object({
8
8
  productTypeId: z.string().optional(),
9
9
  categoryId: z.string().optional(),
10
10
  tagId: z.string().optional(),
11
+ destinationId: z.string().optional(),
12
+ destinationSlug: z.string().trim().min(1).optional(),
13
+ locationTitle: z.string().trim().min(1).optional(),
14
+ locationCity: z.string().trim().min(1).optional(),
15
+ locationCountryCode: z.string().trim().min(2).max(3).optional(),
16
+ locationType: productLocationTypeSchema.optional(),
11
17
  featured: booleanQueryParam.optional(),
12
18
  sort: z.enum(["name", "createdAt", "startDate", "price"]).default("name"),
13
19
  direction: z.enum(["asc", "desc"]).default("asc"),
@@ -25,6 +31,15 @@ export const publicCatalogTagListQuerySchema = z.object({
25
31
  limit: z.coerce.number().int().min(1).max(100).default(100),
26
32
  offset: z.coerce.number().int().min(0).default(0),
27
33
  });
34
+ export const publicCatalogDestinationListQuerySchema = z.object({
35
+ search: z.string().optional(),
36
+ parentId: z.string().optional(),
37
+ active: booleanQueryParam.optional(),
38
+ languageTag: languageTagSchema.optional(),
39
+ destinationType: destinationTypeSchema.optional(),
40
+ limit: z.coerce.number().int().min(1).max(100).default(100),
41
+ offset: z.coerce.number().int().min(0).default(0),
42
+ });
28
43
  export const publicCatalogProductLookupBySlugQuerySchema = z.object({
29
44
  languageTag: languageTagSchema.optional(),
30
45
  });
@@ -55,6 +70,9 @@ export const publicCatalogProductMediaSchema = z.object({
55
70
  altText: z.string().nullable(),
56
71
  sortOrder: z.number().int(),
57
72
  isCover: z.boolean(),
73
+ isBrochure: z.boolean(),
74
+ isBrochureCurrent: z.boolean(),
75
+ brochureVersion: z.number().int().nullable(),
58
76
  });
59
77
  export const publicCatalogProductFeatureSchema = z.object({
60
78
  id: z.string(),
@@ -80,6 +98,17 @@ export const publicCatalogProductLocationSchema = z.object({
80
98
  longitude: z.number().nullable(),
81
99
  sortOrder: z.number().int(),
82
100
  });
101
+ export const publicCatalogDestinationSchema = z.object({
102
+ id: z.string(),
103
+ parentId: z.string().nullable(),
104
+ slug: z.string(),
105
+ name: z.string(),
106
+ description: z.string().nullable(),
107
+ seoTitle: z.string().nullable(),
108
+ seoDescription: z.string().nullable(),
109
+ destinationType: destinationTypeSchema,
110
+ sortOrder: z.number().int(),
111
+ });
83
112
  export const publicCatalogProductSummarySchema = z.object({
84
113
  id: z.string(),
85
114
  name: z.string(),
@@ -101,14 +130,16 @@ export const publicCatalogProductSummarySchema = z.object({
101
130
  categories: z.array(publicCatalogProductCategorySchema),
102
131
  tags: z.array(publicCatalogProductTagSchema),
103
132
  capabilities: z.array(productCapabilitySchema),
133
+ destinations: z.array(publicCatalogDestinationSchema),
134
+ locations: z.array(publicCatalogProductLocationSchema),
104
135
  coverMedia: publicCatalogProductMediaSchema.nullable(),
105
136
  isFeatured: z.boolean(),
106
137
  });
107
138
  export const publicCatalogProductDetailSchema = publicCatalogProductSummarySchema.extend({
139
+ brochure: publicCatalogProductMediaSchema.nullable(),
108
140
  media: z.array(publicCatalogProductMediaSchema),
109
141
  features: z.array(publicCatalogProductFeatureSchema),
110
142
  faqs: z.array(publicCatalogProductFaqSchema),
111
- locations: z.array(publicCatalogProductLocationSchema),
112
143
  });
113
144
  export const publicCatalogProductListResponseSchema = z.object({
114
145
  data: z.array(publicCatalogProductSummarySchema),
@@ -128,3 +159,9 @@ export const publicCatalogTagListResponseSchema = z.object({
128
159
  limit: z.number().int(),
129
160
  offset: z.number().int(),
130
161
  });
162
+ export const publicCatalogDestinationListResponseSchema = z.object({
163
+ data: z.array(publicCatalogDestinationSchema),
164
+ total: z.number().int(),
165
+ limit: z.number().int(),
166
+ offset: z.number().int(),
167
+ });
@@ -91,6 +91,12 @@ export declare const productLocationTypeSchema: z.ZodEnum<{
91
91
  dropoff: "dropoff";
92
92
  point_of_interest: "point_of_interest";
93
93
  }>;
94
+ export declare const destinationTypeSchema: z.ZodEnum<{
95
+ city: "city";
96
+ destination: "destination";
97
+ region: "region";
98
+ country: "country";
99
+ }>;
94
100
  export declare const productMediaTypeSchema: z.ZodEnum<{
95
101
  image: "image";
96
102
  video: "video";
@@ -1 +1 @@
1
- {"version":3,"file":"validation-shared.d.ts","sourceRoot":"","sources":["../src/validation-shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC,EAAE,CAAA;AAE7C,eAAO,MAAM,mBAAmB;;;;EAA0C,CAAA;AAC1E,eAAO,MAAM,yBAAyB;;;;EAA0C,CAAA;AAChF,eAAO,MAAM,oBAAoB;;;;;;;EAO/B,CAAA;AACF,eAAO,MAAM,wBAAwB;;;;;;;;EAQnC,CAAA;AACF,eAAO,MAAM,yBAAyB;;;;EAAiD,CAAA;AACvF,eAAO,MAAM,uBAAuB;;;;EAA0C,CAAA;AAC9E,eAAO,MAAM,2BAA2B;;;;EAAwD,CAAA;AAChG,eAAO,MAAM,8BAA8B;;;;;EAKzC,CAAA;AACF,eAAO,MAAM,2BAA2B;;;;;;;;;EAStC,CAAA;AACF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;EAclC,CAAA;AACF,eAAO,MAAM,wBAAwB;;;;;;EAMnC,CAAA;AACF,eAAO,MAAM,yBAAyB;;;;;;;;EAQpC,CAAA;AACF,eAAO,MAAM,sBAAsB;;;;EAAyC,CAAA;AAC5E,eAAO,MAAM,iBAAiB,aAIiB,CAAA;AAC/C,eAAO,MAAM,iBAAiB;;;;;;;EAO5B,CAAA"}
1
+ {"version":3,"file":"validation-shared.d.ts","sourceRoot":"","sources":["../src/validation-shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC,EAAE,CAAA;AAE7C,eAAO,MAAM,mBAAmB;;;;EAA0C,CAAA;AAC1E,eAAO,MAAM,yBAAyB;;;;EAA0C,CAAA;AAChF,eAAO,MAAM,oBAAoB;;;;;;;EAO/B,CAAA;AACF,eAAO,MAAM,wBAAwB;;;;;;;;EAQnC,CAAA;AACF,eAAO,MAAM,yBAAyB;;;;EAAiD,CAAA;AACvF,eAAO,MAAM,uBAAuB;;;;EAA0C,CAAA;AAC9E,eAAO,MAAM,2BAA2B;;;;EAAwD,CAAA;AAChG,eAAO,MAAM,8BAA8B;;;;;EAKzC,CAAA;AACF,eAAO,MAAM,2BAA2B;;;;;;;;;EAStC,CAAA;AACF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;EAclC,CAAA;AACF,eAAO,MAAM,wBAAwB;;;;;;EAMnC,CAAA;AACF,eAAO,MAAM,yBAAyB;;;;;;;;EAQpC,CAAA;AACF,eAAO,MAAM,qBAAqB;;;;;EAAuD,CAAA;AACzF,eAAO,MAAM,sBAAsB;;;;EAAyC,CAAA;AAC5E,eAAO,MAAM,iBAAiB,aAIiB,CAAA;AAC/C,eAAO,MAAM,iBAAiB;;;;;;;EAO5B,CAAA"}
@@ -71,6 +71,7 @@ export const productLocationTypeSchema = z.enum([
71
71
  "point_of_interest",
72
72
  "other",
73
73
  ]);
74
+ export const destinationTypeSchema = z.enum(["destination", "region", "country", "city"]);
74
75
  export const productMediaTypeSchema = z.enum(["image", "video", "document"]);
75
76
  export const languageTagSchema = z
76
77
  .string()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voyantjs/products",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "license": "FSL-1.1-Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -42,9 +42,11 @@
42
42
  "hono": "^4.12.10",
43
43
  "pdf-lib": "^1.17.1",
44
44
  "zod": "^4.3.6",
45
- "@voyantjs/core": "0.3.1",
46
- "@voyantjs/db": "0.3.1",
47
- "@voyantjs/hono": "0.3.1"
45
+ "@voyantjs/core": "0.4.0",
46
+ "@voyantjs/db": "0.4.0",
47
+ "@voyantjs/hono": "0.4.0",
48
+ "@voyantjs/utils": "0.4.0",
49
+ "@voyantjs/voyant-storage": "0.4.0"
48
50
  },
49
51
  "devDependencies": {
50
52
  "typescript": "^6.0.2",