reddy-api-srm 1.0.12 → 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 -96
  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
@@ -1,45 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.fetchCourseDetails = fetchCourseDetails;
7
- const axios_1 = __importDefault(require("axios"));
8
- const dynamicUrl_1 = require("../../utils/dynamicUrl");
4
+ const dynamicUrl_1 = require("../utils/dynamicUrl");
5
+ const fetchPage_1 = require("./fetchPage");
9
6
  async function fetchCourseDetails(cookie) {
10
- const url = await (0, dynamicUrl_1.courseDynamicUrl)();
11
- try {
12
- const request = await (0, axios_1.default)(url, {
13
- headers: {
14
- accept: "*/*",
15
- "accept-language": "en-US,en;q=0.9",
16
- "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
17
- "sec-ch-ua": '"Chromium";v="136", "Google Chrome";v="136", "Not.A/Brand";v="99"',
18
- "sec-ch-ua-mobile": "?1",
19
- "sec-ch-ua-platform": '"Android"',
20
- "sec-fetch-dest": "empty",
21
- "sec-fetch-mode": "cors",
22
- "sec-fetch-site": "same-origin",
23
- "x-requested-with": "XMLHttpRequest",
24
- cookie,
25
- Referer: "https://academia.srmist.edu.in/",
26
- "Referrer-Policy": "strict-origin-when-cross-origin",
27
- },
28
- method: "GET",
29
- });
30
- return request.data;
31
- }
32
- catch (error) {
33
- const statusCode = axios_1.default.isAxiosError(error) ? error.response?.status : undefined;
34
- if (statusCode === 401 || statusCode === 403 || statusCode === 500) {
35
- return { error: "Unauthorized", status: 401 };
36
- }
37
- return {
38
- error: error instanceof Error
39
- ? error.message
40
- : "Failed to fetch course details",
41
- status: statusCode ?? 500,
42
- };
43
- }
7
+ const url = await (0, dynamicUrl_1.courseDynamicUrl)(cookie);
8
+ return (0, fetchPage_1.fetchPage)(url, cookie);
44
9
  }
45
- //# sourceMappingURL=fetchCourseDetails.js.map
10
+ //# sourceMappingURL=fetchCourseDetails.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchCourseDetails.js","sourceRoot":"","sources":["../../../src/fetch/fetchCourseDetails.ts"],"names":[],"mappings":";;;;;AAGA,gDA4CC;AA/CD,kDAA0B;AAC1B,uDAA0D;AAEnD,KAAK,UAAU,kBAAkB,CAAC,MAAc;IACrD,MAAM,GAAG,GAAG,MAAM,IAAA,6BAAgB,GAAE,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAA,eAAK,EAAC,GAAG,EAAE;YAC/B,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK;gBACb,iBAAiB,EAAE,gBAAgB;gBACnC,cAAc,EAAE,kDAAkD;gBAClE,WAAW,EACT,mEAAmE;gBACrE,kBAAkB,EAAE,IAAI;gBACxB,oBAAoB,EAAE,WAAW;gBACjC,gBAAgB,EAAE,OAAO;gBACzB,gBAAgB,EAAE,MAAM;gBACxB,gBAAgB,EAAE,aAAa;gBAC/B,kBAAkB,EAAE,gBAAgB;gBACpC,MAAM;gBACN,OAAO,EAAE,iCAAiC;gBAC1C,iBAAiB,EAAE,iCAAiC;aACrD;YACD,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IACE,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,QAAQ,IAAI,KAAK;YACjB,KAAK,CAAC,MAAM,KAAK,GAAG,EACpB,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAChD,CAAC;QAED,OAAO;YACL,KAAK,EACH,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,gCAAgC;YACtC,MAAM,EACJ,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK;gBACrD,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,GAAG;SACV,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fetchCourseDetails.js","sourceRoot":"","sources":["../../../src/fetch/fetchCourseDetails.ts"],"names":[],"mappings":";;AAGA,gDAGC;AAND,oDAAuD;AACvD,2CAAwC;AAEjC,KAAK,UAAU,kBAAkB,CAAC,MAAc;IACrD,MAAM,GAAG,GAAG,MAAM,IAAA,6BAAgB,EAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,IAAA,qBAAS,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC"}
@@ -1,2 +1,6 @@
1
- export declare function fetchDayOrder(cookie: string): Promise<any>;
1
+ export declare function fetchDayOrder(cookie: string): Promise<{
2
+ data: unknown;
3
+ error?: string;
4
+ status: number;
5
+ }>;
2
6
  //# sourceMappingURL=fetchDayOrder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchDayOrder.d.ts","sourceRoot":"","sources":["../../../src/fetch/fetchDayOrder.ts"],"names":[],"mappings":"AAEA,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,gBAwCjD"}
1
+ {"version":3,"file":"fetchDayOrder.d.ts","sourceRoot":"","sources":["../../../src/fetch/fetchDayOrder.ts"],"names":[],"mappings":"AAEA,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM;;;;GAKjD"}
@@ -1,38 +1,8 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.fetchDayOrder = fetchDayOrder;
7
- const axios_1 = __importDefault(require("axios"));
4
+ const fetchPage_1 = require("./fetchPage");
8
5
  async function fetchDayOrder(cookie) {
9
- try {
10
- const request = await (0, axios_1.default)("https://academia.srmist.edu.in/srm_university/academia-academic-services/page/WELCOME", {
11
- headers: {
12
- accept: "*/*",
13
- "accept-language": "en-US,en;q=0.9",
14
- "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
15
- "sec-fetch-dest": "empty",
16
- "sec-fetch-mode": "cors",
17
- "sec-fetch-site": "same-origin",
18
- "x-requested-with": "XMLHttpRequest",
19
- cookie,
20
- Referer: "https://academia.srmist.edu.in/",
21
- "Referrer-Policy": "strict-origin-when-cross-origin",
22
- },
23
- method: "GET",
24
- });
25
- return request.data;
26
- }
27
- catch (error) {
28
- const statusCode = axios_1.default.isAxiosError(error) ? error.response?.status : undefined;
29
- if (statusCode === 401 || statusCode === 403 || statusCode === 500) {
30
- return { error: "Unauthorized", status: 401 };
31
- }
32
- return {
33
- error: error instanceof Error ? error.message : "Failed to fetch attendance",
34
- status: statusCode ?? 500,
35
- };
36
- }
6
+ return (0, fetchPage_1.fetchPage)("https://academia.srmist.edu.in/srm_university/academia-academic-services/page/WELCOME", cookie);
37
7
  }
38
- //# sourceMappingURL=fetchDayOrder.js.map
8
+ //# sourceMappingURL=fetchDayOrder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchDayOrder.js","sourceRoot":"","sources":["../../../src/fetch/fetchDayOrder.ts"],"names":[],"mappings":";;;;;AAEA,sCAwCC;AA1CD,kDAA0B;AAEnB,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAA,eAAK,EACzB,uFAAuF,EACvF;YACE,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK;gBACb,iBAAiB,EAAE,gBAAgB;gBACnC,cAAc,EAAE,kDAAkD;gBAClE,gBAAgB,EAAE,OAAO;gBACzB,gBAAgB,EAAE,MAAM;gBACxB,gBAAgB,EAAE,aAAa;gBAC/B,kBAAkB,EAAE,gBAAgB;gBACpC,MAAM;gBACN,OAAO,EAAE,iCAAiC;gBAC1C,iBAAiB,EAAE,iCAAiC;aACrD;YACD,MAAM,EAAE,KAAK;SACd,CACF,CAAC;QACF,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IACE,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,QAAQ,IAAI,KAAK;YACjB,KAAK,CAAC,MAAM,KAAK,GAAG,EACpB,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAChD,CAAC;QAED,OAAO;YACL,KAAK,EACH,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B;YACvE,MAAM,EACJ,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK;gBACrD,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,GAAG;SACV,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fetchDayOrder.js","sourceRoot":"","sources":["../../../src/fetch/fetchDayOrder.ts"],"names":[],"mappings":";;AAEA,sCAKC;AAPD,2CAAwC;AAEjC,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,OAAO,IAAA,qBAAS,EACd,uFAAuF,EACvF,MAAM,CACP,CAAC;AACJ,CAAC"}
@@ -1,5 +1,3 @@
1
- export declare function fetchLogout(cookie: string): Promise<{
2
- message: string;
3
- status: number;
4
- }>;
1
+ import type { LogoutResponse } from "../type/auth";
2
+ export declare function fetchLogout(cookie: string): Promise<LogoutResponse>;
5
3
  //# sourceMappingURL=fetchLogout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchLogout.d.ts","sourceRoot":"","sources":["../../../src/fetch/fetchLogout.ts"],"names":[],"mappings":"AAAA,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM;;;GAa/C"}
1
+ {"version":3,"file":"fetchLogout.d.ts","sourceRoot":"","sources":["../../../src/fetch/fetchLogout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAkBzE"}
@@ -2,14 +2,20 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.fetchLogout = fetchLogout;
4
4
  async function fetchLogout(cookie) {
5
- await fetch("https://academia.srmist.edu.in/accounts/p/10002227248/logout?servicename=ZohoCreator&serviceurl=https://academia.srmist.edu.in", {
6
- method: "GET",
7
- headers: {
8
- Accept: "*/*",
9
- "Content-Type": "application/x-www-form-urlencoded",
10
- cookie,
11
- },
12
- });
13
- return { message: "Logout successful", status: 200 };
5
+ try {
6
+ await fetch("https://academia.srmist.edu.in/accounts/p/10002227248/logout?servicename=ZohoCreator&serviceurl=https://academia.srmist.edu.in", {
7
+ method: "GET",
8
+ headers: {
9
+ Accept: "*/*",
10
+ "Content-Type": "application/x-www-form-urlencoded",
11
+ cookie,
12
+ },
13
+ });
14
+ return { message: "Logout successful", status: 200 };
15
+ }
16
+ catch {
17
+ // Logout is best-effort — even if it fails, consider it done
18
+ return { message: "Logout attempted", status: 200 };
19
+ }
14
20
  }
15
21
  //# sourceMappingURL=fetchLogout.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchLogout.js","sourceRoot":"","sources":["../../../src/fetch/fetchLogout.ts"],"names":[],"mappings":";;AAAA,kCAaC;AAbM,KAAK,UAAU,WAAW,CAAC,MAAc;IAC9C,MAAM,KAAK,CACT,gIAAgI,EAChI;QACE,MAAM,EAAE,KAAK;QACb,OAAO,EAAE;YACP,MAAM,EAAE,KAAK;YACb,cAAc,EAAE,mCAAmC;YACnD,MAAM;SACP;KACF,CACF,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"fetchLogout.js","sourceRoot":"","sources":["../../../src/fetch/fetchLogout.ts"],"names":[],"mappings":";;AAEA,kCAkBC;AAlBM,KAAK,UAAU,WAAW,CAAC,MAAc;IAC9C,IAAI,CAAC;QACH,MAAM,KAAK,CACT,gIAAgI,EAChI;YACE,MAAM,EAAE,KAAK;YACb,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK;gBACb,cAAc,EAAE,mCAAmC;gBACnD,MAAM;aACP;SACF,CACF,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,6DAA6D;QAC7D,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IACtD,CAAC;AACH,CAAC"}
@@ -1,2 +1,6 @@
1
- export declare function fetchMarks(cookie: string): Promise<any>;
1
+ export declare function fetchMarks(cookie: string): Promise<{
2
+ data: unknown;
3
+ error?: string;
4
+ status: number;
5
+ }>;
2
6
  //# sourceMappingURL=fetchMarks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchMarks.d.ts","sourceRoot":"","sources":["../../../src/fetch/fetchMarks.ts"],"names":[],"mappings":"AAEA,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,gBAwC9C"}
1
+ {"version":3,"file":"fetchMarks.d.ts","sourceRoot":"","sources":["../../../src/fetch/fetchMarks.ts"],"names":[],"mappings":"AAEA,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM;;;;GAM9C"}
@@ -1,38 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.fetchMarks = fetchMarks;
7
- const axios_1 = __importDefault(require("axios"));
4
+ const fetchPage_1 = require("./fetchPage");
8
5
  async function fetchMarks(cookie) {
9
- try {
10
- const request = await (0, axios_1.default)("https://academia.srmist.edu.in/srm_university/academia-academic-services/page/My_Attendance", {
11
- headers: {
12
- accept: "*/*",
13
- "accept-language": "en-US,en;q=0.9",
14
- "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
15
- "sec-fetch-dest": "empty",
16
- "sec-fetch-mode": "cors",
17
- "sec-fetch-site": "same-origin",
18
- "x-requested-with": "XMLHttpRequest",
19
- cookie,
20
- Referer: "https://academia.srmist.edu.in/",
21
- "Referrer-Policy": "strict-origin-when-cross-origin",
22
- },
23
- method: "GET",
24
- });
25
- return request.data;
26
- }
27
- catch (error) {
28
- const statusCode = axios_1.default.isAxiosError(error) ? error.response?.status : undefined;
29
- if (statusCode === 401 || statusCode === 403 || statusCode === 500) {
30
- return { error: "Unauthorized", status: 401 };
31
- }
32
- return {
33
- error: error instanceof Error ? error.message : "Failed to fetch attendance",
34
- status: statusCode ?? 500,
35
- };
36
- }
6
+ // Marks are embedded in the same My_Attendance page
7
+ return (0, fetchPage_1.fetchPage)("https://academia.srmist.edu.in/srm_university/academia-academic-services/page/My_Attendance", cookie);
37
8
  }
38
- //# sourceMappingURL=fetchMarks.js.map
9
+ //# sourceMappingURL=fetchMarks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchMarks.js","sourceRoot":"","sources":["../../../src/fetch/fetchMarks.ts"],"names":[],"mappings":";;;;;AAEA,gCAwCC;AA1CD,kDAA0B;AAEnB,KAAK,UAAU,UAAU,CAAC,MAAc;IAC7C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAA,eAAK,EACzB,6FAA6F,EAC7F;YACE,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK;gBACb,iBAAiB,EAAE,gBAAgB;gBACnC,cAAc,EAAE,kDAAkD;gBAClE,gBAAgB,EAAE,OAAO;gBACzB,gBAAgB,EAAE,MAAM;gBACxB,gBAAgB,EAAE,aAAa;gBAC/B,kBAAkB,EAAE,gBAAgB;gBACpC,MAAM;gBACN,OAAO,EAAE,iCAAiC;gBAC1C,iBAAiB,EAAE,iCAAiC;aACrD;YACD,MAAM,EAAE,KAAK;SACd,CACF,CAAC;QACF,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IACE,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,QAAQ,IAAI,KAAK;YACjB,KAAK,CAAC,MAAM,KAAK,GAAG,EACpB,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAChD,CAAC;QAED,OAAO;YACL,KAAK,EACH,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B;YACvE,MAAM,EACJ,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK;gBACrD,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,GAAG;SACV,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fetchMarks.js","sourceRoot":"","sources":["../../../src/fetch/fetchMarks.ts"],"names":[],"mappings":";;AAEA,gCAMC;AARD,2CAAwC;AAEjC,KAAK,UAAU,UAAU,CAAC,MAAc;IAC7C,oDAAoD;IACpD,OAAO,IAAA,qBAAS,EACd,6FAA6F,EAC7F,MAAM,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function fetchPage(url: string, cookie: string, responseType?: "json" | "text"): Promise<{
2
+ data: unknown;
3
+ error?: string;
4
+ status: number;
5
+ }>;
6
+ //# sourceMappingURL=fetchPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchPage.d.ts","sourceRoot":"","sources":["../../../src/fetch/fetchPage.ts"],"names":[],"mappings":"AAcA,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,YAAY,GAAE,MAAM,GAAG,MAAe,GACrC,OAAO,CAAC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CA8C5D"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.fetchPage = fetchPage;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const BASE_HEADERS = {
9
+ accept: "*/*",
10
+ "accept-language": "en-US,en;q=0.9",
11
+ "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
12
+ "sec-fetch-dest": "empty",
13
+ "sec-fetch-mode": "cors",
14
+ "sec-fetch-site": "same-origin",
15
+ "x-requested-with": "XMLHttpRequest",
16
+ Referer: "https://academia.srmist.edu.in/",
17
+ "Referrer-Policy": "strict-origin-when-cross-origin",
18
+ };
19
+ async function fetchPage(url, cookie, responseType = "json") {
20
+ try {
21
+ const request = await (0, axios_1.default)(url, {
22
+ headers: { ...BASE_HEADERS, cookie },
23
+ method: "GET",
24
+ responseType,
25
+ validateStatus: (s) => s < 500,
26
+ });
27
+ if (request.status === 401 || request.status === 403) {
28
+ return { data: null, error: "Unauthorized", status: 401 };
29
+ }
30
+ if (request.status === 404) {
31
+ return { data: null, error: "Page not found", status: 404 };
32
+ }
33
+ // Detect SRM soft 404s (returns 200 OK but page says 'Page not found.')
34
+ const responseText = typeof request.data === 'string' ? request.data : JSON.stringify(request.data || {});
35
+ if (responseText.includes('error-message-text') && responseText.includes('Page not found')) {
36
+ return { data: null, error: "Page not found", status: 404 };
37
+ }
38
+ return { data: request.data, status: request.status };
39
+ }
40
+ catch (error) {
41
+ const statusCode = axios_1.default.isAxiosError(error)
42
+ ? error.response?.status
43
+ : undefined;
44
+ if (statusCode === 401 ||
45
+ statusCode === 403 ||
46
+ statusCode === 500) {
47
+ return { data: null, error: "Unauthorized", status: 401 };
48
+ }
49
+ return {
50
+ data: null,
51
+ error: error instanceof Error
52
+ ? error.message
53
+ : "Failed to fetch page",
54
+ status: statusCode ?? 500,
55
+ };
56
+ }
57
+ }
58
+ //# sourceMappingURL=fetchPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchPage.js","sourceRoot":"","sources":["../../../src/fetch/fetchPage.ts"],"names":[],"mappings":";;;;;AAcA,8BAkDC;AAhED,kDAA0B;AAE1B,MAAM,YAAY,GAAG;IACnB,MAAM,EAAE,KAAK;IACb,iBAAiB,EAAE,gBAAgB;IACnC,cAAc,EAAE,kDAAkD;IAClE,gBAAgB,EAAE,OAAO;IACzB,gBAAgB,EAAE,MAAM;IACxB,gBAAgB,EAAE,aAAa;IAC/B,kBAAkB,EAAE,gBAAgB;IACpC,OAAO,EAAE,iCAAiC;IAC1C,iBAAiB,EAAE,iCAAiC;CACrD,CAAC;AAEK,KAAK,UAAU,SAAS,CAC7B,GAAW,EACX,MAAc,EACd,eAAgC,MAAM;IAEtC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAA,eAAK,EAAC,GAAG,EAAE;YAC/B,OAAO,EAAE,EAAE,GAAG,YAAY,EAAE,MAAM,EAAE;YACpC,MAAM,EAAE,KAAK;YACb,YAAY;YACZ,cAAc,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG;SACvC,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACrD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC5D,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC9D,CAAC;QAED,wEAAwE;QACxE,MAAM,YAAY,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC1G,IAAI,YAAY,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC3F,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC9D,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;IACxD,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,UAAU,GAAG,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC;YAC1C,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM;YACxB,CAAC,CAAC,SAAS,CAAC;QAEd,IACE,UAAU,KAAK,GAAG;YAClB,UAAU,KAAK,GAAG;YAClB,UAAU,KAAK,GAAG,EAClB,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC5D,CAAC;QAED,OAAO;YACL,IAAI,EAAE,IAAI;YACV,KAAK,EACH,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,sBAAsB;YAC5B,MAAM,EAAE,UAAU,IAAI,GAAG;SAC1B,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -1,2 +1,6 @@
1
- export declare function fetchTimetable(cookie: string): Promise<any>;
1
+ export declare function fetchTimetable(cookie: string): Promise<{
2
+ data: unknown;
3
+ error?: string;
4
+ status: number;
5
+ }>;
2
6
  //# sourceMappingURL=fetchTimetable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchTimetable.d.ts","sourceRoot":"","sources":["../../../src/fetch/fetchTimetable.ts"],"names":[],"mappings":"AAEA,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,gBA4ClD"}
1
+ {"version":3,"file":"fetchTimetable.d.ts","sourceRoot":"","sources":["../../../src/fetch/fetchTimetable.ts"],"names":[],"mappings":"AAGA,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM;;;;GAGlD"}
@@ -1,45 +1,10 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.fetchTimetable = fetchTimetable;
7
- const dynamicUrl_1 = require("../../utils/dynamicUrl");
8
- const axios_1 = __importDefault(require("axios"));
4
+ const dynamicUrl_1 = require("../utils/dynamicUrl");
5
+ const fetchPage_1 = require("./fetchPage");
9
6
  async function fetchTimetable(cookie) {
10
- const url = await (0, dynamicUrl_1.courseDynamicUrl)();
11
- try {
12
- const request = await (0, axios_1.default)(url, {
13
- headers: {
14
- accept: "*/*",
15
- "accept-language": "en-US,en;q=0.9",
16
- "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
17
- "sec-ch-ua": '"Chromium";v="136", "Google Chrome";v="136", "Not.A/Brand";v="99"',
18
- "sec-ch-ua-mobile": "?1",
19
- "sec-ch-ua-platform": '"Android"',
20
- "sec-fetch-dest": "empty",
21
- "sec-fetch-mode": "cors",
22
- "sec-fetch-site": "same-origin",
23
- "x-requested-with": "XMLHttpRequest",
24
- cookie,
25
- Referer: "https://academia.srmist.edu.in/",
26
- "Referrer-Policy": "strict-origin-when-cross-origin",
27
- },
28
- method: "GET",
29
- });
30
- return request.data;
31
- }
32
- catch (error) {
33
- const statusCode = axios_1.default.isAxiosError(error) ? error.response?.status : undefined;
34
- if (statusCode === 401 || statusCode === 403 || statusCode === 500) {
35
- return { error: "Unauthorized", status: 401 };
36
- }
37
- return {
38
- error: error instanceof Error
39
- ? error.message
40
- : "Failed to fetch course details",
41
- status: statusCode ?? 500,
42
- };
43
- }
7
+ const url = await (0, dynamicUrl_1.courseDynamicUrl)(cookie);
8
+ return (0, fetchPage_1.fetchPage)(url, cookie);
44
9
  }
45
- //# sourceMappingURL=fetchTimetable.js.map
10
+ //# sourceMappingURL=fetchTimetable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchTimetable.js","sourceRoot":"","sources":["../../../src/fetch/fetchTimetable.ts"],"names":[],"mappings":";;;;;AAEA,wCA4CC;AA9CD,uDAA0D;AAC1D,kDAA0B;AACnB,KAAK,UAAU,cAAc,CAAC,MAAc;IACjD,MAAM,GAAG,GAAG,MAAM,IAAA,6BAAgB,GAAE,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAA,eAAK,EAAC,GAAG,EAAE;YAC/B,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK;gBACb,iBAAiB,EAAE,gBAAgB;gBACnC,cAAc,EAAE,kDAAkD;gBAClE,WAAW,EACT,mEAAmE;gBACrE,kBAAkB,EAAE,IAAI;gBACxB,oBAAoB,EAAE,WAAW;gBACjC,gBAAgB,EAAE,OAAO;gBACzB,gBAAgB,EAAE,MAAM;gBACxB,gBAAgB,EAAE,aAAa;gBAC/B,kBAAkB,EAAE,gBAAgB;gBACpC,MAAM;gBACN,OAAO,EAAE,iCAAiC;gBAC1C,iBAAiB,EAAE,iCAAiC;aACrD;YACD,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IACE,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,QAAQ,IAAI,KAAK;YACjB,KAAK,CAAC,MAAM,KAAK,GAAG,EACpB,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAChD,CAAC;QAED,OAAO;YACL,KAAK,EACH,KAAK,YAAY,KAAK;gBACpB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,gCAAgC;YACtC,MAAM,EACJ,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK;gBACrD,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,GAAG;SACV,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fetchTimetable.js","sourceRoot":"","sources":["../../../src/fetch/fetchTimetable.ts"],"names":[],"mappings":";;AAGA,wCAGC;AAND,oDAAuD;AACvD,2CAAwC;AAEjC,KAAK,UAAU,cAAc,CAAC,MAAc;IACjD,MAAM,GAAG,GAAG,MAAM,IAAA,6BAAgB,EAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,IAAA,qBAAS,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC"}
@@ -1,2 +1,6 @@
1
- export declare function fetchUserInfo(cookie: string): Promise<any>;
1
+ export declare function fetchUserInfo(cookie: string): Promise<{
2
+ data: unknown;
3
+ error?: string;
4
+ status: number;
5
+ }>;
2
6
  //# sourceMappingURL=fetchUserInfo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchUserInfo.d.ts","sourceRoot":"","sources":["../../../src/fetch/fetchUserInfo.ts"],"names":[],"mappings":"AAEA,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,gBAyCjD"}
1
+ {"version":3,"file":"fetchUserInfo.d.ts","sourceRoot":"","sources":["../../../src/fetch/fetchUserInfo.ts"],"names":[],"mappings":"AAGA,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM;;;;GAIjD"}
@@ -1,40 +1,11 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.fetchUserInfo = fetchUserInfo;
7
- const axios_1 = __importDefault(require("axios"));
8
- const dynamicUrl_1 = require("../../utils/dynamicUrl");
4
+ const dynamicUrl_1 = require("../utils/dynamicUrl");
5
+ const fetchPage_1 = require("./fetchPage");
9
6
  async function fetchUserInfo(cookie) {
10
- const url = await (0, dynamicUrl_1.courseDynamicUrl)();
11
- try {
12
- const request = await (0, axios_1.default)(url, {
13
- headers: {
14
- accept: "*/*",
15
- "accept-language": "en-US,en;q=0.9",
16
- "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
17
- "sec-fetch-dest": "empty",
18
- "sec-fetch-mode": "cors",
19
- "sec-fetch-site": "same-origin",
20
- "x-requested-with": "XMLHttpRequest",
21
- cookie,
22
- Referer: "https://academia.srmist.edu.in/",
23
- "Referrer-Policy": "strict-origin-when-cross-origin",
24
- },
25
- method: "GET",
26
- });
27
- return request.data;
28
- }
29
- catch (error) {
30
- const statusCode = axios_1.default.isAxiosError(error) ? error.response?.status : undefined;
31
- if (statusCode === 401 || statusCode === 403 || statusCode === 500) {
32
- return { error: "Unauthorized", status: 401 };
33
- }
34
- return {
35
- error: error instanceof Error ? error.message : "Failed to fetch user info",
36
- status: statusCode ?? 500,
37
- };
38
- }
7
+ // UserInfo is parsed from the timetable/course page (has registration details)
8
+ const url = await (0, dynamicUrl_1.courseDynamicUrl)(cookie);
9
+ return (0, fetchPage_1.fetchPage)(url, cookie);
39
10
  }
40
- //# sourceMappingURL=fetchUserInfo.js.map
11
+ //# sourceMappingURL=fetchUserInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetchUserInfo.js","sourceRoot":"","sources":["../../../src/fetch/fetchUserInfo.ts"],"names":[],"mappings":";;;;;AAEA,sCAyCC;AA3CD,kDAA0B;AAEnB,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,IAAA,eAAK,EACzB,qGAAqG,EACrG;YACE,OAAO,EAAE;gBACP,MAAM,EAAE,KAAK;gBACb,iBAAiB,EAAE,gBAAgB;gBACnC,cAAc,EAAE,kDAAkD;gBAClE,gBAAgB,EAAE,OAAO;gBACzB,gBAAgB,EAAE,MAAM;gBACxB,gBAAgB,EAAE,aAAa;gBAC/B,kBAAkB,EAAE,gBAAgB;gBACpC,MAAM;gBACN,OAAO,EAAE,iCAAiC;gBAC1C,iBAAiB,EAAE,iCAAiC;aACrD;YACD,MAAM,EAAE,KAAK;SACd,CACF,CAAC;QAEF,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IACE,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,QAAQ,IAAI,KAAK;YACjB,KAAK,CAAC,MAAM,KAAK,GAAG,EACpB,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAChD,CAAC;QACD,sBAAsB;QACtB,OAAO;YACL,KAAK,EACH,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,2BAA2B;YACtE,MAAM,EACJ,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,IAAI,KAAK;gBACrD,CAAC,CAAC,KAAK,CAAC,MAAM;gBACd,CAAC,CAAC,GAAG;SACV,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"fetchUserInfo.js","sourceRoot":"","sources":["../../../src/fetch/fetchUserInfo.ts"],"names":[],"mappings":";;AAGA,sCAIC;AAPD,oDAAuD;AACvD,2CAAwC;AAEjC,KAAK,UAAU,aAAa,CAAC,MAAc;IAChD,+EAA+E;IAC/E,MAAM,GAAG,GAAG,MAAM,IAAA,6BAAgB,EAAC,MAAM,CAAC,CAAC;IAC3C,OAAO,IAAA,qBAAS,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AAChC,CAAC"}
@@ -1,16 +1,50 @@
1
- import { PasswordInput, UserResponse, AuthResult, UserValidationResult, LogoutResponse, TimetableResponse, AttendanceResponse, MarksResponse, CalendarResponse, CourseResponse, UserInfoResponse, DayOrderResponse, MarkDetail, Mark, Month, Day, CourseDetail, AttendanceDetail, UserInfo, DaySchedule, CourseSlot, SlotInfo } from "./type";
2
- export type { PasswordInput, UserResponse, AuthResult, UserValidationResult, LogoutResponse, TimetableResponse, AttendanceResponse, MarksResponse, CalendarResponse, CourseResponse, UserInfoResponse, DayOrderResponse, MarkDetail, Mark, Month, Day, CourseDetail, AttendanceDetail, UserInfo, DaySchedule, CourseSlot, SlotInfo, };
1
+ import { PasswordInput, UserResponse, AuthResult, UserValidationResult, LogoutResponse, TerminateSessionsInput, TerminateSessionsResult, LoginResult, SessionSeed } from "./type/auth";
2
+ import { TimetableResponse, DaySchedule, CourseSlot, SlotInfo } from "./type/timetable";
3
+ import { AttendanceResponse, AttendanceDetail } from "./type/attendance";
4
+ import { MarksResponse, MarkDetail, Mark } from "./type/marks";
5
+ import { CalendarResponse, Month, Day } from "./type/calendar";
6
+ import { CourseResponse, CourseDetail } from "./type/course";
7
+ import { UserInfoResponse, UserInfo } from "./type/user";
8
+ import { DayOrderResponse } from "./type/dayOrder";
9
+ export type { PasswordInput, UserResponse, AuthResult, UserValidationResult, LogoutResponse, TerminateSessionsInput, TerminateSessionsResult, LoginResult, SessionSeed, TimetableResponse, AttendanceResponse, MarksResponse, CalendarResponse, CourseResponse, UserInfoResponse, DayOrderResponse, MarkDetail, Mark, Month, Day, CourseDetail, AttendanceDetail, UserInfo, DaySchedule, CourseSlot, SlotInfo, };
10
+ import { resetUrlCache } from "./utils/dynamicUrl";
11
+ /**
12
+ * One-call login: verifyUser → verifyPassword → auto-terminate if needed → re-login.
13
+ * Returns cookies or error.
14
+ */
15
+ export declare function login(email: string, password: string, maxRetries?: number): Promise<LoginResult>;
16
+ /** Verify a user exists by their email/username */
3
17
  export declare function verifyUser(username: string): Promise<UserValidationResult>;
18
+ /** Verify password after verifyUser */
4
19
  export declare function verifyPassword({ identifier, digest, password, }: PasswordInput): Promise<AuthResult>;
20
+ /** Logout user */
5
21
  export declare function logoutUser(cookie: string): Promise<LogoutResponse>;
6
- export interface TerminateSessionsInput { flowId: string | null; identifier: string; digest: string; csrfToken?: string; sessionCookie?: string; }
7
- export interface TerminateSessionsResult { success: boolean; status?: number; strategy?: string; data?: unknown; error?: string; errorReason?: unknown; }
22
+ /** Terminate concurrent sessions (2-device limit bypass) */
8
23
  export declare function terminateSessions(params: TerminateSessionsInput): Promise<TerminateSessionsResult>;
24
+ /** Get timetable data */
9
25
  export declare function getTimetable(cookie: string): Promise<TimetableResponse>;
26
+ /** Get attendance data */
10
27
  export declare function getAttendance(cookie: string): Promise<AttendanceResponse>;
28
+ /** Get marks data */
11
29
  export declare function getMarks(cookie: string): Promise<MarksResponse>;
30
+ /** Get user information */
12
31
  export declare function getUserInfo(cookie: string): Promise<UserInfoResponse>;
32
+ /** Get academic calendar */
13
33
  export declare function getCalendar(cookie: string): Promise<CalendarResponse>;
34
+ /** Get current day order */
14
35
  export declare function getDayOrder(cookie: string): Promise<DayOrderResponse>;
36
+ /** Get course details */
15
37
  export declare function getCourse(cookie: string): Promise<CourseResponse>;
16
- //# sourceMappingURL=index.d.ts.map
38
+ /** Fetch all data in parallel (attendance, marks, timetable, calendar, userInfo, dayOrder, course) */
39
+ export declare function getAllData(cookie: string): Promise<{
40
+ attendance: AttendanceResponse;
41
+ marks: MarksResponse;
42
+ timetable: TimetableResponse;
43
+ calendar: CalendarResponse;
44
+ userInfo: UserInfoResponse;
45
+ dayOrder: DayOrderResponse;
46
+ course: CourseResponse;
47
+ }>;
48
+ /** Reset cached URLs (needed when semester changes) */
49
+ export { resetUrlCache };
50
+ //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAiBA,OAAO,EAEL,aAAa,EACb,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,cAAc,EAEd,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAEhB,UAAU,EACV,IAAI,EACJ,KAAK,EACL,GAAG,EACH,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,UAAU,EACV,QAAQ,EACT,MAAM,QAAQ,CAAC;AAKhB,YAAY,EAEV,aAAa,EACb,YAAY,EACZ,UAAU,EACV,oBAAoB,EACpB,cAAc,EAEd,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAEhB,UAAU,EACV,IAAI,EACJ,KAAK,EACL,GAAG,EACH,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,WAAW,EACX,UAAU,EACV,QAAQ,GACT,CAAC;AAGF,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC,CAE/B;AAGD,wBAAsB,cAAc,CAAC,EACnC,UAAU,EACV,MAAM,EACN,QAAQ,GACT,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,CAErC;AAGD,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAExE;AAGD,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAM7E;AAGD,wBAAsB,aAAa,CACjC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,kBAAkB,CAAC,CAM7B;AAGD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAMrE;AAGD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAM3E;AAGD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAM3E;AAGD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAM3E;AAGD,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAMvE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}