@voyant-travel/distribution 0.109.8

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 (168) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +42 -0
  3. package/dist/booking-extension.d.ts +168 -0
  4. package/dist/booking-extension.d.ts.map +1 -0
  5. package/dist/booking-extension.js +102 -0
  6. package/dist/channel-push/admin-routes.d.ts +31 -0
  7. package/dist/channel-push/admin-routes.d.ts.map +1 -0
  8. package/dist/channel-push/admin-routes.js +165 -0
  9. package/dist/channel-push/availability-push.d.ts +76 -0
  10. package/dist/channel-push/availability-push.d.ts.map +1 -0
  11. package/dist/channel-push/availability-push.js +236 -0
  12. package/dist/channel-push/booking-push-helpers.d.ts +36 -0
  13. package/dist/channel-push/booking-push-helpers.d.ts.map +1 -0
  14. package/dist/channel-push/booking-push-helpers.js +169 -0
  15. package/dist/channel-push/booking-push.d.ts +108 -0
  16. package/dist/channel-push/booking-push.d.ts.map +1 -0
  17. package/dist/channel-push/booking-push.js +335 -0
  18. package/dist/channel-push/boundary-sql.d.ts +23 -0
  19. package/dist/channel-push/boundary-sql.d.ts.map +1 -0
  20. package/dist/channel-push/boundary-sql.js +75 -0
  21. package/dist/channel-push/content-push.d.ts +60 -0
  22. package/dist/channel-push/content-push.d.ts.map +1 -0
  23. package/dist/channel-push/content-push.js +252 -0
  24. package/dist/channel-push/index.d.ts +15 -0
  25. package/dist/channel-push/index.d.ts.map +1 -0
  26. package/dist/channel-push/index.js +18 -0
  27. package/dist/channel-push/plugin.d.ts +18 -0
  28. package/dist/channel-push/plugin.d.ts.map +1 -0
  29. package/dist/channel-push/plugin.js +21 -0
  30. package/dist/channel-push/reconciler.d.ts +85 -0
  31. package/dist/channel-push/reconciler.d.ts.map +1 -0
  32. package/dist/channel-push/reconciler.js +179 -0
  33. package/dist/channel-push/subscriber.d.ts +40 -0
  34. package/dist/channel-push/subscriber.d.ts.map +1 -0
  35. package/dist/channel-push/subscriber.js +199 -0
  36. package/dist/channel-push/types.d.ts +43 -0
  37. package/dist/channel-push/types.d.ts.map +1 -0
  38. package/dist/channel-push/types.js +32 -0
  39. package/dist/channel-push/workflows.d.ts +56 -0
  40. package/dist/channel-push/workflows.d.ts.map +1 -0
  41. package/dist/channel-push/workflows.js +100 -0
  42. package/dist/external-refs/index.d.ts +11 -0
  43. package/dist/external-refs/index.d.ts.map +1 -0
  44. package/dist/external-refs/index.js +12 -0
  45. package/dist/external-refs/routes.d.ts +253 -0
  46. package/dist/external-refs/routes.d.ts.map +1 -0
  47. package/dist/external-refs/routes.js +52 -0
  48. package/dist/external-refs/schema.d.ts +251 -0
  49. package/dist/external-refs/schema.d.ts.map +1 -0
  50. package/dist/external-refs/schema.js +32 -0
  51. package/dist/external-refs/service.d.ts +82 -0
  52. package/dist/external-refs/service.d.ts.map +1 -0
  53. package/dist/external-refs/service.js +112 -0
  54. package/dist/external-refs/validation.d.ts +91 -0
  55. package/dist/external-refs/validation.d.ts.map +1 -0
  56. package/dist/external-refs/validation.js +40 -0
  57. package/dist/index.d.ts +21 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +20 -0
  60. package/dist/interface-types.d.ts +128 -0
  61. package/dist/interface-types.d.ts.map +1 -0
  62. package/dist/interface-types.js +1 -0
  63. package/dist/interface.d.ts +10 -0
  64. package/dist/interface.d.ts.map +1 -0
  65. package/dist/interface.js +286 -0
  66. package/dist/rate-limit.d.ts +69 -0
  67. package/dist/rate-limit.d.ts.map +1 -0
  68. package/dist/rate-limit.js +135 -0
  69. package/dist/routes/batch.d.ts +200 -0
  70. package/dist/routes/batch.d.ts.map +1 -0
  71. package/dist/routes/batch.js +52 -0
  72. package/dist/routes/env.d.ts +8 -0
  73. package/dist/routes/env.d.ts.map +1 -0
  74. package/dist/routes/env.js +1 -0
  75. package/dist/routes/inventory.d.ts +604 -0
  76. package/dist/routes/inventory.d.ts.map +1 -0
  77. package/dist/routes/inventory.js +138 -0
  78. package/dist/routes/settlements.d.ts +1649 -0
  79. package/dist/routes/settlements.d.ts.map +1 -0
  80. package/dist/routes/settlements.js +265 -0
  81. package/dist/routes.d.ts +3909 -0
  82. package/dist/routes.d.ts.map +1 -0
  83. package/dist/routes.js +323 -0
  84. package/dist/schema-automation.d.ts +680 -0
  85. package/dist/schema-automation.d.ts.map +1 -0
  86. package/dist/schema-automation.js +76 -0
  87. package/dist/schema-core.d.ts +1674 -0
  88. package/dist/schema-core.d.ts.map +1 -0
  89. package/dist/schema-core.js +227 -0
  90. package/dist/schema-finance.d.ts +1372 -0
  91. package/dist/schema-finance.d.ts.map +1 -0
  92. package/dist/schema-finance.js +153 -0
  93. package/dist/schema-inventory.d.ts +855 -0
  94. package/dist/schema-inventory.d.ts.map +1 -0
  95. package/dist/schema-inventory.js +102 -0
  96. package/dist/schema-push-intents.d.ts +387 -0
  97. package/dist/schema-push-intents.d.ts.map +1 -0
  98. package/dist/schema-push-intents.js +77 -0
  99. package/dist/schema-relations.d.ts +95 -0
  100. package/dist/schema-relations.d.ts.map +1 -0
  101. package/dist/schema-relations.js +196 -0
  102. package/dist/schema-shared.d.ts +24 -0
  103. package/dist/schema-shared.d.ts.map +1 -0
  104. package/dist/schema-shared.js +123 -0
  105. package/dist/schema.d.ts +9 -0
  106. package/dist/schema.d.ts.map +1 -0
  107. package/dist/schema.js +8 -0
  108. package/dist/service/channels.d.ts +167 -0
  109. package/dist/service/channels.d.ts.map +1 -0
  110. package/dist/service/channels.js +305 -0
  111. package/dist/service/commercial.d.ts +385 -0
  112. package/dist/service/commercial.d.ts.map +1 -0
  113. package/dist/service/commercial.js +248 -0
  114. package/dist/service/helpers.d.ts +10 -0
  115. package/dist/service/helpers.d.ts.map +1 -0
  116. package/dist/service/helpers.js +7 -0
  117. package/dist/service/inventory.d.ts +193 -0
  118. package/dist/service/inventory.d.ts.map +1 -0
  119. package/dist/service/inventory.js +154 -0
  120. package/dist/service/settlement-policies.d.ts +325 -0
  121. package/dist/service/settlement-policies.d.ts.map +1 -0
  122. package/dist/service/settlement-policies.js +272 -0
  123. package/dist/service/settlements.d.ts +357 -0
  124. package/dist/service/settlements.d.ts.map +1 -0
  125. package/dist/service/settlements.js +319 -0
  126. package/dist/service/types.d.ts +60 -0
  127. package/dist/service/types.d.ts.map +1 -0
  128. package/dist/service/types.js +1 -0
  129. package/dist/service.d.ts +1418 -0
  130. package/dist/service.d.ts.map +1 -0
  131. package/dist/service.js +17 -0
  132. package/dist/suppliers/index.d.ts +15 -0
  133. package/dist/suppliers/index.d.ts.map +1 -0
  134. package/dist/suppliers/index.js +23 -0
  135. package/dist/suppliers/routes.d.ts +1202 -0
  136. package/dist/suppliers/routes.d.ts.map +1 -0
  137. package/dist/suppliers/routes.js +290 -0
  138. package/dist/suppliers/schema.d.ts +1272 -0
  139. package/dist/suppliers/schema.d.ts.map +1 -0
  140. package/dist/suppliers/schema.js +219 -0
  141. package/dist/suppliers/service-aggregates.d.ts +23 -0
  142. package/dist/suppliers/service-aggregates.d.ts.map +1 -0
  143. package/dist/suppliers/service-aggregates.js +51 -0
  144. package/dist/suppliers/service-core.d.ts +89 -0
  145. package/dist/suppliers/service-core.d.ts.map +1 -0
  146. package/dist/suppliers/service-core.js +164 -0
  147. package/dist/suppliers/service-identity.d.ts +162 -0
  148. package/dist/suppliers/service-identity.d.ts.map +1 -0
  149. package/dist/suppliers/service-identity.js +101 -0
  150. package/dist/suppliers/service-operations.d.ts +1500 -0
  151. package/dist/suppliers/service-operations.d.ts.map +1 -0
  152. package/dist/suppliers/service-operations.js +157 -0
  153. package/dist/suppliers/service-shared.d.ts +45 -0
  154. package/dist/suppliers/service-shared.d.ts.map +1 -0
  155. package/dist/suppliers/service-shared.js +294 -0
  156. package/dist/suppliers/service.d.ts +41 -0
  157. package/dist/suppliers/service.d.ts.map +1 -0
  158. package/dist/suppliers/service.js +40 -0
  159. package/dist/suppliers/validation.d.ts +2 -0
  160. package/dist/suppliers/validation.d.ts.map +1 -0
  161. package/dist/suppliers/validation.js +1 -0
  162. package/dist/validation.d.ts +1371 -0
  163. package/dist/validation.d.ts.map +1 -0
  164. package/dist/validation.js +445 -0
  165. package/dist/webhook-deliveries.d.ts +86 -0
  166. package/dist/webhook-deliveries.d.ts.map +1 -0
  167. package/dist/webhook-deliveries.js +296 -0
  168. package/package.json +71 -0
@@ -0,0 +1,82 @@
1
+ import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
2
+ import type { z } from "zod";
3
+ import type { externalRefListQuerySchema, insertExternalRefSchema, updateExternalRefSchema } from "./validation.js";
4
+ type ExternalRefListQuery = z.infer<typeof externalRefListQuerySchema>;
5
+ type CreateExternalRefInput = z.infer<typeof insertExternalRefSchema>;
6
+ type UpdateExternalRefInput = z.infer<typeof updateExternalRefSchema>;
7
+ export declare const externalRefsService: {
8
+ listExternalRefs(db: PostgresJsDatabase, query: ExternalRefListQuery): Promise<{
9
+ data: {
10
+ id: string;
11
+ entityType: string;
12
+ entityId: string;
13
+ sourceSystem: string;
14
+ objectType: string;
15
+ namespace: string;
16
+ externalId: string;
17
+ externalParentId: string | null;
18
+ isPrimary: boolean;
19
+ status: "active" | "inactive" | "archived";
20
+ lastSyncedAt: Date | null;
21
+ metadata: Record<string, unknown> | null;
22
+ createdAt: Date;
23
+ updatedAt: Date;
24
+ }[];
25
+ total: number;
26
+ limit: number;
27
+ offset: number;
28
+ }>;
29
+ getExternalRefById(db: PostgresJsDatabase, id: string): Promise<{
30
+ id: string;
31
+ entityType: string;
32
+ entityId: string;
33
+ sourceSystem: string;
34
+ objectType: string;
35
+ namespace: string;
36
+ externalId: string;
37
+ externalParentId: string | null;
38
+ isPrimary: boolean;
39
+ status: "active" | "inactive" | "archived";
40
+ lastSyncedAt: Date | null;
41
+ metadata: Record<string, unknown> | null;
42
+ createdAt: Date;
43
+ updatedAt: Date;
44
+ } | null>;
45
+ createExternalRef(db: PostgresJsDatabase, data: CreateExternalRefInput): Promise<{
46
+ metadata: Record<string, unknown> | null;
47
+ id: string;
48
+ status: "active" | "inactive" | "archived";
49
+ createdAt: Date;
50
+ updatedAt: Date;
51
+ entityType: string;
52
+ entityId: string;
53
+ isPrimary: boolean;
54
+ lastSyncedAt: Date | null;
55
+ sourceSystem: string;
56
+ objectType: string;
57
+ namespace: string;
58
+ externalId: string;
59
+ externalParentId: string | null;
60
+ } | null>;
61
+ updateExternalRef(db: PostgresJsDatabase, id: string, data: UpdateExternalRefInput): Promise<{
62
+ id: string;
63
+ entityType: string;
64
+ entityId: string;
65
+ sourceSystem: string;
66
+ objectType: string;
67
+ namespace: string;
68
+ externalId: string;
69
+ externalParentId: string | null;
70
+ isPrimary: boolean;
71
+ status: "active" | "inactive" | "archived";
72
+ lastSyncedAt: Date | null;
73
+ metadata: Record<string, unknown> | null;
74
+ createdAt: Date;
75
+ updatedAt: Date;
76
+ } | null>;
77
+ deleteExternalRef(db: PostgresJsDatabase, id: string): Promise<{
78
+ id: string;
79
+ } | null>;
80
+ };
81
+ export {};
82
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/external-refs/service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACjE,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAG5B,OAAO,KAAK,EACV,0BAA0B,EAC1B,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,iBAAiB,CAAA;AAExB,KAAK,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAA;AACtE,KAAK,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AACrE,KAAK,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAA;AA4BrE,eAAO,MAAM,mBAAmB;yBACH,kBAAkB,SAAS,oBAAoB;;;;;;;;;;;;;;;;;;;;;2BAiC7C,kBAAkB,MAAM,MAAM;;;;;;;;;;;;;;;;0BAK/B,kBAAkB,QAAQ,sBAAsB;;;;;;;;;;;;;;;;0BAqBhD,kBAAkB,MAAM,MAAM,QAAQ,sBAAsB;;;;;;;;;;;;;;;;0BA+B5D,kBAAkB,MAAM,MAAM;;;CAO3D,CAAA"}
@@ -0,0 +1,112 @@
1
+ import { and, desc, eq, ilike, ne, sql } from "drizzle-orm";
2
+ import { externalRefs } from "./schema.js";
3
+ function toTimestamp(value) {
4
+ return value ? new Date(value) : null;
5
+ }
6
+ async function ensurePrimaryRef(db, params) {
7
+ const conditions = [
8
+ eq(externalRefs.entityType, params.entityType),
9
+ eq(externalRefs.entityId, params.entityId),
10
+ eq(externalRefs.sourceSystem, params.sourceSystem),
11
+ ];
12
+ if (params.id)
13
+ conditions.push(ne(externalRefs.id, params.id));
14
+ await db
15
+ .update(externalRefs)
16
+ .set({ isPrimary: false, updatedAt: new Date() })
17
+ .where(and(...conditions));
18
+ }
19
+ export const externalRefsService = {
20
+ async listExternalRefs(db, query) {
21
+ const conditions = [];
22
+ if (query.entityType)
23
+ conditions.push(eq(externalRefs.entityType, query.entityType));
24
+ if (query.entityId)
25
+ conditions.push(eq(externalRefs.entityId, query.entityId));
26
+ if (query.sourceSystem)
27
+ conditions.push(eq(externalRefs.sourceSystem, query.sourceSystem));
28
+ if (query.objectType)
29
+ conditions.push(eq(externalRefs.objectType, query.objectType));
30
+ if (query.namespace)
31
+ conditions.push(eq(externalRefs.namespace, query.namespace));
32
+ if (query.status)
33
+ conditions.push(eq(externalRefs.status, query.status));
34
+ if (query.search) {
35
+ const term = `%${query.search}%`;
36
+ conditions.push(ilike(externalRefs.externalId, term));
37
+ }
38
+ const where = conditions.length > 0 ? and(...conditions) : undefined;
39
+ const [data, countResult] = await Promise.all([
40
+ db
41
+ .select()
42
+ .from(externalRefs)
43
+ .where(where)
44
+ .limit(query.limit)
45
+ .offset(query.offset)
46
+ .orderBy(desc(externalRefs.updatedAt)),
47
+ db.select({ count: sql `count(*)::int` }).from(externalRefs).where(where),
48
+ ]);
49
+ return {
50
+ data,
51
+ total: countResult[0]?.count ?? 0,
52
+ limit: query.limit,
53
+ offset: query.offset,
54
+ };
55
+ },
56
+ async getExternalRefById(db, id) {
57
+ const [row] = await db.select().from(externalRefs).where(eq(externalRefs.id, id)).limit(1);
58
+ return row ?? null;
59
+ },
60
+ async createExternalRef(db, data) {
61
+ if (data.isPrimary) {
62
+ await ensurePrimaryRef(db, {
63
+ entityType: data.entityType,
64
+ entityId: data.entityId,
65
+ sourceSystem: data.sourceSystem,
66
+ });
67
+ }
68
+ const [row] = await db
69
+ .insert(externalRefs)
70
+ .values({
71
+ ...data,
72
+ namespace: data.namespace ?? "default",
73
+ lastSyncedAt: toTimestamp(data.lastSyncedAt),
74
+ })
75
+ .returning();
76
+ return row ?? null;
77
+ },
78
+ async updateExternalRef(db, id, data) {
79
+ const existing = await this.getExternalRefById(db, id);
80
+ if (!existing)
81
+ return null;
82
+ const nextEntityType = data.entityType ?? existing.entityType;
83
+ const nextEntityId = data.entityId ?? existing.entityId;
84
+ const nextSourceSystem = data.sourceSystem ?? existing.sourceSystem;
85
+ if (data.isPrimary) {
86
+ await ensurePrimaryRef(db, {
87
+ id,
88
+ entityType: nextEntityType,
89
+ entityId: nextEntityId,
90
+ sourceSystem: nextSourceSystem,
91
+ });
92
+ }
93
+ const [row] = await db
94
+ .update(externalRefs)
95
+ .set({
96
+ ...data,
97
+ namespace: data.namespace ?? existing.namespace,
98
+ lastSyncedAt: data.lastSyncedAt === undefined ? undefined : toTimestamp(data.lastSyncedAt),
99
+ updatedAt: new Date(),
100
+ })
101
+ .where(eq(externalRefs.id, id))
102
+ .returning();
103
+ return row ?? null;
104
+ },
105
+ async deleteExternalRef(db, id) {
106
+ const [row] = await db
107
+ .delete(externalRefs)
108
+ .where(eq(externalRefs.id, id))
109
+ .returning({ id: externalRefs.id });
110
+ return row ?? null;
111
+ },
112
+ };
@@ -0,0 +1,91 @@
1
+ import { z } from "zod";
2
+ export declare const externalRefStatusSchema: z.ZodEnum<{
3
+ active: "active";
4
+ inactive: "inactive";
5
+ archived: "archived";
6
+ }>;
7
+ export declare const insertExternalRefSchema: z.ZodObject<{
8
+ entityType: z.ZodString;
9
+ entityId: z.ZodString;
10
+ sourceSystem: z.ZodString;
11
+ objectType: z.ZodString;
12
+ namespace: z.ZodDefault<z.ZodString>;
13
+ externalId: z.ZodString;
14
+ externalParentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
15
+ isPrimary: z.ZodDefault<z.ZodBoolean>;
16
+ status: z.ZodDefault<z.ZodEnum<{
17
+ active: "active";
18
+ inactive: "inactive";
19
+ archived: "archived";
20
+ }>>;
21
+ lastSyncedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
22
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
23
+ }, z.core.$strip>;
24
+ export declare const updateExternalRefSchema: z.ZodObject<{
25
+ entityType: z.ZodOptional<z.ZodString>;
26
+ entityId: z.ZodOptional<z.ZodString>;
27
+ sourceSystem: z.ZodOptional<z.ZodString>;
28
+ objectType: z.ZodOptional<z.ZodString>;
29
+ namespace: z.ZodOptional<z.ZodDefault<z.ZodString>>;
30
+ externalId: z.ZodOptional<z.ZodString>;
31
+ externalParentId: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
32
+ isPrimary: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
33
+ status: z.ZodOptional<z.ZodDefault<z.ZodEnum<{
34
+ active: "active";
35
+ inactive: "inactive";
36
+ archived: "archived";
37
+ }>>>;
38
+ lastSyncedAt: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
39
+ metadata: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>>;
40
+ }, z.core.$strip>;
41
+ export declare const insertExternalRefForEntitySchema: z.ZodObject<{
42
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
43
+ status: z.ZodDefault<z.ZodEnum<{
44
+ active: "active";
45
+ inactive: "inactive";
46
+ archived: "archived";
47
+ }>>;
48
+ isPrimary: z.ZodDefault<z.ZodBoolean>;
49
+ lastSyncedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
50
+ sourceSystem: z.ZodString;
51
+ objectType: z.ZodString;
52
+ namespace: z.ZodDefault<z.ZodString>;
53
+ externalId: z.ZodString;
54
+ externalParentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
55
+ }, z.core.$strip>;
56
+ export declare const externalRefListQuerySchema: z.ZodObject<{
57
+ limit: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
58
+ offset: z.ZodDefault<z.ZodCoercedNumber<unknown>>;
59
+ entityType: z.ZodOptional<z.ZodString>;
60
+ entityId: z.ZodOptional<z.ZodString>;
61
+ sourceSystem: z.ZodOptional<z.ZodString>;
62
+ objectType: z.ZodOptional<z.ZodString>;
63
+ namespace: z.ZodOptional<z.ZodString>;
64
+ status: z.ZodOptional<z.ZodEnum<{
65
+ active: "active";
66
+ inactive: "inactive";
67
+ archived: "archived";
68
+ }>>;
69
+ search: z.ZodOptional<z.ZodString>;
70
+ }, z.core.$strip>;
71
+ export declare const selectExternalRefSchema: z.ZodObject<{
72
+ entityType: z.ZodString;
73
+ entityId: z.ZodString;
74
+ sourceSystem: z.ZodString;
75
+ objectType: z.ZodString;
76
+ namespace: z.ZodDefault<z.ZodString>;
77
+ externalId: z.ZodString;
78
+ externalParentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
79
+ isPrimary: z.ZodDefault<z.ZodBoolean>;
80
+ status: z.ZodDefault<z.ZodEnum<{
81
+ active: "active";
82
+ inactive: "inactive";
83
+ archived: "archived";
84
+ }>>;
85
+ lastSyncedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
86
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
87
+ id: z.ZodString;
88
+ createdAt: z.ZodCoercedDate<unknown>;
89
+ updatedAt: z.ZodCoercedDate<unknown>;
90
+ }, z.core.$strip>;
91
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/external-refs/validation.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,uBAAuB;;;;EAA6C,CAAA;AAqBjF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;iBAAwB,CAAA;AAC5D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;iBAAkC,CAAA;AACtE,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;iBAG3C,CAAA;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;iBAQrC,CAAA;AAEF,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;iBAIlC,CAAA"}
@@ -0,0 +1,40 @@
1
+ import { typeIdSchema } from "@voyant-travel/db/lib/typeid";
2
+ import { z } from "zod";
3
+ export const externalRefStatusSchema = z.enum(["active", "inactive", "archived"]);
4
+ const paginationSchema = z.object({
5
+ limit: z.coerce.number().int().min(1).max(200).default(50),
6
+ offset: z.coerce.number().int().min(0).default(0),
7
+ });
8
+ const externalRefCoreSchema = z.object({
9
+ entityType: z.string().min(1).max(100),
10
+ entityId: z.string().min(1).max(100),
11
+ sourceSystem: z.string().min(1).max(100),
12
+ objectType: z.string().min(1).max(100),
13
+ namespace: z.string().min(1).max(100).default("default"),
14
+ externalId: z.string().min(1).max(255),
15
+ externalParentId: z.string().max(255).nullable().optional(),
16
+ isPrimary: z.boolean().default(false),
17
+ status: externalRefStatusSchema.default("active"),
18
+ lastSyncedAt: z.string().nullable().optional(),
19
+ metadata: z.record(z.string(), z.unknown()).nullable().optional(),
20
+ });
21
+ export const insertExternalRefSchema = externalRefCoreSchema;
22
+ export const updateExternalRefSchema = externalRefCoreSchema.partial();
23
+ export const insertExternalRefForEntitySchema = externalRefCoreSchema.omit({
24
+ entityType: true,
25
+ entityId: true,
26
+ });
27
+ export const externalRefListQuerySchema = paginationSchema.extend({
28
+ entityType: z.string().max(100).optional(),
29
+ entityId: z.string().max(100).optional(),
30
+ sourceSystem: z.string().max(100).optional(),
31
+ objectType: z.string().max(100).optional(),
32
+ namespace: z.string().max(100).optional(),
33
+ status: externalRefStatusSchema.optional(),
34
+ search: z.string().optional(),
35
+ });
36
+ export const selectExternalRefSchema = externalRefCoreSchema.extend({
37
+ id: typeIdSchema("external_refs"),
38
+ createdAt: z.coerce.date(),
39
+ updatedAt: z.coerce.date(),
40
+ });
@@ -0,0 +1,21 @@
1
+ import type { Module } from "@voyant-travel/core";
2
+ import type { HonoModule } from "@voyant-travel/hono/module";
3
+ import { distributionService } from "./service.js";
4
+ export type { DistributionRoutes } from "./routes.js";
5
+ export declare const distributionModule: Module;
6
+ export declare const distributionHonoModule: HonoModule;
7
+ export * from "./booking-extension.js";
8
+ export * from "./channel-push/index.js";
9
+ export * from "./external-refs/index.js";
10
+ export type { DistributionCounterpartyEntityType, DistributionCounterpartyRecord, DistributionCounterpartyReference, DistributionCounterpartyRole, DistributionExternalReferenceInput, LinkExternalReferenceInput, LinkExternalReferenceOutcome, ReconcileCounterpartyActivityInput, ReconcileCounterpartyActivityOutcome, ResolveCounterpartyOutcome, RouteCounterpartyEventInput, RouteCounterpartyEventOutcome, } from "./interface.js";
11
+ export { counterpartyEntityTypeToRole, counterpartyRoleToEntityType, linkExternalReference, reconcileCounterpartyActivity, resolveCounterparty, routeCounterpartyEvent, } from "./interface.js";
12
+ export { type AcquireTokenAcquired, type AcquireTokenDenied, type AcquireTokenResult, acquireToken, type ChannelPushPriority, channelScopeKey, DEFAULT_PRIORITY_GATES, drainBucket, type RateLimitConfig, } from "./rate-limit.js";
13
+ export type { Channel, ChannelBookingLink, ChannelCommissionRule, ChannelContactProjection, ChannelContract, ChannelInventoryAllotment, ChannelInventoryAllotmentTarget, ChannelInventoryReleaseExecution, ChannelInventoryReleaseRule, ChannelProductMapping, ChannelReconciliationItem, ChannelReconciliationPolicy, ChannelReconciliationRun, ChannelReleaseSchedule, ChannelRemittanceException, ChannelSettlementApproval, ChannelSettlementItem, ChannelSettlementPolicy, ChannelSettlementRun, ChannelWebhookEvent, NewChannel, NewChannelBookingLink, NewChannelCommissionRule, NewChannelContactProjection, NewChannelContract, NewChannelInventoryAllotment, NewChannelInventoryAllotmentTarget, NewChannelInventoryReleaseExecution, NewChannelInventoryReleaseRule, NewChannelProductMapping, NewChannelReconciliationItem, NewChannelReconciliationPolicy, NewChannelReconciliationRun, NewChannelReleaseSchedule, NewChannelRemittanceException, NewChannelSettlementApproval, NewChannelSettlementItem, NewChannelSettlementPolicy, NewChannelSettlementRun, NewChannelWebhookEvent, } from "./schema.js";
14
+ export { channelBookingLinks, channelCommissionRules, channelContactProjections, channelContracts, channelInventoryAllotments, channelInventoryAllotmentTargets, channelInventoryReleaseExecutions, channelInventoryReleaseRules, channelProductMappings, channelReconciliationItems, channelReconciliationPolicies, channelReconciliationPolicyFrequencyEnum, channelReconciliationRuns, channelReleaseScheduleKindEnum, channelReleaseSchedules, channelRemittanceExceptionStatusEnum, channelRemittanceExceptions, channelSettlementApprovalStatusEnum, channelSettlementApprovals, channelSettlementItems, channelSettlementPolicies, channelSettlementPolicyFrequencyEnum, channelSettlementRuns, channels, channelWebhookEvents, } from "./schema.js";
15
+ export type { ChannelAvailabilityPushIntent, ChannelContentPushIntent, NewChannelAvailabilityPushIntent, NewChannelContentPushIntent, } from "./schema-push-intents.js";
16
+ export { channelAvailabilityPushIntents, channelContentPushIntents, } from "./schema-push-intents.js";
17
+ export * from "./suppliers/index.js";
18
+ export { channelBookingLinkListQuerySchema, channelCommissionRuleListQuerySchema, channelContractListQuerySchema, channelInventoryAllotmentListQuerySchema, channelInventoryAllotmentTargetListQuerySchema, channelInventoryReleaseExecutionListQuerySchema, channelInventoryReleaseRuleListQuerySchema, channelListQuerySchema, channelProductMappingListQuerySchema, channelReconciliationItemListQuerySchema, channelReconciliationPolicyFrequencySchema, channelReconciliationPolicyListQuerySchema, channelReconciliationRunListQuerySchema, channelReleaseScheduleKindSchema, channelReleaseScheduleListQuerySchema, channelRemittanceExceptionListQuerySchema, channelRemittanceExceptionStatusSchema, channelSettlementApprovalListQuerySchema, channelSettlementApprovalStatusSchema, channelSettlementItemListQuerySchema, channelSettlementPolicyFrequencySchema, channelSettlementPolicyListQuerySchema, channelSettlementRunListQuerySchema, channelWebhookEventListQuerySchema, insertChannelBookingLinkSchema, insertChannelCommissionRuleSchema, insertChannelContractSchema, insertChannelInventoryAllotmentSchema, insertChannelInventoryAllotmentTargetSchema, insertChannelInventoryReleaseExecutionSchema, insertChannelInventoryReleaseRuleSchema, insertChannelProductMappingSchema, insertChannelReconciliationItemSchema, insertChannelReconciliationPolicySchema, insertChannelReconciliationRunSchema, insertChannelReleaseScheduleSchema, insertChannelRemittanceExceptionSchema, insertChannelSchema, insertChannelSettlementApprovalSchema, insertChannelSettlementItemSchema, insertChannelSettlementPolicySchema, insertChannelSettlementRunSchema, insertChannelWebhookEventSchema, updateChannelBookingLinkSchema, updateChannelCommissionRuleSchema, updateChannelContractSchema, updateChannelInventoryAllotmentSchema, updateChannelInventoryAllotmentTargetSchema, updateChannelInventoryReleaseExecutionSchema, updateChannelInventoryReleaseRuleSchema, updateChannelProductMappingSchema, updateChannelReconciliationItemSchema, updateChannelReconciliationPolicySchema, updateChannelReconciliationRunSchema, updateChannelReleaseScheduleSchema, updateChannelRemittanceExceptionSchema, updateChannelSchema, updateChannelSettlementApprovalSchema, updateChannelSettlementItemSchema, updateChannelSettlementPolicySchema, updateChannelSettlementRunSchema, updateChannelWebhookEventSchema, } from "./validation.js";
19
+ export { type OutboundEnvelopeInput, type OutboundEnvelopeResultInput, type PreparedEnvelope, prepareOutboundEnvelope, redactBodyPii, redactHeaders, redactStringPii, } from "./webhook-deliveries.js";
20
+ export { distributionService };
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,20 @@
1
+ import { distributionRoutes } from "./routes.js";
2
+ import { distributionService } from "./service.js";
3
+ export const distributionModule = {
4
+ name: "distribution",
5
+ };
6
+ export const distributionHonoModule = {
7
+ module: distributionModule,
8
+ routes: distributionRoutes,
9
+ };
10
+ export * from "./booking-extension.js";
11
+ export * from "./channel-push/index.js";
12
+ export * from "./external-refs/index.js";
13
+ export { counterpartyEntityTypeToRole, counterpartyRoleToEntityType, linkExternalReference, reconcileCounterpartyActivity, resolveCounterparty, routeCounterpartyEvent, } from "./interface.js";
14
+ export { acquireToken, channelScopeKey, DEFAULT_PRIORITY_GATES, drainBucket, } from "./rate-limit.js";
15
+ export { channelBookingLinks, channelCommissionRules, channelContactProjections, channelContracts, channelInventoryAllotments, channelInventoryAllotmentTargets, channelInventoryReleaseExecutions, channelInventoryReleaseRules, channelProductMappings, channelReconciliationItems, channelReconciliationPolicies, channelReconciliationPolicyFrequencyEnum, channelReconciliationRuns, channelReleaseScheduleKindEnum, channelReleaseSchedules, channelRemittanceExceptionStatusEnum, channelRemittanceExceptions, channelSettlementApprovalStatusEnum, channelSettlementApprovals, channelSettlementItems, channelSettlementPolicies, channelSettlementPolicyFrequencyEnum, channelSettlementRuns, channels, channelWebhookEvents, } from "./schema.js";
16
+ export { channelAvailabilityPushIntents, channelContentPushIntents, } from "./schema-push-intents.js";
17
+ export * from "./suppliers/index.js";
18
+ export { channelBookingLinkListQuerySchema, channelCommissionRuleListQuerySchema, channelContractListQuerySchema, channelInventoryAllotmentListQuerySchema, channelInventoryAllotmentTargetListQuerySchema, channelInventoryReleaseExecutionListQuerySchema, channelInventoryReleaseRuleListQuerySchema, channelListQuerySchema, channelProductMappingListQuerySchema, channelReconciliationItemListQuerySchema, channelReconciliationPolicyFrequencySchema, channelReconciliationPolicyListQuerySchema, channelReconciliationRunListQuerySchema, channelReleaseScheduleKindSchema, channelReleaseScheduleListQuerySchema, channelRemittanceExceptionListQuerySchema, channelRemittanceExceptionStatusSchema, channelSettlementApprovalListQuerySchema, channelSettlementApprovalStatusSchema, channelSettlementItemListQuerySchema, channelSettlementPolicyFrequencySchema, channelSettlementPolicyListQuerySchema, channelSettlementRunListQuerySchema, channelWebhookEventListQuerySchema, insertChannelBookingLinkSchema, insertChannelCommissionRuleSchema, insertChannelContractSchema, insertChannelInventoryAllotmentSchema, insertChannelInventoryAllotmentTargetSchema, insertChannelInventoryReleaseExecutionSchema, insertChannelInventoryReleaseRuleSchema, insertChannelProductMappingSchema, insertChannelReconciliationItemSchema, insertChannelReconciliationPolicySchema, insertChannelReconciliationRunSchema, insertChannelReleaseScheduleSchema, insertChannelRemittanceExceptionSchema, insertChannelSchema, insertChannelSettlementApprovalSchema, insertChannelSettlementItemSchema, insertChannelSettlementPolicySchema, insertChannelSettlementRunSchema, insertChannelWebhookEventSchema, updateChannelBookingLinkSchema, updateChannelCommissionRuleSchema, updateChannelContractSchema, updateChannelInventoryAllotmentSchema, updateChannelInventoryAllotmentTargetSchema, updateChannelInventoryReleaseExecutionSchema, updateChannelInventoryReleaseRuleSchema, updateChannelProductMappingSchema, updateChannelReconciliationItemSchema, updateChannelReconciliationPolicySchema, updateChannelReconciliationRunSchema, updateChannelReleaseScheduleSchema, updateChannelRemittanceExceptionSchema, updateChannelSchema, updateChannelSettlementApprovalSchema, updateChannelSettlementItemSchema, updateChannelSettlementPolicySchema, updateChannelSettlementRunSchema, updateChannelWebhookEventSchema, } from "./validation.js";
19
+ export { prepareOutboundEnvelope, redactBodyPii, redactHeaders, redactStringPii, } from "./webhook-deliveries.js";
20
+ export { distributionService };
@@ -0,0 +1,128 @@
1
+ import type { ExternalRef } from "./external-refs/schema.js";
2
+ import type { Channel, ChannelReconciliationItem, ChannelWebhookEvent } from "./schema.js";
3
+ import type { Supplier } from "./suppliers/schema.js";
4
+ export type DistributionCounterpartyRole = "supplier" | "channel";
5
+ export type DistributionCounterpartyEntityType = "supplier" | "channel";
6
+ export interface DistributionExternalReferenceInput {
7
+ sourceSystem: string;
8
+ objectType: string;
9
+ externalId: string;
10
+ namespace?: string;
11
+ }
12
+ export type DistributionCounterpartyReference = {
13
+ role: DistributionCounterpartyRole;
14
+ id: string;
15
+ externalRef?: DistributionExternalReferenceInput;
16
+ } | {
17
+ role?: DistributionCounterpartyRole;
18
+ id?: string;
19
+ externalRef: DistributionExternalReferenceInput;
20
+ };
21
+ export type DistributionCounterpartyRecord = {
22
+ role: "supplier";
23
+ entityType: "supplier";
24
+ id: string;
25
+ record: Supplier;
26
+ externalRef?: ExternalRef | null;
27
+ } | {
28
+ role: "channel";
29
+ entityType: "channel";
30
+ id: string;
31
+ record: Channel;
32
+ externalRef?: ExternalRef | null;
33
+ };
34
+ export type ResolveCounterpartyOutcome = {
35
+ status: "resolved";
36
+ counterparty: DistributionCounterpartyRecord;
37
+ } | {
38
+ status: "not_found";
39
+ reason: "counterparty_not_found" | "external_ref_not_found";
40
+ } | {
41
+ status: "unsupported";
42
+ entityType: string;
43
+ } | {
44
+ status: "ambiguous";
45
+ reason: "role_required_for_id_lookup";
46
+ };
47
+ export interface LinkExternalReferenceInput {
48
+ counterparty: {
49
+ role: DistributionCounterpartyRole;
50
+ id: string;
51
+ };
52
+ sourceSystem: string;
53
+ objectType: string;
54
+ externalId: string;
55
+ namespace?: string;
56
+ externalParentId?: string | null;
57
+ isPrimary?: boolean;
58
+ status?: "active" | "inactive" | "archived";
59
+ lastSyncedAt?: string | Date | null;
60
+ metadata?: Record<string, unknown> | null;
61
+ }
62
+ export type LinkExternalReferenceOutcome = {
63
+ status: "linked";
64
+ counterparty: DistributionCounterpartyRecord;
65
+ externalRef: ExternalRef;
66
+ created: boolean;
67
+ } | Extract<ResolveCounterpartyOutcome, {
68
+ status: "not_found" | "unsupported" | "ambiguous";
69
+ }>;
70
+ export interface RouteCounterpartyEventInput {
71
+ counterparty: DistributionCounterpartyReference;
72
+ eventType: string;
73
+ externalEventId?: string | null;
74
+ payload?: Record<string, unknown>;
75
+ receivedAt?: string | Date | null;
76
+ status?: "pending" | "processed" | "failed" | "ignored";
77
+ }
78
+ export type RouteCounterpartyEventOutcome = {
79
+ status: "routed";
80
+ counterparty: DistributionCounterpartyRecord;
81
+ destination: "channel_webhook_events";
82
+ event: ChannelWebhookEvent;
83
+ } | {
84
+ status: "routed";
85
+ counterparty: DistributionCounterpartyRecord;
86
+ destination: "supplier_adapter";
87
+ event: null;
88
+ } | Extract<ResolveCounterpartyOutcome, {
89
+ status: "not_found" | "unsupported" | "ambiguous";
90
+ }>;
91
+ export interface ReconcileCounterpartyActivityInput {
92
+ counterparty?: DistributionCounterpartyReference;
93
+ externalRef: DistributionExternalReferenceInput;
94
+ createExternalReference?: boolean;
95
+ metadata?: Record<string, unknown> | null;
96
+ channelReconciliation?: {
97
+ reconciliationRunId: string;
98
+ bookingLinkId?: string | null;
99
+ bookingId?: string | null;
100
+ externalBookingId?: string | null;
101
+ issueType?: "missing_booking" | "status_mismatch" | "amount_mismatch" | "cancel_mismatch" | "missing_payout" | "other";
102
+ severity?: "info" | "warning" | "error";
103
+ resolutionStatus?: "open" | "ignored" | "resolved";
104
+ notes?: string | null;
105
+ };
106
+ }
107
+ export type ReconcileCounterpartyActivityOutcome = {
108
+ status: "matched";
109
+ counterparty: DistributionCounterpartyRecord;
110
+ externalRef: ExternalRef;
111
+ reconciliationItem?: ChannelReconciliationItem | null;
112
+ } | {
113
+ status: "linked";
114
+ counterparty: DistributionCounterpartyRecord;
115
+ externalRef: ExternalRef;
116
+ reconciliationItem?: ChannelReconciliationItem | null;
117
+ } | {
118
+ status: "unmatched";
119
+ reason: "external_ref_not_found" | "counterparty_required_to_create_link";
120
+ } | {
121
+ status: "conflict";
122
+ expected: DistributionCounterpartyRecord;
123
+ actual: DistributionCounterpartyRecord;
124
+ externalRef: ExternalRef;
125
+ } | Extract<ResolveCounterpartyOutcome, {
126
+ status: "not_found" | "unsupported" | "ambiguous";
127
+ }>;
128
+ //# sourceMappingURL=interface-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface-types.d.ts","sourceRoot":"","sources":["../src/interface-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,10 @@
1
+ import type { PostgresJsDatabase } from "drizzle-orm/postgres-js";
2
+ import type { DistributionCounterpartyEntityType, DistributionCounterpartyReference, DistributionCounterpartyRole, LinkExternalReferenceInput, LinkExternalReferenceOutcome, ReconcileCounterpartyActivityInput, ReconcileCounterpartyActivityOutcome, ResolveCounterpartyOutcome, RouteCounterpartyEventInput, RouteCounterpartyEventOutcome } from "./interface-types.js";
3
+ export type * from "./interface-types.js";
4
+ export declare function counterpartyRoleToEntityType(role: DistributionCounterpartyRole): DistributionCounterpartyEntityType;
5
+ export declare function counterpartyEntityTypeToRole(entityType: string): DistributionCounterpartyRole | null;
6
+ export declare function resolveCounterparty(db: PostgresJsDatabase, input: DistributionCounterpartyReference): Promise<ResolveCounterpartyOutcome>;
7
+ export declare function linkExternalReference(db: PostgresJsDatabase, input: LinkExternalReferenceInput): Promise<LinkExternalReferenceOutcome>;
8
+ export declare function routeCounterpartyEvent(db: PostgresJsDatabase, input: RouteCounterpartyEventInput): Promise<RouteCounterpartyEventOutcome>;
9
+ export declare function reconcileCounterpartyActivity(db: PostgresJsDatabase, input: ReconcileCounterpartyActivityInput): Promise<ReconcileCounterpartyActivityOutcome>;
10
+ //# sourceMappingURL=interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../src/interface.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAEjE,OAAO,KAAK,EACV,kCAAkC,EAElC,iCAAiC,EACjC,4BAA4B,EAE5B,0BAA0B,EAC1B,4BAA4B,EAC5B,kCAAkC,EAClC,oCAAoC,EACpC,0BAA0B,EAC1B,2BAA2B,EAC3B,6BAA6B,EAC9B,MAAM,sBAAsB,CAAA;AAK7B,mBAAmB,sBAAsB,CAAA;AAEzC,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,4BAA4B,GACjC,kCAAkC,CAEpC;AAED,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,GACjB,4BAA4B,GAAG,IAAI,CAKrC;AAED,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,kBAAkB,EACtB,KAAK,EAAE,iCAAiC,GACvC,OAAO,CAAC,0BAA0B,CAAC,CAiCrC;AAED,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,kBAAkB,EACtB,KAAK,EAAE,0BAA0B,GAChC,OAAO,CAAC,4BAA4B,CAAC,CA2EvC;AAED,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,kBAAkB,EACtB,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,6BAA6B,CAAC,CAqCxC;AAED,wBAAsB,6BAA6B,CACjD,EAAE,EAAE,kBAAkB,EACtB,KAAK,EAAE,kCAAkC,GACxC,OAAO,CAAC,oCAAoC,CAAC,CAwE/C"}