yokatlas-api-wrapper 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 +238 -0
- package/dist/index.d.mts +450 -0
- package/dist/index.d.ts +450 -0
- package/dist/index.js +827 -0
- package/dist/index.mjs +786 -0
- package/package.json +43 -0
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,450 @@
|
|
|
1
|
+
/** Puan türleri (sınav kategorisi). */
|
|
2
|
+
type PuanTuru = "SAY" | "SÖZ" | "EA" | "DİL" | "TYT";
|
|
3
|
+
/** Üniversite türü. */
|
|
4
|
+
type UniversiteTuru = "DEVLET" | "VAKIF" | "VAKIF MYO";
|
|
5
|
+
/** Birim (program) türü — LİSANS ya da ÖNLİSANS. API "ÖNLISANS" gönderir, bu kütüphane "ONLISANS" olarak normalize eder. */
|
|
6
|
+
type BirimTuru = "LISANS" | "ONLISANS";
|
|
7
|
+
interface University {
|
|
8
|
+
universiteId: number;
|
|
9
|
+
universiteAdi: string;
|
|
10
|
+
}
|
|
11
|
+
interface ProgramGroup {
|
|
12
|
+
birimGrupId: number;
|
|
13
|
+
birimGrupAdi: string;
|
|
14
|
+
puanTuru: string;
|
|
15
|
+
}
|
|
16
|
+
interface City {
|
|
17
|
+
ilKodu: number;
|
|
18
|
+
ilAdi: string;
|
|
19
|
+
}
|
|
20
|
+
/** Tek bir yıla ait kontenjan/kadro/puan/sıra/KPSS istatistikleri. */
|
|
21
|
+
interface YearlyStats {
|
|
22
|
+
year: number;
|
|
23
|
+
kontenjan: number | null;
|
|
24
|
+
/** Genel kontenjandan yerleşen (gkY). */
|
|
25
|
+
yerlesen: number | null;
|
|
26
|
+
kontenjanObs: number | null;
|
|
27
|
+
kontenjanY34: number | null;
|
|
28
|
+
prof: number | null;
|
|
29
|
+
doc: number | null;
|
|
30
|
+
dou: number | null;
|
|
31
|
+
ogrGor: number | null;
|
|
32
|
+
arGor: number | null;
|
|
33
|
+
kpss1: number | null;
|
|
34
|
+
kpss2: number | null;
|
|
35
|
+
minPuan: number | null;
|
|
36
|
+
basariSirasi: number | null;
|
|
37
|
+
}
|
|
38
|
+
/** `/api/tercih-kilavuz/search` endpoint'inden dönen tek bir program satırı. */
|
|
39
|
+
interface Program {
|
|
40
|
+
osymKilavuzId: number | null;
|
|
41
|
+
sinav: string | null;
|
|
42
|
+
yil: number;
|
|
43
|
+
donem: string | null;
|
|
44
|
+
tabloTuru: string | null;
|
|
45
|
+
birimId: number | null;
|
|
46
|
+
birimHiyerarsi: string | null;
|
|
47
|
+
kilavuzKodu: number;
|
|
48
|
+
universiteId: number;
|
|
49
|
+
universiteAdi: string;
|
|
50
|
+
uniIlKodu: number | null;
|
|
51
|
+
uniIlAdi: string | null;
|
|
52
|
+
uniIlceKodu: number | null;
|
|
53
|
+
uniIlceAdi: string | null;
|
|
54
|
+
fymkId: number | null;
|
|
55
|
+
fymkAdi: string | null;
|
|
56
|
+
fymkIlKodu: number | null;
|
|
57
|
+
fymkIlAdi: string | null;
|
|
58
|
+
fymkIlceKodu: number | null;
|
|
59
|
+
fymkIlceAdi: string | null;
|
|
60
|
+
birimAdi: string;
|
|
61
|
+
birimGrupId: number | null;
|
|
62
|
+
birimGrupAdi: string | null;
|
|
63
|
+
birimTuruId: number | null;
|
|
64
|
+
birimTuruAdi: BirimTuru;
|
|
65
|
+
ogrenimTuruId: number | null;
|
|
66
|
+
ogrenimTuruAdi: string | null;
|
|
67
|
+
ogrenimSuresi: number | null;
|
|
68
|
+
puanTuru: string;
|
|
69
|
+
ogrenimDiliId: number | null;
|
|
70
|
+
ogrenimDiliAdi: string | null;
|
|
71
|
+
bursOraniId: number | null;
|
|
72
|
+
bursOraniAdi: string | null;
|
|
73
|
+
ilKodu: number | null;
|
|
74
|
+
ilAdi: string | null;
|
|
75
|
+
ilceKodu: number | null;
|
|
76
|
+
ilceAdi: string | null;
|
|
77
|
+
universiteTuru: UniversiteTuru;
|
|
78
|
+
/** En güncel yılın istatistikleri. */
|
|
79
|
+
current: YearlyStats;
|
|
80
|
+
/** Önceki 3 yıl (yeni → eski). */
|
|
81
|
+
history: YearlyStats[];
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Net Sihirbazı sonucu — bir program/üniversite/yıl için son yerleşen
|
|
85
|
+
* kişinin TYT/AYT/YDT net sayıları (`/api/netler/search`).
|
|
86
|
+
*
|
|
87
|
+
* Hangi `*Net` alanlarının dolu geleceği `puanTuru`'ye bağlıdır: TYT alanları
|
|
88
|
+
* her zaman gelir; SAY `aytMat/Fiz/Kim/BioNet` ekler; SÖZ `aytTde/Trh1/Cog1/
|
|
89
|
+
* Trh2/Cog2/Fel/DinNet` ekler; EA ikisinin bir alt kümesini ekler; DİL
|
|
90
|
+
* `ydtYdilNet` ekler.
|
|
91
|
+
*/
|
|
92
|
+
interface Net {
|
|
93
|
+
yil: number;
|
|
94
|
+
kilavuzKodu: number;
|
|
95
|
+
puanTuru: string;
|
|
96
|
+
katsayi: number | null;
|
|
97
|
+
tabanPuan: number | null;
|
|
98
|
+
obp: number | null;
|
|
99
|
+
tytTrkNet: number | null;
|
|
100
|
+
tytSosNet: number | null;
|
|
101
|
+
tytMatNet: number | null;
|
|
102
|
+
tytFenNet: number | null;
|
|
103
|
+
aytMatNet: number | null;
|
|
104
|
+
aytFizNet: number | null;
|
|
105
|
+
aytKimNet: number | null;
|
|
106
|
+
aytBioNet: number | null;
|
|
107
|
+
aytTdeNet: number | null;
|
|
108
|
+
aytTrh1Net: number | null;
|
|
109
|
+
aytCog1Net: number | null;
|
|
110
|
+
aytTrh2Net: number | null;
|
|
111
|
+
aytCog2Net: number | null;
|
|
112
|
+
aytFelNet: number | null;
|
|
113
|
+
aytDinNet: number | null;
|
|
114
|
+
ydtYdilNet: number | null;
|
|
115
|
+
universiteId: number;
|
|
116
|
+
universiteAdi: string;
|
|
117
|
+
birimGrupId: number | null;
|
|
118
|
+
birimGrupAdi: string | null;
|
|
119
|
+
birimId: number | null;
|
|
120
|
+
birimAdi: string;
|
|
121
|
+
birimTuruId: number | null;
|
|
122
|
+
birimTuruAdi: BirimTuru;
|
|
123
|
+
universiteTuru: UniversiteTuru;
|
|
124
|
+
}
|
|
125
|
+
/** Spring-tarzı sayfalanmış sonuç zarfı. */
|
|
126
|
+
interface SearchPage<T> {
|
|
127
|
+
content: T[];
|
|
128
|
+
totalElements: number;
|
|
129
|
+
totalPages: number;
|
|
130
|
+
size: number;
|
|
131
|
+
number: number;
|
|
132
|
+
first: boolean;
|
|
133
|
+
last: boolean;
|
|
134
|
+
numberOfElements: number;
|
|
135
|
+
empty: boolean;
|
|
136
|
+
yil?: number | null;
|
|
137
|
+
source?: string | null;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* `YokAtlas.search()` tarafından kabul edilen filtreler.
|
|
141
|
+
*
|
|
142
|
+
* *Akıllı* (string) alanlar (`universite`, `program`, `il`) `smartSearch`
|
|
143
|
+
* açıkken (varsayılan) istek anında ID karşılıklarına çözülür. ID
|
|
144
|
+
* alanlarıyla (`universiteId`, `birimGrupId`, `ilKodu`) aynı anda verilemez.
|
|
145
|
+
*/
|
|
146
|
+
interface SearchFilters {
|
|
147
|
+
puanTuru?: PuanTuru | null;
|
|
148
|
+
universiteId?: number[] | null;
|
|
149
|
+
birimGrupId?: number[] | null;
|
|
150
|
+
ilKodu?: number[] | null;
|
|
151
|
+
/** 46 = LİSANS, 47 = ÖNLİSANS. Bkz. {@link BIRIM_TURU}. */
|
|
152
|
+
birimTuruId?: number | null;
|
|
153
|
+
universiteTuru?: "DEVLET" | "VAKIF" | null;
|
|
154
|
+
/** 0 = Ücretsiz/Burslu. */
|
|
155
|
+
bursOraniId?: number | null;
|
|
156
|
+
ogrenimTuruId?: number | null;
|
|
157
|
+
kilavuzKodu?: number | null;
|
|
158
|
+
minBasariSirasi?: number | null;
|
|
159
|
+
maxBasariSirasi?: number | null;
|
|
160
|
+
/** Akıllı alan — serbest yazım, fuzzy eşleşir (örn. "boğaziçi"). */
|
|
161
|
+
universite?: string | string[] | null;
|
|
162
|
+
/** Akıllı alan — serbest yazım, fuzzy eşleşir (örn. "bilgisayar mühendisliği"). */
|
|
163
|
+
program?: string | string[] | null;
|
|
164
|
+
/** Akıllı alan — serbest yazım, fuzzy eşleşir (örn. "ankara"). */
|
|
165
|
+
il?: string | string[] | null;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* `YokAtlas.searchNetler()` tarafından kabul edilen filtreler.
|
|
169
|
+
*
|
|
170
|
+
* {@link SearchFilters}'in aksine `universiteId`/`birimGrupId` *tekildir* —
|
|
171
|
+
* Net Sihirbazı endpoint'i liste kabul etmez.
|
|
172
|
+
*/
|
|
173
|
+
interface NetFilters {
|
|
174
|
+
puanTuru?: PuanTuru | null;
|
|
175
|
+
universiteId?: number | null;
|
|
176
|
+
birimGrupId?: number | null;
|
|
177
|
+
birimTuruId?: number | null;
|
|
178
|
+
universiteTuru?: "DEVLET" | "VAKIF" | null;
|
|
179
|
+
yil?: number | null;
|
|
180
|
+
katsayi?: number | null;
|
|
181
|
+
universite?: string | null;
|
|
182
|
+
program?: string | null;
|
|
183
|
+
}
|
|
184
|
+
interface SearchOptions {
|
|
185
|
+
page?: number;
|
|
186
|
+
size?: number;
|
|
187
|
+
sortBy?: string;
|
|
188
|
+
direction?: "ASC" | "DESC";
|
|
189
|
+
/** Akıllı (string) filtreleri otomatik ID'ye çözer. Varsayılan: true. */
|
|
190
|
+
smartSearch?: boolean;
|
|
191
|
+
signal?: AbortSignal;
|
|
192
|
+
}
|
|
193
|
+
interface NetSearchOptions {
|
|
194
|
+
page?: number;
|
|
195
|
+
size?: number;
|
|
196
|
+
smartSearch?: boolean;
|
|
197
|
+
signal?: AbortSignal;
|
|
198
|
+
}
|
|
199
|
+
/** {@link YokAtlas.searchAllPages} için seçenekler. */
|
|
200
|
+
interface SearchAllPagesOptions extends Omit<SearchOptions, "page"> {
|
|
201
|
+
/** Sayfa başına kaç kayıt çekileceği. Varsayılan: 100. */
|
|
202
|
+
pageSize?: number;
|
|
203
|
+
/** En fazla kaç sayfa gezileceği (güvenlik sınırı). Varsayılan: 50. */
|
|
204
|
+
maxPages?: number;
|
|
205
|
+
}
|
|
206
|
+
/** Kullanıcının başarı sırasına göre bir programa yerleşme olasılığı tahmini. */
|
|
207
|
+
interface AdmissionEstimate {
|
|
208
|
+
program: Program;
|
|
209
|
+
/** Kullanıcının kendi başarı sırası. */
|
|
210
|
+
basariSirasi: number;
|
|
211
|
+
/** Programın güncel yıl kesme başarı sırası. */
|
|
212
|
+
cutoffBasariSirasi: number | null;
|
|
213
|
+
verdict: "kesine yakın" | "olası" | "sınırda" | "zayıf" | "belirsiz";
|
|
214
|
+
/** Kullanıcı sırası ile kesme sırası arasındaki fark (negatif = kullanıcı daha iyi sırada). */
|
|
215
|
+
margin: number | null;
|
|
216
|
+
message: string;
|
|
217
|
+
}
|
|
218
|
+
/** İki program arasındaki karşılaştırma sonucu. */
|
|
219
|
+
interface ProgramComparison {
|
|
220
|
+
a: Program;
|
|
221
|
+
b: Program;
|
|
222
|
+
/** Hangisinin güncel başarı sırası daha iyi (küçük) — o daha rekabetçidir. */
|
|
223
|
+
moreCompetitive: "a" | "b" | "eşit" | "belirsiz";
|
|
224
|
+
scoreDiff: number | null;
|
|
225
|
+
quotaDiff: number | null;
|
|
226
|
+
}
|
|
227
|
+
/** Bir programın yıllar içindeki başarı sırası eğilimi. */
|
|
228
|
+
interface ProgramTrend {
|
|
229
|
+
program: Program;
|
|
230
|
+
direction: "yükseliyor" | "düşüyor" | "sabit" | "belirsiz";
|
|
231
|
+
/** Eskiden yeniye başarı sıraları (null'lar atlanır). */
|
|
232
|
+
series: {
|
|
233
|
+
year: number;
|
|
234
|
+
basariSirasi: number | null;
|
|
235
|
+
}[];
|
|
236
|
+
message: string;
|
|
237
|
+
}
|
|
238
|
+
interface LookupCacheStatus {
|
|
239
|
+
cached: boolean;
|
|
240
|
+
fetchedAt: number | null;
|
|
241
|
+
ageMs: number | null;
|
|
242
|
+
ttlMs: number;
|
|
243
|
+
universiteSayisi: number;
|
|
244
|
+
programGrubuSayisi: number;
|
|
245
|
+
ilSayisi: number;
|
|
246
|
+
}
|
|
247
|
+
interface YokAtlasConfig {
|
|
248
|
+
baseUrl?: string;
|
|
249
|
+
/** HTTP istek zaman aşımı (ms). Varsayılan: 30000. */
|
|
250
|
+
timeoutMs?: number;
|
|
251
|
+
userAgent?: string;
|
|
252
|
+
/** Ağ hatalarında (bağlantı kopması vb.) kaç kez yeniden denenir. Varsayılan: 2. */
|
|
253
|
+
maxRetries?: number;
|
|
254
|
+
/** Üniversite/program/il lookup önbelleğinin ömrü (ms). Varsayılan: 3600000 (1 saat). 0 = sonsuz. */
|
|
255
|
+
lookupCacheTtlMs?: number;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* YÖK Atlas tercih kılavuzu JSON API'si için statik istemci.
|
|
260
|
+
*
|
|
261
|
+
* Tüm metotlar `static`'tir — örnekleme gerekmez, doğrudan `YokAtlas.search(...)`
|
|
262
|
+
* gibi çağırılır. Üniversite/program/il lookup tabloları süreç içi (in-process)
|
|
263
|
+
* bir TTL önbellekte tutulur ve akıllı arama (`universite`, `program`, `il`
|
|
264
|
+
* serbest metin filtreleri) için otomatik olarak kullanılır.
|
|
265
|
+
*/
|
|
266
|
+
declare class YokAtlas {
|
|
267
|
+
private static baseUrl;
|
|
268
|
+
private static timeoutMs;
|
|
269
|
+
private static userAgent;
|
|
270
|
+
private static maxRetries;
|
|
271
|
+
private static lookupCacheTtlMs;
|
|
272
|
+
private static lookupCache;
|
|
273
|
+
private constructor();
|
|
274
|
+
/** İstemcinin temel URL'sini, zaman aşımını, User-Agent'ını, retry ve önbellek ayarlarını değiştirir. */
|
|
275
|
+
static configure(config: YokAtlasConfig): void;
|
|
276
|
+
/** YÖK Atlas tercih kılavuzunda program arar. */
|
|
277
|
+
static search(filters?: SearchFilters, options?: SearchOptions): Promise<SearchPage<Program>>;
|
|
278
|
+
/** Net Sihirbazı'nı sorgular: son yerleşen kişinin TYT/AYT/YDT netleri. */
|
|
279
|
+
static searchNetler(filters?: NetFilters, options?: NetSearchOptions): Promise<SearchPage<Net>>;
|
|
280
|
+
/** Tek bir programı ÖSYM kılavuz kodundan getirir; bulunamazsa `null` döner. */
|
|
281
|
+
static getProgram(kilavuzKodu: number | string, signal?: AbortSignal): Promise<Program | null>;
|
|
282
|
+
/**
|
|
283
|
+
* Birden çok programı kılavuz koduyla, sınırlı eşzamanlılıkla getirir.
|
|
284
|
+
* Her kod bağımsız çözülür — biri başarısız olursa diğerlerini etkilemez.
|
|
285
|
+
*/
|
|
286
|
+
static getPrograms(kilavuzKodlari: (number | string)[], options?: {
|
|
287
|
+
concurrency?: number;
|
|
288
|
+
signal?: AbortSignal;
|
|
289
|
+
}): Promise<{
|
|
290
|
+
kilavuzKodu: number | string;
|
|
291
|
+
status: "fulfilled" | "rejected";
|
|
292
|
+
program?: Program | null;
|
|
293
|
+
reason?: unknown;
|
|
294
|
+
}[]>;
|
|
295
|
+
/**
|
|
296
|
+
* `search()`'ü sayfa sayfa dolaşıp tüm sonuçları düz bir diziye toplar.
|
|
297
|
+
* `maxPages` güvenlik sınırına takılırsa erken durur.
|
|
298
|
+
*/
|
|
299
|
+
static searchAllPages(filters?: SearchFilters, options?: SearchAllPagesOptions): Promise<Program[]>;
|
|
300
|
+
/** Tüm üniversiteleri (ID + ad) döner. */
|
|
301
|
+
static listUniversities(signal?: AbortSignal): Promise<University[]>;
|
|
302
|
+
/** Tüm program gruplarını (ID + ad + puan türü) döner. */
|
|
303
|
+
static listProgramGroups(signal?: AbortSignal): Promise<ProgramGroup[]>;
|
|
304
|
+
/** Tüm illeri (kod + ad) döner. */
|
|
305
|
+
static listCities(signal?: AbortSignal): Promise<City[]>;
|
|
306
|
+
/** Lookup önbelleğini zorla yeniler. */
|
|
307
|
+
static refreshLookups(signal?: AbortSignal): Promise<void>;
|
|
308
|
+
/** Lookup önbelleğini boşaltır (bir sonraki çağrıda yeniden çekilir). */
|
|
309
|
+
static clearCache(): void;
|
|
310
|
+
/** Lookup önbelleğinin durumunu (dolu mu, ne zaman çekildi, kaç kayıt var) döner. */
|
|
311
|
+
static getCacheStatus(): LookupCacheStatus;
|
|
312
|
+
/** Serbest yazılmış bir üniversite adını fuzzy eşleştirerek {@link University} kaydına çözer. */
|
|
313
|
+
static findUniversity(name: string, signal?: AbortSignal): Promise<University>;
|
|
314
|
+
/** Serbest yazılmış bir program adını fuzzy eşleştirerek {@link ProgramGroup} kaydına çözer. */
|
|
315
|
+
static findProgramGroup(name: string, signal?: AbortSignal): Promise<ProgramGroup>;
|
|
316
|
+
/** Serbest yazılmış bir il adını fuzzy eşleştirerek {@link City} kaydına çözer. */
|
|
317
|
+
static findCity(name: string, signal?: AbortSignal): Promise<City>;
|
|
318
|
+
/** Belirli bir üniversitenin (serbest yazım) tüm programlarını arar. */
|
|
319
|
+
static searchByUniversity(universiteAdi: string, filters?: Omit<SearchFilters, "universite">, options?: SearchOptions): Promise<SearchPage<Program>>;
|
|
320
|
+
/** Belirli bir program grubunu (serbest yazım) tüm üniversitelerde arar. */
|
|
321
|
+
static searchByProgram(programAdi: string, filters?: Omit<SearchFilters, "program">, options?: SearchOptions): Promise<SearchPage<Program>>;
|
|
322
|
+
/** Belirli bir ildeki (serbest yazım) tüm programları arar. */
|
|
323
|
+
static searchByCity(ilAdi: string, filters?: Omit<SearchFilters, "il">, options?: SearchOptions): Promise<SearchPage<Program>>;
|
|
324
|
+
/** Sadece lisans (4 yıllık) programlarını arar. */
|
|
325
|
+
static searchLisans(filters?: Omit<SearchFilters, "birimTuruId">, options?: SearchOptions): Promise<SearchPage<Program>>;
|
|
326
|
+
/** Sadece ön lisans (2 yıllık) programlarını arar. */
|
|
327
|
+
static searchOnlisans(filters?: Omit<SearchFilters, "birimTuruId">, options?: SearchOptions): Promise<SearchPage<Program>>;
|
|
328
|
+
/** Sadece ücretsiz/tam burslu programları arar. */
|
|
329
|
+
static searchBurslu(filters?: Omit<SearchFilters, "bursOraniId">, options?: SearchOptions): Promise<SearchPage<Program>>;
|
|
330
|
+
/** Belirli bir başarı sırası aralığındaki programları arar (`minBasariSirasi`/`maxBasariSirasi` kısayolu). */
|
|
331
|
+
static searchByScoreRange(range: {
|
|
332
|
+
min?: number;
|
|
333
|
+
max?: number;
|
|
334
|
+
}, filters?: Omit<SearchFilters, "minBasariSirasi" | "maxBasariSirasi">, options?: SearchOptions): Promise<SearchPage<Program>>;
|
|
335
|
+
/**
|
|
336
|
+
* Kullanıcının kendi başarı sırasını, bir programın güncel yıl kesme
|
|
337
|
+
* sırasıyla karşılaştırarak kaba bir yerleşme tahmini üretir. Sıra ne
|
|
338
|
+
* kadar küçükse o kadar iyi bir konumdur (1. sıra en iyisidir).
|
|
339
|
+
*/
|
|
340
|
+
static estimateAdmission(program: Program, basariSirasi: number): AdmissionEstimate;
|
|
341
|
+
/** İki programı güncel yıl rekabet düzeyi (başarı sırası) ve kontenjan açısından karşılaştırır. */
|
|
342
|
+
static compare(a: Program, b: Program): ProgramComparison;
|
|
343
|
+
/**
|
|
344
|
+
* Bir programın `history` + `current` verisindeki başarı sırası dizisine
|
|
345
|
+
* bakarak eğilimini ("yükseliyor"/"düşüyor"/"sabit") kestirir. Başarı
|
|
346
|
+
* sırasının küçülmesi programın *daha* rekabetçi hale geldiği anlamına gelir.
|
|
347
|
+
*/
|
|
348
|
+
static getTrend(program: Program): ProgramTrend;
|
|
349
|
+
/** Bir program dizisini, verilen anahtar fonksiyonuna göre gruplar. */
|
|
350
|
+
static groupBy<K extends string | number>(programs: Program[], keyFn: (p: Program) => K): Record<K, Program[]>;
|
|
351
|
+
/** Bir program dizisini güncel yıl başarı sırasına göre sıralar (varsayılan: küçükten büyüğe / en iyi önce). */
|
|
352
|
+
static sortByScore(programs: Program[], direction?: "asc" | "desc"): Program[];
|
|
353
|
+
/** Bir programı tek satırlık okunur bir özet metnine çevirir (log/konsol için). */
|
|
354
|
+
static formatSummary(program: Program): string;
|
|
355
|
+
private static ensureLookups;
|
|
356
|
+
private static fetchLookups;
|
|
357
|
+
private static resolveSmartFilters;
|
|
358
|
+
private static resolveNetSmartFilters;
|
|
359
|
+
private static normalizePuanTuru;
|
|
360
|
+
private static filtersToPayload;
|
|
361
|
+
private static netFiltersToPayload;
|
|
362
|
+
private static toSearchPage;
|
|
363
|
+
private static normalizeOnlisansSpelling;
|
|
364
|
+
private static toNumber;
|
|
365
|
+
private static buildYearlyStats;
|
|
366
|
+
private static buildProgram;
|
|
367
|
+
private static buildNet;
|
|
368
|
+
private static getJson;
|
|
369
|
+
private static postJson;
|
|
370
|
+
private static request;
|
|
371
|
+
private static handleResponse;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
/**
|
|
375
|
+
* Bu kütüphanenin fırlattığı tüm hataların temel sınıfı.
|
|
376
|
+
*/
|
|
377
|
+
declare class YokAtlasError extends Error {
|
|
378
|
+
constructor(message: string);
|
|
379
|
+
}
|
|
380
|
+
/**
|
|
381
|
+
* Çağıranın verdiği bir parametre geçersiz olduğunda fırlatılır (örn. boş kılavuz kodu).
|
|
382
|
+
*/
|
|
383
|
+
declare class YokAtlasValidationError extends YokAtlasError {
|
|
384
|
+
constructor(message: string);
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* YÖK Atlas API isteği ağ/HTTP seviyesinde başarısız olduğunda fırlatılır
|
|
388
|
+
* (bağlantı hatası, HTTP hata kodu, ayrıştırılamayan yanıt vb.).
|
|
389
|
+
*/
|
|
390
|
+
declare class YokAtlasAPIError extends YokAtlasError {
|
|
391
|
+
readonly status?: number;
|
|
392
|
+
readonly body?: string;
|
|
393
|
+
readonly cause?: unknown;
|
|
394
|
+
constructor(message: string, options?: {
|
|
395
|
+
status?: number;
|
|
396
|
+
body?: string;
|
|
397
|
+
cause?: unknown;
|
|
398
|
+
});
|
|
399
|
+
}
|
|
400
|
+
/** İstenen kaynak (örn. kılavuz kodu) bulunamadığında fırlatılır. */
|
|
401
|
+
declare class YokAtlasNotFoundError extends YokAtlasAPIError {
|
|
402
|
+
constructor(message: string, options?: {
|
|
403
|
+
status?: number;
|
|
404
|
+
body?: string;
|
|
405
|
+
});
|
|
406
|
+
}
|
|
407
|
+
/** API oran sınırlama (rate limit) durum kodu döndürdüğünde fırlatılır. */
|
|
408
|
+
declare class YokAtlasRateLimitError extends YokAtlasAPIError {
|
|
409
|
+
constructor(message: string, options?: {
|
|
410
|
+
status?: number;
|
|
411
|
+
body?: string;
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Akıllı arama (üniversite/program/il isim çözümü) bir sonuca ulaşamadığında fırlatılır.
|
|
416
|
+
*/
|
|
417
|
+
declare class YokAtlasLookupError extends YokAtlasError {
|
|
418
|
+
readonly query: string;
|
|
419
|
+
readonly kind: "üniversite" | "program" | "il";
|
|
420
|
+
readonly suggestions: string[];
|
|
421
|
+
constructor(query: string, options: {
|
|
422
|
+
kind: "üniversite" | "program" | "il";
|
|
423
|
+
suggestions?: string[];
|
|
424
|
+
});
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
/** `birimTuruId` filtre değerleri. */
|
|
428
|
+
declare const BIRIM_TURU: {
|
|
429
|
+
readonly LISANS: 46;
|
|
430
|
+
readonly ONLISANS: 47;
|
|
431
|
+
};
|
|
432
|
+
/** `bursOraniId` sık kullanılan değerler. */
|
|
433
|
+
declare const BURS_ORANI: {
|
|
434
|
+
/** Ücretsiz / tam burslu. */
|
|
435
|
+
readonly UCRETSIZ: 0;
|
|
436
|
+
};
|
|
437
|
+
/** `puanTuru` kısaltmalarının okunur Türkçe karşılıkları. */
|
|
438
|
+
declare const PUAN_TURU_ETIKETLERI: Record<string, string>;
|
|
439
|
+
/** `birimTuruAdi` değerlerinin okunur Türkçe karşılıkları. */
|
|
440
|
+
declare const BIRIM_TURU_ETIKETLERI: Record<string, string>;
|
|
441
|
+
/** `universiteTuru` değerlerinin okunur Türkçe karşılıkları. */
|
|
442
|
+
declare const UNIVERSITE_TURU_ETIKETLERI: Record<string, string>;
|
|
443
|
+
/** Verilen puan türü kodunu okunur Türkçe etikete çevirir; bilinmiyorsa kodu olduğu gibi döner. */
|
|
444
|
+
declare function getPuanTuruLabel(puanTuru: string | null | undefined): string;
|
|
445
|
+
/** Verilen birim türü kodunu okunur Türkçe etikete çevirir; bilinmiyorsa kodu olduğu gibi döner. */
|
|
446
|
+
declare function getBirimTuruLabel(birimTuruAdi: string | null | undefined): string;
|
|
447
|
+
/** Verilen üniversite türü kodunu okunur Türkçe etikete çevirir; bilinmiyorsa kodu olduğu gibi döner. */
|
|
448
|
+
declare function getUniversiteTuruLabel(universiteTuru: string | null | undefined): string;
|
|
449
|
+
|
|
450
|
+
export { type AdmissionEstimate, BIRIM_TURU, BIRIM_TURU_ETIKETLERI, BURS_ORANI, type BirimTuru, type City, type LookupCacheStatus, type Net, type NetFilters, type NetSearchOptions, PUAN_TURU_ETIKETLERI, type Program, type ProgramComparison, type ProgramGroup, type ProgramTrend, type PuanTuru, type SearchAllPagesOptions, type SearchFilters, type SearchOptions, type SearchPage, UNIVERSITE_TURU_ETIKETLERI, type UniversiteTuru, type University, type YearlyStats, YokAtlas, YokAtlasAPIError, type YokAtlasConfig, YokAtlasError, YokAtlasLookupError, YokAtlasNotFoundError, YokAtlasRateLimitError, YokAtlasValidationError, YokAtlas as default, getBirimTuruLabel, getPuanTuruLabel, getUniversiteTuruLabel };
|