travel-mcp 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/data/budgets.d.ts +26 -0
- package/dist/data/budgets.d.ts.map +1 -0
- package/dist/data/budgets.js +234 -0
- package/dist/data/budgets.js.map +1 -0
- package/dist/data/cities.d.ts +21 -0
- package/dist/data/cities.d.ts.map +1 -0
- package/dist/data/cities.js +232 -0
- package/dist/data/cities.js.map +1 -0
- package/dist/data/currencies.d.ts +9 -0
- package/dist/data/currencies.d.ts.map +1 -0
- package/dist/data/currencies.js +132 -0
- package/dist/data/currencies.js.map +1 -0
- package/dist/data/packing.d.ts +23 -0
- package/dist/data/packing.d.ts.map +1 -0
- package/dist/data/packing.js +218 -0
- package/dist/data/packing.js.map +1 -0
- package/dist/data/timezones.d.ts +12 -0
- package/dist/data/timezones.d.ts.map +1 -0
- package/dist/data/timezones.js +54 -0
- package/dist/data/timezones.js.map +1 -0
- package/dist/data/visas.d.ts +25 -0
- package/dist/data/visas.d.ts.map +1 -0
- package/dist/data/visas.js +85 -0
- package/dist/data/visas.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +225 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/advise-jet-lag.d.ts +31 -0
- package/dist/tools/advise-jet-lag.d.ts.map +1 -0
- package/dist/tools/advise-jet-lag.js +154 -0
- package/dist/tools/advise-jet-lag.js.map +1 -0
- package/dist/tools/build-itinerary.d.ts +30 -0
- package/dist/tools/build-itinerary.d.ts.map +1 -0
- package/dist/tools/build-itinerary.js +67 -0
- package/dist/tools/build-itinerary.js.map +1 -0
- package/dist/tools/calculate-travel-budget.d.ts +35 -0
- package/dist/tools/calculate-travel-budget.d.ts.map +1 -0
- package/dist/tools/calculate-travel-budget.js +70 -0
- package/dist/tools/calculate-travel-budget.js.map +1 -0
- package/dist/tools/check-visa-requirements.d.ts +23 -0
- package/dist/tools/check-visa-requirements.d.ts.map +1 -0
- package/dist/tools/check-visa-requirements.js +97 -0
- package/dist/tools/check-visa-requirements.js.map +1 -0
- package/dist/tools/compare-timezones.d.ts +27 -0
- package/dist/tools/compare-timezones.d.ts.map +1 -0
- package/dist/tools/compare-timezones.js +127 -0
- package/dist/tools/compare-timezones.js.map +1 -0
- package/dist/tools/convert-currency.d.ts +20 -0
- package/dist/tools/convert-currency.d.ts.map +1 -0
- package/dist/tools/convert-currency.js +38 -0
- package/dist/tools/convert-currency.js.map +1 -0
- package/dist/tools/generate-packing-list.d.ts +28 -0
- package/dist/tools/generate-packing-list.d.ts.map +1 -0
- package/dist/tools/generate-packing-list.js +118 -0
- package/dist/tools/generate-packing-list.js.map +1 -0
- package/package.json +58 -0
- package/server.json +20 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hardcoded daily budget estimates per country and travel style (USD).
|
|
3
|
+
* Sources: various travel blogs, Numbeo averages — approximate only.
|
|
4
|
+
*/
|
|
5
|
+
export interface DailyBudget {
|
|
6
|
+
hotel: number;
|
|
7
|
+
food: number;
|
|
8
|
+
transport: number;
|
|
9
|
+
activities: number;
|
|
10
|
+
flights_roundtrip: number;
|
|
11
|
+
}
|
|
12
|
+
export interface CountryBudgets {
|
|
13
|
+
budget: DailyBudget;
|
|
14
|
+
midRange: DailyBudget;
|
|
15
|
+
luxury: DailyBudget;
|
|
16
|
+
currency: string;
|
|
17
|
+
peakMonths: number[];
|
|
18
|
+
offPeakDiscount: number;
|
|
19
|
+
tips: string[];
|
|
20
|
+
}
|
|
21
|
+
export declare const COUNTRY_BUDGETS: Record<string, CountryBudgets>;
|
|
22
|
+
/**
|
|
23
|
+
* Fallback for countries not in the database.
|
|
24
|
+
*/
|
|
25
|
+
export declare const DEFAULT_BUDGETS: CountryBudgets;
|
|
26
|
+
//# sourceMappingURL=budgets.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budgets.d.ts","sourceRoot":"","sources":["../../src/data/budgets.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;IACtB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAmN1D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,cAa7B,CAAC"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hardcoded daily budget estimates per country and travel style (USD).
|
|
3
|
+
* Sources: various travel blogs, Numbeo averages — approximate only.
|
|
4
|
+
*/
|
|
5
|
+
export const COUNTRY_BUDGETS = {
|
|
6
|
+
FR: {
|
|
7
|
+
budget: { hotel: 40, food: 25, transport: 10, activities: 10, flights_roundtrip: 400 },
|
|
8
|
+
midRange: { hotel: 120, food: 55, transport: 20, activities: 30, flights_roundtrip: 700 },
|
|
9
|
+
luxury: { hotel: 350, food: 120, transport: 60, activities: 80, flights_roundtrip: 2500 },
|
|
10
|
+
currency: "EUR",
|
|
11
|
+
peakMonths: [6, 7, 8],
|
|
12
|
+
offPeakDiscount: 0.2,
|
|
13
|
+
tips: [
|
|
14
|
+
"Eat at boulangeries for cheap lunches",
|
|
15
|
+
"Use BlaBlaCar for inter-city travel",
|
|
16
|
+
"Many museums are free on the first Sunday of the month",
|
|
17
|
+
"Get a Navigo pass in Paris for unlimited metro/bus",
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
JP: {
|
|
21
|
+
budget: { hotel: 35, food: 20, transport: 15, activities: 10, flights_roundtrip: 800 },
|
|
22
|
+
midRange: { hotel: 100, food: 50, transport: 30, activities: 25, flights_roundtrip: 1200 },
|
|
23
|
+
luxury: { hotel: 400, food: 150, transport: 80, activities: 60, flights_roundtrip: 4000 },
|
|
24
|
+
currency: "JPY",
|
|
25
|
+
peakMonths: [3, 4, 10, 11],
|
|
26
|
+
offPeakDiscount: 0.15,
|
|
27
|
+
tips: [
|
|
28
|
+
"Get a Japan Rail Pass for long-distance travel",
|
|
29
|
+
"Convenience stores (konbini) have excellent cheap meals",
|
|
30
|
+
"Visit temples early morning to avoid crowds",
|
|
31
|
+
"Capsule hotels are a budget-friendly unique experience",
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
US: {
|
|
35
|
+
budget: { hotel: 60, food: 30, transport: 15, activities: 15, flights_roundtrip: 500 },
|
|
36
|
+
midRange: { hotel: 150, food: 60, transport: 30, activities: 40, flights_roundtrip: 900 },
|
|
37
|
+
luxury: { hotel: 400, food: 150, transport: 80, activities: 100, flights_roundtrip: 3000 },
|
|
38
|
+
currency: "USD",
|
|
39
|
+
peakMonths: [6, 7, 8, 12],
|
|
40
|
+
offPeakDiscount: 0.15,
|
|
41
|
+
tips: [
|
|
42
|
+
"Book accommodation outside city centers for big savings",
|
|
43
|
+
"National Park annual pass ($80) covers all parks",
|
|
44
|
+
"Many cities have free walking tours",
|
|
45
|
+
"Use Amtrak or Greyhound for budget inter-city travel",
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
TH: {
|
|
49
|
+
budget: { hotel: 15, food: 8, transport: 5, activities: 5, flights_roundtrip: 600 },
|
|
50
|
+
midRange: { hotel: 50, food: 25, transport: 12, activities: 15, flights_roundtrip: 900 },
|
|
51
|
+
luxury: { hotel: 200, food: 70, transport: 40, activities: 50, flights_roundtrip: 3000 },
|
|
52
|
+
currency: "THB",
|
|
53
|
+
peakMonths: [11, 12, 1, 2, 3],
|
|
54
|
+
offPeakDiscount: 0.25,
|
|
55
|
+
tips: [
|
|
56
|
+
"Street food is delicious and incredibly cheap",
|
|
57
|
+
"Take overnight buses or trains to save on hotels",
|
|
58
|
+
"Negotiate prices at markets (except 7-Eleven)",
|
|
59
|
+
"Islands are pricier — mainland is much cheaper",
|
|
60
|
+
],
|
|
61
|
+
},
|
|
62
|
+
MX: {
|
|
63
|
+
budget: { hotel: 20, food: 12, transport: 6, activities: 5, flights_roundtrip: 400 },
|
|
64
|
+
midRange: { hotel: 70, food: 30, transport: 15, activities: 20, flights_roundtrip: 600 },
|
|
65
|
+
luxury: { hotel: 250, food: 80, transport: 40, activities: 50, flights_roundtrip: 2000 },
|
|
66
|
+
currency: "MXN",
|
|
67
|
+
peakMonths: [12, 1, 2, 3, 7],
|
|
68
|
+
offPeakDiscount: 0.2,
|
|
69
|
+
tips: [
|
|
70
|
+
"Eat at fondas (local eateries) for affordable meals",
|
|
71
|
+
"ADO buses are comfortable and affordable for long distances",
|
|
72
|
+
"Many archaeological sites have free entry on Sundays for residents",
|
|
73
|
+
"Book directly with hotels for better rates than online platforms",
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
IT: {
|
|
77
|
+
budget: { hotel: 45, food: 25, transport: 10, activities: 10, flights_roundtrip: 450 },
|
|
78
|
+
midRange: { hotel: 130, food: 55, transport: 25, activities: 30, flights_roundtrip: 750 },
|
|
79
|
+
luxury: { hotel: 400, food: 130, transport: 60, activities: 80, flights_roundtrip: 2800 },
|
|
80
|
+
currency: "EUR",
|
|
81
|
+
peakMonths: [6, 7, 8],
|
|
82
|
+
offPeakDiscount: 0.2,
|
|
83
|
+
tips: [
|
|
84
|
+
"Drink coffee at the bar (standing) — much cheaper than sitting",
|
|
85
|
+
"Aperitivo buffets are a great way to eat cheaply in the evening",
|
|
86
|
+
"Use Flixbus or Italo trains for budget inter-city travel",
|
|
87
|
+
"Book Vatican and Uffizi tickets well in advance",
|
|
88
|
+
],
|
|
89
|
+
},
|
|
90
|
+
GB: {
|
|
91
|
+
budget: { hotel: 50, food: 30, transport: 12, activities: 12, flights_roundtrip: 450 },
|
|
92
|
+
midRange: { hotel: 140, food: 60, transport: 25, activities: 35, flights_roundtrip: 800 },
|
|
93
|
+
luxury: { hotel: 400, food: 150, transport: 70, activities: 90, flights_roundtrip: 3000 },
|
|
94
|
+
currency: "GBP",
|
|
95
|
+
peakMonths: [6, 7, 8],
|
|
96
|
+
offPeakDiscount: 0.15,
|
|
97
|
+
tips: [
|
|
98
|
+
"Many top museums in London are free (British Museum, Tate, etc.)",
|
|
99
|
+
"Get an Oyster card or use contactless for London transport",
|
|
100
|
+
"Supermarket meal deals are great value (around 3-4 GBP)",
|
|
101
|
+
"Book trains in advance for massive savings",
|
|
102
|
+
],
|
|
103
|
+
},
|
|
104
|
+
AU: {
|
|
105
|
+
budget: { hotel: 40, food: 25, transport: 12, activities: 10, flights_roundtrip: 900 },
|
|
106
|
+
midRange: { hotel: 120, food: 55, transport: 25, activities: 30, flights_roundtrip: 1400 },
|
|
107
|
+
luxury: { hotel: 350, food: 120, transport: 60, activities: 70, flights_roundtrip: 4500 },
|
|
108
|
+
currency: "AUD",
|
|
109
|
+
peakMonths: [12, 1, 2],
|
|
110
|
+
offPeakDiscount: 0.15,
|
|
111
|
+
tips: [
|
|
112
|
+
"Cook at hostels — eating out is expensive",
|
|
113
|
+
"Get a Greyhound bus pass for budget travel",
|
|
114
|
+
"Free BBQ stations are available in many parks",
|
|
115
|
+
"Visit during shoulder season (Mar-May, Sep-Nov) for best prices",
|
|
116
|
+
],
|
|
117
|
+
},
|
|
118
|
+
BR: {
|
|
119
|
+
budget: { hotel: 20, food: 12, transport: 5, activities: 5, flights_roundtrip: 700 },
|
|
120
|
+
midRange: { hotel: 60, food: 30, transport: 12, activities: 20, flights_roundtrip: 1000 },
|
|
121
|
+
luxury: { hotel: 200, food: 80, transport: 35, activities: 50, flights_roundtrip: 3500 },
|
|
122
|
+
currency: "BRL",
|
|
123
|
+
peakMonths: [12, 1, 2, 7],
|
|
124
|
+
offPeakDiscount: 0.2,
|
|
125
|
+
tips: [
|
|
126
|
+
"Prato feito (PF) is a full meal for very little money",
|
|
127
|
+
"Use apps like 99 (ride-sharing) — cheaper than taxis",
|
|
128
|
+
"Carnival season (Feb/Mar) is peak — book months ahead",
|
|
129
|
+
"Beaches are free — bring your own chair and snacks",
|
|
130
|
+
],
|
|
131
|
+
},
|
|
132
|
+
IN: {
|
|
133
|
+
budget: { hotel: 10, food: 5, transport: 3, activities: 3, flights_roundtrip: 600 },
|
|
134
|
+
midRange: { hotel: 40, food: 15, transport: 8, activities: 10, flights_roundtrip: 900 },
|
|
135
|
+
luxury: { hotel: 200, food: 50, transport: 30, activities: 40, flights_roundtrip: 3000 },
|
|
136
|
+
currency: "INR",
|
|
137
|
+
peakMonths: [10, 11, 12, 1, 2, 3],
|
|
138
|
+
offPeakDiscount: 0.2,
|
|
139
|
+
tips: [
|
|
140
|
+
"Street food is a must — try dosa, chaat, and thali",
|
|
141
|
+
"Trains are incredibly affordable — book on IRCTC",
|
|
142
|
+
"Many temples and historical sites have very low entry fees",
|
|
143
|
+
"Avoid summer months (Apr-Jun) — extreme heat in most regions",
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
DE: {
|
|
147
|
+
budget: { hotel: 40, food: 20, transport: 10, activities: 10, flights_roundtrip: 400 },
|
|
148
|
+
midRange: { hotel: 110, food: 45, transport: 20, activities: 25, flights_roundtrip: 700 },
|
|
149
|
+
luxury: { hotel: 300, food: 110, transport: 50, activities: 60, flights_roundtrip: 2500 },
|
|
150
|
+
currency: "EUR",
|
|
151
|
+
peakMonths: [6, 7, 8, 12],
|
|
152
|
+
offPeakDiscount: 0.15,
|
|
153
|
+
tips: [
|
|
154
|
+
"Deutschland-Ticket (49 EUR/month) covers all regional transport",
|
|
155
|
+
"Bakeries are great for cheap breakfasts",
|
|
156
|
+
"Many cities have free walking tours (tip-based)",
|
|
157
|
+
"Christmas markets (Nov-Dec) are a highlight but cities get pricier",
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
ES: {
|
|
161
|
+
budget: { hotel: 35, food: 20, transport: 8, activities: 8, flights_roundtrip: 400 },
|
|
162
|
+
midRange: { hotel: 100, food: 45, transport: 18, activities: 25, flights_roundtrip: 700 },
|
|
163
|
+
luxury: { hotel: 300, food: 100, transport: 50, activities: 60, flights_roundtrip: 2500 },
|
|
164
|
+
currency: "EUR",
|
|
165
|
+
peakMonths: [6, 7, 8],
|
|
166
|
+
offPeakDiscount: 0.2,
|
|
167
|
+
tips: [
|
|
168
|
+
"Menu del dia (lunch menu) is excellent value — 10-15 EUR for 3 courses",
|
|
169
|
+
"Tapas portions can be a meal — especially in Granada (free with drinks)",
|
|
170
|
+
"Renfe trains have great early-bird fares",
|
|
171
|
+
"Visit in shoulder season (May, Sep-Oct) for best weather and prices",
|
|
172
|
+
],
|
|
173
|
+
},
|
|
174
|
+
EG: {
|
|
175
|
+
budget: { hotel: 15, food: 8, transport: 4, activities: 8, flights_roundtrip: 500 },
|
|
176
|
+
midRange: { hotel: 50, food: 20, transport: 10, activities: 20, flights_roundtrip: 800 },
|
|
177
|
+
luxury: { hotel: 200, food: 60, transport: 30, activities: 50, flights_roundtrip: 2500 },
|
|
178
|
+
currency: "EGP",
|
|
179
|
+
peakMonths: [10, 11, 12, 1, 2, 3],
|
|
180
|
+
offPeakDiscount: 0.25,
|
|
181
|
+
tips: [
|
|
182
|
+
"Negotiate prices for taxis and souvenirs — it's expected",
|
|
183
|
+
"Koshari is a delicious and very cheap local dish",
|
|
184
|
+
"Visit the Pyramids early morning to beat the crowds and heat",
|
|
185
|
+
"A Nile cruise can be surprisingly affordable in low season",
|
|
186
|
+
],
|
|
187
|
+
},
|
|
188
|
+
MA: {
|
|
189
|
+
budget: { hotel: 15, food: 8, transport: 4, activities: 5, flights_roundtrip: 400 },
|
|
190
|
+
midRange: { hotel: 50, food: 20, transport: 10, activities: 15, flights_roundtrip: 650 },
|
|
191
|
+
luxury: { hotel: 200, food: 60, transport: 30, activities: 40, flights_roundtrip: 2000 },
|
|
192
|
+
currency: "MAD",
|
|
193
|
+
peakMonths: [3, 4, 10, 11],
|
|
194
|
+
offPeakDiscount: 0.2,
|
|
195
|
+
tips: [
|
|
196
|
+
"Stay in riads for an authentic and affordable experience",
|
|
197
|
+
"Eat at market stalls (jemaa el-fna) — cheap and delicious",
|
|
198
|
+
"Grand taxis are shared and very affordable between cities",
|
|
199
|
+
"Always negotiate at souks — start at 1/3 of the asking price",
|
|
200
|
+
],
|
|
201
|
+
},
|
|
202
|
+
GR: {
|
|
203
|
+
budget: { hotel: 30, food: 15, transport: 8, activities: 8, flights_roundtrip: 450 },
|
|
204
|
+
midRange: { hotel: 90, food: 35, transport: 18, activities: 20, flights_roundtrip: 700 },
|
|
205
|
+
luxury: { hotel: 300, food: 90, transport: 50, activities: 50, flights_roundtrip: 2500 },
|
|
206
|
+
currency: "EUR",
|
|
207
|
+
peakMonths: [7, 8],
|
|
208
|
+
offPeakDiscount: 0.25,
|
|
209
|
+
tips: [
|
|
210
|
+
"Island-hop by ferry — book early for best fares",
|
|
211
|
+
"Gyros and souvlaki are cheap and filling street food",
|
|
212
|
+
"Visit lesser-known islands for better prices and fewer crowds",
|
|
213
|
+
"Shoulder season (May-Jun, Sep-Oct) has great weather and prices",
|
|
214
|
+
],
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
/**
|
|
218
|
+
* Fallback for countries not in the database.
|
|
219
|
+
*/
|
|
220
|
+
export const DEFAULT_BUDGETS = {
|
|
221
|
+
budget: { hotel: 30, food: 15, transport: 8, activities: 8, flights_roundtrip: 600 },
|
|
222
|
+
midRange: { hotel: 100, food: 40, transport: 20, activities: 25, flights_roundtrip: 1000 },
|
|
223
|
+
luxury: { hotel: 300, food: 100, transport: 50, activities: 60, flights_roundtrip: 3000 },
|
|
224
|
+
currency: "USD",
|
|
225
|
+
peakMonths: [6, 7, 8],
|
|
226
|
+
offPeakDiscount: 0.15,
|
|
227
|
+
tips: [
|
|
228
|
+
"Research local transportation passes for savings",
|
|
229
|
+
"Eat where locals eat — avoid tourist-trap restaurants",
|
|
230
|
+
"Book accommodation and flights early for better rates",
|
|
231
|
+
"Travel during shoulder season for the best balance of weather and price",
|
|
232
|
+
],
|
|
233
|
+
};
|
|
234
|
+
//# sourceMappingURL=budgets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"budgets.js","sourceRoot":"","sources":["../../src/data/budgets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* City itinerary data — activities by interest category.
|
|
3
|
+
*/
|
|
4
|
+
export interface Activity {
|
|
5
|
+
name: string;
|
|
6
|
+
duration_hours: number;
|
|
7
|
+
category: string;
|
|
8
|
+
description: string;
|
|
9
|
+
}
|
|
10
|
+
export interface CityData {
|
|
11
|
+
country: string;
|
|
12
|
+
timezone: string;
|
|
13
|
+
activities: Activity[];
|
|
14
|
+
transport_tips: string[];
|
|
15
|
+
}
|
|
16
|
+
export declare const CITY_DATA: Record<string, CityData>;
|
|
17
|
+
/**
|
|
18
|
+
* Fallback for cities not in the database.
|
|
19
|
+
*/
|
|
20
|
+
export declare const DEFAULT_CITY: CityData;
|
|
21
|
+
//# sourceMappingURL=cities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cities.d.ts","sourceRoot":"","sources":["../../src/data/cities.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CA6M9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAkB1B,CAAC"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* City itinerary data — activities by interest category.
|
|
3
|
+
*/
|
|
4
|
+
export const CITY_DATA = {
|
|
5
|
+
paris: {
|
|
6
|
+
country: "FR",
|
|
7
|
+
timezone: "Europe/Paris",
|
|
8
|
+
activities: [
|
|
9
|
+
{ name: "Eiffel Tower", duration_hours: 2, category: "culture", description: "Iconic iron tower with panoramic views" },
|
|
10
|
+
{ name: "Louvre Museum", duration_hours: 3, category: "culture", description: "World's largest art museum" },
|
|
11
|
+
{ name: "Montmartre walk", duration_hours: 2, category: "culture", description: "Artistic hilltop neighborhood with Sacre-Coeur" },
|
|
12
|
+
{ name: "Seine river cruise", duration_hours: 1.5, category: "culture", description: "Scenic boat ride along the Seine" },
|
|
13
|
+
{ name: "Le Marais food tour", duration_hours: 3, category: "food", description: "Explore bakeries, fromageries, and local bistros" },
|
|
14
|
+
{ name: "Wine tasting in Saint-Germain", duration_hours: 2, category: "food", description: "Sample French wines with expert commentary" },
|
|
15
|
+
{ name: "Rue Mouffetard market", duration_hours: 1.5, category: "food", description: "One of Paris' oldest market streets" },
|
|
16
|
+
{ name: "Luxembourg Gardens", duration_hours: 1.5, category: "nature", description: "Beautiful park with ponds, statues, and orchards" },
|
|
17
|
+
{ name: "Bois de Boulogne", duration_hours: 2, category: "nature", description: "Large park with lakes and gardens" },
|
|
18
|
+
{ name: "Moulin Rouge area", duration_hours: 3, category: "nightlife", description: "Iconic cabaret and vibrant nightlife district" },
|
|
19
|
+
{ name: "Oberkampf bar crawl", duration_hours: 3, category: "nightlife", description: "Trendy bars and live music venues" },
|
|
20
|
+
{ name: "Galeries Lafayette", duration_hours: 2, category: "shopping", description: "Grand department store with stunning architecture" },
|
|
21
|
+
{ name: "Champs-Elysees shopping", duration_hours: 2, category: "shopping", description: "Famous avenue with luxury and high-street shops" },
|
|
22
|
+
{ name: "Saint-Ouen flea market", duration_hours: 2, category: "shopping", description: "Europe's largest antiques market" },
|
|
23
|
+
{ name: "Climbing at Fontainebleau", duration_hours: 4, category: "adventure", description: "World-class bouldering in a nearby forest (day trip)" },
|
|
24
|
+
],
|
|
25
|
+
transport_tips: [
|
|
26
|
+
"Metro is the fastest way around — buy a carnet of 10 tickets or use Navigo",
|
|
27
|
+
"Walk between nearby attractions — Paris is very walkable",
|
|
28
|
+
"Velib bike sharing is great for crossing the city",
|
|
29
|
+
"RER B connects to CDG airport (~50 min)",
|
|
30
|
+
],
|
|
31
|
+
},
|
|
32
|
+
tokyo: {
|
|
33
|
+
country: "JP",
|
|
34
|
+
timezone: "Asia/Tokyo",
|
|
35
|
+
activities: [
|
|
36
|
+
{ name: "Senso-ji Temple", duration_hours: 1.5, category: "culture", description: "Tokyo's oldest temple in Asakusa" },
|
|
37
|
+
{ name: "Meiji Shrine", duration_hours: 1.5, category: "culture", description: "Serene Shinto shrine in a forest" },
|
|
38
|
+
{ name: "Imperial Palace East Gardens", duration_hours: 1.5, category: "culture", description: "Beautiful gardens of the Imperial Palace" },
|
|
39
|
+
{ name: "TeamLab Borderless", duration_hours: 2, category: "culture", description: "Immersive digital art museum" },
|
|
40
|
+
{ name: "Tsukiji Outer Market", duration_hours: 2, category: "food", description: "Street food and fresh seafood stalls" },
|
|
41
|
+
{ name: "Ramen street in Tokyo Station", duration_hours: 1, category: "food", description: "Multiple top ramen shops underground" },
|
|
42
|
+
{ name: "Depachika food hall", duration_hours: 1.5, category: "food", description: "Basement food halls in department stores" },
|
|
43
|
+
{ name: "Izakaya hopping in Yurakucho", duration_hours: 2.5, category: "food", description: "Traditional Japanese pub crawl under the train tracks" },
|
|
44
|
+
{ name: "Shinjuku Gyoen", duration_hours: 2, category: "nature", description: "Gorgeous garden with Japanese, English, and French sections" },
|
|
45
|
+
{ name: "Mount Takao hike", duration_hours: 4, category: "nature", description: "Easy day hike with stunning views (1h from center)" },
|
|
46
|
+
{ name: "Golden Gai", duration_hours: 2, category: "nightlife", description: "Tiny atmospheric bars in narrow alleys" },
|
|
47
|
+
{ name: "Shibuya nightlife", duration_hours: 3, category: "nightlife", description: "Clubs, bars, and karaoke near the famous crossing" },
|
|
48
|
+
{ name: "Harajuku and Takeshita Street", duration_hours: 2, category: "shopping", description: "Youth fashion and unique streetwear" },
|
|
49
|
+
{ name: "Akihabara electronics", duration_hours: 2, category: "shopping", description: "Electronics, anime, and gaming mecca" },
|
|
50
|
+
{ name: "Go-karting in Shibuya", duration_hours: 2, category: "adventure", description: "Costumed go-kart tour through city streets" },
|
|
51
|
+
],
|
|
52
|
+
transport_tips: [
|
|
53
|
+
"Get a Suica/Pasmo IC card for all trains and buses",
|
|
54
|
+
"JR Yamanote Line circles the major areas — learn it",
|
|
55
|
+
"Last trains are around midnight — plan accordingly",
|
|
56
|
+
"Narita Express (NEX) or Limousine Bus from the airport",
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
"new york": {
|
|
60
|
+
country: "US",
|
|
61
|
+
timezone: "America/New_York",
|
|
62
|
+
activities: [
|
|
63
|
+
{ name: "Statue of Liberty & Ellis Island", duration_hours: 4, category: "culture", description: "Iconic symbol of freedom — book ferry in advance" },
|
|
64
|
+
{ name: "Metropolitan Museum of Art", duration_hours: 3, category: "culture", description: "One of the world's greatest art museums" },
|
|
65
|
+
{ name: "9/11 Memorial & Museum", duration_hours: 2, category: "culture", description: "Moving tribute at the World Trade Center site" },
|
|
66
|
+
{ name: "Broadway show", duration_hours: 3, category: "culture", description: "World-class theater in the Theater District" },
|
|
67
|
+
{ name: "Chelsea Market food hall", duration_hours: 2, category: "food", description: "Artisan food vendors in a historic building" },
|
|
68
|
+
{ name: "Chinatown dim sum", duration_hours: 1.5, category: "food", description: "Authentic dim sum in Manhattan's Chinatown" },
|
|
69
|
+
{ name: "Smorgasburg food market", duration_hours: 2, category: "food", description: "Outdoor food market in Brooklyn (weekends)" },
|
|
70
|
+
{ name: "Central Park", duration_hours: 3, category: "nature", description: "843-acre urban oasis — walk, bike, or boat" },
|
|
71
|
+
{ name: "High Line", duration_hours: 1.5, category: "nature", description: "Elevated park on a historic freight rail line" },
|
|
72
|
+
{ name: "Brooklyn rooftop bars", duration_hours: 3, category: "nightlife", description: "Skyline views and craft cocktails" },
|
|
73
|
+
{ name: "Jazz club in Greenwich Village", duration_hours: 2, category: "nightlife", description: "Live jazz in legendary venues" },
|
|
74
|
+
{ name: "SoHo shopping", duration_hours: 2, category: "shopping", description: "Designer boutiques and trendy shops" },
|
|
75
|
+
{ name: "Fifth Avenue shopping", duration_hours: 2, category: "shopping", description: "Luxury flagships and department stores" },
|
|
76
|
+
{ name: "Brooklyn Bridge walk", duration_hours: 1, category: "adventure", description: "Walk across the iconic bridge for stunning views" },
|
|
77
|
+
{ name: "Kayaking on the Hudson", duration_hours: 2, category: "adventure", description: "Free summer kayaking at Pier 26" },
|
|
78
|
+
],
|
|
79
|
+
transport_tips: [
|
|
80
|
+
"MetroCard or OMNY tap-to-pay for subway and buses",
|
|
81
|
+
"Subway runs 24/7 — fastest way around Manhattan",
|
|
82
|
+
"Walk across bridges between Manhattan and Brooklyn",
|
|
83
|
+
"JFK: AirTrain + subway; Newark: NJ Transit; LaGuardia: bus/taxi",
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
bangkok: {
|
|
87
|
+
country: "TH",
|
|
88
|
+
timezone: "Asia/Bangkok",
|
|
89
|
+
activities: [
|
|
90
|
+
{ name: "Grand Palace & Wat Phra Kaew", duration_hours: 2.5, category: "culture", description: "Stunning royal palace complex" },
|
|
91
|
+
{ name: "Wat Pho (Reclining Buddha)", duration_hours: 1.5, category: "culture", description: "Temple with 46m golden reclining Buddha" },
|
|
92
|
+
{ name: "Jim Thompson House", duration_hours: 1.5, category: "culture", description: "Traditional Thai house museum" },
|
|
93
|
+
{ name: "Chinatown (Yaowarat) street food", duration_hours: 2.5, category: "food", description: "Legendary nighttime street food scene" },
|
|
94
|
+
{ name: "Floating market (Amphawa)", duration_hours: 4, category: "food", description: "Authentic floating market — day trip" },
|
|
95
|
+
{ name: "Cooking class", duration_hours: 3, category: "food", description: "Learn to cook pad thai, green curry, and more" },
|
|
96
|
+
{ name: "Lumphini Park", duration_hours: 1.5, category: "nature", description: "Central park with monitor lizards and lake" },
|
|
97
|
+
{ name: "Khao San Road", duration_hours: 3, category: "nightlife", description: "Famous backpacker nightlife street" },
|
|
98
|
+
{ name: "Rooftop bars (Lebua/Banyan Tree)", duration_hours: 2, category: "nightlife", description: "Skyline cocktails at iconic rooftop venues" },
|
|
99
|
+
{ name: "Chatuchak Weekend Market", duration_hours: 3, category: "shopping", description: "Massive market with 15,000+ stalls" },
|
|
100
|
+
{ name: "MBK Center", duration_hours: 2, category: "shopping", description: "Multi-floor mall with affordable goods" },
|
|
101
|
+
{ name: "Muay Thai live match", duration_hours: 3, category: "adventure", description: "Watch authentic Thai boxing at Rajadamnern Stadium" },
|
|
102
|
+
{ name: "Long-tail boat on the canals", duration_hours: 1.5, category: "adventure", description: "Explore Bangkok's canal network by traditional boat" },
|
|
103
|
+
],
|
|
104
|
+
transport_tips: [
|
|
105
|
+
"BTS Skytrain and MRT subway cover most tourist areas",
|
|
106
|
+
"Use Grab app instead of hailing taxis (better rates, no scams)",
|
|
107
|
+
"Tuk-tuks are fun but agree on price before getting in",
|
|
108
|
+
"River boats (Chao Phraya Express) are cheap and scenic",
|
|
109
|
+
],
|
|
110
|
+
},
|
|
111
|
+
london: {
|
|
112
|
+
country: "GB",
|
|
113
|
+
timezone: "Europe/London",
|
|
114
|
+
activities: [
|
|
115
|
+
{ name: "British Museum", duration_hours: 3, category: "culture", description: "World-class collection — free entry" },
|
|
116
|
+
{ name: "Tower of London", duration_hours: 2.5, category: "culture", description: "Historic castle with Crown Jewels" },
|
|
117
|
+
{ name: "Tate Modern", duration_hours: 2, category: "culture", description: "Modern art in a converted power station — free" },
|
|
118
|
+
{ name: "West End show", duration_hours: 3, category: "culture", description: "Musicals and theater in London's West End" },
|
|
119
|
+
{ name: "Borough Market food tour", duration_hours: 2, category: "food", description: "Historic food market with artisan vendors" },
|
|
120
|
+
{ name: "Afternoon tea", duration_hours: 2, category: "food", description: "Classic British tradition — scones, sandwiches, tea" },
|
|
121
|
+
{ name: "Brick Lane curry", duration_hours: 1.5, category: "food", description: "Famous curry mile in East London" },
|
|
122
|
+
{ name: "Hyde Park & Kensington Gardens", duration_hours: 2, category: "nature", description: "Royal parks with Serpentine lake" },
|
|
123
|
+
{ name: "Hampstead Heath", duration_hours: 2.5, category: "nature", description: "Wild parkland with London skyline views" },
|
|
124
|
+
{ name: "Soho bars", duration_hours: 3, category: "nightlife", description: "Vibrant cocktail bars and clubs" },
|
|
125
|
+
{ name: "Camden Town pubs", duration_hours: 2.5, category: "nightlife", description: "Live music and eclectic pub scene" },
|
|
126
|
+
{ name: "Oxford Street & Regent Street", duration_hours: 2, category: "shopping", description: "Major shopping thoroughfares" },
|
|
127
|
+
{ name: "Camden Market", duration_hours: 2, category: "shopping", description: "Eclectic market with fashion, food, and crafts" },
|
|
128
|
+
{ name: "Thames river walk (South Bank)", duration_hours: 2, category: "adventure", description: "Walk along the river from Westminster to Tower Bridge" },
|
|
129
|
+
],
|
|
130
|
+
transport_tips: [
|
|
131
|
+
"Oyster card or contactless for Tube, bus, and Overground",
|
|
132
|
+
"Walking is often fastest for short distances in central London",
|
|
133
|
+
"Santander Cycles (Boris Bikes) for scenic rides along the Thames",
|
|
134
|
+
"Heathrow Express (15 min) or Piccadilly Line (1h) from Heathrow",
|
|
135
|
+
],
|
|
136
|
+
},
|
|
137
|
+
rome: {
|
|
138
|
+
country: "IT",
|
|
139
|
+
timezone: "Europe/Rome",
|
|
140
|
+
activities: [
|
|
141
|
+
{ name: "Colosseum & Roman Forum", duration_hours: 3, category: "culture", description: "Ancient amphitheater and ruins — book in advance" },
|
|
142
|
+
{ name: "Vatican Museums & Sistine Chapel", duration_hours: 3, category: "culture", description: "Michelangelo's masterpiece and vast art collections" },
|
|
143
|
+
{ name: "Pantheon", duration_hours: 1, category: "culture", description: "Perfectly preserved ancient Roman temple" },
|
|
144
|
+
{ name: "Trastevere food walk", duration_hours: 2.5, category: "food", description: "Charming neighborhood with trattorias and gelaterias" },
|
|
145
|
+
{ name: "Testaccio food market", duration_hours: 2, category: "food", description: "Local food market with street food stalls" },
|
|
146
|
+
{ name: "Cooking class (pasta making)", duration_hours: 3, category: "food", description: "Learn to make fresh pasta and Roman classics" },
|
|
147
|
+
{ name: "Villa Borghese gardens", duration_hours: 2, category: "nature", description: "Beautiful park above Piazza del Popolo" },
|
|
148
|
+
{ name: "Appian Way cycling", duration_hours: 3, category: "nature", description: "Cycle along the ancient Roman road through countryside" },
|
|
149
|
+
{ name: "Trastevere bar hopping", duration_hours: 3, category: "nightlife", description: "Lively piazzas and wine bars" },
|
|
150
|
+
{ name: "Via del Corso shopping", duration_hours: 2, category: "shopping", description: "Major shopping street with all price ranges" },
|
|
151
|
+
{ name: "Porta Portese flea market", duration_hours: 2, category: "shopping", description: "Sunday morning flea market (largest in Rome)" },
|
|
152
|
+
{ name: "Catacombs tour", duration_hours: 2, category: "adventure", description: "Underground ancient Christian burial sites" },
|
|
153
|
+
],
|
|
154
|
+
transport_tips: [
|
|
155
|
+
"Walk — Rome's center is compact and beautiful on foot",
|
|
156
|
+
"Metro has only 2 main lines (A and B) but covers key sites",
|
|
157
|
+
"Buses are useful but can be slow in traffic",
|
|
158
|
+
"Fiumicino: Leonardo Express train to Termini (32 min)",
|
|
159
|
+
],
|
|
160
|
+
},
|
|
161
|
+
barcelona: {
|
|
162
|
+
country: "ES",
|
|
163
|
+
timezone: "Europe/Madrid",
|
|
164
|
+
activities: [
|
|
165
|
+
{ name: "Sagrada Familia", duration_hours: 2, category: "culture", description: "Gaudi's unfinished masterpiece basilica — book ahead" },
|
|
166
|
+
{ name: "Park Guell", duration_hours: 2, category: "culture", description: "Whimsical Gaudi-designed park with city views" },
|
|
167
|
+
{ name: "Gothic Quarter walk", duration_hours: 2, category: "culture", description: "Medieval streets and hidden plazas" },
|
|
168
|
+
{ name: "La Boqueria market", duration_hours: 1.5, category: "food", description: "Famous market on La Rambla with tapas and fresh produce" },
|
|
169
|
+
{ name: "Tapas tour in El Born", duration_hours: 2.5, category: "food", description: "Bar-hop for patatas bravas, jamon, and cava" },
|
|
170
|
+
{ name: "Barceloneta Beach", duration_hours: 3, category: "nature", description: "City beach with seafood restaurants" },
|
|
171
|
+
{ name: "Montjuic hill & gardens", duration_hours: 2.5, category: "nature", description: "Hill with gardens, castle, and panoramic views" },
|
|
172
|
+
{ name: "El Born cocktail bars", duration_hours: 3, category: "nightlife", description: "Trendy neighborhood with speakeasies and bars" },
|
|
173
|
+
{ name: "Razzmatazz club", duration_hours: 4, category: "nightlife", description: "Multi-room mega club — nightlife starts late" },
|
|
174
|
+
{ name: "Passeig de Gracia shopping", duration_hours: 2, category: "shopping", description: "Luxury boutiques alongside Gaudi architecture" },
|
|
175
|
+
{ name: "Kayaking along the coast", duration_hours: 2, category: "adventure", description: "Paddle along Barcelona's coastline" },
|
|
176
|
+
],
|
|
177
|
+
transport_tips: [
|
|
178
|
+
"T-Casual card for 10 metro/bus rides — great value",
|
|
179
|
+
"Walking is easy in the center — most attractions are close",
|
|
180
|
+
"Airport: Aerobus express to Placa Catalunya (35 min)",
|
|
181
|
+
"Night buses (NitBus) run all night on weekends",
|
|
182
|
+
],
|
|
183
|
+
},
|
|
184
|
+
sydney: {
|
|
185
|
+
country: "AU",
|
|
186
|
+
timezone: "Australia/Sydney",
|
|
187
|
+
activities: [
|
|
188
|
+
{ name: "Sydney Opera House tour", duration_hours: 1.5, category: "culture", description: "Iconic building — guided tours or see a performance" },
|
|
189
|
+
{ name: "Art Gallery of NSW", duration_hours: 2, category: "culture", description: "Major art gallery — free entry" },
|
|
190
|
+
{ name: "The Rocks walking tour", duration_hours: 2, category: "culture", description: "Sydney's oldest neighborhood with history and markets" },
|
|
191
|
+
{ name: "Sydney Fish Market", duration_hours: 1.5, category: "food", description: "Fresh seafood and sushi — the Southern Hemisphere's largest" },
|
|
192
|
+
{ name: "Surry Hills brunch crawl", duration_hours: 2, category: "food", description: "Trendy cafes and brunch spots" },
|
|
193
|
+
{ name: "Bondi to Coogee coastal walk", duration_hours: 3, category: "nature", description: "Stunning 6km cliff-top walk between beaches" },
|
|
194
|
+
{ name: "Blue Mountains day trip", duration_hours: 8, category: "nature", description: "Dramatic cliffs, eucalyptus forests, and waterfalls" },
|
|
195
|
+
{ name: "Royal Botanic Garden", duration_hours: 1.5, category: "nature", description: "Harborside gardens with Opera House views" },
|
|
196
|
+
{ name: "King Street Wharf bars", duration_hours: 2.5, category: "nightlife", description: "Waterfront bars with harbor views" },
|
|
197
|
+
{ name: "Newtown pub crawl", duration_hours: 3, category: "nightlife", description: "Eclectic pubs and live music in bohemian Newtown" },
|
|
198
|
+
{ name: "Paddington Markets", duration_hours: 2, category: "shopping", description: "Saturday markets with local designers and crafts" },
|
|
199
|
+
{ name: "Surf lesson at Bondi", duration_hours: 2, category: "adventure", description: "Learn to surf at Australia's most famous beach" },
|
|
200
|
+
{ name: "Sydney Harbour Bridge climb", duration_hours: 3, category: "adventure", description: "Climb the bridge for 360-degree views" },
|
|
201
|
+
],
|
|
202
|
+
transport_tips: [
|
|
203
|
+
"Opal card for trains, buses, ferries, and light rail",
|
|
204
|
+
"Ferries are a scenic way to get around the harbour",
|
|
205
|
+
"Walk across the Harbour Bridge (free) for great views",
|
|
206
|
+
"Airport: Train from International terminal to CBD (15 min)",
|
|
207
|
+
],
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* Fallback for cities not in the database.
|
|
212
|
+
*/
|
|
213
|
+
export const DEFAULT_CITY = {
|
|
214
|
+
country: "XX",
|
|
215
|
+
timezone: "UTC",
|
|
216
|
+
activities: [
|
|
217
|
+
{ name: "Visit the main historical district", duration_hours: 2.5, category: "culture", description: "Explore the old town and historical landmarks" },
|
|
218
|
+
{ name: "Local museum visit", duration_hours: 2, category: "culture", description: "Learn about local history and art" },
|
|
219
|
+
{ name: "Local market food tour", duration_hours: 2, category: "food", description: "Sample local specialties at the central market" },
|
|
220
|
+
{ name: "Traditional restaurant dinner", duration_hours: 2, category: "food", description: "Try the signature local dishes" },
|
|
221
|
+
{ name: "City park or gardens", duration_hours: 1.5, category: "nature", description: "Relax in the main city green space" },
|
|
222
|
+
{ name: "Local bar district", duration_hours: 2.5, category: "nightlife", description: "Experience the local nightlife scene" },
|
|
223
|
+
{ name: "Main shopping street", duration_hours: 2, category: "shopping", description: "Browse local shops and souvenirs" },
|
|
224
|
+
{ name: "Walking tour", duration_hours: 2, category: "adventure", description: "Explore the city on foot with a guided tour" },
|
|
225
|
+
],
|
|
226
|
+
transport_tips: [
|
|
227
|
+
"Research local transport options before arrival",
|
|
228
|
+
"Download offline maps for navigation",
|
|
229
|
+
"Ask your hotel about the best way to get around",
|
|
230
|
+
],
|
|
231
|
+
};
|
|
232
|
+
//# sourceMappingURL=cities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cities.js","sourceRoot":"","sources":["../../src/data/cities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hardcoded approximate exchange rates (against USD).
|
|
3
|
+
* DISCLAIMER: Rates are approximate and for estimation only.
|
|
4
|
+
* Last approximate update: early 2026.
|
|
5
|
+
*/
|
|
6
|
+
export declare const EXCHANGE_RATES_TO_USD: Record<string, number>;
|
|
7
|
+
export declare const CURRENCY_NAMES: Record<string, string>;
|
|
8
|
+
export declare const EXCHANGE_TIPS: string[];
|
|
9
|
+
//# sourceMappingURL=currencies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"currencies.d.ts","sourceRoot":"","sources":["../../src/data/currencies.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0DxD,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0DjD,CAAC;AAEF,eAAO,MAAM,aAAa,UAOzB,CAAC"}
|