reddy-api-srm 1.0.11 → 1.1.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.
Files changed (121) hide show
  1. package/dist/src/auth/login.d.ts +14 -0
  2. package/dist/src/auth/login.d.ts.map +1 -0
  3. package/dist/src/auth/login.js +96 -0
  4. package/dist/src/auth/login.js.map +1 -0
  5. package/dist/src/auth/sessionSeed.d.ts +7 -0
  6. package/dist/src/auth/sessionSeed.d.ts.map +1 -0
  7. package/dist/src/auth/sessionSeed.js +40 -0
  8. package/dist/src/auth/sessionSeed.js.map +1 -0
  9. package/dist/src/auth/terminateSessions.d.ts +9 -24
  10. package/dist/src/auth/terminateSessions.d.ts.map +1 -0
  11. package/dist/src/auth/terminateSessions.js +99 -100
  12. package/dist/src/auth/terminateSessions.js.map +1 -0
  13. package/dist/src/auth/validatePassword.d.ts +1 -1
  14. package/dist/src/auth/validatePassword.d.ts.map +1 -1
  15. package/dist/src/auth/validatePassword.js +138 -87
  16. package/dist/src/auth/validatePassword.js.map +1 -1
  17. package/dist/src/auth/validateUser.d.ts +1 -1
  18. package/dist/src/auth/validateUser.d.ts.map +1 -1
  19. package/dist/src/auth/validateUser.js +14 -40
  20. package/dist/src/auth/validateUser.js.map +1 -1
  21. package/dist/src/fetch/fetchAttendance.d.ts +5 -1
  22. package/dist/src/fetch/fetchAttendance.d.ts.map +1 -1
  23. package/dist/src/fetch/fetchAttendance.js +3 -33
  24. package/dist/src/fetch/fetchAttendance.js.map +1 -1
  25. package/dist/src/fetch/fetchCalender.d.ts +5 -1
  26. package/dist/src/fetch/fetchCalender.d.ts.map +1 -1
  27. package/dist/src/fetch/fetchCalender.js +4 -37
  28. package/dist/src/fetch/fetchCalender.js.map +1 -1
  29. package/dist/src/fetch/fetchCourseDetails.d.ts +5 -1
  30. package/dist/src/fetch/fetchCourseDetails.d.ts.map +1 -1
  31. package/dist/src/fetch/fetchCourseDetails.js +5 -40
  32. package/dist/src/fetch/fetchCourseDetails.js.map +1 -1
  33. package/dist/src/fetch/fetchDayOrder.d.ts +5 -1
  34. package/dist/src/fetch/fetchDayOrder.d.ts.map +1 -1
  35. package/dist/src/fetch/fetchDayOrder.js +3 -33
  36. package/dist/src/fetch/fetchDayOrder.js.map +1 -1
  37. package/dist/src/fetch/fetchLogout.d.ts +2 -4
  38. package/dist/src/fetch/fetchLogout.d.ts.map +1 -1
  39. package/dist/src/fetch/fetchLogout.js +15 -9
  40. package/dist/src/fetch/fetchLogout.js.map +1 -1
  41. package/dist/src/fetch/fetchMarks.d.ts +5 -1
  42. package/dist/src/fetch/fetchMarks.d.ts.map +1 -1
  43. package/dist/src/fetch/fetchMarks.js +4 -33
  44. package/dist/src/fetch/fetchMarks.js.map +1 -1
  45. package/dist/src/fetch/fetchPage.d.ts +6 -0
  46. package/dist/src/fetch/fetchPage.d.ts.map +1 -0
  47. package/dist/src/fetch/fetchPage.js +58 -0
  48. package/dist/src/fetch/fetchPage.js.map +1 -0
  49. package/dist/src/fetch/fetchTimetable.d.ts +5 -1
  50. package/dist/src/fetch/fetchTimetable.d.ts.map +1 -1
  51. package/dist/src/fetch/fetchTimetable.js +5 -40
  52. package/dist/src/fetch/fetchTimetable.js.map +1 -1
  53. package/dist/src/fetch/fetchUserInfo.d.ts +5 -1
  54. package/dist/src/fetch/fetchUserInfo.d.ts.map +1 -1
  55. package/dist/src/fetch/fetchUserInfo.js +6 -35
  56. package/dist/src/fetch/fetchUserInfo.js.map +1 -1
  57. package/dist/src/index.d.ts +39 -5
  58. package/dist/src/index.d.ts.map +1 -1
  59. package/dist/src/index.js +86 -33
  60. package/dist/src/index.js.map +1 -1
  61. package/dist/src/parser/decodeHtml.d.ts +6 -0
  62. package/dist/src/parser/decodeHtml.d.ts.map +1 -0
  63. package/dist/src/parser/decodeHtml.js +18 -0
  64. package/dist/src/parser/decodeHtml.js.map +1 -0
  65. package/dist/src/parser/parseAttendance.d.ts +2 -2
  66. package/dist/src/parser/parseAttendance.d.ts.map +1 -1
  67. package/dist/src/parser/parseAttendance.js +68 -16
  68. package/dist/src/parser/parseAttendance.js.map +1 -1
  69. package/dist/src/parser/parseCalender.d.ts +2 -2
  70. package/dist/src/parser/parseCalender.d.ts.map +1 -1
  71. package/dist/src/parser/parseCalender.js +125 -43
  72. package/dist/src/parser/parseCalender.js.map +1 -1
  73. package/dist/src/parser/parseCourse.d.ts +2 -2
  74. package/dist/src/parser/parseCourse.d.ts.map +1 -1
  75. package/dist/src/parser/parseCourse.js +19 -8
  76. package/dist/src/parser/parseCourse.js.map +1 -1
  77. package/dist/src/parser/parseDayOrder.d.ts +2 -2
  78. package/dist/src/parser/parseDayOrder.d.ts.map +1 -1
  79. package/dist/src/parser/parseDayOrder.js +31 -12
  80. package/dist/src/parser/parseDayOrder.js.map +1 -1
  81. package/dist/src/parser/parseMarks.d.ts +2 -2
  82. package/dist/src/parser/parseMarks.d.ts.map +1 -1
  83. package/dist/src/parser/parseMarks.js +23 -11
  84. package/dist/src/parser/parseMarks.js.map +1 -1
  85. package/dist/src/parser/parseTimetable.d.ts +2 -2
  86. package/dist/src/parser/parseTimetable.d.ts.map +1 -1
  87. package/dist/src/parser/parseTimetable.js +51 -27
  88. package/dist/src/parser/parseTimetable.js.map +1 -1
  89. package/dist/src/parser/parseUserInfo.d.ts +2 -2
  90. package/dist/src/parser/parseUserInfo.d.ts.map +1 -1
  91. package/dist/src/parser/parseUserInfo.js +57 -25
  92. package/dist/src/parser/parseUserInfo.js.map +1 -1
  93. package/dist/src/type/attendance.d.ts +5 -5
  94. package/dist/src/type/attendance.d.ts.map +1 -1
  95. package/dist/src/type/auth.d.ts +33 -5
  96. package/dist/src/type/auth.d.ts.map +1 -1
  97. package/dist/src/type/calendar.d.ts.map +1 -1
  98. package/dist/src/type/common.d.ts.map +1 -1
  99. package/dist/src/type/course.d.ts.map +1 -1
  100. package/dist/src/type/dayOrder.d.ts.map +1 -1
  101. package/dist/src/type/index.d.ts +0 -1
  102. package/dist/src/type/index.d.ts.map +1 -1
  103. package/dist/src/type/index.js +0 -1
  104. package/dist/src/type/index.js.map +1 -1
  105. package/dist/src/type/marks.d.ts.map +1 -1
  106. package/dist/src/type/timetable.d.ts.map +1 -1
  107. package/dist/src/type/user.d.ts +1 -0
  108. package/dist/src/type/user.d.ts.map +1 -1
  109. package/dist/src/utils/attendanceStatus.d.ts +8 -0
  110. package/dist/src/utils/attendanceStatus.d.ts.map +1 -0
  111. package/dist/src/utils/attendanceStatus.js +20 -0
  112. package/dist/src/utils/attendanceStatus.js.map +1 -0
  113. package/dist/src/utils/data.d.ts +11 -0
  114. package/dist/src/utils/data.d.ts.map +1 -0
  115. package/dist/src/utils/data.js +36 -0
  116. package/dist/src/utils/data.js.map +1 -0
  117. package/dist/src/utils/dynamicUrl.d.ts +14 -0
  118. package/dist/src/utils/dynamicUrl.d.ts.map +1 -0
  119. package/dist/src/utils/dynamicUrl.js +105 -0
  120. package/dist/src/utils/dynamicUrl.js.map +1 -0
  121. package/package.json +2 -2
@@ -35,24 +35,44 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.parseTimetable = parseTimetable;
37
37
  const cheerio = __importStar(require("cheerio"));
38
- const data_1 = require("../../utils/data");
38
+ const data_1 = require("../utils/data");
39
+ const decodeHtml_1 = require("./decodeHtml");
39
40
  async function parseTimetable(response) {
40
41
  try {
41
- const match = response.match(/pageSanitizer\.sanitize\('(.*)'\);/s);
42
- if (!match || !match[1]) {
43
- return { error: "Failed to extract timetable details", status: 404 };
42
+ const decodedHtml = (0, decodeHtml_1.decodePageSanitizer)(response);
43
+ if (!decodedHtml) {
44
+ return {
45
+ error: "Failed to extract timetable details",
46
+ status: 404,
47
+ };
44
48
  }
45
- const encodedHtml = match[1];
46
- const decodedHtml = encodedHtml
47
- .replace(/\\x([0-9A-Fa-f]{2})/g, (_, hex) => String.fromCharCode(parseInt(hex, 16)))
48
- .replace(/\\\\/g, "")
49
- .replace(/\\'/g, "'");
50
49
  const $ = cheerio.load(decodedHtml);
51
- const batch = $("td:contains('Batch:')")
52
- .next("td")
53
- .find("font")
54
- .text()
55
- .trim();
50
+ // Try to get batch number from the page
51
+ let batchText = $("td:contains('Batch:')").next("td").find("font").text().trim();
52
+ // Fallback: look for "Batch" in various formats
53
+ if (!batchText) {
54
+ $("td").each((_, el) => {
55
+ const t = $(el).text().trim();
56
+ if (t === "Batch" || t === "Batch:") {
57
+ // Look at siblings
58
+ const next = $(el).next("td");
59
+ batchText = next.find("strong").text().trim() || next.text().trim();
60
+ if (batchText)
61
+ return false;
62
+ }
63
+ });
64
+ }
65
+ // Also check "Batch :" pattern in table rows
66
+ if (!batchText) {
67
+ $("tr").each((_, row) => {
68
+ const text = $(row).text();
69
+ const match = text.match(/Batch\s*:\s*(\d+)/);
70
+ if (match) {
71
+ batchText = match[1];
72
+ return false;
73
+ }
74
+ });
75
+ }
56
76
  const courseList = Array.from($(".course_tbl tr").slice(1)).map((row) => {
57
77
  const columns = $(row).find("td");
58
78
  const get = (idx) => columns[idx] ? $(columns[idx]).text().trim() : "";
@@ -78,7 +98,11 @@ async function parseTimetable(response) {
78
98
  : get(10),
79
99
  };
80
100
  });
81
- const batchData = data_1.batchSlots[parseInt(batch)];
101
+ if (courseList.length === 0) {
102
+ return { timetable: [], status: 200 };
103
+ }
104
+ const batchNum = parseInt(batchText) || 1;
105
+ const batchData = data_1.batchSlots[batchNum] ?? data_1.batchSlots[1];
82
106
  const slotMap = {};
83
107
  courseList.forEach((course) => {
84
108
  course.courseSlot.forEach((slot) => {
@@ -96,19 +120,19 @@ async function parseTimetable(response) {
96
120
  const timetable = batchData.slots.map((day) => ({
97
121
  dayOrder: day.dayOrder,
98
122
  class: day.slots.map((slot, i) => {
99
- const slotInfo = slotMap[slot]
100
- ? {
101
- slot,
102
- isClass: true,
103
- courseTitle: slotMap[slot].courseTitle,
104
- courseCode: slotMap[slot].courseCode,
105
- courseType: slotMap[slot].courseType,
106
- courseCategory: slotMap[slot].courseCategory,
107
- courseRoomNo: slotMap[slot].courseRoomNo,
108
- }
109
- : { slot, isClass: false };
123
+ const info = slotMap[slot];
110
124
  return {
111
- ...slotInfo,
125
+ slot,
126
+ isClass: !!info,
127
+ ...(info
128
+ ? {
129
+ courseTitle: info.courseTitle,
130
+ courseCode: info.courseCode,
131
+ courseType: info.courseType,
132
+ courseCategory: info.courseCategory,
133
+ courseRoomNo: info.courseRoomNo,
134
+ }
135
+ : {}),
112
136
  time: day.time[i],
113
137
  };
114
138
  }),
@@ -1 +1 @@
1
- {"version":3,"file":"parseTimetable.js","sourceRoot":"","sources":["../../../src/parser/parseTimetable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseTimetable.js","sourceRoot":"","sources":["../../../src/parser/parseTimetable.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import { UserInfoResponse } from "../type/user";
2
- export declare function parseUserInfo(response: string): Promise<UserInfoResponse>;
1
+ import type { UserInfoResponse } from "../type/user";
2
+ export declare function parseUserInfo(response: unknown): Promise<UserInfoResponse>;
3
3
  //# sourceMappingURL=parseUserInfo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseUserInfo.d.ts","sourceRoot":"","sources":["../../../src/parser/parseUserInfo.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAY,MAAM,cAAc,CAAC;AAE1D,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,gBAAgB,CAAC,CA2C3B"}
1
+ {"version":3,"file":"parseUserInfo.d.ts","sourceRoot":"","sources":["../../../src/parser/parseUserInfo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrD,wBAAsB,aAAa,CACjC,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,gBAAgB,CAAC,CAyE3B"}
@@ -35,37 +35,69 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.parseUserInfo = parseUserInfo;
37
37
  const cheerio = __importStar(require("cheerio"));
38
+ const decodeHtml_1 = require("./decodeHtml");
38
39
  async function parseUserInfo(response) {
39
40
  try {
40
- const match = response.match(/pageSanitizer\.sanitize\('(.*)'\);/s);
41
- if (!match || !match[1]) {
41
+ const decodedHtml = (0, decodeHtml_1.decodePageSanitizer)(response);
42
+ if (!decodedHtml) {
42
43
  return { error: "Failed to extract user details", status: 404 };
43
44
  }
44
- const encodedHtml = match[1];
45
- const decodedHtml = encodedHtml
46
- .replace(/\\x([0-9A-Fa-f]{2})/g, (_, hex) => String.fromCharCode(parseInt(hex, 16)))
47
- .replace(/\\\\/g, "")
48
- .replace(/\\'/g, "'");
49
45
  const $ = cheerio.load(decodedHtml);
50
- const getText = (selector) => $(selector).text().trim();
51
- const userInfo = {
52
- regNumber: getText('td:contains("Registration Number:") + td strong'),
53
- name: getText('td:contains("Name:") + td strong'),
54
- mobile: getText('td:contains("Mobile:") + td strong'),
55
- section: getText('td:contains("Department:") + td strong')
56
- .split("-")[1]
57
- .replace("(", "")
58
- .replace(")", "")
59
- .replace("Section", "")
60
- .trim(),
61
- program: getText('td:contains("Program:") + td strong'),
62
- department: getText('td:contains("Department:") + td strong')
63
- .split("-")[0]
64
- .trim(),
65
- semester: getText('td:contains("Semester:") + td strong'),
66
- batch: getText('td:contains("Batch:") + td strong font'),
46
+ const plainText = $.text().replace(/\\s+/g, ' ');
47
+ const extract = (pattern, defaultVal = "") => {
48
+ const match = plainText.match(pattern);
49
+ return match ? match[1].trim() : defaultVal;
50
+ };
51
+ const regNumber = extract(/Registration Number\\s*:\\s*([A-Za-z0-9]+)/i);
52
+ const name = extract(/Name\\s*:\\s*([a-zA-Z\\s]+?)(?:Program|Department|$)/i);
53
+ const mobile = extract(/Mobile\\s*:\\s*([\\d]+)/i);
54
+ const program = extract(/Program\\s*:\\s*([a-zA-Z\\.\\s]+?)(?:Department|$)/i);
55
+ const deptRaw = extract(/Department\\s*:\\s*([-a-zA-Z\\s()]+?)(?:Specialization|Semester|$)/i);
56
+ let department = deptRaw;
57
+ let section = "";
58
+ if (deptRaw.includes("-")) {
59
+ const parts = deptRaw.split("-");
60
+ department = parts[0].trim();
61
+ section = parts.slice(1).join("-").replace(/[()]/g, "").replace(/Section/i, "").trim();
62
+ }
63
+ const specialization = extract(/Specialization\\s*:\\s*([a-zA-Z\\s]+?)(?:Semester|$)/i);
64
+ const semester = extract(/Semester\\s*:\\s*(\\d+)/i);
65
+ const batch = extract(/Batch\\s*:\\s*(\\d+)/i) || extract(/Batch\\s+(\\d+)/i);
66
+ if (!regNumber && !name) {
67
+ // Fallback: try one more time on raw HTML if text extraction failed
68
+ const rawHtml = decodedHtml.replace(/\\s+/g, ' ');
69
+ const rawReg = rawHtml.match(/Registration Number.*?([A-Z0-9]{10,20})/i);
70
+ if (!rawReg) {
71
+ return { error: "Could not parse user information", status: 500 };
72
+ }
73
+ return {
74
+ userInfo: {
75
+ regNumber: rawReg[1],
76
+ name: "Student",
77
+ mobile: "",
78
+ section: "",
79
+ program: "",
80
+ department: "",
81
+ semester: "",
82
+ batch: "",
83
+ },
84
+ status: 200
85
+ };
86
+ }
87
+ return {
88
+ userInfo: {
89
+ regNumber,
90
+ name: name.trim(),
91
+ mobile,
92
+ section,
93
+ program,
94
+ department,
95
+ specialization: specialization || undefined,
96
+ semester,
97
+ batch,
98
+ },
99
+ status: 200,
67
100
  };
68
- return { userInfo, status: 200 };
69
101
  }
70
102
  catch (error) {
71
103
  console.error("Error parsing user info:", error);
@@ -1 +1 @@
1
- {"version":3,"file":"parseUserInfo.js","sourceRoot":"","sources":["../../../src/parser/parseUserInfo.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,sCA6CC;AAhDD,iDAAmC;AAG5B,KAAK,UAAU,aAAa,CACjC,QAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,KAAK,EAAE,gCAAgC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAClE,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAE7B,MAAM,WAAW,GAAG,WAAW;aAC5B,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAS,EAAE,GAAW,EAAE,EAAE,CAC1D,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CACvC;aACA,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;aACpB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAExB,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEpC,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QAChE,MAAM,QAAQ,GAAa;YACzB,SAAS,EAAE,OAAO,CAAC,iDAAiD,CAAC;YACrE,IAAI,EAAE,OAAO,CAAC,kCAAkC,CAAC;YACjD,MAAM,EAAE,OAAO,CAAC,oCAAoC,CAAC;YACrD,OAAO,EAAE,OAAO,CAAC,wCAAwC,CAAC;iBACvD,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBACb,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;iBAChB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;iBAChB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;iBACtB,IAAI,EAAE;YACT,OAAO,EAAE,OAAO,CAAC,qCAAqC,CAAC;YACvD,UAAU,EAAE,OAAO,CAAC,wCAAwC,CAAC;iBAC1D,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;iBACb,IAAI,EAAE;YAET,QAAQ,EAAE,OAAO,CAAC,sCAAsC,CAAC;YACzD,KAAK,EAAE,OAAO,CAAC,wCAAwC,CAAC;SACzD,CAAC;QAEF,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QACjD,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAC7D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"parseUserInfo.js","sourceRoot":"","sources":["../../../src/parser/parseUserInfo.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ export interface AttendanceStatus {
2
+ status: "margin" | "required";
3
+ classes: number;
4
+ }
1
5
  export interface AttendanceDetail {
2
6
  courseCode: string;
3
7
  courseTitle: string;
@@ -7,15 +11,11 @@ export interface AttendanceDetail {
7
11
  courseConducted: number;
8
12
  courseAbsent: number;
9
13
  courseAttendance: string;
10
- courseAttendanceStatus: AttendanceStatusType;
14
+ courseAttendanceStatus: AttendanceStatus;
11
15
  }
12
16
  export interface AttendanceResponse {
13
17
  attendance?: AttendanceDetail[];
14
18
  error?: string;
15
19
  status: number;
16
20
  }
17
- export interface AttendanceStatusType {
18
- status: "required" | "margin";
19
- classes: number;
20
- }
21
21
  //# sourceMappingURL=attendance.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attendance.d.ts","sourceRoot":"","sources":["../../../src/type/attendance.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,oBAAoB,CAAC;CAC9C;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"attendance.d.ts","sourceRoot":"","sources":["../../../src/type/attendance.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,sBAAsB,EAAE,gBAAgB,CAAC;CAC1C;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -17,11 +17,6 @@ export interface UserResponse {
17
17
  status_code: number;
18
18
  message: string;
19
19
  }
20
- export interface PasswordResponse {
21
- status_code: number;
22
- localized_message?: string;
23
- cdigest?: string;
24
- }
25
20
  export interface AuthResult {
26
21
  data?: {
27
22
  cookies?: string;
@@ -31,6 +26,10 @@ export interface AuthResult {
31
26
  required: boolean;
32
27
  digest: string | null | undefined;
33
28
  };
29
+ isConcurrentLimit?: boolean;
30
+ flowId?: string | null;
31
+ sessionCookie?: string;
32
+ csrfToken?: string | null;
34
33
  };
35
34
  isAuthenticated?: boolean;
36
35
  error?: string;
@@ -45,4 +44,33 @@ export interface LogoutResponse {
45
44
  message: string;
46
45
  status: number;
47
46
  }
47
+ export interface TerminateSessionsInput {
48
+ flowId: string | null;
49
+ identifier: string;
50
+ digest: string;
51
+ csrfToken?: string;
52
+ sessionCookie?: string;
53
+ }
54
+ export interface TerminateSessionsResult {
55
+ success: boolean;
56
+ status?: number;
57
+ strategy?: string;
58
+ data?: unknown;
59
+ error?: string;
60
+ errorReason?: unknown;
61
+ }
62
+ export interface LoginResult {
63
+ cookies?: string;
64
+ isAuthenticated: boolean;
65
+ error?: string;
66
+ errorReason?: unknown;
67
+ userInfo?: {
68
+ identifier: string;
69
+ digest: string;
70
+ };
71
+ }
72
+ export interface SessionSeed {
73
+ cookie: string;
74
+ csrfToken: string | null;
75
+ }
48
76
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/type/auth.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE;YACR,QAAQ,EAAE,OAAO,CAAC;YAClB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;SACnC,CAAC;KACH,CAAC;IACF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAGD,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAGD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/type/auth.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE;YACR,QAAQ,EAAE,OAAO,CAAC;YAClB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;SACnC,CAAC;QACF,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,CAAC;IACF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE;QACT,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../src/type/calendar.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../../../src/type/calendar.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/type/common.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAGD,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,IAC5B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAGjC,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AACpE,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/type/common.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,OAAO;IACvC,IAAI,EAAE,CAAC,CAAC;IACR,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,IAC5B;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAEjC,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,GAAG,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;AAEpE,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KAC1B,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"course.d.ts","sourceRoot":"","sources":["../../../src/type/course.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"course.d.ts","sourceRoot":"","sources":["../../../src/type/course.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,YAAY,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"dayOrder.d.ts","sourceRoot":"","sources":["../../../src/type/dayOrder.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"dayOrder.d.ts","sourceRoot":"","sources":["../../../src/type/dayOrder.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -7,5 +7,4 @@ export * from "./attendance";
7
7
  export * from "./user";
8
8
  export * from "./common";
9
9
  export * from "./dayOrder";
10
- export type { PasswordInput, UserResponse } from "./auth";
11
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/type/index.ts"],"names":[],"mappings":"AACA,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAG3B,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/type/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- // Export all types from their respective modules
18
17
  __exportStar(require("./auth"), exports);
19
18
  __exportStar(require("./timetable"), exports);
20
19
  __exportStar(require("./marks"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/type/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAAiD;AACjD,yCAAuB;AACvB,8CAA4B;AAC5B,0CAAwB;AACxB,6CAA2B;AAC3B,2CAAyB;AACzB,+CAA6B;AAC7B,yCAAuB;AACvB,2CAAyB;AACzB,6CAA2B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/type/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,8CAA4B;AAC5B,0CAAwB;AACxB,6CAA2B;AAC3B,2CAAyB;AACzB,+CAA6B;AAC7B,yCAAuB;AACvB,2CAAyB;AACzB,6CAA2B"}
@@ -1 +1 @@
1
- {"version":3,"file":"marks.d.ts","sourceRoot":"","sources":["../../../src/type/marks.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"marks.d.ts","sourceRoot":"","sources":["../../../src/type/marks.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,KAAK,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"timetable.d.ts","sourceRoot":"","sources":["../../../src/type/timetable.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"timetable.d.ts","sourceRoot":"","sources":["../../../src/type/timetable.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -5,6 +5,7 @@ export interface UserInfo {
5
5
  section: string;
6
6
  program: string;
7
7
  department: string;
8
+ specialization?: string;
8
9
  semester: string;
9
10
  batch: string;
10
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/type/user.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/type/user.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,8 @@
1
+ export declare function attendanceStatus({ conducted, absent, }: {
2
+ conducted: number;
3
+ absent: number;
4
+ }): Promise<{
5
+ status: "margin" | "required";
6
+ classes: number;
7
+ }>;
8
+ //# sourceMappingURL=attendanceStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attendanceStatus.d.ts","sourceRoot":"","sources":["../../../src/utils/attendanceStatus.ts"],"names":[],"mappings":"AAAA,wBAAsB,gBAAgB,CAAC,EACrC,SAAS,EACT,MAAM,GACP,EAAE;IACD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAiB9D"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.attendanceStatus = attendanceStatus;
4
+ async function attendanceStatus({ conducted, absent, }) {
5
+ const target = 0.75;
6
+ if (conducted === 0) {
7
+ return { status: "margin", classes: 0 };
8
+ }
9
+ const present = conducted - absent;
10
+ const currentRatio = present / conducted;
11
+ if (currentRatio < target) {
12
+ const x = Math.ceil((target * conducted - present) / (1 - target));
13
+ return { status: "required", classes: x };
14
+ }
15
+ else {
16
+ const x = Math.floor(present / target - conducted);
17
+ return { status: "margin", classes: x };
18
+ }
19
+ }
20
+ //# sourceMappingURL=attendanceStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attendanceStatus.js","sourceRoot":"","sources":["../../../src/utils/attendanceStatus.ts"],"names":[],"mappings":";;AAAA,4CAuBC;AAvBM,KAAK,UAAU,gBAAgB,CAAC,EACrC,SAAS,EACT,MAAM,GAIP;IACC,MAAM,MAAM,GAAG,IAAI,CAAC;IAEpB,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACnC,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC;IAEzC,IAAI,YAAY,GAAG,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;QACnE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;QACnD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAC1C,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ interface BatchSlotDay {
2
+ dayOrder: string;
3
+ slots: string[];
4
+ time: string[];
5
+ }
6
+ interface BatchData {
7
+ slots: BatchSlotDay[];
8
+ }
9
+ export declare const batchSlots: Record<number, BatchData>;
10
+ export {};
11
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/utils/data.ts"],"names":[],"mappings":"AAaA,UAAU,YAAY;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,UAAU,SAAS;IACjB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAmBhD,CAAC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.batchSlots = void 0;
4
+ const time = [
5
+ "08:00 AM - 08:50 AM",
6
+ "08:50 AM - 09:40 AM",
7
+ "09:45 AM - 10:35 AM",
8
+ "10:40 AM - 11:30 AM",
9
+ "11:35 AM - 12:25 PM",
10
+ "12:30 PM - 01:20 PM",
11
+ "01:25 PM - 02:15 PM",
12
+ "02:20 PM - 03:10 PM",
13
+ "03:10 PM - 04:00 PM",
14
+ "04:00 PM - 04:50 PM",
15
+ ];
16
+ exports.batchSlots = {
17
+ 1: {
18
+ slots: [
19
+ { dayOrder: "Day 1", slots: ["A", "A", "F", "F", "G", "P6", "P7", "P8", "P9", "P10"], time },
20
+ { dayOrder: "Day 2", slots: ["P11", "P12", "P13", "P14", "P15", "B", "B", "G", "G", "A"], time },
21
+ { dayOrder: "Day 3", slots: ["C", "C", "A", "D", "B", "P26", "P27", "P28", "P29", "P30"], time },
22
+ { dayOrder: "Day 4", slots: ["P31", "P32", "P33", "P34", "P35", "D", "D", "B", "E", "C"], time },
23
+ { dayOrder: "Day 5", slots: ["E", "E", "C", "F", "D", "P46", "P47", "P48", "P49", "P50"], time },
24
+ ],
25
+ },
26
+ 2: {
27
+ slots: [
28
+ { dayOrder: "Day 1", slots: ["P1", "P2", "P3", "P4", "P5", "A", "A", "F", "F", "G"], time },
29
+ { dayOrder: "Day 2", slots: ["B", "B", "G", "G", "A", "P16", "P17", "P18", "P19", "P20"], time },
30
+ { dayOrder: "Day 3", slots: ["P21", "P22", "P23", "P24", "P25", "C", "C", "A", "D", "B"], time },
31
+ { dayOrder: "Day 4", slots: ["D", "D", "B", "E", "C", "P36", "P37", "P38", "P39", "P40"], time },
32
+ { dayOrder: "Day 5", slots: ["P41", "P42", "P43", "P44", "P45", "E", "E", "C", "F", "D"], time },
33
+ ],
34
+ },
35
+ };
36
+ //# sourceMappingURL=data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../../../src/utils/data.ts"],"names":[],"mappings":";;;AAAA,MAAM,IAAI,GAAG;IACX,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;CACtB,CAAC;AAYW,QAAA,UAAU,GAA8B;IACnD,CAAC,EAAE;QACD,KAAK,EAAE;YACL,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE;YAC5F,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;YAChG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE;YAChG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;YAChG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE;SACjG;KACF;IACD,CAAC,EAAE;QACD,KAAK,EAAE;YACL,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;YAC3F,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE;YAChG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;YAChG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE;YAChG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE;SACjG;KACF;CACF,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Resolves the correct course/timetable URL by trying multiple patterns.
3
+ * SRM changes page names across semesters, so we probe and cache.
4
+ */
5
+ export declare function courseDynamicUrl(cookie?: string): Promise<string>;
6
+ /**
7
+ * Resolves the correct academic calendar URL.
8
+ */
9
+ export declare function calendarDynamicUrl(): Promise<string>;
10
+ /**
11
+ * Reset cached URLs (useful for testing or when semester changes)
12
+ */
13
+ export declare function resetUrlCache(): void;
14
+ //# sourceMappingURL=dynamicUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamicUrl.d.ts","sourceRoot":"","sources":["../../../src/utils/dynamicUrl.ts"],"names":[],"mappings":"AAgCA;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA6CvE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAiB1D;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAGpC"}