para-transferi 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/LICENSE +21 -0
- package/README.md +799 -0
- package/dist/index.d.mts +101 -0
- package/dist/index.d.ts +101 -0
- package/dist/index.js +1748 -0
- package/dist/index.mjs +1704 -0
- package/dist/saglayicilar/index.d.mts +15 -0
- package/dist/saglayicilar/index.d.ts +15 -0
- package/dist/saglayicilar/index.js +1054 -0
- package/dist/saglayicilar/index.mjs +1022 -0
- package/dist/tipler-BiWYcUOV.d.mts +160 -0
- package/dist/tipler-BiWYcUOV.d.ts +160 -0
- package/package.json +64 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,1748 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/index.ts
|
|
21
|
+
var src_exports = {};
|
|
22
|
+
__export(src_exports, {
|
|
23
|
+
GecersizParametreHatasi: () => GecersizParametreHatasi,
|
|
24
|
+
KoridorDesteklenmiyorHatasi: () => KoridorDesteklenmiyorHatasi,
|
|
25
|
+
KurGetirmeHatasi: () => KurGetirmeHatasi,
|
|
26
|
+
LimitAsimiHatasi: () => LimitAsimiHatasi,
|
|
27
|
+
ParaTransferiHatasi: () => ParaTransferiHatasi,
|
|
28
|
+
SaglayiciBulunamadiHatasi: () => SaglayiciBulunamadiHatasi,
|
|
29
|
+
desteklenenParaBirimleri: () => desteklenenParaBirimleri,
|
|
30
|
+
desteklenenUlkeler: () => desteklenenUlkeler,
|
|
31
|
+
enUygun: () => enUygun,
|
|
32
|
+
hesapla: () => hesapla,
|
|
33
|
+
karsilastir: () => karsilastir,
|
|
34
|
+
kurAyarla: () => kurAyarla,
|
|
35
|
+
kurGetir: () => kurGetir,
|
|
36
|
+
saglayiciEkle: () => saglayiciEkle,
|
|
37
|
+
saglayiciKaldir: () => saglayiciKaldir,
|
|
38
|
+
saglayicilar: () => saglayicilar,
|
|
39
|
+
sifirla: () => sifirla,
|
|
40
|
+
ulkeDestegi: () => ulkeDestegi
|
|
41
|
+
});
|
|
42
|
+
module.exports = __toCommonJS(src_exports);
|
|
43
|
+
|
|
44
|
+
// src/kayit/saglayici-kayit.ts
|
|
45
|
+
var SaglayiciKayitDefteri = class {
|
|
46
|
+
saglayicilar = /* @__PURE__ */ new Map();
|
|
47
|
+
kaydet(saglayici) {
|
|
48
|
+
this.saglayicilar.set(saglayici.id, saglayici);
|
|
49
|
+
}
|
|
50
|
+
kaldir(id) {
|
|
51
|
+
return this.saglayicilar.delete(id);
|
|
52
|
+
}
|
|
53
|
+
getir(id) {
|
|
54
|
+
return this.saglayicilar.get(id);
|
|
55
|
+
}
|
|
56
|
+
tumunuGetir() {
|
|
57
|
+
return Array.from(this.saglayicilar.values());
|
|
58
|
+
}
|
|
59
|
+
temizle() {
|
|
60
|
+
this.saglayicilar.clear();
|
|
61
|
+
}
|
|
62
|
+
koridorIcinAra(gonderenUlke, aliciUlke) {
|
|
63
|
+
return this.tumunuGetir().filter(
|
|
64
|
+
(s) => s.gonderenUlkeler.includes(gonderenUlke) && s.aliciUlkeler.includes(aliciUlke)
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
paraBirimiIcinAra(gonderenParaBirimi, aliciParaBirimi) {
|
|
68
|
+
return this.tumunuGetir().filter(
|
|
69
|
+
(s) => s.gonderenParaBirimleri.includes(gonderenParaBirimi) && s.aliciParaBirimleri.includes(aliciParaBirimi)
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
var varsayilanKayitDefteri = new SaglayiciKayitDefteri();
|
|
74
|
+
|
|
75
|
+
// src/saglayicilar/wise.ts
|
|
76
|
+
var wise = {
|
|
77
|
+
id: "wise",
|
|
78
|
+
ad: "Wise (TransferWise)",
|
|
79
|
+
webSitesi: "https://wise.com",
|
|
80
|
+
kurulusYili: 2011,
|
|
81
|
+
merkezUlke: "GB",
|
|
82
|
+
aciklama: "Ger\xE7ek orta piyasa kuru ile d\xFC\u015F\xFCk maliyetli uluslararas\u0131 para transferi. Eski ad\u0131yla TransferWise.",
|
|
83
|
+
gonderenUlkeler: [
|
|
84
|
+
"TR",
|
|
85
|
+
"US",
|
|
86
|
+
"GB",
|
|
87
|
+
"DE",
|
|
88
|
+
"FR",
|
|
89
|
+
"NL",
|
|
90
|
+
"BE",
|
|
91
|
+
"AT",
|
|
92
|
+
"CH",
|
|
93
|
+
"SE",
|
|
94
|
+
"NO",
|
|
95
|
+
"DK",
|
|
96
|
+
"FI",
|
|
97
|
+
"IT",
|
|
98
|
+
"ES",
|
|
99
|
+
"PT",
|
|
100
|
+
"PL",
|
|
101
|
+
"CZ",
|
|
102
|
+
"HU",
|
|
103
|
+
"RO",
|
|
104
|
+
"BG",
|
|
105
|
+
"HR",
|
|
106
|
+
"IE",
|
|
107
|
+
"CA",
|
|
108
|
+
"AU",
|
|
109
|
+
"NZ",
|
|
110
|
+
"JP",
|
|
111
|
+
"SG",
|
|
112
|
+
"MY",
|
|
113
|
+
"BR",
|
|
114
|
+
"IN"
|
|
115
|
+
],
|
|
116
|
+
aliciUlkeler: [
|
|
117
|
+
"TR",
|
|
118
|
+
"US",
|
|
119
|
+
"GB",
|
|
120
|
+
"DE",
|
|
121
|
+
"FR",
|
|
122
|
+
"NL",
|
|
123
|
+
"BE",
|
|
124
|
+
"AT",
|
|
125
|
+
"CH",
|
|
126
|
+
"SE",
|
|
127
|
+
"NO",
|
|
128
|
+
"DK",
|
|
129
|
+
"FI",
|
|
130
|
+
"IT",
|
|
131
|
+
"ES",
|
|
132
|
+
"PT",
|
|
133
|
+
"PL",
|
|
134
|
+
"CZ",
|
|
135
|
+
"HU",
|
|
136
|
+
"RO",
|
|
137
|
+
"BG",
|
|
138
|
+
"HR",
|
|
139
|
+
"IE",
|
|
140
|
+
"CA",
|
|
141
|
+
"AU",
|
|
142
|
+
"NZ",
|
|
143
|
+
"JP",
|
|
144
|
+
"CN",
|
|
145
|
+
"IN",
|
|
146
|
+
"PK",
|
|
147
|
+
"BD",
|
|
148
|
+
"PH",
|
|
149
|
+
"MY",
|
|
150
|
+
"SG",
|
|
151
|
+
"TH",
|
|
152
|
+
"ID",
|
|
153
|
+
"VN",
|
|
154
|
+
"KR",
|
|
155
|
+
"AE",
|
|
156
|
+
"SA",
|
|
157
|
+
"EG",
|
|
158
|
+
"MA",
|
|
159
|
+
"NG",
|
|
160
|
+
"GH",
|
|
161
|
+
"KE",
|
|
162
|
+
"ZA",
|
|
163
|
+
"BR",
|
|
164
|
+
"MX",
|
|
165
|
+
"CO",
|
|
166
|
+
"AR",
|
|
167
|
+
"CL",
|
|
168
|
+
"PE",
|
|
169
|
+
"IL",
|
|
170
|
+
"UA",
|
|
171
|
+
"GE"
|
|
172
|
+
],
|
|
173
|
+
gonderenParaBirimleri: [
|
|
174
|
+
"TRY",
|
|
175
|
+
"USD",
|
|
176
|
+
"EUR",
|
|
177
|
+
"GBP",
|
|
178
|
+
"CHF",
|
|
179
|
+
"SEK",
|
|
180
|
+
"NOK",
|
|
181
|
+
"DKK",
|
|
182
|
+
"PLN",
|
|
183
|
+
"CZK",
|
|
184
|
+
"HUF",
|
|
185
|
+
"RON",
|
|
186
|
+
"BGN",
|
|
187
|
+
"CAD",
|
|
188
|
+
"AUD",
|
|
189
|
+
"NZD",
|
|
190
|
+
"JPY",
|
|
191
|
+
"SGD",
|
|
192
|
+
"MYR",
|
|
193
|
+
"BRL",
|
|
194
|
+
"INR"
|
|
195
|
+
],
|
|
196
|
+
aliciParaBirimleri: [
|
|
197
|
+
"TRY",
|
|
198
|
+
"USD",
|
|
199
|
+
"EUR",
|
|
200
|
+
"GBP",
|
|
201
|
+
"CHF",
|
|
202
|
+
"SEK",
|
|
203
|
+
"NOK",
|
|
204
|
+
"DKK",
|
|
205
|
+
"PLN",
|
|
206
|
+
"CZK",
|
|
207
|
+
"HUF",
|
|
208
|
+
"RON",
|
|
209
|
+
"BGN",
|
|
210
|
+
"CAD",
|
|
211
|
+
"AUD",
|
|
212
|
+
"NZD",
|
|
213
|
+
"JPY",
|
|
214
|
+
"CNY",
|
|
215
|
+
"INR",
|
|
216
|
+
"PKR",
|
|
217
|
+
"BDT",
|
|
218
|
+
"PHP",
|
|
219
|
+
"MYR",
|
|
220
|
+
"SGD",
|
|
221
|
+
"THB",
|
|
222
|
+
"IDR",
|
|
223
|
+
"VND",
|
|
224
|
+
"KRW",
|
|
225
|
+
"AED",
|
|
226
|
+
"SAR",
|
|
227
|
+
"EGP",
|
|
228
|
+
"MAD",
|
|
229
|
+
"NGN",
|
|
230
|
+
"GHS",
|
|
231
|
+
"KES",
|
|
232
|
+
"ZAR",
|
|
233
|
+
"BRL",
|
|
234
|
+
"MXN",
|
|
235
|
+
"COP",
|
|
236
|
+
"ARS",
|
|
237
|
+
"CLP",
|
|
238
|
+
"PEN",
|
|
239
|
+
"ILS",
|
|
240
|
+
"UAH",
|
|
241
|
+
"GEL"
|
|
242
|
+
],
|
|
243
|
+
ucretYapisi: {
|
|
244
|
+
sabitUcret: 0,
|
|
245
|
+
sabitUcretParaBirimi: "USD",
|
|
246
|
+
yuzdeUcret: 0.7,
|
|
247
|
+
minimumUcret: 1,
|
|
248
|
+
maksimumUcret: 0,
|
|
249
|
+
aciklama: "Transfere g\xF6re %0.4-%1.5 aras\u0131 de\u011Fi\u015Fen \xFCcretler",
|
|
250
|
+
koridorUcretleri: {
|
|
251
|
+
"TR_US": { yuzdeUcret: 1.2, sabitUcret: 5 },
|
|
252
|
+
"TR_DE": { yuzdeUcret: 1.1, sabitUcret: 3 },
|
|
253
|
+
"TR_GB": { yuzdeUcret: 1.15, sabitUcret: 4 },
|
|
254
|
+
"US_TR": { yuzdeUcret: 0.56, sabitUcret: 0 },
|
|
255
|
+
"DE_TR": { yuzdeUcret: 0.6, sabitUcret: 0 },
|
|
256
|
+
"GB_TR": { yuzdeUcret: 0.58, sabitUcret: 0 }
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
transferYontemleri: [
|
|
260
|
+
{ tip: "banka_havalesi", ad: "Banka Havalesi", desteklenenUlkeler: [] },
|
|
261
|
+
{ tip: "kart", ad: "Banka/Kredi Kart\u0131 ile \xD6deme", desteklenenUlkeler: [] }
|
|
262
|
+
],
|
|
263
|
+
transferHizlari: [
|
|
264
|
+
{
|
|
265
|
+
yontem: "banka_havalesi",
|
|
266
|
+
minimumSaat: 1,
|
|
267
|
+
maksimumSaat: 48,
|
|
268
|
+
aciklama: "1 saat - 2 i\u015F g\xFCn\xFC"
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
yontem: "kart",
|
|
272
|
+
minimumSaat: 0.5,
|
|
273
|
+
maksimumSaat: 24,
|
|
274
|
+
aciklama: "30 dakika - 1 i\u015F g\xFCn\xFC"
|
|
275
|
+
}
|
|
276
|
+
],
|
|
277
|
+
limitler: {
|
|
278
|
+
minimumGonderim: 1,
|
|
279
|
+
maksimumGonderim: 15e5,
|
|
280
|
+
paraBirimi: "USD"
|
|
281
|
+
},
|
|
282
|
+
kurMarjiYuzde: 0,
|
|
283
|
+
odemeYontemleri: [
|
|
284
|
+
"banka_havalesi",
|
|
285
|
+
"banka_karti",
|
|
286
|
+
"kredi_karti",
|
|
287
|
+
"apple_pay",
|
|
288
|
+
"google_pay",
|
|
289
|
+
"swift",
|
|
290
|
+
"sepa"
|
|
291
|
+
],
|
|
292
|
+
puan: 4.6,
|
|
293
|
+
duzenleme: {
|
|
294
|
+
lisanslar: ["FCA", "FinCEN", "ASIC", "MAS"],
|
|
295
|
+
duzenleyiciUlkeler: ["GB", "US", "AU", "SG"]
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
|
|
299
|
+
// src/saglayicilar/remitly.ts
|
|
300
|
+
var remitly = {
|
|
301
|
+
id: "remitly",
|
|
302
|
+
ad: "Remitly",
|
|
303
|
+
webSitesi: "https://www.remitly.com",
|
|
304
|
+
kurulusYili: 2011,
|
|
305
|
+
merkezUlke: "US",
|
|
306
|
+
aciklama: "H\u0131zl\u0131 ve g\xFCvenilir uluslararas\u0131 para transferi. \xD6zellikle geli\u015Fmekte olan \xFClkelere transfer konusunda g\xFC\xE7l\xFC.",
|
|
307
|
+
gonderenUlkeler: [
|
|
308
|
+
"US",
|
|
309
|
+
"GB",
|
|
310
|
+
"CA",
|
|
311
|
+
"AU",
|
|
312
|
+
"DE",
|
|
313
|
+
"FR",
|
|
314
|
+
"NL",
|
|
315
|
+
"BE",
|
|
316
|
+
"AT",
|
|
317
|
+
"IT",
|
|
318
|
+
"ES",
|
|
319
|
+
"IE",
|
|
320
|
+
"SE",
|
|
321
|
+
"NO",
|
|
322
|
+
"DK",
|
|
323
|
+
"FI",
|
|
324
|
+
"SG"
|
|
325
|
+
],
|
|
326
|
+
aliciUlkeler: [
|
|
327
|
+
"TR",
|
|
328
|
+
"IN",
|
|
329
|
+
"PK",
|
|
330
|
+
"BD",
|
|
331
|
+
"PH",
|
|
332
|
+
"MX",
|
|
333
|
+
"CO",
|
|
334
|
+
"BR",
|
|
335
|
+
"PE",
|
|
336
|
+
"GH",
|
|
337
|
+
"KE",
|
|
338
|
+
"NG",
|
|
339
|
+
"EG",
|
|
340
|
+
"MA",
|
|
341
|
+
"TH",
|
|
342
|
+
"VN",
|
|
343
|
+
"ID",
|
|
344
|
+
"MY",
|
|
345
|
+
"CN",
|
|
346
|
+
"PL",
|
|
347
|
+
"UA",
|
|
348
|
+
"GE",
|
|
349
|
+
"AE",
|
|
350
|
+
"SA"
|
|
351
|
+
],
|
|
352
|
+
gonderenParaBirimleri: [
|
|
353
|
+
"USD",
|
|
354
|
+
"GBP",
|
|
355
|
+
"CAD",
|
|
356
|
+
"AUD",
|
|
357
|
+
"EUR",
|
|
358
|
+
"SEK",
|
|
359
|
+
"NOK",
|
|
360
|
+
"DKK",
|
|
361
|
+
"SGD"
|
|
362
|
+
],
|
|
363
|
+
aliciParaBirimleri: [
|
|
364
|
+
"TRY",
|
|
365
|
+
"INR",
|
|
366
|
+
"PKR",
|
|
367
|
+
"BDT",
|
|
368
|
+
"PHP",
|
|
369
|
+
"MXN",
|
|
370
|
+
"COP",
|
|
371
|
+
"BRL",
|
|
372
|
+
"PEN",
|
|
373
|
+
"GHS",
|
|
374
|
+
"KES",
|
|
375
|
+
"NGN",
|
|
376
|
+
"EGP",
|
|
377
|
+
"MAD",
|
|
378
|
+
"THB",
|
|
379
|
+
"VND",
|
|
380
|
+
"IDR",
|
|
381
|
+
"MYR",
|
|
382
|
+
"CNY",
|
|
383
|
+
"PLN",
|
|
384
|
+
"UAH",
|
|
385
|
+
"GEL",
|
|
386
|
+
"AED",
|
|
387
|
+
"SAR"
|
|
388
|
+
],
|
|
389
|
+
ucretYapisi: {
|
|
390
|
+
sabitUcret: 3.99,
|
|
391
|
+
sabitUcretParaBirimi: "USD",
|
|
392
|
+
yuzdeUcret: 0,
|
|
393
|
+
minimumUcret: 0,
|
|
394
|
+
maksimumUcret: 0,
|
|
395
|
+
aciklama: "Sabit \xFCcret modeli, Express ve Economy se\xE7enekleri mevcut",
|
|
396
|
+
koridorUcretleri: {
|
|
397
|
+
"US_TR": { sabitUcret: 3.99 },
|
|
398
|
+
"US_IN": { sabitUcret: 2.99 },
|
|
399
|
+
"US_PH": { sabitUcret: 2.99 },
|
|
400
|
+
"US_MX": { sabitUcret: 3.99 },
|
|
401
|
+
"GB_TR": { sabitUcret: 2.99, sabitUcretParaBirimi: "GBP" },
|
|
402
|
+
"GB_IN": { sabitUcret: 1.99, sabitUcretParaBirimi: "GBP" }
|
|
403
|
+
}
|
|
404
|
+
},
|
|
405
|
+
transferYontemleri: [
|
|
406
|
+
{ tip: "banka_havalesi", ad: "Banka Havalesi", desteklenenUlkeler: [] },
|
|
407
|
+
{
|
|
408
|
+
tip: "mobil_cuzdan",
|
|
409
|
+
ad: "Mobil C\xFCzdan",
|
|
410
|
+
desteklenenUlkeler: ["PH", "KE", "GH", "BD"]
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
tip: "nakit_teslim",
|
|
414
|
+
ad: "Nakit Teslim",
|
|
415
|
+
desteklenenUlkeler: ["PH", "MX", "CO", "PE", "IN"]
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
tip: "ev_teslim",
|
|
419
|
+
ad: "Eve Teslim",
|
|
420
|
+
desteklenenUlkeler: ["BD", "PH"]
|
|
421
|
+
}
|
|
422
|
+
],
|
|
423
|
+
transferHizlari: [
|
|
424
|
+
{
|
|
425
|
+
yontem: "banka_havalesi",
|
|
426
|
+
minimumSaat: 1,
|
|
427
|
+
maksimumSaat: 72,
|
|
428
|
+
aciklama: "Express: dakikalar, Economy: 3-5 i\u015F g\xFCn\xFC"
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
yontem: "mobil_cuzdan",
|
|
432
|
+
minimumSaat: 0.1,
|
|
433
|
+
maksimumSaat: 4,
|
|
434
|
+
aciklama: "Dakikalar i\xE7inde"
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
yontem: "nakit_teslim",
|
|
438
|
+
minimumSaat: 0.5,
|
|
439
|
+
maksimumSaat: 24,
|
|
440
|
+
aciklama: "Saatler i\xE7inde"
|
|
441
|
+
}
|
|
442
|
+
],
|
|
443
|
+
limitler: {
|
|
444
|
+
minimumGonderim: 25,
|
|
445
|
+
maksimumGonderim: 25e3,
|
|
446
|
+
paraBirimi: "USD",
|
|
447
|
+
gunlukLimit: 25e3
|
|
448
|
+
},
|
|
449
|
+
kurMarjiYuzde: 1.5,
|
|
450
|
+
odemeYontemleri: ["banka_havalesi", "banka_karti", "kredi_karti"],
|
|
451
|
+
puan: 4.4,
|
|
452
|
+
duzenleme: {
|
|
453
|
+
lisanslar: ["FinCEN", "FCA", "ASIC"],
|
|
454
|
+
duzenleyiciUlkeler: ["US", "GB", "AU"]
|
|
455
|
+
}
|
|
456
|
+
};
|
|
457
|
+
|
|
458
|
+
// src/saglayicilar/xe.ts
|
|
459
|
+
var xe = {
|
|
460
|
+
id: "xe",
|
|
461
|
+
ad: "XE Money Transfer",
|
|
462
|
+
webSitesi: "https://www.xe.com",
|
|
463
|
+
kurulusYili: 1993,
|
|
464
|
+
merkezUlke: "CA",
|
|
465
|
+
aciklama: "D\xFCnyan\u0131n en bilinen d\xF6viz kuru platformu. Euronet Worldwide b\xFCnyesinde g\xFCvenilir para transferi hizmeti.",
|
|
466
|
+
gonderenUlkeler: [
|
|
467
|
+
"US",
|
|
468
|
+
"GB",
|
|
469
|
+
"CA",
|
|
470
|
+
"AU",
|
|
471
|
+
"NZ",
|
|
472
|
+
"DE",
|
|
473
|
+
"FR",
|
|
474
|
+
"NL",
|
|
475
|
+
"BE",
|
|
476
|
+
"AT",
|
|
477
|
+
"CH",
|
|
478
|
+
"SE",
|
|
479
|
+
"NO",
|
|
480
|
+
"DK",
|
|
481
|
+
"FI",
|
|
482
|
+
"IT",
|
|
483
|
+
"ES",
|
|
484
|
+
"PT",
|
|
485
|
+
"IE",
|
|
486
|
+
"SG",
|
|
487
|
+
"JP"
|
|
488
|
+
],
|
|
489
|
+
aliciUlkeler: [
|
|
490
|
+
"TR",
|
|
491
|
+
"US",
|
|
492
|
+
"GB",
|
|
493
|
+
"DE",
|
|
494
|
+
"FR",
|
|
495
|
+
"NL",
|
|
496
|
+
"BE",
|
|
497
|
+
"AT",
|
|
498
|
+
"CH",
|
|
499
|
+
"SE",
|
|
500
|
+
"NO",
|
|
501
|
+
"DK",
|
|
502
|
+
"FI",
|
|
503
|
+
"IT",
|
|
504
|
+
"ES",
|
|
505
|
+
"PT",
|
|
506
|
+
"PL",
|
|
507
|
+
"CZ",
|
|
508
|
+
"HU",
|
|
509
|
+
"RO",
|
|
510
|
+
"BG",
|
|
511
|
+
"HR",
|
|
512
|
+
"IE",
|
|
513
|
+
"CA",
|
|
514
|
+
"AU",
|
|
515
|
+
"NZ",
|
|
516
|
+
"JP",
|
|
517
|
+
"CN",
|
|
518
|
+
"IN",
|
|
519
|
+
"PK",
|
|
520
|
+
"PH",
|
|
521
|
+
"MY",
|
|
522
|
+
"SG",
|
|
523
|
+
"TH",
|
|
524
|
+
"ID",
|
|
525
|
+
"KR",
|
|
526
|
+
"AE",
|
|
527
|
+
"SA",
|
|
528
|
+
"ZA",
|
|
529
|
+
"BR",
|
|
530
|
+
"MX",
|
|
531
|
+
"IL"
|
|
532
|
+
],
|
|
533
|
+
gonderenParaBirimleri: [
|
|
534
|
+
"USD",
|
|
535
|
+
"EUR",
|
|
536
|
+
"GBP",
|
|
537
|
+
"CAD",
|
|
538
|
+
"AUD",
|
|
539
|
+
"NZD",
|
|
540
|
+
"CHF",
|
|
541
|
+
"SEK",
|
|
542
|
+
"NOK",
|
|
543
|
+
"DKK",
|
|
544
|
+
"SGD",
|
|
545
|
+
"JPY"
|
|
546
|
+
],
|
|
547
|
+
aliciParaBirimleri: [
|
|
548
|
+
"TRY",
|
|
549
|
+
"USD",
|
|
550
|
+
"EUR",
|
|
551
|
+
"GBP",
|
|
552
|
+
"CHF",
|
|
553
|
+
"SEK",
|
|
554
|
+
"NOK",
|
|
555
|
+
"DKK",
|
|
556
|
+
"PLN",
|
|
557
|
+
"CZK",
|
|
558
|
+
"HUF",
|
|
559
|
+
"RON",
|
|
560
|
+
"BGN",
|
|
561
|
+
"CAD",
|
|
562
|
+
"AUD",
|
|
563
|
+
"NZD",
|
|
564
|
+
"JPY",
|
|
565
|
+
"CNY",
|
|
566
|
+
"INR",
|
|
567
|
+
"PKR",
|
|
568
|
+
"PHP",
|
|
569
|
+
"MYR",
|
|
570
|
+
"SGD",
|
|
571
|
+
"THB",
|
|
572
|
+
"IDR",
|
|
573
|
+
"KRW",
|
|
574
|
+
"AED",
|
|
575
|
+
"SAR",
|
|
576
|
+
"ZAR",
|
|
577
|
+
"BRL",
|
|
578
|
+
"MXN",
|
|
579
|
+
"ILS"
|
|
580
|
+
],
|
|
581
|
+
ucretYapisi: {
|
|
582
|
+
sabitUcret: 0,
|
|
583
|
+
sabitUcretParaBirimi: "USD",
|
|
584
|
+
yuzdeUcret: 0,
|
|
585
|
+
minimumUcret: 0,
|
|
586
|
+
maksimumUcret: 0,
|
|
587
|
+
aciklama: "Transfer \xFCcreti yok, maliyet d\xF6viz kuru marj\u0131na dahil"
|
|
588
|
+
},
|
|
589
|
+
transferYontemleri: [
|
|
590
|
+
{ tip: "banka_havalesi", ad: "Banka Havalesi", desteklenenUlkeler: [] }
|
|
591
|
+
],
|
|
592
|
+
transferHizlari: [
|
|
593
|
+
{
|
|
594
|
+
yontem: "banka_havalesi",
|
|
595
|
+
minimumSaat: 24,
|
|
596
|
+
maksimumSaat: 96,
|
|
597
|
+
aciklama: "1-4 i\u015F g\xFCn\xFC"
|
|
598
|
+
}
|
|
599
|
+
],
|
|
600
|
+
limitler: {
|
|
601
|
+
minimumGonderim: 100,
|
|
602
|
+
maksimumGonderim: 5e5,
|
|
603
|
+
paraBirimi: "USD"
|
|
604
|
+
},
|
|
605
|
+
kurMarjiYuzde: 1,
|
|
606
|
+
odemeYontemleri: ["banka_havalesi", "swift"],
|
|
607
|
+
puan: 4.2,
|
|
608
|
+
duzenleme: {
|
|
609
|
+
lisanslar: ["FinCEN", "FCA", "ASIC", "FINTRAC"],
|
|
610
|
+
duzenleyiciUlkeler: ["US", "GB", "AU", "CA"]
|
|
611
|
+
}
|
|
612
|
+
};
|
|
613
|
+
|
|
614
|
+
// src/saglayicilar/ofx.ts
|
|
615
|
+
var ofx = {
|
|
616
|
+
id: "ofx",
|
|
617
|
+
ad: "OFX",
|
|
618
|
+
webSitesi: "https://www.ofx.com",
|
|
619
|
+
kurulusYili: 1998,
|
|
620
|
+
merkezUlke: "AU",
|
|
621
|
+
aciklama: "B\xFCy\xFCk tutarl\u0131 transferlerde rekabet\xE7i kurlar sunan, \xF6zellikle i\u015F transferleri i\xE7in tercih edilen platform.",
|
|
622
|
+
gonderenUlkeler: [
|
|
623
|
+
"US",
|
|
624
|
+
"GB",
|
|
625
|
+
"CA",
|
|
626
|
+
"AU",
|
|
627
|
+
"NZ",
|
|
628
|
+
"DE",
|
|
629
|
+
"FR",
|
|
630
|
+
"NL",
|
|
631
|
+
"BE",
|
|
632
|
+
"AT",
|
|
633
|
+
"CH",
|
|
634
|
+
"IE",
|
|
635
|
+
"SG",
|
|
636
|
+
"JP"
|
|
637
|
+
],
|
|
638
|
+
aliciUlkeler: [
|
|
639
|
+
"TR",
|
|
640
|
+
"US",
|
|
641
|
+
"GB",
|
|
642
|
+
"DE",
|
|
643
|
+
"FR",
|
|
644
|
+
"NL",
|
|
645
|
+
"BE",
|
|
646
|
+
"AT",
|
|
647
|
+
"CH",
|
|
648
|
+
"SE",
|
|
649
|
+
"NO",
|
|
650
|
+
"DK",
|
|
651
|
+
"FI",
|
|
652
|
+
"IT",
|
|
653
|
+
"ES",
|
|
654
|
+
"PT",
|
|
655
|
+
"PL",
|
|
656
|
+
"CZ",
|
|
657
|
+
"HU",
|
|
658
|
+
"IE",
|
|
659
|
+
"CA",
|
|
660
|
+
"AU",
|
|
661
|
+
"NZ",
|
|
662
|
+
"JP",
|
|
663
|
+
"CN",
|
|
664
|
+
"IN",
|
|
665
|
+
"PH",
|
|
666
|
+
"MY",
|
|
667
|
+
"SG",
|
|
668
|
+
"TH",
|
|
669
|
+
"ID",
|
|
670
|
+
"KR",
|
|
671
|
+
"AE",
|
|
672
|
+
"SA",
|
|
673
|
+
"ZA",
|
|
674
|
+
"BR",
|
|
675
|
+
"MX",
|
|
676
|
+
"IL"
|
|
677
|
+
],
|
|
678
|
+
gonderenParaBirimleri: [
|
|
679
|
+
"USD",
|
|
680
|
+
"EUR",
|
|
681
|
+
"GBP",
|
|
682
|
+
"CAD",
|
|
683
|
+
"AUD",
|
|
684
|
+
"NZD",
|
|
685
|
+
"CHF",
|
|
686
|
+
"SGD",
|
|
687
|
+
"JPY"
|
|
688
|
+
],
|
|
689
|
+
aliciParaBirimleri: [
|
|
690
|
+
"TRY",
|
|
691
|
+
"USD",
|
|
692
|
+
"EUR",
|
|
693
|
+
"GBP",
|
|
694
|
+
"CHF",
|
|
695
|
+
"SEK",
|
|
696
|
+
"NOK",
|
|
697
|
+
"DKK",
|
|
698
|
+
"PLN",
|
|
699
|
+
"CZK",
|
|
700
|
+
"HUF",
|
|
701
|
+
"CAD",
|
|
702
|
+
"AUD",
|
|
703
|
+
"NZD",
|
|
704
|
+
"JPY",
|
|
705
|
+
"CNY",
|
|
706
|
+
"INR",
|
|
707
|
+
"PHP",
|
|
708
|
+
"MYR",
|
|
709
|
+
"SGD",
|
|
710
|
+
"THB",
|
|
711
|
+
"IDR",
|
|
712
|
+
"KRW",
|
|
713
|
+
"AED",
|
|
714
|
+
"SAR",
|
|
715
|
+
"ZAR",
|
|
716
|
+
"BRL",
|
|
717
|
+
"MXN",
|
|
718
|
+
"ILS"
|
|
719
|
+
],
|
|
720
|
+
ucretYapisi: {
|
|
721
|
+
sabitUcret: 0,
|
|
722
|
+
sabitUcretParaBirimi: "USD",
|
|
723
|
+
yuzdeUcret: 0,
|
|
724
|
+
minimumUcret: 0,
|
|
725
|
+
maksimumUcret: 0,
|
|
726
|
+
aciklama: "Transfer \xFCcreti yok, maliyet d\xF6viz kuru marj\u0131na dahil. B\xFCy\xFCk tutarlarda daha iyi kurlar."
|
|
727
|
+
},
|
|
728
|
+
transferYontemleri: [
|
|
729
|
+
{ tip: "banka_havalesi", ad: "Banka Havalesi", desteklenenUlkeler: [] }
|
|
730
|
+
],
|
|
731
|
+
transferHizlari: [
|
|
732
|
+
{
|
|
733
|
+
yontem: "banka_havalesi",
|
|
734
|
+
minimumSaat: 24,
|
|
735
|
+
maksimumSaat: 72,
|
|
736
|
+
aciklama: "1-3 i\u015F g\xFCn\xFC"
|
|
737
|
+
}
|
|
738
|
+
],
|
|
739
|
+
limitler: {
|
|
740
|
+
minimumGonderim: 250,
|
|
741
|
+
maksimumGonderim: 5e6,
|
|
742
|
+
paraBirimi: "USD"
|
|
743
|
+
},
|
|
744
|
+
kurMarjiYuzde: 0.4,
|
|
745
|
+
odemeYontemleri: ["banka_havalesi", "swift"],
|
|
746
|
+
puan: 4.3,
|
|
747
|
+
duzenleme: {
|
|
748
|
+
lisanslar: ["ASIC", "FCA", "FinCEN", "FINTRAC", "MAS"],
|
|
749
|
+
duzenleyiciUlkeler: ["AU", "GB", "US", "CA", "SG"]
|
|
750
|
+
}
|
|
751
|
+
};
|
|
752
|
+
|
|
753
|
+
// src/saglayicilar/worldremit.ts
|
|
754
|
+
var worldremit = {
|
|
755
|
+
id: "worldremit",
|
|
756
|
+
ad: "WorldRemit",
|
|
757
|
+
webSitesi: "https://www.worldremit.com",
|
|
758
|
+
kurulusYili: 2010,
|
|
759
|
+
merkezUlke: "GB",
|
|
760
|
+
aciklama: "\xC7oklu teslimat se\xE7enekleri sunan global para transferi platformu. Mobil c\xFCzdan ve nakit teslim se\xE7enekleriyle \xF6ne \xE7\u0131kar.",
|
|
761
|
+
gonderenUlkeler: [
|
|
762
|
+
"US",
|
|
763
|
+
"GB",
|
|
764
|
+
"CA",
|
|
765
|
+
"AU",
|
|
766
|
+
"NZ",
|
|
767
|
+
"DE",
|
|
768
|
+
"FR",
|
|
769
|
+
"NL",
|
|
770
|
+
"BE",
|
|
771
|
+
"AT",
|
|
772
|
+
"CH",
|
|
773
|
+
"SE",
|
|
774
|
+
"NO",
|
|
775
|
+
"DK",
|
|
776
|
+
"FI",
|
|
777
|
+
"IT",
|
|
778
|
+
"ES",
|
|
779
|
+
"PT",
|
|
780
|
+
"IE",
|
|
781
|
+
"SG"
|
|
782
|
+
],
|
|
783
|
+
aliciUlkeler: [
|
|
784
|
+
"TR",
|
|
785
|
+
"IN",
|
|
786
|
+
"PK",
|
|
787
|
+
"BD",
|
|
788
|
+
"PH",
|
|
789
|
+
"MX",
|
|
790
|
+
"CO",
|
|
791
|
+
"BR",
|
|
792
|
+
"PE",
|
|
793
|
+
"GH",
|
|
794
|
+
"KE",
|
|
795
|
+
"NG",
|
|
796
|
+
"EG",
|
|
797
|
+
"MA",
|
|
798
|
+
"TH",
|
|
799
|
+
"VN",
|
|
800
|
+
"ID",
|
|
801
|
+
"MY",
|
|
802
|
+
"CN",
|
|
803
|
+
"PL",
|
|
804
|
+
"UA",
|
|
805
|
+
"GE",
|
|
806
|
+
"AE",
|
|
807
|
+
"SA",
|
|
808
|
+
"ZA",
|
|
809
|
+
"AR",
|
|
810
|
+
"CL"
|
|
811
|
+
],
|
|
812
|
+
gonderenParaBirimleri: [
|
|
813
|
+
"USD",
|
|
814
|
+
"GBP",
|
|
815
|
+
"EUR",
|
|
816
|
+
"CAD",
|
|
817
|
+
"AUD",
|
|
818
|
+
"NZD",
|
|
819
|
+
"CHF",
|
|
820
|
+
"SEK",
|
|
821
|
+
"NOK",
|
|
822
|
+
"DKK",
|
|
823
|
+
"SGD"
|
|
824
|
+
],
|
|
825
|
+
aliciParaBirimleri: [
|
|
826
|
+
"TRY",
|
|
827
|
+
"INR",
|
|
828
|
+
"PKR",
|
|
829
|
+
"BDT",
|
|
830
|
+
"PHP",
|
|
831
|
+
"MXN",
|
|
832
|
+
"COP",
|
|
833
|
+
"BRL",
|
|
834
|
+
"PEN",
|
|
835
|
+
"GHS",
|
|
836
|
+
"KES",
|
|
837
|
+
"NGN",
|
|
838
|
+
"EGP",
|
|
839
|
+
"MAD",
|
|
840
|
+
"THB",
|
|
841
|
+
"VND",
|
|
842
|
+
"IDR",
|
|
843
|
+
"MYR",
|
|
844
|
+
"CNY",
|
|
845
|
+
"PLN",
|
|
846
|
+
"UAH",
|
|
847
|
+
"GEL",
|
|
848
|
+
"AED",
|
|
849
|
+
"SAR",
|
|
850
|
+
"ZAR",
|
|
851
|
+
"ARS",
|
|
852
|
+
"CLP"
|
|
853
|
+
],
|
|
854
|
+
ucretYapisi: {
|
|
855
|
+
sabitUcret: 3.99,
|
|
856
|
+
sabitUcretParaBirimi: "USD",
|
|
857
|
+
yuzdeUcret: 0,
|
|
858
|
+
minimumUcret: 1.99,
|
|
859
|
+
maksimumUcret: 0,
|
|
860
|
+
aciklama: "Sabit \xFCcret, koridor ve teslimat y\xF6ntemine g\xF6re de\u011Fi\u015Fir",
|
|
861
|
+
koridorUcretleri: {
|
|
862
|
+
"US_TR": { sabitUcret: 3.99 },
|
|
863
|
+
"GB_TR": { sabitUcret: 2.99, sabitUcretParaBirimi: "GBP" },
|
|
864
|
+
"US_IN": { sabitUcret: 2.99 },
|
|
865
|
+
"US_PH": { sabitUcret: 2.99 },
|
|
866
|
+
"GB_NG": { sabitUcret: 1.99, sabitUcretParaBirimi: "GBP" },
|
|
867
|
+
"GB_GH": { sabitUcret: 1.99, sabitUcretParaBirimi: "GBP" }
|
|
868
|
+
}
|
|
869
|
+
},
|
|
870
|
+
transferYontemleri: [
|
|
871
|
+
{ tip: "banka_havalesi", ad: "Banka Havalesi", desteklenenUlkeler: [] },
|
|
872
|
+
{
|
|
873
|
+
tip: "mobil_cuzdan",
|
|
874
|
+
ad: "Mobil C\xFCzdan (M-Pesa vb.)",
|
|
875
|
+
desteklenenUlkeler: ["KE", "GH", "TH", "PH", "BD"]
|
|
876
|
+
},
|
|
877
|
+
{
|
|
878
|
+
tip: "nakit_teslim",
|
|
879
|
+
ad: "Nakit Teslim Noktas\u0131",
|
|
880
|
+
desteklenenUlkeler: ["PH", "MX", "CO", "PE", "IN", "NG", "GH"]
|
|
881
|
+
}
|
|
882
|
+
],
|
|
883
|
+
transferHizlari: [
|
|
884
|
+
{
|
|
885
|
+
yontem: "banka_havalesi",
|
|
886
|
+
minimumSaat: 12,
|
|
887
|
+
maksimumSaat: 72,
|
|
888
|
+
aciklama: "12 saat - 3 i\u015F g\xFCn\xFC"
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
yontem: "mobil_cuzdan",
|
|
892
|
+
minimumSaat: 0.1,
|
|
893
|
+
maksimumSaat: 2,
|
|
894
|
+
aciklama: "Dakikalar i\xE7inde"
|
|
895
|
+
},
|
|
896
|
+
{
|
|
897
|
+
yontem: "nakit_teslim",
|
|
898
|
+
minimumSaat: 0.5,
|
|
899
|
+
maksimumSaat: 24,
|
|
900
|
+
aciklama: "Saatler i\xE7inde"
|
|
901
|
+
}
|
|
902
|
+
],
|
|
903
|
+
limitler: {
|
|
904
|
+
minimumGonderim: 10,
|
|
905
|
+
maksimumGonderim: 1e4,
|
|
906
|
+
paraBirimi: "USD",
|
|
907
|
+
gunlukLimit: 1e4
|
|
908
|
+
},
|
|
909
|
+
kurMarjiYuzde: 1.8,
|
|
910
|
+
odemeYontemleri: ["banka_havalesi", "banka_karti", "kredi_karti", "apple_pay"],
|
|
911
|
+
puan: 4.1,
|
|
912
|
+
duzenleme: {
|
|
913
|
+
lisanslar: ["FCA", "FinCEN", "ASIC", "FINTRAC"],
|
|
914
|
+
duzenleyiciUlkeler: ["GB", "US", "AU", "CA"]
|
|
915
|
+
}
|
|
916
|
+
};
|
|
917
|
+
|
|
918
|
+
// src/saglayicilar/revolut.ts
|
|
919
|
+
var revolut = {
|
|
920
|
+
id: "revolut",
|
|
921
|
+
ad: "Revolut",
|
|
922
|
+
webSitesi: "https://www.revolut.com",
|
|
923
|
+
kurulusYili: 2015,
|
|
924
|
+
merkezUlke: "GB",
|
|
925
|
+
aciklama: "Dijital bankac\u0131l\u0131k ve para transferi platformu. Hafta i\xE7i piyasa kurlar\u0131yla transfer imkan\u0131, hafta sonlar\u0131 ek marj uygulan\u0131r.",
|
|
926
|
+
gonderenUlkeler: [
|
|
927
|
+
"TR",
|
|
928
|
+
"US",
|
|
929
|
+
"GB",
|
|
930
|
+
"DE",
|
|
931
|
+
"FR",
|
|
932
|
+
"NL",
|
|
933
|
+
"BE",
|
|
934
|
+
"AT",
|
|
935
|
+
"CH",
|
|
936
|
+
"SE",
|
|
937
|
+
"NO",
|
|
938
|
+
"DK",
|
|
939
|
+
"FI",
|
|
940
|
+
"IT",
|
|
941
|
+
"ES",
|
|
942
|
+
"PT",
|
|
943
|
+
"PL",
|
|
944
|
+
"CZ",
|
|
945
|
+
"HU",
|
|
946
|
+
"RO",
|
|
947
|
+
"BG",
|
|
948
|
+
"HR",
|
|
949
|
+
"IE",
|
|
950
|
+
"SG",
|
|
951
|
+
"AU",
|
|
952
|
+
"JP"
|
|
953
|
+
],
|
|
954
|
+
aliciUlkeler: [
|
|
955
|
+
"TR",
|
|
956
|
+
"US",
|
|
957
|
+
"GB",
|
|
958
|
+
"DE",
|
|
959
|
+
"FR",
|
|
960
|
+
"NL",
|
|
961
|
+
"BE",
|
|
962
|
+
"AT",
|
|
963
|
+
"CH",
|
|
964
|
+
"SE",
|
|
965
|
+
"NO",
|
|
966
|
+
"DK",
|
|
967
|
+
"FI",
|
|
968
|
+
"IT",
|
|
969
|
+
"ES",
|
|
970
|
+
"PT",
|
|
971
|
+
"PL",
|
|
972
|
+
"CZ",
|
|
973
|
+
"HU",
|
|
974
|
+
"RO",
|
|
975
|
+
"BG",
|
|
976
|
+
"HR",
|
|
977
|
+
"IE",
|
|
978
|
+
"CA",
|
|
979
|
+
"AU",
|
|
980
|
+
"NZ",
|
|
981
|
+
"JP",
|
|
982
|
+
"SG",
|
|
983
|
+
"IN",
|
|
984
|
+
"TH",
|
|
985
|
+
"AE",
|
|
986
|
+
"SA",
|
|
987
|
+
"ZA",
|
|
988
|
+
"MX",
|
|
989
|
+
"BR"
|
|
990
|
+
],
|
|
991
|
+
gonderenParaBirimleri: [
|
|
992
|
+
"TRY",
|
|
993
|
+
"USD",
|
|
994
|
+
"EUR",
|
|
995
|
+
"GBP",
|
|
996
|
+
"CHF",
|
|
997
|
+
"SEK",
|
|
998
|
+
"NOK",
|
|
999
|
+
"DKK",
|
|
1000
|
+
"PLN",
|
|
1001
|
+
"CZK",
|
|
1002
|
+
"HUF",
|
|
1003
|
+
"RON",
|
|
1004
|
+
"BGN",
|
|
1005
|
+
"SGD",
|
|
1006
|
+
"AUD",
|
|
1007
|
+
"JPY"
|
|
1008
|
+
],
|
|
1009
|
+
aliciParaBirimleri: [
|
|
1010
|
+
"TRY",
|
|
1011
|
+
"USD",
|
|
1012
|
+
"EUR",
|
|
1013
|
+
"GBP",
|
|
1014
|
+
"CHF",
|
|
1015
|
+
"SEK",
|
|
1016
|
+
"NOK",
|
|
1017
|
+
"DKK",
|
|
1018
|
+
"PLN",
|
|
1019
|
+
"CZK",
|
|
1020
|
+
"HUF",
|
|
1021
|
+
"RON",
|
|
1022
|
+
"BGN",
|
|
1023
|
+
"CAD",
|
|
1024
|
+
"AUD",
|
|
1025
|
+
"NZD",
|
|
1026
|
+
"JPY",
|
|
1027
|
+
"SGD",
|
|
1028
|
+
"INR",
|
|
1029
|
+
"THB",
|
|
1030
|
+
"AED",
|
|
1031
|
+
"SAR",
|
|
1032
|
+
"ZAR",
|
|
1033
|
+
"MXN",
|
|
1034
|
+
"BRL"
|
|
1035
|
+
],
|
|
1036
|
+
ucretYapisi: {
|
|
1037
|
+
sabitUcret: 0,
|
|
1038
|
+
sabitUcretParaBirimi: "USD",
|
|
1039
|
+
yuzdeUcret: 0.5,
|
|
1040
|
+
minimumUcret: 0,
|
|
1041
|
+
maksimumUcret: 0,
|
|
1042
|
+
aciklama: "Standart hesap: ayl\u0131k \xFCcretsiz limit \xFCzeri %0.5. Premium/Metal: s\u0131n\u0131rs\u0131z \xFCcretsiz. Hafta sonu ek %1 marj.",
|
|
1043
|
+
koridorUcretleri: {
|
|
1044
|
+
"TR_US": { yuzdeUcret: 0.5 },
|
|
1045
|
+
"TR_DE": { yuzdeUcret: 0.5 },
|
|
1046
|
+
"TR_GB": { yuzdeUcret: 0.5 }
|
|
1047
|
+
}
|
|
1048
|
+
},
|
|
1049
|
+
transferYontemleri: [
|
|
1050
|
+
{ tip: "banka_havalesi", ad: "Banka Havalesi (SWIFT)", desteklenenUlkeler: [] },
|
|
1051
|
+
{ tip: "kart", ad: "Revolut Hesab\u0131na Transfer", desteklenenUlkeler: [] }
|
|
1052
|
+
],
|
|
1053
|
+
transferHizlari: [
|
|
1054
|
+
{
|
|
1055
|
+
yontem: "banka_havalesi",
|
|
1056
|
+
minimumSaat: 12,
|
|
1057
|
+
maksimumSaat: 72,
|
|
1058
|
+
aciklama: "12 saat - 3 i\u015F g\xFCn\xFC (SWIFT)"
|
|
1059
|
+
},
|
|
1060
|
+
{
|
|
1061
|
+
yontem: "kart",
|
|
1062
|
+
minimumSaat: 0.01,
|
|
1063
|
+
maksimumSaat: 0.1,
|
|
1064
|
+
aciklama: "Revolut aras\u0131: anl\u0131k"
|
|
1065
|
+
}
|
|
1066
|
+
],
|
|
1067
|
+
limitler: {
|
|
1068
|
+
minimumGonderim: 1,
|
|
1069
|
+
maksimumGonderim: 25e4,
|
|
1070
|
+
paraBirimi: "USD",
|
|
1071
|
+
gunlukLimit: 25e4
|
|
1072
|
+
},
|
|
1073
|
+
kurMarjiYuzde: 0.3,
|
|
1074
|
+
odemeYontemleri: [
|
|
1075
|
+
"banka_havalesi",
|
|
1076
|
+
"banka_karti",
|
|
1077
|
+
"kredi_karti",
|
|
1078
|
+
"apple_pay",
|
|
1079
|
+
"google_pay",
|
|
1080
|
+
"swift",
|
|
1081
|
+
"sepa"
|
|
1082
|
+
],
|
|
1083
|
+
puan: 4.5,
|
|
1084
|
+
duzenleme: {
|
|
1085
|
+
lisanslar: ["ECB", "FCA", "FinCEN"],
|
|
1086
|
+
duzenleyiciUlkeler: ["LT", "GB", "US"]
|
|
1087
|
+
}
|
|
1088
|
+
};
|
|
1089
|
+
|
|
1090
|
+
// src/kayit/varsayilan-kayit.ts
|
|
1091
|
+
var varsayilanSaglayicilar = [wise, remitly, xe, ofx, worldremit, revolut];
|
|
1092
|
+
function varsayilanlariYukle() {
|
|
1093
|
+
for (const saglayici of varsayilanSaglayicilar) {
|
|
1094
|
+
varsayilanKayitDefteri.kaydet(saglayici);
|
|
1095
|
+
}
|
|
1096
|
+
}
|
|
1097
|
+
varsayilanlariYukle();
|
|
1098
|
+
|
|
1099
|
+
// src/sabitler.ts
|
|
1100
|
+
var VARSAYILAN_ONBELLEK_SURESI = 1800;
|
|
1101
|
+
var ECB_KUR_URL = "https://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml";
|
|
1102
|
+
var EXCHANGERATE_API_URL = "https://open.er-api.com/v6/latest";
|
|
1103
|
+
var HTTP_ZAMAN_ASIMI = 1e4;
|
|
1104
|
+
|
|
1105
|
+
// src/hatalar.ts
|
|
1106
|
+
var ParaTransferiHatasi = class extends Error {
|
|
1107
|
+
constructor(mesaj, kod) {
|
|
1108
|
+
super(mesaj);
|
|
1109
|
+
this.kod = kod;
|
|
1110
|
+
this.name = "ParaTransferiHatasi";
|
|
1111
|
+
}
|
|
1112
|
+
kod;
|
|
1113
|
+
};
|
|
1114
|
+
var SaglayiciBulunamadiHatasi = class extends ParaTransferiHatasi {
|
|
1115
|
+
constructor(saglayiciId) {
|
|
1116
|
+
super(`Sa\u011Flay\u0131c\u0131 bulunamad\u0131: ${saglayiciId}`, "SAGLAYICI_BULUNAMADI");
|
|
1117
|
+
this.name = "SaglayiciBulunamadiHatasi";
|
|
1118
|
+
}
|
|
1119
|
+
};
|
|
1120
|
+
var KoridorDesteklenmiyorHatasi = class extends ParaTransferiHatasi {
|
|
1121
|
+
constructor(gonderen, alici) {
|
|
1122
|
+
super(
|
|
1123
|
+
`${gonderen} \u2192 ${alici} koridoru desteklenmiyor`,
|
|
1124
|
+
"KORIDOR_DESTEKLENMIYOR"
|
|
1125
|
+
);
|
|
1126
|
+
this.name = "KoridorDesteklenmiyorHatasi";
|
|
1127
|
+
}
|
|
1128
|
+
};
|
|
1129
|
+
var GecersizParametreHatasi = class extends ParaTransferiHatasi {
|
|
1130
|
+
constructor(mesaj) {
|
|
1131
|
+
super(mesaj, "GECERSIZ_PARAMETRE");
|
|
1132
|
+
this.name = "GecersizParametreHatasi";
|
|
1133
|
+
}
|
|
1134
|
+
};
|
|
1135
|
+
var KurGetirmeHatasi = class extends ParaTransferiHatasi {
|
|
1136
|
+
constructor(mesaj) {
|
|
1137
|
+
super(mesaj, "KUR_GETIRME_HATASI");
|
|
1138
|
+
this.name = "KurGetirmeHatasi";
|
|
1139
|
+
}
|
|
1140
|
+
};
|
|
1141
|
+
var LimitAsimiHatasi = class extends ParaTransferiHatasi {
|
|
1142
|
+
constructor(miktar, min, maks, paraBirimi) {
|
|
1143
|
+
super(
|
|
1144
|
+
`Miktar ${miktar} ${paraBirimi}, limit aral\u0131\u011F\u0131 d\u0131\u015F\u0131nda: ${min}-${maks} ${paraBirimi}`,
|
|
1145
|
+
"LIMIT_ASIMI"
|
|
1146
|
+
);
|
|
1147
|
+
this.name = "LimitAsimiHatasi";
|
|
1148
|
+
}
|
|
1149
|
+
};
|
|
1150
|
+
|
|
1151
|
+
// src/yardimcilar/http.ts
|
|
1152
|
+
async function guvenliIstek(url, zamanAsimi = HTTP_ZAMAN_ASIMI) {
|
|
1153
|
+
const controller = new AbortController();
|
|
1154
|
+
const zamanlayici = setTimeout(() => controller.abort(), zamanAsimi);
|
|
1155
|
+
try {
|
|
1156
|
+
const yanit = await fetch(url, { signal: controller.signal });
|
|
1157
|
+
if (!yanit.ok) {
|
|
1158
|
+
throw new Error(`HTTP ${yanit.status}: ${yanit.statusText}`);
|
|
1159
|
+
}
|
|
1160
|
+
return await yanit.text();
|
|
1161
|
+
} finally {
|
|
1162
|
+
clearTimeout(zamanlayici);
|
|
1163
|
+
}
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
// src/cekirdek/kur-getirici.ts
|
|
1167
|
+
var onbellek = /* @__PURE__ */ new Map();
|
|
1168
|
+
var onbellekSuresi = VARSAYILAN_ONBELLEK_SURESI * 1e3;
|
|
1169
|
+
var apiAnahtarlari = {};
|
|
1170
|
+
var kaynakOnceligi = ["ecb", "exchangerate_api"];
|
|
1171
|
+
function kurAyarlariniGuncelle(ayarlar) {
|
|
1172
|
+
if (ayarlar.onbellekSuresi !== void 0) {
|
|
1173
|
+
onbellekSuresi = ayarlar.onbellekSuresi * 1e3;
|
|
1174
|
+
}
|
|
1175
|
+
if (ayarlar.apiAnahtarlari) {
|
|
1176
|
+
apiAnahtarlari = { ...apiAnahtarlari, ...ayarlar.apiAnahtarlari };
|
|
1177
|
+
}
|
|
1178
|
+
if (ayarlar.kaynakOnceligi) {
|
|
1179
|
+
kaynakOnceligi = [...ayarlar.kaynakOnceligi];
|
|
1180
|
+
}
|
|
1181
|
+
}
|
|
1182
|
+
function onbellegiTemizle() {
|
|
1183
|
+
onbellek.clear();
|
|
1184
|
+
}
|
|
1185
|
+
function onbellekAnahtari(kaynak, hedef) {
|
|
1186
|
+
return `${kaynak}_${hedef}`;
|
|
1187
|
+
}
|
|
1188
|
+
function onbellektenAl(kaynak, hedef) {
|
|
1189
|
+
const anahtar = onbellekAnahtari(kaynak, hedef);
|
|
1190
|
+
const kayit = onbellek.get(anahtar);
|
|
1191
|
+
if (!kayit) return null;
|
|
1192
|
+
if (Date.now() - kayit.zamanDamgasi > onbellekSuresi) {
|
|
1193
|
+
onbellek.delete(anahtar);
|
|
1194
|
+
return null;
|
|
1195
|
+
}
|
|
1196
|
+
return kayit;
|
|
1197
|
+
}
|
|
1198
|
+
function onbellekeYaz(kaynak, hedef, kur, kaynakAdi) {
|
|
1199
|
+
onbellek.set(onbellekAnahtari(kaynak, hedef), {
|
|
1200
|
+
kur,
|
|
1201
|
+
kaynak: kaynakAdi,
|
|
1202
|
+
zamanDamgasi: Date.now()
|
|
1203
|
+
});
|
|
1204
|
+
}
|
|
1205
|
+
async function ecbKurlariGetir() {
|
|
1206
|
+
const xml = await guvenliIstek(ECB_KUR_URL);
|
|
1207
|
+
const kurlar = { EUR: 1 };
|
|
1208
|
+
const regex = /currency='([A-Z]+)'\s+rate='([\d.]+)'/g;
|
|
1209
|
+
let eslesme;
|
|
1210
|
+
while ((eslesme = regex.exec(xml)) !== null) {
|
|
1211
|
+
kurlar[eslesme[1]] = parseFloat(eslesme[2]);
|
|
1212
|
+
}
|
|
1213
|
+
return kurlar;
|
|
1214
|
+
}
|
|
1215
|
+
async function exchangerateApiKurGetir(kaynakParaBirimi) {
|
|
1216
|
+
const json = await guvenliIstek(
|
|
1217
|
+
`${EXCHANGERATE_API_URL}/${kaynakParaBirimi}`
|
|
1218
|
+
);
|
|
1219
|
+
const veri = JSON.parse(json);
|
|
1220
|
+
if (veri.result !== "success") {
|
|
1221
|
+
throw new Error(`ExchangeRate API hatas\u0131: ${veri["error-type"] ?? "bilinmeyen"}`);
|
|
1222
|
+
}
|
|
1223
|
+
return veri.rates;
|
|
1224
|
+
}
|
|
1225
|
+
async function ecbIleKurGetir(kaynak, hedef) {
|
|
1226
|
+
const kurlar = await ecbKurlariGetir();
|
|
1227
|
+
if (!kurlar[kaynak] && kaynak !== "EUR") {
|
|
1228
|
+
throw new Error(`ECB kayna\u011F\u0131nda ${kaynak} bulunamad\u0131`);
|
|
1229
|
+
}
|
|
1230
|
+
if (!kurlar[hedef] && hedef !== "EUR") {
|
|
1231
|
+
throw new Error(`ECB kayna\u011F\u0131nda ${hedef} bulunamad\u0131`);
|
|
1232
|
+
}
|
|
1233
|
+
const kaynakEur = kurlar[kaynak] ?? 1;
|
|
1234
|
+
const hedefEur = kurlar[hedef] ?? 1;
|
|
1235
|
+
return hedefEur / kaynakEur;
|
|
1236
|
+
}
|
|
1237
|
+
async function exchangerateApiIleKurGetir(kaynak, hedef) {
|
|
1238
|
+
const kurlar = await exchangerateApiKurGetir(kaynak);
|
|
1239
|
+
if (!kurlar[hedef]) {
|
|
1240
|
+
throw new Error(`ExchangeRate API'de ${hedef} bulunamad\u0131`);
|
|
1241
|
+
}
|
|
1242
|
+
return kurlar[hedef];
|
|
1243
|
+
}
|
|
1244
|
+
async function dovizKuruGetir(kaynakParaBirimi, hedefParaBirimi) {
|
|
1245
|
+
const kaynak = kaynakParaBirimi.toUpperCase();
|
|
1246
|
+
const hedef = hedefParaBirimi.toUpperCase();
|
|
1247
|
+
if (kaynak === hedef) {
|
|
1248
|
+
return {
|
|
1249
|
+
kaynak: "sabit",
|
|
1250
|
+
kaynakParaBirimi: kaynak,
|
|
1251
|
+
hedefParaBirimi: hedef,
|
|
1252
|
+
kur: 1,
|
|
1253
|
+
tarih: (/* @__PURE__ */ new Date()).toISOString().split("T")[0],
|
|
1254
|
+
zamanDamgasi: (/* @__PURE__ */ new Date()).toISOString()
|
|
1255
|
+
};
|
|
1256
|
+
}
|
|
1257
|
+
const onbellekSonuc = onbellektenAl(kaynak, hedef);
|
|
1258
|
+
if (onbellekSonuc) {
|
|
1259
|
+
return {
|
|
1260
|
+
kaynak: onbellekSonuc.kaynak,
|
|
1261
|
+
kaynakParaBirimi: kaynak,
|
|
1262
|
+
hedefParaBirimi: hedef,
|
|
1263
|
+
kur: onbellekSonuc.kur,
|
|
1264
|
+
tarih: (/* @__PURE__ */ new Date()).toISOString().split("T")[0],
|
|
1265
|
+
zamanDamgasi: new Date(onbellekSonuc.zamanDamgasi).toISOString()
|
|
1266
|
+
};
|
|
1267
|
+
}
|
|
1268
|
+
const kaynaklar = {
|
|
1269
|
+
ecb: () => ecbIleKurGetir(kaynak, hedef),
|
|
1270
|
+
exchangerate_api: () => exchangerateApiIleKurGetir(kaynak, hedef)
|
|
1271
|
+
};
|
|
1272
|
+
const hatalar = [];
|
|
1273
|
+
for (const kaynakAdi of kaynakOnceligi) {
|
|
1274
|
+
const getirici = kaynaklar[kaynakAdi];
|
|
1275
|
+
if (!getirici) continue;
|
|
1276
|
+
try {
|
|
1277
|
+
const kur = await getirici();
|
|
1278
|
+
onbellekeYaz(kaynak, hedef, kur, kaynakAdi);
|
|
1279
|
+
return {
|
|
1280
|
+
kaynak: kaynakAdi,
|
|
1281
|
+
kaynakParaBirimi: kaynak,
|
|
1282
|
+
hedefParaBirimi: hedef,
|
|
1283
|
+
kur,
|
|
1284
|
+
tarih: (/* @__PURE__ */ new Date()).toISOString().split("T")[0],
|
|
1285
|
+
zamanDamgasi: (/* @__PURE__ */ new Date()).toISOString()
|
|
1286
|
+
};
|
|
1287
|
+
} catch (hata) {
|
|
1288
|
+
hatalar.push(
|
|
1289
|
+
`${kaynakAdi}: ${hata instanceof Error ? hata.message : String(hata)}`
|
|
1290
|
+
);
|
|
1291
|
+
}
|
|
1292
|
+
}
|
|
1293
|
+
throw new KurGetirmeHatasi(
|
|
1294
|
+
`D\xF6viz kuru al\u0131namad\u0131 (${kaynak}/${hedef}). Denenen kaynaklar:
|
|
1295
|
+
${hatalar.join("\n")}`
|
|
1296
|
+
);
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1299
|
+
// src/cekirdek/maliyet-hesaplayici.ts
|
|
1300
|
+
function koridorUcretGetir(saglayici, gonderenUlke, aliciUlke) {
|
|
1301
|
+
const koridorAnahtar = `${gonderenUlke}_${aliciUlke}`;
|
|
1302
|
+
const koridorUcret = saglayici.ucretYapisi.koridorUcretleri?.[koridorAnahtar];
|
|
1303
|
+
if (koridorUcret) {
|
|
1304
|
+
return { ...saglayici.ucretYapisi, ...koridorUcret };
|
|
1305
|
+
}
|
|
1306
|
+
return saglayici.ucretYapisi;
|
|
1307
|
+
}
|
|
1308
|
+
function koridorKurMarjiGetir(saglayici, gonderenUlke, aliciUlke) {
|
|
1309
|
+
if (!saglayici.ozelKoridorlar) return saglayici.kurMarjiYuzde;
|
|
1310
|
+
const ozelKoridor = saglayici.ozelKoridorlar.find(
|
|
1311
|
+
(k) => k.gonderenUlke === gonderenUlke && k.aliciUlke === aliciUlke
|
|
1312
|
+
);
|
|
1313
|
+
return ozelKoridor?.ozelKurMarji ?? saglayici.kurMarjiYuzde;
|
|
1314
|
+
}
|
|
1315
|
+
function maliyetHesapla(saglayici, miktar, gonderenUlke, aliciUlke, gonderenParaBirimi, aliciParaBirimi, piyasaKuru) {
|
|
1316
|
+
const ucret = koridorUcretGetir(saglayici, gonderenUlke, aliciUlke);
|
|
1317
|
+
const kurMarji = koridorKurMarjiGetir(saglayici, gonderenUlke, aliciUlke);
|
|
1318
|
+
let transferUcreti = ucret.sabitUcret + miktar * ucret.yuzdeUcret / 100;
|
|
1319
|
+
if (ucret.minimumUcret > 0) {
|
|
1320
|
+
transferUcreti = Math.max(transferUcreti, ucret.minimumUcret);
|
|
1321
|
+
}
|
|
1322
|
+
if (ucret.maksimumUcret > 0) {
|
|
1323
|
+
transferUcreti = Math.min(transferUcreti, ucret.maksimumUcret);
|
|
1324
|
+
}
|
|
1325
|
+
const uyguladigiKur = piyasaKuru * (1 - kurMarji / 100);
|
|
1326
|
+
const kurMarjiMaliyet = miktar * (kurMarji / 100);
|
|
1327
|
+
const gonderilecekMiktar = miktar - transferUcreti;
|
|
1328
|
+
const aliciMiktar = gonderilecekMiktar * uyguladigiKur;
|
|
1329
|
+
const toplamMaliyet = transferUcreti + kurMarjiMaliyet;
|
|
1330
|
+
const hiz = saglayici.transferHizlari[0];
|
|
1331
|
+
return {
|
|
1332
|
+
saglayiciId: saglayici.id,
|
|
1333
|
+
saglayiciAd: saglayici.ad,
|
|
1334
|
+
gonderenMiktar: miktar,
|
|
1335
|
+
gonderenParaBirimi,
|
|
1336
|
+
aliciMiktar: Math.round(aliciMiktar * 100) / 100,
|
|
1337
|
+
aliciParaBirimi,
|
|
1338
|
+
uyguladigiKur,
|
|
1339
|
+
piyasaKuru,
|
|
1340
|
+
kurMarjiYuzde: kurMarji,
|
|
1341
|
+
kurMarjiMaliyet: Math.round(kurMarjiMaliyet * 100) / 100,
|
|
1342
|
+
transferUcreti: Math.round(transferUcreti * 100) / 100,
|
|
1343
|
+
toplamMaliyet: Math.round(toplamMaliyet * 100) / 100,
|
|
1344
|
+
tahminiSure: hiz ? {
|
|
1345
|
+
min: hiz.minimumSaat,
|
|
1346
|
+
maks: hiz.maksimumSaat,
|
|
1347
|
+
aciklama: hiz.aciklama
|
|
1348
|
+
} : { min: 24, maks: 72, aciklama: "1-3 i\u015F g\xFCn\xFC" },
|
|
1349
|
+
odemeYontemleri: saglayici.odemeYontemleri,
|
|
1350
|
+
puan: saglayici.puan
|
|
1351
|
+
};
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1354
|
+
// src/veri/ulkeler.ts
|
|
1355
|
+
var ulkeler = {
|
|
1356
|
+
TR: { ad: "T\xFCrkiye", paraBirimi: "TRY", telefonKodu: "+90" },
|
|
1357
|
+
US: { ad: "Amerika Birle\u015Fik Devletleri", paraBirimi: "USD", telefonKodu: "+1" },
|
|
1358
|
+
GB: { ad: "Birle\u015Fik Krall\u0131k", paraBirimi: "GBP", telefonKodu: "+44" },
|
|
1359
|
+
DE: { ad: "Almanya", paraBirimi: "EUR", telefonKodu: "+49" },
|
|
1360
|
+
FR: { ad: "Fransa", paraBirimi: "EUR", telefonKodu: "+33" },
|
|
1361
|
+
NL: { ad: "Hollanda", paraBirimi: "EUR", telefonKodu: "+31" },
|
|
1362
|
+
BE: { ad: "Bel\xE7ika", paraBirimi: "EUR", telefonKodu: "+32" },
|
|
1363
|
+
AT: { ad: "Avusturya", paraBirimi: "EUR", telefonKodu: "+43" },
|
|
1364
|
+
CH: { ad: "\u0130svi\xE7re", paraBirimi: "CHF", telefonKodu: "+41" },
|
|
1365
|
+
SE: { ad: "\u0130sve\xE7", paraBirimi: "SEK", telefonKodu: "+46" },
|
|
1366
|
+
NO: { ad: "Norve\xE7", paraBirimi: "NOK", telefonKodu: "+47" },
|
|
1367
|
+
DK: { ad: "Danimarka", paraBirimi: "DKK", telefonKodu: "+45" },
|
|
1368
|
+
FI: { ad: "Finlandiya", paraBirimi: "EUR", telefonKodu: "+358" },
|
|
1369
|
+
IT: { ad: "\u0130talya", paraBirimi: "EUR", telefonKodu: "+39" },
|
|
1370
|
+
ES: { ad: "\u0130spanya", paraBirimi: "EUR", telefonKodu: "+34" },
|
|
1371
|
+
PT: { ad: "Portekiz", paraBirimi: "EUR", telefonKodu: "+351" },
|
|
1372
|
+
GR: { ad: "Yunanistan", paraBirimi: "EUR", telefonKodu: "+30" },
|
|
1373
|
+
PL: { ad: "Polonya", paraBirimi: "PLN", telefonKodu: "+48" },
|
|
1374
|
+
CZ: { ad: "\xC7ekya", paraBirimi: "CZK", telefonKodu: "+420" },
|
|
1375
|
+
HU: { ad: "Macaristan", paraBirimi: "HUF", telefonKodu: "+36" },
|
|
1376
|
+
RO: { ad: "Romanya", paraBirimi: "RON", telefonKodu: "+40" },
|
|
1377
|
+
BG: { ad: "Bulgaristan", paraBirimi: "BGN", telefonKodu: "+359" },
|
|
1378
|
+
HR: { ad: "H\u0131rvatistan", paraBirimi: "EUR", telefonKodu: "+385" },
|
|
1379
|
+
IE: { ad: "\u0130rlanda", paraBirimi: "EUR", telefonKodu: "+353" },
|
|
1380
|
+
CA: { ad: "Kanada", paraBirimi: "CAD", telefonKodu: "+1" },
|
|
1381
|
+
AU: { ad: "Avustralya", paraBirimi: "AUD", telefonKodu: "+61" },
|
|
1382
|
+
NZ: { ad: "Yeni Zelanda", paraBirimi: "NZD", telefonKodu: "+64" },
|
|
1383
|
+
JP: { ad: "Japonya", paraBirimi: "JPY", telefonKodu: "+81" },
|
|
1384
|
+
CN: { ad: "\xC7in", paraBirimi: "CNY", telefonKodu: "+86" },
|
|
1385
|
+
IN: { ad: "Hindistan", paraBirimi: "INR", telefonKodu: "+91" },
|
|
1386
|
+
PK: { ad: "Pakistan", paraBirimi: "PKR", telefonKodu: "+92" },
|
|
1387
|
+
BD: { ad: "Banglade\u015F", paraBirimi: "BDT", telefonKodu: "+880" },
|
|
1388
|
+
PH: { ad: "Filipinler", paraBirimi: "PHP", telefonKodu: "+63" },
|
|
1389
|
+
MY: { ad: "Malezya", paraBirimi: "MYR", telefonKodu: "+60" },
|
|
1390
|
+
SG: { ad: "Singapur", paraBirimi: "SGD", telefonKodu: "+65" },
|
|
1391
|
+
TH: { ad: "Tayland", paraBirimi: "THB", telefonKodu: "+66" },
|
|
1392
|
+
ID: { ad: "Endonezya", paraBirimi: "IDR", telefonKodu: "+62" },
|
|
1393
|
+
VN: { ad: "Vietnam", paraBirimi: "VND", telefonKodu: "+84" },
|
|
1394
|
+
KR: { ad: "G\xFCney Kore", paraBirimi: "KRW", telefonKodu: "+82" },
|
|
1395
|
+
AE: { ad: "Birle\u015Fik Arap Emirlikleri", paraBirimi: "AED", telefonKodu: "+971" },
|
|
1396
|
+
SA: { ad: "Suudi Arabistan", paraBirimi: "SAR", telefonKodu: "+966" },
|
|
1397
|
+
EG: { ad: "M\u0131s\u0131r", paraBirimi: "EGP", telefonKodu: "+20" },
|
|
1398
|
+
MA: { ad: "Fas", paraBirimi: "MAD", telefonKodu: "+212" },
|
|
1399
|
+
NG: { ad: "Nijerya", paraBirimi: "NGN", telefonKodu: "+234" },
|
|
1400
|
+
GH: { ad: "Gana", paraBirimi: "GHS", telefonKodu: "+233" },
|
|
1401
|
+
KE: { ad: "Kenya", paraBirimi: "KES", telefonKodu: "+254" },
|
|
1402
|
+
ZA: { ad: "G\xFCney Afrika", paraBirimi: "ZAR", telefonKodu: "+27" },
|
|
1403
|
+
BR: { ad: "Brezilya", paraBirimi: "BRL", telefonKodu: "+55" },
|
|
1404
|
+
MX: { ad: "Meksika", paraBirimi: "MXN", telefonKodu: "+52" },
|
|
1405
|
+
CO: { ad: "Kolombiya", paraBirimi: "COP", telefonKodu: "+57" },
|
|
1406
|
+
AR: { ad: "Arjantin", paraBirimi: "ARS", telefonKodu: "+54" },
|
|
1407
|
+
CL: { ad: "\u015Eili", paraBirimi: "CLP", telefonKodu: "+56" },
|
|
1408
|
+
PE: { ad: "Peru", paraBirimi: "PEN", telefonKodu: "+51" },
|
|
1409
|
+
IL: { ad: "\u0130srail", paraBirimi: "ILS", telefonKodu: "+972" },
|
|
1410
|
+
RU: { ad: "Rusya", paraBirimi: "RUB", telefonKodu: "+7" },
|
|
1411
|
+
UA: { ad: "Ukrayna", paraBirimi: "UAH", telefonKodu: "+380" },
|
|
1412
|
+
GE: { ad: "G\xFCrcistan", paraBirimi: "GEL", telefonKodu: "+995" },
|
|
1413
|
+
AZ: { ad: "Azerbaycan", paraBirimi: "AZN", telefonKodu: "+994" }
|
|
1414
|
+
};
|
|
1415
|
+
|
|
1416
|
+
// src/veri/para-birimleri.ts
|
|
1417
|
+
var paraBirimleri = {
|
|
1418
|
+
TRY: { ad: "T\xFCrk Liras\u0131", sembol: "\u20BA", ondalik: 2 },
|
|
1419
|
+
USD: { ad: "Amerikan Dolar\u0131", sembol: "$", ondalik: 2 },
|
|
1420
|
+
EUR: { ad: "Euro", sembol: "\u20AC", ondalik: 2 },
|
|
1421
|
+
GBP: { ad: "\u0130ngiliz Sterlini", sembol: "\xA3", ondalik: 2 },
|
|
1422
|
+
CHF: { ad: "\u0130svi\xE7re Frang\u0131", sembol: "CHF", ondalik: 2 },
|
|
1423
|
+
SEK: { ad: "\u0130sve\xE7 Kronu", sembol: "kr", ondalik: 2 },
|
|
1424
|
+
NOK: { ad: "Norve\xE7 Kronu", sembol: "kr", ondalik: 2 },
|
|
1425
|
+
DKK: { ad: "Danimarka Kronu", sembol: "kr", ondalik: 2 },
|
|
1426
|
+
PLN: { ad: "Polonya Zlotisi", sembol: "z\u0142", ondalik: 2 },
|
|
1427
|
+
CZK: { ad: "\xC7ek Korunas\u0131", sembol: "K\u010D", ondalik: 2 },
|
|
1428
|
+
HUF: { ad: "Macar Forinti", sembol: "Ft", ondalik: 0 },
|
|
1429
|
+
RON: { ad: "Romen Leyi", sembol: "lei", ondalik: 2 },
|
|
1430
|
+
BGN: { ad: "Bulgar Levas\u0131", sembol: "\u043B\u0432", ondalik: 2 },
|
|
1431
|
+
CAD: { ad: "Kanada Dolar\u0131", sembol: "C$", ondalik: 2 },
|
|
1432
|
+
AUD: { ad: "Avustralya Dolar\u0131", sembol: "A$", ondalik: 2 },
|
|
1433
|
+
NZD: { ad: "Yeni Zelanda Dolar\u0131", sembol: "NZ$", ondalik: 2 },
|
|
1434
|
+
JPY: { ad: "Japon Yeni", sembol: "\xA5", ondalik: 0 },
|
|
1435
|
+
CNY: { ad: "\xC7in Yuan\u0131", sembol: "\xA5", ondalik: 2 },
|
|
1436
|
+
INR: { ad: "Hindistan Rupisi", sembol: "\u20B9", ondalik: 2 },
|
|
1437
|
+
PKR: { ad: "Pakistan Rupisi", sembol: "\u20A8", ondalik: 2 },
|
|
1438
|
+
BDT: { ad: "Banglade\u015F Takas\u0131", sembol: "\u09F3", ondalik: 2 },
|
|
1439
|
+
PHP: { ad: "Filipin Pesosu", sembol: "\u20B1", ondalik: 2 },
|
|
1440
|
+
MYR: { ad: "Malezya Ringgiti", sembol: "RM", ondalik: 2 },
|
|
1441
|
+
SGD: { ad: "Singapur Dolar\u0131", sembol: "S$", ondalik: 2 },
|
|
1442
|
+
THB: { ad: "Tayland Baht\u0131", sembol: "\u0E3F", ondalik: 2 },
|
|
1443
|
+
IDR: { ad: "Endonezya Rupisi", sembol: "Rp", ondalik: 0 },
|
|
1444
|
+
VND: { ad: "Vietnam Dongu", sembol: "\u20AB", ondalik: 0 },
|
|
1445
|
+
KRW: { ad: "G\xFCney Kore Wonu", sembol: "\u20A9", ondalik: 0 },
|
|
1446
|
+
AED: { ad: "BAE Dirhemi", sembol: "\u062F.\u0625", ondalik: 2 },
|
|
1447
|
+
SAR: { ad: "Suudi Riyali", sembol: "\uFDFC", ondalik: 2 },
|
|
1448
|
+
EGP: { ad: "M\u0131s\u0131r Liras\u0131", sembol: "E\xA3", ondalik: 2 },
|
|
1449
|
+
MAD: { ad: "Fas Dirhemi", sembol: "MAD", ondalik: 2 },
|
|
1450
|
+
NGN: { ad: "Nijerya Nairas\u0131", sembol: "\u20A6", ondalik: 2 },
|
|
1451
|
+
GHS: { ad: "Gana Sedisi", sembol: "GH\u20B5", ondalik: 2 },
|
|
1452
|
+
KES: { ad: "Kenya \u015Eilini", sembol: "KSh", ondalik: 2 },
|
|
1453
|
+
ZAR: { ad: "G\xFCney Afrika Rand\u0131", sembol: "R", ondalik: 2 },
|
|
1454
|
+
BRL: { ad: "Brezilya Reali", sembol: "R$", ondalik: 2 },
|
|
1455
|
+
MXN: { ad: "Meksika Pesosu", sembol: "Mex$", ondalik: 2 },
|
|
1456
|
+
COP: { ad: "Kolombiya Pesosu", sembol: "COL$", ondalik: 0 },
|
|
1457
|
+
ARS: { ad: "Arjantin Pesosu", sembol: "AR$", ondalik: 2 },
|
|
1458
|
+
CLP: { ad: "\u015Eili Pesosu", sembol: "CLP$", ondalik: 0 },
|
|
1459
|
+
PEN: { ad: "Peru Solu", sembol: "S/.", ondalik: 2 },
|
|
1460
|
+
ILS: { ad: "\u0130srail \u015Eekeli", sembol: "\u20AA", ondalik: 2 },
|
|
1461
|
+
RUB: { ad: "Rus Rublesi", sembol: "\u20BD", ondalik: 2 },
|
|
1462
|
+
UAH: { ad: "Ukrayna Grivnas\u0131", sembol: "\u20B4", ondalik: 2 },
|
|
1463
|
+
GEL: { ad: "G\xFCrcistan Larisi", sembol: "\u20BE", ondalik: 2 },
|
|
1464
|
+
AZN: { ad: "Azerbaycan Manat\u0131", sembol: "\u20BC", ondalik: 2 }
|
|
1465
|
+
};
|
|
1466
|
+
|
|
1467
|
+
// src/yardimcilar/dogrulama.ts
|
|
1468
|
+
function ulkeKoduDogrula(kod) {
|
|
1469
|
+
if (!kod || typeof kod !== "string" || kod.length !== 2) {
|
|
1470
|
+
throw new GecersizParametreHatasi(
|
|
1471
|
+
`Ge\xE7ersiz \xFClke kodu: "${kod}". ISO 3166-1 alpha-2 format\u0131nda olmal\u0131 (\xF6r: "TR", "US")`
|
|
1472
|
+
);
|
|
1473
|
+
}
|
|
1474
|
+
if (!ulkeler[kod.toUpperCase()]) {
|
|
1475
|
+
throw new GecersizParametreHatasi(
|
|
1476
|
+
`Bilinmeyen \xFClke kodu: "${kod}". Desteklenen \xFClkeler i\xE7in desteklenenUlkeler() kullan\u0131n.`
|
|
1477
|
+
);
|
|
1478
|
+
}
|
|
1479
|
+
}
|
|
1480
|
+
function paraBirimiDogrula(kod) {
|
|
1481
|
+
if (!kod || typeof kod !== "string" || kod.length !== 3) {
|
|
1482
|
+
throw new GecersizParametreHatasi(
|
|
1483
|
+
`Ge\xE7ersiz para birimi kodu: "${kod}". ISO 4217 format\u0131nda olmal\u0131 (\xF6r: "TRY", "USD")`
|
|
1484
|
+
);
|
|
1485
|
+
}
|
|
1486
|
+
if (!paraBirimleri[kod.toUpperCase()]) {
|
|
1487
|
+
throw new GecersizParametreHatasi(
|
|
1488
|
+
`Bilinmeyen para birimi: "${kod}". Desteklenen birimler i\xE7in desteklenenParaBirimleri() kullan\u0131n.`
|
|
1489
|
+
);
|
|
1490
|
+
}
|
|
1491
|
+
}
|
|
1492
|
+
function miktarDogrula(miktar) {
|
|
1493
|
+
if (typeof miktar !== "number" || isNaN(miktar)) {
|
|
1494
|
+
throw new GecersizParametreHatasi("Miktar say\u0131sal bir de\u011Fer olmal\u0131d\u0131r");
|
|
1495
|
+
}
|
|
1496
|
+
if (miktar <= 0) {
|
|
1497
|
+
throw new GecersizParametreHatasi("Miktar s\u0131f\u0131rdan b\xFCy\xFCk olmal\u0131d\u0131r");
|
|
1498
|
+
}
|
|
1499
|
+
}
|
|
1500
|
+
|
|
1501
|
+
// src/yardimcilar/formatlama.ts
|
|
1502
|
+
function tarihDamgasi() {
|
|
1503
|
+
return (/* @__PURE__ */ new Date()).toISOString();
|
|
1504
|
+
}
|
|
1505
|
+
|
|
1506
|
+
// src/cekirdek/karsilastirma-motoru.ts
|
|
1507
|
+
function sonuclariSirala(sonuclar, kriter) {
|
|
1508
|
+
const sirali = [...sonuclar];
|
|
1509
|
+
switch (kriter) {
|
|
1510
|
+
case "toplam_maliyet":
|
|
1511
|
+
return sirali.sort((a, b) => a.toplamMaliyet - b.toplamMaliyet);
|
|
1512
|
+
case "hiz":
|
|
1513
|
+
return sirali.sort((a, b) => a.tahminiSure.min - b.tahminiSure.min);
|
|
1514
|
+
case "puan":
|
|
1515
|
+
return sirali.sort((a, b) => b.puan - a.puan);
|
|
1516
|
+
case "kur":
|
|
1517
|
+
return sirali.sort((a, b) => b.uyguladigiKur - a.uyguladigiKur);
|
|
1518
|
+
default:
|
|
1519
|
+
return sirali.sort((a, b) => a.toplamMaliyet - b.toplamMaliyet);
|
|
1520
|
+
}
|
|
1521
|
+
}
|
|
1522
|
+
async function karsilastirmaYap(parametreler) {
|
|
1523
|
+
const {
|
|
1524
|
+
gonderenUlke,
|
|
1525
|
+
aliciUlke,
|
|
1526
|
+
gonderenParaBirimi,
|
|
1527
|
+
aliciParaBirimi,
|
|
1528
|
+
miktar,
|
|
1529
|
+
siralamaKriteri = "toplam_maliyet",
|
|
1530
|
+
saglayiciFiltresi,
|
|
1531
|
+
transferYontemi
|
|
1532
|
+
} = parametreler;
|
|
1533
|
+
ulkeKoduDogrula(gonderenUlke);
|
|
1534
|
+
ulkeKoduDogrula(aliciUlke);
|
|
1535
|
+
paraBirimiDogrula(gonderenParaBirimi);
|
|
1536
|
+
paraBirimiDogrula(aliciParaBirimi);
|
|
1537
|
+
miktarDogrula(miktar);
|
|
1538
|
+
const kurBilgisi = await dovizKuruGetir(gonderenParaBirimi, aliciParaBirimi);
|
|
1539
|
+
let tumSaglayicilar = varsayilanKayitDefteri.tumunuGetir();
|
|
1540
|
+
if (saglayiciFiltresi && saglayiciFiltresi.length > 0) {
|
|
1541
|
+
tumSaglayicilar = tumSaglayicilar.filter(
|
|
1542
|
+
(s) => saglayiciFiltresi.includes(s.id)
|
|
1543
|
+
);
|
|
1544
|
+
}
|
|
1545
|
+
const sonuclar = [];
|
|
1546
|
+
const desteklemeyenler = [];
|
|
1547
|
+
for (const saglayici of tumSaglayicilar) {
|
|
1548
|
+
if (!saglayici.gonderenUlkeler.includes(gonderenUlke.toUpperCase())) {
|
|
1549
|
+
desteklemeyenler.push({
|
|
1550
|
+
saglayiciId: saglayici.id,
|
|
1551
|
+
sebep: `${gonderenUlke} g\xF6nderen \xFClke olarak desteklenmiyor`
|
|
1552
|
+
});
|
|
1553
|
+
continue;
|
|
1554
|
+
}
|
|
1555
|
+
if (!saglayici.aliciUlkeler.includes(aliciUlke.toUpperCase())) {
|
|
1556
|
+
desteklemeyenler.push({
|
|
1557
|
+
saglayiciId: saglayici.id,
|
|
1558
|
+
sebep: `${aliciUlke} al\u0131c\u0131 \xFClke olarak desteklenmiyor`
|
|
1559
|
+
});
|
|
1560
|
+
continue;
|
|
1561
|
+
}
|
|
1562
|
+
if (!saglayici.gonderenParaBirimleri.includes(
|
|
1563
|
+
gonderenParaBirimi.toUpperCase()
|
|
1564
|
+
)) {
|
|
1565
|
+
desteklemeyenler.push({
|
|
1566
|
+
saglayiciId: saglayici.id,
|
|
1567
|
+
sebep: `${gonderenParaBirimi} g\xF6nderen para birimi olarak desteklenmiyor`
|
|
1568
|
+
});
|
|
1569
|
+
continue;
|
|
1570
|
+
}
|
|
1571
|
+
if (!saglayici.aliciParaBirimleri.includes(aliciParaBirimi.toUpperCase())) {
|
|
1572
|
+
desteklemeyenler.push({
|
|
1573
|
+
saglayiciId: saglayici.id,
|
|
1574
|
+
sebep: `${aliciParaBirimi} al\u0131c\u0131 para birimi olarak desteklenmiyor`
|
|
1575
|
+
});
|
|
1576
|
+
continue;
|
|
1577
|
+
}
|
|
1578
|
+
if (transferYontemi) {
|
|
1579
|
+
const destekleniyor = saglayici.transferYontemleri.some(
|
|
1580
|
+
(y) => y.tip === transferYontemi
|
|
1581
|
+
);
|
|
1582
|
+
if (!destekleniyor) {
|
|
1583
|
+
desteklemeyenler.push({
|
|
1584
|
+
saglayiciId: saglayici.id,
|
|
1585
|
+
sebep: `${transferYontemi} transfer y\xF6ntemi desteklenmiyor`
|
|
1586
|
+
});
|
|
1587
|
+
continue;
|
|
1588
|
+
}
|
|
1589
|
+
}
|
|
1590
|
+
if (miktar < saglayici.limitler.minimumGonderim || miktar > saglayici.limitler.maksimumGonderim) {
|
|
1591
|
+
desteklemeyenler.push({
|
|
1592
|
+
saglayiciId: saglayici.id,
|
|
1593
|
+
sebep: `Miktar limit d\u0131\u015F\u0131nda (${saglayici.limitler.minimumGonderim}-${saglayici.limitler.maksimumGonderim} ${saglayici.limitler.paraBirimi})`
|
|
1594
|
+
});
|
|
1595
|
+
continue;
|
|
1596
|
+
}
|
|
1597
|
+
const sonuc = maliyetHesapla(
|
|
1598
|
+
saglayici,
|
|
1599
|
+
miktar,
|
|
1600
|
+
gonderenUlke.toUpperCase(),
|
|
1601
|
+
aliciUlke.toUpperCase(),
|
|
1602
|
+
gonderenParaBirimi.toUpperCase(),
|
|
1603
|
+
aliciParaBirimi.toUpperCase(),
|
|
1604
|
+
kurBilgisi.kur
|
|
1605
|
+
);
|
|
1606
|
+
sonuclar.push(sonuc);
|
|
1607
|
+
}
|
|
1608
|
+
return {
|
|
1609
|
+
sorgu: parametreler,
|
|
1610
|
+
zamanDamgasi: tarihDamgasi(),
|
|
1611
|
+
piyasaKuru: kurBilgisi.kur,
|
|
1612
|
+
kurKaynagi: kurBilgisi.kaynak,
|
|
1613
|
+
sonuclar: sonuclariSirala(sonuclar, siralamaKriteri),
|
|
1614
|
+
desteklemeyenler
|
|
1615
|
+
};
|
|
1616
|
+
}
|
|
1617
|
+
|
|
1618
|
+
// src/cekirdek/ulke-kontrol.ts
|
|
1619
|
+
function ulkeDestegiKontrol(ulkeKodu) {
|
|
1620
|
+
const kod = ulkeKodu.toUpperCase();
|
|
1621
|
+
const ulke = ulkeler[kod];
|
|
1622
|
+
const tumSaglayicilar = varsayilanKayitDefteri.tumunuGetir();
|
|
1623
|
+
const destekleyenler = tumSaglayicilar.map((s) => {
|
|
1624
|
+
const gonderimVar = s.gonderenUlkeler.includes(kod);
|
|
1625
|
+
const alimVar = s.aliciUlkeler.includes(kod);
|
|
1626
|
+
if (!gonderimVar && !alimVar) return null;
|
|
1627
|
+
const paraBirimleri2 = /* @__PURE__ */ new Set();
|
|
1628
|
+
if (gonderimVar) {
|
|
1629
|
+
s.gonderenParaBirimleri.forEach((p) => paraBirimleri2.add(p));
|
|
1630
|
+
}
|
|
1631
|
+
if (alimVar) {
|
|
1632
|
+
s.aliciParaBirimleri.forEach((p) => paraBirimleri2.add(p));
|
|
1633
|
+
}
|
|
1634
|
+
return {
|
|
1635
|
+
saglayiciId: s.id,
|
|
1636
|
+
gonderimVar,
|
|
1637
|
+
alimVar,
|
|
1638
|
+
paraBirimleri: Array.from(paraBirimleri2)
|
|
1639
|
+
};
|
|
1640
|
+
}).filter((d) => d !== null);
|
|
1641
|
+
return {
|
|
1642
|
+
ulkeKodu: kod,
|
|
1643
|
+
ulkeAdi: ulke?.ad ?? kod,
|
|
1644
|
+
gonderimDestekleniyor: destekleyenler.some((d) => d.gonderimVar),
|
|
1645
|
+
alimDestekleniyor: destekleyenler.some((d) => d.alimVar),
|
|
1646
|
+
destekleyenSaglayicilar: destekleyenler
|
|
1647
|
+
};
|
|
1648
|
+
}
|
|
1649
|
+
function desteklenenUlkeleriGetir() {
|
|
1650
|
+
const tumSaglayicilar = varsayilanKayitDefteri.tumunuGetir();
|
|
1651
|
+
const ulkeKodlari = /* @__PURE__ */ new Set();
|
|
1652
|
+
for (const s of tumSaglayicilar) {
|
|
1653
|
+
s.gonderenUlkeler.forEach((u) => ulkeKodlari.add(u));
|
|
1654
|
+
s.aliciUlkeler.forEach((u) => ulkeKodlari.add(u));
|
|
1655
|
+
}
|
|
1656
|
+
return Array.from(ulkeKodlari).sort().map((kod) => ({
|
|
1657
|
+
kod,
|
|
1658
|
+
ad: ulkeler[kod]?.ad ?? kod
|
|
1659
|
+
}));
|
|
1660
|
+
}
|
|
1661
|
+
|
|
1662
|
+
// src/index.ts
|
|
1663
|
+
async function karsilastir(parametreler) {
|
|
1664
|
+
return karsilastirmaYap(parametreler);
|
|
1665
|
+
}
|
|
1666
|
+
async function hesapla(saglayiciId, miktar, gonderenParaBirimi, aliciParaBirimi, gonderenUlke = "TR", aliciUlke = "US") {
|
|
1667
|
+
miktarDogrula(miktar);
|
|
1668
|
+
paraBirimiDogrula(gonderenParaBirimi);
|
|
1669
|
+
paraBirimiDogrula(aliciParaBirimi);
|
|
1670
|
+
const saglayici = varsayilanKayitDefteri.getir(saglayiciId);
|
|
1671
|
+
if (!saglayici) {
|
|
1672
|
+
throw new SaglayiciBulunamadiHatasi(saglayiciId);
|
|
1673
|
+
}
|
|
1674
|
+
const kurBilgisi = await dovizKuruGetir(gonderenParaBirimi, aliciParaBirimi);
|
|
1675
|
+
return maliyetHesapla(
|
|
1676
|
+
saglayici,
|
|
1677
|
+
miktar,
|
|
1678
|
+
gonderenUlke.toUpperCase(),
|
|
1679
|
+
aliciUlke.toUpperCase(),
|
|
1680
|
+
gonderenParaBirimi.toUpperCase(),
|
|
1681
|
+
aliciParaBirimi.toUpperCase(),
|
|
1682
|
+
kurBilgisi.kur
|
|
1683
|
+
);
|
|
1684
|
+
}
|
|
1685
|
+
async function kurGetir(kaynakParaBirimi, hedefParaBirimi) {
|
|
1686
|
+
paraBirimiDogrula(kaynakParaBirimi);
|
|
1687
|
+
paraBirimiDogrula(hedefParaBirimi);
|
|
1688
|
+
return dovizKuruGetir(kaynakParaBirimi, hedefParaBirimi);
|
|
1689
|
+
}
|
|
1690
|
+
function saglayicilar() {
|
|
1691
|
+
return varsayilanKayitDefteri.tumunuGetir();
|
|
1692
|
+
}
|
|
1693
|
+
function saglayiciEkle(saglayici) {
|
|
1694
|
+
varsayilanKayitDefteri.kaydet(saglayici);
|
|
1695
|
+
}
|
|
1696
|
+
function saglayiciKaldir(id) {
|
|
1697
|
+
return varsayilanKayitDefteri.kaldir(id);
|
|
1698
|
+
}
|
|
1699
|
+
async function enUygun(parametreler) {
|
|
1700
|
+
const sonuc = await karsilastirmaYap({
|
|
1701
|
+
...parametreler,
|
|
1702
|
+
siralamaKriteri: "toplam_maliyet"
|
|
1703
|
+
});
|
|
1704
|
+
return sonuc.sonuclar[0] ?? null;
|
|
1705
|
+
}
|
|
1706
|
+
function ulkeDestegi(ulkeKodu) {
|
|
1707
|
+
ulkeKoduDogrula(ulkeKodu);
|
|
1708
|
+
return ulkeDestegiKontrol(ulkeKodu);
|
|
1709
|
+
}
|
|
1710
|
+
function sifirla() {
|
|
1711
|
+
varsayilanKayitDefteri.temizle();
|
|
1712
|
+
onbellegiTemizle();
|
|
1713
|
+
varsayilanlariYukle();
|
|
1714
|
+
}
|
|
1715
|
+
function kurAyarla(ayarlar) {
|
|
1716
|
+
kurAyarlariniGuncelle(ayarlar);
|
|
1717
|
+
}
|
|
1718
|
+
function desteklenenUlkeler() {
|
|
1719
|
+
return desteklenenUlkeleriGetir();
|
|
1720
|
+
}
|
|
1721
|
+
function desteklenenParaBirimleri() {
|
|
1722
|
+
return Object.entries(paraBirimleri).map(([kod, bilgi]) => ({
|
|
1723
|
+
kod,
|
|
1724
|
+
ad: bilgi.ad,
|
|
1725
|
+
sembol: bilgi.sembol
|
|
1726
|
+
}));
|
|
1727
|
+
}
|
|
1728
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
1729
|
+
0 && (module.exports = {
|
|
1730
|
+
GecersizParametreHatasi,
|
|
1731
|
+
KoridorDesteklenmiyorHatasi,
|
|
1732
|
+
KurGetirmeHatasi,
|
|
1733
|
+
LimitAsimiHatasi,
|
|
1734
|
+
ParaTransferiHatasi,
|
|
1735
|
+
SaglayiciBulunamadiHatasi,
|
|
1736
|
+
desteklenenParaBirimleri,
|
|
1737
|
+
desteklenenUlkeler,
|
|
1738
|
+
enUygun,
|
|
1739
|
+
hesapla,
|
|
1740
|
+
karsilastir,
|
|
1741
|
+
kurAyarla,
|
|
1742
|
+
kurGetir,
|
|
1743
|
+
saglayiciEkle,
|
|
1744
|
+
saglayiciKaldir,
|
|
1745
|
+
saglayicilar,
|
|
1746
|
+
sifirla,
|
|
1747
|
+
ulkeDestegi
|
|
1748
|
+
});
|