@myrjfa/state 3.0.5 → 3.0.6

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.
@@ -354,7 +354,7 @@ export declare const chatApi: {
354
354
  }>;
355
355
  getBalances: (convId: string) => Promise<any>;
356
356
  getExpenseCategories: (convId: string) => Promise<string[]>;
357
- uploadFiles: (formData: FormData) => Promise<{
357
+ uploadFiles: (formData: FormData, onUploadProgress?: (percent: number) => void) => Promise<{
358
358
  error: string;
359
359
  data: any;
360
360
  } | {
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/chat.ts"],"names":[],"mappings":"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"}
@@ -796,9 +796,9 @@ export const chatApi = {
796
796
  return [];
797
797
  }
798
798
  },
799
- uploadFiles: async (formData) => {
799
+ uploadFiles: async (formData, onUploadProgress) => {
800
800
  try {
801
- const response = await post(`${BASE_PATH}/upload`, formData);
801
+ const response = await post(`${BASE_PATH}/upload`, formData, true, { onUploadProgress });
802
802
  return response;
803
803
  }
804
804
  catch (error) {
@@ -4,9 +4,10 @@ interface FetchOptions {
4
4
  signal?: AbortSignal;
5
5
  headers?: Record<string, string>;
6
6
  keepalive?: boolean;
7
+ onUploadProgress?: (percent: number) => void;
7
8
  }
8
9
  export declare function get<T>(url: string, includeAuth?: boolean): Promise<T>;
9
- export declare function post<T>(url: string, body: any, includeAuth?: boolean, options?: Pick<FetchOptions, 'signal' | 'headers' | 'retry' | 'keepalive'>): Promise<T>;
10
+ export declare function post<T>(url: string, body: any, includeAuth?: boolean, options?: Pick<FetchOptions, 'signal' | 'headers' | 'retry' | 'keepalive' | 'onUploadProgress'>): Promise<T>;
10
11
  export declare function put<T>(url: string, body: any): Promise<T>;
11
12
  export declare function patch<T>(url: string, body: any): Promise<T>;
12
13
  export declare function del<T>(url: string, body?: any, includeAuth?: boolean, options?: Pick<FetchOptions, 'signal' | 'headers' | 'retry'>): Promise<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/fetcher.ts"],"names":[],"mappings":"AAyBA,UAAU,YAAY;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAmKD,wBAAsB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,GAAE,OAAc,cAEpE;AAED,wBAAsB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAE,OAAc,EAAE,OAAO,GAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAM,cAEhK;AAED,wBAAsB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,cAElD;AAED,wBAAsB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,cAEpD;AAED,wBAAsB,GAAG,CAAC,CAAC,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,WAAW,GAAE,OAAc,EAC3B,OAAO,GAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAM,cAGnE"}
1
+ {"version":3,"file":"fetcher.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/fetcher.ts"],"names":[],"mappings":"AAyBA,UAAU,YAAY;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD;AA0MD,wBAAsB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,GAAE,OAAc,cAEpE;AAED,wBAAsB,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAE,OAAc,EAAE,OAAO,GAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,kBAAkB,CAAM,cAErL;AAED,wBAAsB,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,cAElD;AAED,wBAAsB,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,cAEpD;AAED,wBAAsB,GAAG,CAAC,CAAC,EACvB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,WAAW,GAAE,OAAc,EAC3B,OAAO,GAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAM,cAGnE"}
@@ -10,6 +10,41 @@ class ApiError extends Error {
10
10
  }
11
11
  }
12
12
  const baseURL = process.env.NEXT_PUBLIC_API_URL;
13
+ // Browser upload events provide byte counts; response parsing and auth retry
14
+ // still run through customFetch. Ordinary and server requests retain fetch.
15
+ function uploadWithProgress(url, init, onProgress) {
16
+ return new Promise((resolve, reject) => {
17
+ if (init.signal?.aborted) {
18
+ reject(new DOMException('Upload cancelled', 'AbortError'));
19
+ return;
20
+ }
21
+ const request = new XMLHttpRequest();
22
+ request.open(init.method || 'POST', url);
23
+ request.withCredentials = true;
24
+ new Headers(init.headers).forEach((value, key) => request.setRequestHeader(key, value));
25
+ const abort = () => request.abort();
26
+ const cleanup = () => {
27
+ init.signal?.removeEventListener('abort', abort);
28
+ request.upload.onprogress = null;
29
+ };
30
+ request.upload.onprogress = (event) => {
31
+ if (event.lengthComputable && event.total > 0) {
32
+ onProgress(Math.round(event.loaded / event.total * 100));
33
+ }
34
+ };
35
+ request.onload = () => {
36
+ cleanup();
37
+ resolve(new Response(request.status === 204 ? null : request.responseText, {
38
+ status: request.status,
39
+ headers: { 'Content-Type': request.getResponseHeader('Content-Type') || 'application/json' },
40
+ }));
41
+ };
42
+ request.onerror = () => { cleanup(); reject(new TypeError('Failed to fetch')); };
43
+ request.onabort = () => { cleanup(); reject(new DOMException('Upload cancelled', 'AbortError')); };
44
+ init.signal?.addEventListener('abort', abort, { once: true });
45
+ request.send(init.body);
46
+ });
47
+ }
13
48
  /**
14
49
  * #2 — Stable device fingerprint stored in localStorage.
15
50
  * Survives browser sessions (unlike cookies which can expire/be cleared).
@@ -68,7 +103,9 @@ async function customFetch(input, method, body, options = {}) {
68
103
  keepalive,
69
104
  ...(body ? { body: isFormData ? body : JSON.stringify(body) } : {}),
70
105
  };
71
- const response = await fetch(url, init);
106
+ const response = options.onUploadProgress && isFormData && includeAuth && typeof window !== 'undefined'
107
+ ? await uploadWithProgress(url, init, options.onUploadProgress)
108
+ : await fetch(url, init);
72
109
  if (response.ok) {
73
110
  return response.status !== 204 ? (await response.json()) : {};
74
111
  }
@@ -141,6 +178,8 @@ async function refreshToken(input, method, body, options = {}) {
141
178
  return customFetch(input, method, body, { ...options, includeAuth: true, retry: false });
142
179
  }
143
180
  catch (error) {
181
+ if (error?.name === 'AbortError')
182
+ throw error;
144
183
  if (error && typeof error === 'object' && ('$$typeof' in error || error.digest === 'DYNAMIC_SERVER_USAGE')) {
145
184
  throw error; // Re-throw Next.js PPR bail-out
146
185
  }
@@ -1,10 +1,22 @@
1
- import type { ItinerarySummary } from "../models/itinerary";
1
+ import type { ContextualDestinationSuggestion, GenerateItineraryInput, ItineraryRouteInput, ItinerarySummary } from "../models/itinerary";
2
+ export type { ContextualDestinationSuggestion, GenerateItineraryInput, ItineraryReturnMode, ItineraryRouteInput, } from "../models/itinerary";
2
3
  export declare function getTrendingItineraries(limit?: number): Promise<{
3
4
  success: boolean;
4
5
  itineraries: ItinerarySummary[];
5
6
  error?: string;
6
7
  }>;
7
- export declare function generateItinerary<T = any>(input: unknown): Promise<T>;
8
+ export declare function generateItinerary<T = any>(input: GenerateItineraryInput): Promise<{
9
+ success: true;
10
+ itinerary: T;
11
+ } | {
12
+ success: false;
13
+ error: string;
14
+ }>;
15
+ export declare function getContextualDestinationSuggestions(route: ItineraryRouteInput): Promise<{
16
+ success: boolean;
17
+ suggestions: ContextualDestinationSuggestion[];
18
+ error?: string;
19
+ }>;
8
20
  export declare function getItineraryById<T = any>(id: string): Promise<T>;
9
21
  export declare function getMyItineraries(): Promise<{
10
22
  success: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"itinerary.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/itinerary.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAK5D,wBAAsB,sBAAsB,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAeD;AAED,wBAAsB,iBAAiB,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAG3E;AAED,wBAAsB,gBAAgB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAGtE;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAOD;AAED,wBAAsB,mBAAmB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAOzE;AAED,wBAAsB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAOxF;AAED,wBAAsB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAM1E"}
1
+ {"version":3,"file":"itinerary.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/itinerary.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAK7B,wBAAsB,sBAAsB,CAAC,KAAK,SAAI,GAAG,OAAO,CAAC;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAeD;AAED,wBAAsB,iBAAiB,CAAC,CAAC,GAAG,GAAG,EAAE,KAAK,EAAE,sBAAsB,GAAG,OAAO,CACpF;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,CAAC,CAAA;CAAE,GAC/B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACpC,CAcA;AAED,wBAAsB,mCAAmC,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC;IAC7F,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,+BAA+B,EAAE,CAAC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAWD;AAED,wBAAsB,gBAAgB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAGtE;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC;IAChD,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAOD;AAED,wBAAsB,mBAAmB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAOzE;AAED,wBAAsB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAOxF;AAED,wBAAsB,kBAAkB,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAM1E"}
@@ -15,8 +15,37 @@ export async function getTrendingItineraries(limit = 6) {
15
15
  }
16
16
  }
17
17
  export async function generateItinerary(input) {
18
- const payload = await post("/itineraries/generate", input, true);
19
- return payload.data;
18
+ try {
19
+ const payload = await post("/itineraries/generate", input, true);
20
+ return { success: true, itinerary: payload.data };
21
+ }
22
+ catch (caught) {
23
+ const status = typeof caught === "object" && caught !== null && "statusCode" in caught
24
+ ? Number(caught.statusCode)
25
+ : 0;
26
+ if (status === 401 || status === 403)
27
+ return { success: false, error: "Your session has expired. Please sign in again, then create your itinerary." };
28
+ if (status === 429)
29
+ return { success: false, error: "Our trip planner is busy right now. Please try again in a little while." };
30
+ if (status === 503 || status === 502)
31
+ return { success: false, error: "The AI trip planner is temporarily unavailable. Your answers are safe here; please try again shortly." };
32
+ if (status === 400 || status === 422)
33
+ return { success: false, error: "Please check your route, dates and budget, then try again." };
34
+ return { success: false, error: "We couldn't create your itinerary right now. Please try again shortly." };
35
+ }
36
+ }
37
+ export async function getContextualDestinationSuggestions(route) {
38
+ try {
39
+ const payload = await post("/itineraries/destination-suggestions", { route }, true);
40
+ return { success: true, suggestions: (payload.data ?? []).slice(0, 3) };
41
+ }
42
+ catch (caught) {
43
+ const statusCode = typeof caught === "object" && caught !== null && "statusCode" in caught
44
+ ? Number(caught.statusCode)
45
+ : 0;
46
+ console.error("Itinerary destination suggestions unavailable", { statusCode });
47
+ return { success: false, suggestions: [] };
48
+ }
20
49
  }
21
50
  export async function getItineraryById(id) {
22
51
  const payload = await get(`/itineraries/${encodeURIComponent(id)}`, true);
@@ -1,7 +1,11 @@
1
- import type { AssistedFulfillmentItem, ItineraryCandidate, ItineraryOrder, ItineraryReplacementResult, ItineraryV3 } from "../models/itinerary";
1
+ import type { AssistedFulfillmentItem, ItineraryCandidate, ItineraryOrder, ItineraryReplacementResult, ItineraryRecommendation, ItineraryV3 } from "../models/itinerary";
2
2
  export type { AssistedFulfillmentItem } from "../models/itinerary";
3
3
  export declare const refineItinerary: (itineraryId: string, message: string) => Promise<ItineraryV3>;
4
4
  export declare const getItineraryAlternatives: (itineraryId: string, itemId: string) => Promise<ItineraryCandidate[]>;
5
+ export declare const getItineraryRecommendationAlternatives: (itineraryId: string, recommendationId: string) => Promise<ItineraryRecommendation[]>;
6
+ export declare const selectItineraryRecommendationAlternative: (itineraryId: string, recommendationId: string, alternativeId: string) => Promise<ItineraryV3>;
7
+ export declare const getItineraryDayCandidates: (itineraryId: string, day: number, category?: string) => Promise<ItineraryCandidate[]>;
8
+ export declare const addItineraryItem: (itineraryId: string, day: number, candidateId: string) => Promise<ItineraryV3>;
5
9
  export declare const selectItineraryAlternative: (itineraryId: string, itemId: string, candidateId: string, locked?: boolean) => Promise<ItineraryV3>;
6
10
  export declare const requoteItinerary: (itineraryId: string) => Promise<ItineraryV3>;
7
11
  export declare const createItineraryOrder: (itineraryId: string, contactDetails: {
@@ -46,7 +50,7 @@ export declare const useItineraryTemplate: (slug: string, input: {
46
50
  }) => Promise<ItineraryV3>;
47
51
  export declare const getAssistedItineraryQueue: () => Promise<AssistedFulfillmentItem[]>;
48
52
  export declare const updateAssistedItineraryItem: (itemId: string, input: {
49
- action: "assign" | "confirm" | "cannot_fulfill" | "confirm_cancellation";
53
+ action: "assign" | "release" | "confirm" | "cannot_fulfill" | "confirm_cancellation";
50
54
  supplierAmount?: number;
51
55
  taxes?: number;
52
56
  confirmation?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"itineraryOrder.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/itineraryOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,0BAA0B,EAC1B,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAKnE,eAAO,MAAM,eAAe,GAAU,aAAa,MAAM,EAAE,SAAS,MAAM,yBAAoG,CAAC;AAE/K,eAAO,MAAM,wBAAwB,GAAU,aAAa,MAAM,EAAE,QAAQ,MAAM,kCAAqH,CAAC;AAExM,eAAO,MAAM,0BAA0B,GAAU,aAAa,MAAM,EAAE,QAAQ,MAAM,EAAE,aAAa,MAAM,EAAE,gBAAa,yBAAoI,CAAC;AAE7P,eAAO,MAAM,gBAAgB,GAAU,aAAa,MAAM,yBAA4F,CAAC;AAEvJ,eAAO,MAAM,oBAAoB,GAAU,aAAa,MAAM,EAAE,gBAAgB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,gBAAgB,MAAM;WAA4C,cAAc;qBAAmB,MAAM;mBAAiB,MAAM;YAAU,MAAM;cAAY,KAAK;EAAuK,CAAC;AAEzc,eAAO,MAAM,2BAA2B,GAAU,SAAS,MAAM,EAAE,SAAS;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,4BAA4G,CAAC;AAE/Q,eAAO,MAAM,iBAAiB,GAAU,SAAS,MAAM,4BAAmF,CAAC;AAE3I,eAAO,MAAM,6BAA6B,GAAU,SAAS,MAAM;cAA+C,KAAK;qBAAmB,MAAM;WAAS,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;EAA4D,CAAC;AAElS,eAAO,MAAM,oBAAoB,GAAU,SAAS,MAAM,EAAE,QAAQ,MAAM,4BAAuG,CAAC;AAElL,eAAO,MAAM,yBAAyB,GACpC,SAAS,MAAM,EACf,aAAa,MAAM,EACnB,aAAa,MAAM,EACnB,sBAAsB;IAAE,iBAAiB,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,wCACwD,CAAC;AAEvK,eAAO,MAAM,oBAAoB,GAAU,MAAM,MAAM,EAAE,OAAO;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,yBAA+G,CAAC;AAE/Q,eAAO,MAAM,yBAAyB,0CAA+G,CAAC;AAEtJ,eAAO,MAAM,2BAA2B,GAAU,QAAQ,MAAM,EAAE,OAAO;IAAE,MAAM,EAAE,QAAQ,GAAG,SAAS,GAAG,gBAAgB,GAAG,sBAAsB,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,qCAAsH,CAAC"}
1
+ {"version":3,"file":"itineraryOrder.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/itineraryOrder.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,10 @@ import { get, patch, post } from "./fetcher";
2
2
  const unwrap = (payload) => payload.data;
3
3
  export const refineItinerary = async (itineraryId, message) => unwrap(await post(`/itineraries/${itineraryId}/refine`, { message }));
4
4
  export const getItineraryAlternatives = async (itineraryId, itemId) => unwrap(await get(`/itineraries/${itineraryId}/items/${itemId}/alternatives`));
5
+ export const getItineraryRecommendationAlternatives = async (itineraryId, recommendationId) => unwrap(await get(`/itineraries/${encodeURIComponent(itineraryId)}/recommendations/${encodeURIComponent(recommendationId)}/alternatives`));
6
+ export const selectItineraryRecommendationAlternative = async (itineraryId, recommendationId, alternativeId) => unwrap(await patch(`/itineraries/${encodeURIComponent(itineraryId)}/recommendations/${encodeURIComponent(recommendationId)}`, { alternativeId }));
7
+ export const getItineraryDayCandidates = async (itineraryId, day, category) => unwrap(await get(`/itineraries/${encodeURIComponent(itineraryId)}/candidates?day=${day}${category ? `&category=${encodeURIComponent(category)}` : ""}`));
8
+ export const addItineraryItem = async (itineraryId, day, candidateId) => unwrap(await post(`/itineraries/${encodeURIComponent(itineraryId)}/items`, { day, candidateId }));
5
9
  export const selectItineraryAlternative = async (itineraryId, itemId, candidateId, locked = true) => unwrap(await patch(`/itineraries/${itineraryId}/items/${itemId}/selection`, { candidateId, locked }));
6
10
  export const requoteItinerary = async (itineraryId) => unwrap(await post(`/itineraries/${itineraryId}/requote`, {}));
7
11
  export const createItineraryOrder = async (itineraryId, contactDetails, idempotencyKey) => unwrap(await post(`/itineraries?itineraryId=${encodeURIComponent(itineraryId)}`, { contactDetails, termsAccepted: true }, true, { headers: { "Idempotency-Key": idempotencyKey } }));
@@ -25,6 +25,7 @@ interface ChatContextType {
25
25
  actorModel: ChatActorModel;
26
26
  }>;
27
27
  type?: "text" | "media" | "announcement";
28
+ onUploadProgress?: (percent: number) => void;
28
29
  }) => Promise<void>;
29
30
  createPoll: (conversationId: string, question: string, options: string[], allowMultiple: boolean) => void;
30
31
  votePoll: (pollId: string, optionIndex: number) => Promise<Poll | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"ChatContext.d.ts","sourceRoot":"","sources":["../../../src/lib/context/ChatContext.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChatContext.d.ts","sourceRoot":"","sources":["../../../src/lib/context/ChatContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAON,MAAM,OAAO,CAAC;AACf,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAO/C,OAAO,EAGH,KAAK,cAAc,EAEnB,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,IAAI,EACZ,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGrD,MAAM,WAAW,sBAAsB;IACnC,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;IAC3E,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,eAAe;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,kBAAkB,EAAE,YAAY,GAAG,IAAI,CAAC;IACxC,qBAAqB,EAAE,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI,KAAK,IAAI,CAAC;IACnE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC7D,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,oBAAoB,EAAE,CAAC,MAAM,CAAC,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,WAAW,EAAE,CACT,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,IAAI,EAAE,EACd,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;QACN,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,cAAc,CAAA;SAAE,CAAC,CAAC;QAClE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;QACzC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;KAChD,KACA,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,UAAU,EAAE,CACR,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EAAE,EACjB,aAAa,EAAE,OAAO,KACrB,IAAI,CAAC;IACV,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACxE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IAC5H,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtE,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAChE,uBAAuB,EAAE,MAAM,CAAC;IAChC,aAAa,EAAE,KAAK,EAAE,CAAC;IACvB,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CAC3B;AA8BD,eAAO,MAAM,cAAc,uBAAgC,CAAC;AAE5D,wBAAgB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CA2jBvE"}
@@ -73,7 +73,7 @@ export function ChatProvider({ children }) {
73
73
  if (files?.length) {
74
74
  const formData = new FormData();
75
75
  files.forEach((file) => formData.append("files", file));
76
- const upload = await chatApi.uploadFiles(formData);
76
+ const upload = await chatApi.uploadFiles(formData, options?.onUploadProgress);
77
77
  media = upload?.data?.files || [];
78
78
  if (!media.length) {
79
79
  const errMsg = upload?.error?.message || "Unable to upload attachments";
@@ -0,0 +1,11 @@
1
+ export type ItineraryLocationKind = "city" | "state" | "country";
2
+ export interface ItineraryLocationOption {
3
+ name: string;
4
+ region: string;
5
+ kind: ItineraryLocationKind;
6
+ emoji: string;
7
+ }
8
+ export declare const ITINERARY_LOCATION_OPTIONS: ItineraryLocationOption[];
9
+ export declare function findItineraryLocations(query: string, excluded?: string[], limit?: number): ItineraryLocationOption[];
10
+ export declare function canonicalItineraryLocation(name: string): string | undefined;
11
+ //# sourceMappingURL=itineraryDestinations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"itineraryDestinations.d.ts","sourceRoot":"","sources":["../../../src/lib/data/itineraryDestinations.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEjE,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAyBD,eAAO,MAAM,0BAA0B,2BACkG,CAAC;AAE1I,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAM,EAAO,EAAE,KAAK,SAAI,6BAQvF;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,sBAGtD"}
@@ -0,0 +1,32 @@
1
+ import { COUNTRIES } from "./countryStates";
2
+ const CURATED_CITIES = [
3
+ ["Delhi", "India", "🏛️"], ["Goa", "India", "🏖️"], ["Kochi", "India", "🌴"],
4
+ ["Munnar", "India", "🍃"], ["Bengaluru", "India", "🌇"], ["Mumbai", "India", "🌆"],
5
+ ["Jaipur", "India", "🏯"], ["Manali", "India", "🏔️"], ["Varanasi", "India", "🕌"],
6
+ ["Chennai", "India", "🌊"], ["Hyderabad", "India", "🍲"], ["Kolkata", "India", "🎭"],
7
+ ["Tokyo", "Japan", "🗼"], ["Kyoto", "Japan", "⛩️"], ["Bangkok", "Thailand", "🏯"],
8
+ ["Bali", "Indonesia", "🌺"], ["Singapore", "Singapore", "🦁"], ["Paris", "France", "🗼"],
9
+ ["London", "United Kingdom", "🎡"], ["Rome", "Italy", "🏛️"], ["Dubai", "United Arab Emirates", "🏙️"],
10
+ ["Sydney", "Australia", "🦘"], ["New York", "United States", "🗽"], ["Kathmandu", "Nepal", "⛰️"],
11
+ ];
12
+ const countryOptions = COUNTRIES.map((country) => ({
13
+ name: country.name, region: "Country", kind: "country", emoji: "🌍",
14
+ }));
15
+ const stateOptions = COUNTRIES.flatMap((country) => country.states.map((state) => ({ name: state, region: country.name, kind: "state", emoji: "📍" })));
16
+ const cityOptions = CURATED_CITIES.map(([name, region, emoji]) => ({
17
+ name, region, kind: "city", emoji,
18
+ }));
19
+ export const ITINERARY_LOCATION_OPTIONS = [...cityOptions, ...stateOptions, ...countryOptions]
20
+ .filter((item, index, all) => all.findIndex((candidate) => candidate.name === item.name && candidate.region === item.region) === index);
21
+ export function findItineraryLocations(query, excluded = [], limit = 8) {
22
+ const normalized = query.trim().toLocaleLowerCase();
23
+ if (!normalized)
24
+ return [];
25
+ const blocked = new Set(excluded.map((value) => value.toLocaleLowerCase()));
26
+ return ITINERARY_LOCATION_OPTIONS.filter((option) => !blocked.has(option.name.toLocaleLowerCase()) &&
27
+ (option.name.toLocaleLowerCase().includes(normalized) || option.region.toLocaleLowerCase().includes(normalized))).slice(0, limit);
28
+ }
29
+ export function canonicalItineraryLocation(name) {
30
+ const normalized = name.trim().toLocaleLowerCase();
31
+ return ITINERARY_LOCATION_OPTIONS.find((option) => option.name.toLocaleLowerCase() === normalized)?.name;
32
+ }
@@ -10,6 +10,8 @@ export interface ItinerarySummary {
10
10
  interests?: string[];
11
11
  totalEstimatedCost?: number;
12
12
  overview?: string;
13
+ route?: ItineraryRouteInput;
14
+ dateRecommendation?: ItineraryDateRecommendation;
13
15
  slug: string;
14
16
  viewCount?: number;
15
17
  companionPlanId?: string;
@@ -25,6 +27,47 @@ export interface ItinerarySummary {
25
27
  endDate?: string;
26
28
  }>;
27
29
  createdAt?: string;
30
+ status?: "draft" | "saved" | "booking_in_progress" | "booked";
31
+ activeOrderId?: string;
32
+ }
33
+ export interface ItineraryDateRecommendation {
34
+ startDate: string;
35
+ endDate: string;
36
+ reasonType: "inventory_availability" | "budget_fit" | "route_feasibility" | "relevant_event" | "seasonal_access";
37
+ reason: string;
38
+ }
39
+ export type ItineraryReturnMode = "origin" | "none" | "different";
40
+ export interface ItineraryRouteInput {
41
+ origin: string;
42
+ destinations: string[];
43
+ return: {
44
+ mode: ItineraryReturnMode;
45
+ location?: string;
46
+ };
47
+ }
48
+ export interface GenerateItineraryInput {
49
+ route: ItineraryRouteInput;
50
+ destination: string;
51
+ origin: string;
52
+ startDate: string;
53
+ endDate: string;
54
+ numberOfPeople: number;
55
+ budget: number;
56
+ interests: string[];
57
+ pace: "relaxed" | "balanced" | "packed";
58
+ includeOriginTravel: boolean;
59
+ budgetFlexibility: "strict" | "little";
60
+ flexibleDates: {
61
+ enabled: boolean;
62
+ marginDays: number;
63
+ preserveDuration: true;
64
+ };
65
+ specialRequirements?: string;
66
+ }
67
+ export interface ContextualDestinationSuggestion {
68
+ name: string;
69
+ region: string;
70
+ reason: string;
28
71
  }
29
72
  export type ItineraryItemCategory = "flight" | "stay" | "transfer" | "restaurant" | "activity" | "event" | "guide" | "rental" | "package";
30
73
  export type ItineraryFulfillmentMode = "direct" | "assisted" | "advisory";
@@ -33,6 +76,9 @@ export interface ItineraryQuote {
33
76
  base: number;
34
77
  taxes: number;
35
78
  trippeazeFee: number;
79
+ bufferAmount?: number;
80
+ estimated?: boolean;
81
+ estimateSource?: string;
36
82
  total: number;
37
83
  quotedAt: string;
38
84
  expiresAt: string;
@@ -42,9 +88,12 @@ export interface ItineraryCandidate {
42
88
  category: ItineraryItemCategory;
43
89
  title: string;
44
90
  description?: string;
91
+ relatedPick?: string;
45
92
  imageUrl?: string;
46
93
  location?: string;
47
94
  publicPath?: string;
95
+ sourceUrl?: string;
96
+ sourceName?: string;
48
97
  source: "trippeaze" | "external";
49
98
  fulfillmentMode: ItineraryFulfillmentMode;
50
99
  score: number;
@@ -67,12 +116,64 @@ export interface ItineraryItem {
67
116
  userLocked: boolean;
68
117
  requiredForCheckout: boolean;
69
118
  }
119
+ /** Planning suggestions booked directly with the source, never checkout items. */
120
+ export interface ItineraryRecommendation {
121
+ recommendationId: string;
122
+ day: number;
123
+ category: ItineraryItemCategory;
124
+ title: string;
125
+ description?: string;
126
+ location?: string;
127
+ sourceUrl: string;
128
+ sourceName: string;
129
+ linkKind: "listing" | "search";
130
+ price?: {
131
+ amount: number;
132
+ currency: "INR";
133
+ basis: "per_person" | "per_night" | "total";
134
+ kind: "quoted" | "estimated";
135
+ source: string;
136
+ expiresAt?: string;
137
+ };
138
+ priceStatus: "quoted" | "estimated" | "unavailable";
139
+ alternatives?: ItineraryRecommendation[];
140
+ }
70
141
  export interface ItineraryV3 extends ItinerarySummary {
71
142
  schemaVersion: 3;
72
143
  revision: number;
73
144
  origin?: string;
145
+ route?: ItineraryRouteInput;
74
146
  status: "draft" | "saved" | "booking_in_progress" | "booked";
147
+ days?: Array<{
148
+ day: number;
149
+ date?: string;
150
+ title?: string;
151
+ location?: string;
152
+ activities?: Array<{
153
+ time?: string;
154
+ title?: string;
155
+ description?: string;
156
+ relatedPick?: string;
157
+ category?: string;
158
+ location?: string;
159
+ }>;
160
+ transport?: {
161
+ mode?: string;
162
+ from?: string;
163
+ to?: string;
164
+ notes?: string;
165
+ };
166
+ accommodation?: {
167
+ name?: string;
168
+ location?: string;
169
+ };
170
+ }>;
75
171
  items: ItineraryItem[];
172
+ recommendations?: ItineraryRecommendation[];
173
+ refinementHistory?: Array<{
174
+ message: string;
175
+ createdAt: string;
176
+ }>;
76
177
  activeOrderId?: string;
77
178
  }
78
179
  export type ItineraryOrderStatus = "awaiting_payment" | "fulfillment_in_progress" | "partially_confirmed" | "confirmed" | "needs_attention" | "cancellation_pending" | "cancelled" | "refund_pending" | "refunded";
@@ -89,6 +190,9 @@ export interface ItineraryOrderItem {
89
190
  supplierAmount: number;
90
191
  taxes: number;
91
192
  serviceFee: number;
193
+ bufferAmount?: number;
194
+ estimated?: boolean;
195
+ estimateSource?: string;
92
196
  capturedAllocation: number;
93
197
  finalAmount?: number;
94
198
  };
@@ -117,14 +221,20 @@ export interface ItineraryReplacementResult extends ItineraryOrder {
117
221
  export interface AssistedFulfillmentItem {
118
222
  _id: string;
119
223
  orderId: string;
224
+ itineraryId?: string;
120
225
  title: string;
121
226
  category: string;
122
227
  supplierSource?: string;
123
228
  supplierReference?: string;
229
+ pricingSource?: string;
230
+ pricingConfidence?: number;
231
+ confidence?: number;
124
232
  fulfillmentMode: "assisted" | "direct";
125
233
  status: string;
126
234
  fulfillmentDeadline?: string;
127
235
  assignedStaffId?: string;
236
+ scheduledFor?: string;
237
+ startTime?: string;
128
238
  travellerRequirements?: {
129
239
  numberOfPeople?: number;
130
240
  contactDetails?: {
@@ -137,6 +247,9 @@ export interface AssistedFulfillmentItem {
137
247
  supplierAmount: number;
138
248
  taxes: number;
139
249
  serviceFee: number;
250
+ bufferAmount?: number;
251
+ estimated?: boolean;
252
+ estimateSource?: string;
140
253
  capturedAllocation: number;
141
254
  finalAmount?: number;
142
255
  };
@@ -1 +1 @@
1
- {"version":3,"file":"itinerary.d.ts","sourceRoot":"","sources":["../../../src/lib/models/itinerary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"itinerary.d.ts","sourceRoot":"","sources":["../../../src/lib/models/itinerary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { ItineraryItem, ItineraryRecommendation, ItineraryV3 } from "../models/itinerary";
2
+ type ItineraryDay = NonNullable<ItineraryV3["days"]>[number];
3
+ export declare function placeDayBookings(day: ItineraryDay, items: readonly ItineraryItem[], city: string): {
4
+ activityItems: Map<number, ItineraryItem[]>;
5
+ accommodationItems: ItineraryItem[];
6
+ logisticsItems: ItineraryItem[];
7
+ fallbackGroups: {
8
+ items: ItineraryItem[];
9
+ key: string;
10
+ title: string;
11
+ }[];
12
+ };
13
+ export declare function placeDayRecommendations(day: ItineraryDay, recommendations: readonly ItineraryRecommendation[], city: string): {
14
+ activityItems: Map<number, ItineraryRecommendation[]>;
15
+ accommodationItems: ItineraryRecommendation[];
16
+ logisticsItems: ItineraryRecommendation[];
17
+ fallbackGroups: {
18
+ items: ItineraryRecommendation[];
19
+ key: string;
20
+ title: string;
21
+ }[];
22
+ };
23
+ export {};
24
+ //# sourceMappingURL=itineraryPlacement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"itineraryPlacement.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/itineraryPlacement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE/F,KAAK,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAwH7D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM;;;;;;;;;EAEhG;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,uBAAuB,EAAE,EAAE,IAAI,EAAE,MAAM;;;;;;;;;EAE3H"}
@@ -0,0 +1,118 @@
1
+ const logisticsCategories = new Set(["flight", "transfer", "rental", "package"]);
2
+ function normalize(value) {
3
+ return (value || "").normalize("NFKD").replace(/[\u0300-\u036f]/g, "").toLowerCase().replace(/[^a-z0-9]+/g, " ").trim();
4
+ }
5
+ function startTime(value) {
6
+ const match = /^\s*([01]?\d|2[0-3]):([0-5]\d)\b/.exec(value || "");
7
+ return match?.[1] && match[2] ? `${match[1].padStart(2, "0")}:${match[2]}` : "";
8
+ }
9
+ function compatible(activity, category) {
10
+ if (!activity.category)
11
+ return true; // Older saved narratives have no category.
12
+ const categories = {
13
+ stay: ["logistics", "stay", "accommodation"],
14
+ restaurant: ["dining", "food", "restaurant"],
15
+ activity: ["adventure", "experience", "activity", "sightseeing", "attraction"],
16
+ event: ["experience", "activity", "event"],
17
+ guide: ["sightseeing", "attraction", "adventure", "experience", "activity", "guide"],
18
+ };
19
+ return categories[category]?.includes(activity.category) || false;
20
+ }
21
+ function matchesVenue(activity, item, city) {
22
+ const candidateName = normalize(item.title);
23
+ if (!candidateName || !compatible(activity, item.category))
24
+ return false;
25
+ const title = normalize(activity.title);
26
+ const withoutPrefix = item.category === "stay"
27
+ ? title.replace(/^(?:accommodation )?check in(?: at| into)?\s+/, "")
28
+ : item.category === "restaurant"
29
+ ? title.replace(/^(?:breakfast|brunch|lunch|dinner|dining)(?: at)?\s+/, "")
30
+ : title;
31
+ const unnamedStop = !title || title === normalize(city) || isGeneric(activity, item.category, city);
32
+ return candidateName === title || candidateName === withoutPrefix || (unnamedStop && candidateName === normalize(activity.location));
33
+ }
34
+ function isGeneric(activity, category, city) {
35
+ const title = normalize(activity.title);
36
+ const place = normalize(city);
37
+ const labels = category === "stay"
38
+ ? ["accommodation", "accommodation check in", "hotel check in", "check in", "settle in"]
39
+ : category === "restaurant"
40
+ ? ["breakfast", "brunch", "lunch", "dinner", "dining"]
41
+ : category === "event"
42
+ ? ["event", "local event", "evening event"]
43
+ : category === "guide"
44
+ ? ["guided walk", "guided tour", "sightseeing"]
45
+ : ["activity", "local activity", "adventure activity", "local experience"];
46
+ return labels.some((label) => title === label || (place && title === `${label} in ${place}`))
47
+ || (category === "stay" && ["check in at your hotel", "check in at your stay", "check in at accommodation"].includes(title));
48
+ }
49
+ /** Presentation only: every supplied booking stays intact and is placed once.
50
+ * A matching clock alone never links two different named venues.
51
+ */
52
+ function placeDayEntries(day, items, city) {
53
+ const activities = day.activities || [];
54
+ const activityItems = new Map();
55
+ const accommodationItems = [];
56
+ const logisticsItems = [];
57
+ const unmatched = [];
58
+ const hasCheckIn = activities.some((activity) => compatible(activity, "stay")
59
+ && /accommodation|check.?in|hotel|stay/i.test(activity.title || ""));
60
+ const stayCount = items.filter((item) => item.category === "stay").length;
61
+ for (const item of items) {
62
+ if (logisticsCategories.has(item.category)) {
63
+ logisticsItems.push(item);
64
+ continue;
65
+ }
66
+ const exact = activities.flatMap((activity, index) => matchesVenue(activity, item, city) ? [index] : []);
67
+ const timedExact = exact.filter((index) => startTime(activities[index]?.time) && startTime(activities[index]?.time) === startTime(item.startTime));
68
+ let target = exact.length === 1 ? exact[0] : timedExact.length === 1 ? timedExact[0] : undefined;
69
+ if (target === undefined && exact.length === 0) {
70
+ const generic = activities.flatMap((activity, index) => {
71
+ if (!activity.category || !compatible(activity, item.category) || !isGeneric(activity, item.category, city))
72
+ return [];
73
+ if (item.category === "stay")
74
+ return stayCount === 1 ? [index] : [];
75
+ if (!item.startTime)
76
+ return items.filter((other) => other.category === item.category).length === 1 ? [index] : [];
77
+ if (!startTime(item.startTime) || startTime(activity.time) !== startTime(item.startTime))
78
+ return [];
79
+ const competing = items.filter((other) => other.category === item.category && startTime(other.startTime) === startTime(item.startTime));
80
+ return competing.length === 1 ? [index] : [];
81
+ });
82
+ if (generic.length === 1)
83
+ target = generic[0];
84
+ }
85
+ if (target !== undefined) {
86
+ activityItems.set(target, [...(activityItems.get(target) || []), item]);
87
+ }
88
+ else if (item.category === "stay" && !hasCheckIn && day.accommodation?.name
89
+ && ((normalize(item.title) && normalize(day.accommodation.name) === normalize(item.title))
90
+ || (stayCount === 1 && isGeneric({ title: day.accommodation.name }, "stay", city)))) {
91
+ accommodationItems.push(item);
92
+ }
93
+ else {
94
+ unmatched.push(item);
95
+ }
96
+ }
97
+ const fallbackGroups = [
98
+ { key: "accommodation", title: city ? `Accommodation in ${city}` : "Accommodation", categories: ["stay"] },
99
+ { key: "dining", title: "Dining", categories: ["restaurant"] },
100
+ { key: "activities", title: "Activities and events", categories: ["activity", "event", "guide"] },
101
+ ].map(({ key, title, categories }) => ({ key, title, items: unmatched.filter((item) => categories.includes(item.category)) }))
102
+ .filter((group) => group.items.length);
103
+ return { activityItems, accommodationItems, logisticsItems, fallbackGroups };
104
+ }
105
+ function unwrapPlacement(placement) {
106
+ return {
107
+ activityItems: new Map(Array.from(placement.activityItems.entries()).map(([index, entries]) => [index, entries.map((entry) => entry.value)])),
108
+ accommodationItems: placement.accommodationItems.map((entry) => entry.value),
109
+ logisticsItems: placement.logisticsItems.map((entry) => entry.value),
110
+ fallbackGroups: placement.fallbackGroups.map((group) => ({ ...group, items: group.items.map((entry) => entry.value) })),
111
+ };
112
+ }
113
+ export function placeDayBookings(day, items, city) {
114
+ return unwrapPlacement(placeDayEntries(day, items.map((value) => ({ value, category: value.category, title: value.selectedCandidate?.title || "", startTime: value.startTime })), city));
115
+ }
116
+ export function placeDayRecommendations(day, recommendations, city) {
117
+ return unwrapPlacement(placeDayEntries(day, recommendations.map((value) => ({ value, category: value.category, title: value.title })), city));
118
+ }
@@ -0,0 +1,7 @@
1
+ import type { ItineraryRouteInput } from "../models/itinerary";
2
+ export declare function formatPlannerDate(date: Date | null): string;
3
+ export declare function getItineraryRouteSummary(route: ItineraryRouteInput): {
4
+ locations: string[];
5
+ timelineEnd: string;
6
+ };
7
+ //# sourceMappingURL=itineraryPlanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"itineraryPlanner.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/itineraryPlanner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM,CAM3D;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,mBAAmB;;;EAUlE"}
@@ -0,0 +1,19 @@
1
+ export function formatPlannerDate(date) {
2
+ if (!date)
3
+ return "";
4
+ const year = date.getFullYear();
5
+ const month = String(date.getMonth() + 1).padStart(2, "0");
6
+ const day = String(date.getDate()).padStart(2, "0");
7
+ return `${year}-${month}-${day}`;
8
+ }
9
+ export function getItineraryRouteSummary(route) {
10
+ const stops = [route.origin, ...route.destinations].filter(Boolean);
11
+ const lastDestination = route.destinations.at(-1) || route.origin;
12
+ if (route.return.mode === "origin") {
13
+ return { locations: [...stops, route.origin], timelineEnd: `Returns to ${route.origin}` };
14
+ }
15
+ if (route.return.mode === "different" && route.return.location) {
16
+ return { locations: [...stops, route.return.location], timelineEnd: `Ends in ${route.return.location}` };
17
+ }
18
+ return { locations: stops, timelineEnd: `Ends here in ${lastDestination}` };
19
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@myrjfa/state",
3
- "version": "3.0.5",
3
+ "version": "3.0.6",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./dist/*": "./dist/*.js"