@studentsphere/linkgor 0.0.1-alpha → 0.0.2-alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -185,11 +185,15 @@ async function getProfile(instanceId, token) {
185
185
  throw new Error(`Failed to parse cookie jar token: ${e}`);
186
186
  }
187
187
  const casUrl = getCASURL(instanceId);
188
+ const cookieHeader = serializeCookies(jar, casUrl);
189
+ const headers = {
190
+ "User-Agent": "linkgor"
191
+ };
192
+ if (cookieHeader) {
193
+ headers["Cookie"] = cookieHeader;
194
+ }
188
195
  const response = await fetch(casUrl, {
189
- headers: {
190
- "User-Agent": "linkgor",
191
- Cookie: serializeCookies(jar, casUrl)
192
- }
196
+ headers
193
197
  });
194
198
  if (!response.ok) {
195
199
  throw new Error(
@@ -234,7 +238,8 @@ async function loginWithCredentials(instanceId, username, password) {
234
238
  const getRes = await fetch(currentUrl, {
235
239
  headers: { "User-Agent": "wigor-papillon" }
236
240
  });
237
- updateCookies(jar, currentUrl, getRes.headers.getSetCookie());
241
+ const initialCookies = getRes.headers.getSetCookie ? getRes.headers.getSetCookie() : getRes.headers.get("Set-Cookie") ? [getRes.headers.get("Set-Cookie")] : [];
242
+ updateCookies(jar, currentUrl, initialCookies);
238
243
  const html = await getRes.text();
239
244
  const extractHiddenFields = (htmlText) => {
240
245
  const fields = {};
@@ -252,13 +257,17 @@ async function loginWithCredentials(instanceId, username, password) {
252
257
  if (k !== "username" && k !== "password") form.append(k, v);
253
258
  }
254
259
  if (!form.has("_eventId")) form.append("_eventId", "submit");
260
+ const initialCookieHeader = serializeCookies(jar, currentUrl);
261
+ const postHeaders = {
262
+ "Content-Type": "application/x-www-form-urlencoded",
263
+ "User-Agent": "wigor-papillon"
264
+ };
265
+ if (initialCookieHeader) {
266
+ postHeaders["Cookie"] = initialCookieHeader;
267
+ }
255
268
  let response = await fetch(currentUrl, {
256
269
  method: "POST",
257
- headers: {
258
- "Content-Type": "application/x-www-form-urlencoded",
259
- "User-Agent": "wigor-papillon",
260
- Cookie: serializeCookies(jar, currentUrl)
261
- },
270
+ headers: postHeaders,
262
271
  body: form.toString(),
263
272
  redirect: "manual"
264
273
  });
@@ -267,7 +276,8 @@ async function loginWithCredentials(instanceId, username, password) {
267
276
  const seenTickets = /* @__PURE__ */ new Set();
268
277
  let followUrl = currentUrl;
269
278
  while (true) {
270
- updateCookies(jar, followUrl, response.headers.getSetCookie());
279
+ const redirectCookies = response.headers.getSetCookie ? response.headers.getSetCookie() : response.headers.get("Set-Cookie") ? [response.headers.get("Set-Cookie")] : [];
280
+ updateCookies(jar, followUrl, redirectCookies);
271
281
  if (response.status >= 300 && response.status < 400) {
272
282
  let location = response.headers.get("location");
273
283
  if (!location) break;
@@ -283,11 +293,14 @@ async function loginWithCredentials(instanceId, username, password) {
283
293
  }
284
294
  followUrl = new URL(location, followUrl).toString();
285
295
  const cookieHeader = serializeCookies(jar, followUrl);
296
+ const redirectHeaders = {
297
+ "User-Agent": "wigor-papillon"
298
+ };
299
+ if (cookieHeader) {
300
+ redirectHeaders["Cookie"] = cookieHeader;
301
+ }
286
302
  response = await fetch(followUrl, {
287
- headers: {
288
- "User-Agent": "wigor-papillon",
289
- Cookie: cookieHeader
290
- },
303
+ headers: redirectHeaders,
291
304
  redirect: "manual"
292
305
  });
293
306
  redirectCount++;
@@ -339,11 +352,15 @@ async function getPlanning(instanceId, token) {
339
352
  dateFin: to.toISOString()
340
353
  });
341
354
  const fullScheduleUrl = `${scheduleServer}?${params.toString()}`;
355
+ const scheduleCookieHeader = serializeCookies(jar, scheduleServer);
356
+ const scheduleHeaders = {
357
+ "User-Agent": "linkgor"
358
+ };
359
+ if (scheduleCookieHeader) {
360
+ scheduleHeaders["Cookie"] = scheduleCookieHeader;
361
+ }
342
362
  const response = await fetch(fullScheduleUrl, {
343
- headers: {
344
- "User-Agent": "linkgor",
345
- Cookie: serializeCookies(jar, scheduleServer)
346
- }
363
+ headers: scheduleHeaders
347
364
  });
348
365
  if (!response.ok || response.status === 302) {
349
366
  const text = await response.text();
package/dist/index.mjs CHANGED
@@ -153,11 +153,15 @@ async function getProfile(instanceId, token) {
153
153
  throw new Error(`Failed to parse cookie jar token: ${e}`);
154
154
  }
155
155
  const casUrl = getCASURL(instanceId);
156
+ const cookieHeader = serializeCookies(jar, casUrl);
157
+ const headers = {
158
+ "User-Agent": "linkgor"
159
+ };
160
+ if (cookieHeader) {
161
+ headers["Cookie"] = cookieHeader;
162
+ }
156
163
  const response = await fetch(casUrl, {
157
- headers: {
158
- "User-Agent": "linkgor",
159
- Cookie: serializeCookies(jar, casUrl)
160
- }
164
+ headers
161
165
  });
162
166
  if (!response.ok) {
163
167
  throw new Error(
@@ -202,7 +206,8 @@ async function loginWithCredentials(instanceId, username, password) {
202
206
  const getRes = await fetch(currentUrl, {
203
207
  headers: { "User-Agent": "wigor-papillon" }
204
208
  });
205
- updateCookies(jar, currentUrl, getRes.headers.getSetCookie());
209
+ const initialCookies = getRes.headers.getSetCookie ? getRes.headers.getSetCookie() : getRes.headers.get("Set-Cookie") ? [getRes.headers.get("Set-Cookie")] : [];
210
+ updateCookies(jar, currentUrl, initialCookies);
206
211
  const html = await getRes.text();
207
212
  const extractHiddenFields = (htmlText) => {
208
213
  const fields = {};
@@ -220,13 +225,17 @@ async function loginWithCredentials(instanceId, username, password) {
220
225
  if (k !== "username" && k !== "password") form.append(k, v);
221
226
  }
222
227
  if (!form.has("_eventId")) form.append("_eventId", "submit");
228
+ const initialCookieHeader = serializeCookies(jar, currentUrl);
229
+ const postHeaders = {
230
+ "Content-Type": "application/x-www-form-urlencoded",
231
+ "User-Agent": "wigor-papillon"
232
+ };
233
+ if (initialCookieHeader) {
234
+ postHeaders["Cookie"] = initialCookieHeader;
235
+ }
223
236
  let response = await fetch(currentUrl, {
224
237
  method: "POST",
225
- headers: {
226
- "Content-Type": "application/x-www-form-urlencoded",
227
- "User-Agent": "wigor-papillon",
228
- Cookie: serializeCookies(jar, currentUrl)
229
- },
238
+ headers: postHeaders,
230
239
  body: form.toString(),
231
240
  redirect: "manual"
232
241
  });
@@ -235,7 +244,8 @@ async function loginWithCredentials(instanceId, username, password) {
235
244
  const seenTickets = /* @__PURE__ */ new Set();
236
245
  let followUrl = currentUrl;
237
246
  while (true) {
238
- updateCookies(jar, followUrl, response.headers.getSetCookie());
247
+ const redirectCookies = response.headers.getSetCookie ? response.headers.getSetCookie() : response.headers.get("Set-Cookie") ? [response.headers.get("Set-Cookie")] : [];
248
+ updateCookies(jar, followUrl, redirectCookies);
239
249
  if (response.status >= 300 && response.status < 400) {
240
250
  let location = response.headers.get("location");
241
251
  if (!location) break;
@@ -251,11 +261,14 @@ async function loginWithCredentials(instanceId, username, password) {
251
261
  }
252
262
  followUrl = new URL(location, followUrl).toString();
253
263
  const cookieHeader = serializeCookies(jar, followUrl);
264
+ const redirectHeaders = {
265
+ "User-Agent": "wigor-papillon"
266
+ };
267
+ if (cookieHeader) {
268
+ redirectHeaders["Cookie"] = cookieHeader;
269
+ }
254
270
  response = await fetch(followUrl, {
255
- headers: {
256
- "User-Agent": "wigor-papillon",
257
- Cookie: cookieHeader
258
- },
271
+ headers: redirectHeaders,
259
272
  redirect: "manual"
260
273
  });
261
274
  redirectCount++;
@@ -307,11 +320,15 @@ async function getPlanning(instanceId, token) {
307
320
  dateFin: to.toISOString()
308
321
  });
309
322
  const fullScheduleUrl = `${scheduleServer}?${params.toString()}`;
323
+ const scheduleCookieHeader = serializeCookies(jar, scheduleServer);
324
+ const scheduleHeaders = {
325
+ "User-Agent": "linkgor"
326
+ };
327
+ if (scheduleCookieHeader) {
328
+ scheduleHeaders["Cookie"] = scheduleCookieHeader;
329
+ }
310
330
  const response = await fetch(fullScheduleUrl, {
311
- headers: {
312
- "User-Agent": "linkgor",
313
- Cookie: serializeCookies(jar, scheduleServer)
314
- }
331
+ headers: scheduleHeaders
315
332
  });
316
333
  if (!response.ok || response.status === 302) {
317
334
  const text = await response.text();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@studentsphere/linkgor",
3
- "version": "0.0.1-alpha",
3
+ "version": "0.0.2-alpha",
4
4
  "description": "A Wrapper for Wigor",
5
5
  "author": "Kaelian Baudelet <contact@kaelian.dev> (https://github.com/kaelianbaudelet)",
6
6
  "license": "GPL-3.0",