@teamphnx/sduiapi 0.1.4 → 0.1.6
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/README.md +1 -1
- package/package.json +1 -1
- package/dist/auth/webUntisAuth.d.ts +0 -3
- package/dist/auth/webUntisAuth.d.ts.map +0 -1
- package/dist/auth/webUntisAuth.js +0 -202
- package/dist/auth/webUntisAuth.js.map +0 -1
- package/dist/client.d.ts +0 -22
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -192
- package/dist/client.js.map +0 -1
- package/dist/constants.d.ts +0 -9
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -10
- package/dist/constants.js.map +0 -1
- package/dist/errors.d.ts +0 -5
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -9
- package/dist/errors.js.map +0 -1
- package/dist/index.d.ts +0 -5
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +0 -1
- package/dist/src/index.d.ts +0 -2
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -4
- package/dist/src/index.js.map +0 -1
- package/dist/types.d.ts +0 -42
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils/logging.d.ts +0 -3
- package/dist/utils/logging.d.ts.map +0 -1
- package/dist/utils/logging.js +0 -11
- package/dist/utils/logging.js.map +0 -1
- package/dist/utils/parsers.d.ts +0 -4
- package/dist/utils/parsers.d.ts.map +0 -1
- package/dist/utils/parsers.js +0 -20
- package/dist/utils/parsers.js.map +0 -1
- package/dist/utils/url.d.ts +0 -3
- package/dist/utils/url.d.ts.map +0 -1
- package/dist/utils/url.js +0 -13
- package/dist/utils/url.js.map +0 -1
package/README.md
CHANGED
package/package.json
CHANGED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { AuthenticateWithWebUntisOptions, SduiAuthResult, WebUntisCredentials } from '../types.js';
|
|
2
|
-
export declare function authenticateWithWebUntis(credentials: WebUntisCredentials, options?: AuthenticateWithWebUntisOptions): Promise<SduiAuthResult>;
|
|
3
|
-
//# sourceMappingURL=webUntisAuth.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webUntisAuth.d.ts","sourceRoot":"","sources":["../../src/auth/webUntisAuth.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACR,+BAA+B,EAC/B,cAAc,EACd,mBAAmB,EACtB,MAAM,aAAa,CAAC;AAkHrB,wBAAsB,wBAAwB,CAC1C,WAAW,EAAE,mBAAmB,EAChC,OAAO,GAAE,+BAAoC,GAC9C,OAAO,CAAC,cAAc,CAAC,CAmPzB"}
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
import axios, {} from 'axios';
|
|
2
|
-
import { wrapper } from 'axios-cookiejar-support';
|
|
3
|
-
import { CookieJar } from 'tough-cookie';
|
|
4
|
-
import { DEFAULT_REDIRECT_HOP_LIMIT, DEFAULT_REQUEST_HEADERS, DEFAULT_USER_AGENT, SDUI_API_BASE_URL, SDUI_IDP_RETURN_URL, } from '../constants.js';
|
|
5
|
-
import { SduiAuthError } from '../errors.js';
|
|
6
|
-
import { emitLog } from '../utils/logging.js';
|
|
7
|
-
import { extractCsrfToken, extractMetaRefreshUrl, maskSecret, } from '../utils/parsers.js';
|
|
8
|
-
import { buildSduiAuthorizeUrl, resolveRedirectUrl } from '../utils/url.js';
|
|
9
|
-
function createBrowserLikeHttpClient(userAgent) {
|
|
10
|
-
const cookieJar = new CookieJar();
|
|
11
|
-
return wrapper(axios.create({
|
|
12
|
-
maxRedirects: 10,
|
|
13
|
-
validateStatus: () => true,
|
|
14
|
-
jar: cookieJar,
|
|
15
|
-
withCredentials: true,
|
|
16
|
-
headers: {
|
|
17
|
-
...DEFAULT_REQUEST_HEADERS,
|
|
18
|
-
'User-Agent': userAgent,
|
|
19
|
-
},
|
|
20
|
-
}));
|
|
21
|
-
}
|
|
22
|
-
function getFinalResponseUrl(response) {
|
|
23
|
-
const req = response.request;
|
|
24
|
-
return req?.res?.responseUrl ?? null;
|
|
25
|
-
}
|
|
26
|
-
function readLocationHeader(response) {
|
|
27
|
-
const location = response.headers.location;
|
|
28
|
-
if (typeof location === 'string') {
|
|
29
|
-
return location;
|
|
30
|
-
}
|
|
31
|
-
if (Array.isArray(location) && typeof location[0] === 'string') {
|
|
32
|
-
return location[0];
|
|
33
|
-
}
|
|
34
|
-
return null;
|
|
35
|
-
}
|
|
36
|
-
function isRedirectStatus(statusCode) {
|
|
37
|
-
return [301, 302, 303, 307, 308].includes(statusCode);
|
|
38
|
-
}
|
|
39
|
-
async function followUntilSduiCallback(http, startUrl, hopLimit, logger) {
|
|
40
|
-
let nextUrl = startUrl;
|
|
41
|
-
for (let hop = 1; hop <= hopLimit; hop += 1) {
|
|
42
|
-
const response = await http.get(nextUrl, {
|
|
43
|
-
maxRedirects: 0,
|
|
44
|
-
responseType: 'text',
|
|
45
|
-
validateStatus: () => true,
|
|
46
|
-
});
|
|
47
|
-
const location = readLocationHeader(response);
|
|
48
|
-
emitLog(logger, 'callback.redirect', 'Following redirect during callback resolution.', {
|
|
49
|
-
hop,
|
|
50
|
-
statusCode: response.status,
|
|
51
|
-
hasLocation: Boolean(location),
|
|
52
|
-
});
|
|
53
|
-
if (!location || !isRedirectStatus(response.status)) {
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
const resolvedUrl = resolveRedirectUrl(nextUrl, location);
|
|
57
|
-
if (resolvedUrl.startsWith('https://sdui.app/')) {
|
|
58
|
-
return resolvedUrl;
|
|
59
|
-
}
|
|
60
|
-
nextUrl = resolvedUrl;
|
|
61
|
-
}
|
|
62
|
-
return null;
|
|
63
|
-
}
|
|
64
|
-
export async function authenticateWithWebUntis(credentials, options = {}) {
|
|
65
|
-
const schoolSlink = credentials.schoolSlink.trim();
|
|
66
|
-
const username = credentials.username.trim();
|
|
67
|
-
const password = credentials.password;
|
|
68
|
-
if (!schoolSlink || !username || !password) {
|
|
69
|
-
throw new SduiAuthError('schoolSlink, username and password are required.');
|
|
70
|
-
}
|
|
71
|
-
const redirectHopLimit = options.redirectHopLimit ?? DEFAULT_REDIRECT_HOP_LIMIT;
|
|
72
|
-
if (redirectHopLimit < 1) {
|
|
73
|
-
throw new SduiAuthError('redirectHopLimit must be at least 1.');
|
|
74
|
-
}
|
|
75
|
-
const userAgent = options.userAgent ?? DEFAULT_USER_AGENT;
|
|
76
|
-
const http = createBrowserLikeHttpClient(userAgent);
|
|
77
|
-
emitLog(options.logger, 'school.lookup', 'Looking up school configuration.', { schoolSlink });
|
|
78
|
-
const schoolResponse = await http.get(`${SDUI_API_BASE_URL}/v1/find-schools`, {
|
|
79
|
-
params: { slink: schoolSlink },
|
|
80
|
-
});
|
|
81
|
-
const idpUri = schoolResponse.data?.data?.meta?.external_identity_providers?.[0]
|
|
82
|
-
?.uri ?? null;
|
|
83
|
-
if (!idpUri) {
|
|
84
|
-
throw new SduiAuthError('Unable to resolve identity provider URL for school.', {
|
|
85
|
-
schoolSlink,
|
|
86
|
-
statusCode: schoolResponse.status,
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
const authorizeUrl = buildSduiAuthorizeUrl(idpUri, schoolSlink);
|
|
90
|
-
emitLog(options.logger, 'idp.bridge', 'Triggering SDUI SSO bridge.');
|
|
91
|
-
const idpResponse = await http.get(authorizeUrl, {
|
|
92
|
-
responseType: 'text',
|
|
93
|
-
});
|
|
94
|
-
const webUntisInitUrl = extractMetaRefreshUrl(idpResponse.data);
|
|
95
|
-
if (!webUntisInitUrl) {
|
|
96
|
-
throw new SduiAuthError('Failed to read WebUntis URL from IDP response.');
|
|
97
|
-
}
|
|
98
|
-
emitLog(options.logger, 'idp.meta-refresh', 'Resolved meta refresh target.', {
|
|
99
|
-
webUntisInitUrl,
|
|
100
|
-
});
|
|
101
|
-
const loginPageResponse = await http.get(webUntisInitUrl, {
|
|
102
|
-
responseType: 'text',
|
|
103
|
-
});
|
|
104
|
-
const csrfToken = extractCsrfToken(loginPageResponse.data);
|
|
105
|
-
if (!csrfToken) {
|
|
106
|
-
throw new SduiAuthError('Could not extract csrfToken from WebUntis page.');
|
|
107
|
-
}
|
|
108
|
-
emitLog(options.logger, 'webuntis.csrf', 'Extracted WebUntis CSRF token.', {
|
|
109
|
-
csrfToken: maskSecret(csrfToken),
|
|
110
|
-
});
|
|
111
|
-
const loginPageUrl = getFinalResponseUrl(loginPageResponse) ?? webUntisInitUrl;
|
|
112
|
-
const parsedLoginPageUrl = new URL(loginPageUrl);
|
|
113
|
-
const webUntisBaseUrl = `${parsedLoginPageUrl.protocol}//${parsedLoginPageUrl.host}`;
|
|
114
|
-
const schoolFromLoginUrl = parsedLoginPageUrl.searchParams.get('school') ?? schoolSlink;
|
|
115
|
-
const loginFormPayload = new URLSearchParams({
|
|
116
|
-
school: schoolFromLoginUrl,
|
|
117
|
-
j_username: username,
|
|
118
|
-
j_password: password,
|
|
119
|
-
});
|
|
120
|
-
emitLog(options.logger, 'webuntis.login', 'Submitting WebUntis credentials.', {
|
|
121
|
-
webUntisBaseUrl,
|
|
122
|
-
username,
|
|
123
|
-
});
|
|
124
|
-
const loginResponse = await http.post(`${webUntisBaseUrl}/WebUntis/j_spring_security_check`, loginFormPayload.toString(), {
|
|
125
|
-
headers: {
|
|
126
|
-
'Content-Type': 'application/x-www-form-urlencoded',
|
|
127
|
-
'X-Requested-With': 'XMLHttpRequest',
|
|
128
|
-
},
|
|
129
|
-
maxRedirects: 0,
|
|
130
|
-
validateStatus: () => true,
|
|
131
|
-
});
|
|
132
|
-
emitLog(options.logger, 'webuntis.login.done', 'WebUntis login request finished.', {
|
|
133
|
-
statusCode: loginResponse.status,
|
|
134
|
-
});
|
|
135
|
-
const sduiCallbackUrl = await followUntilSduiCallback(http, webUntisInitUrl, redirectHopLimit, options.logger);
|
|
136
|
-
if (!sduiCallbackUrl) {
|
|
137
|
-
throw new SduiAuthError('WebUntis did not redirect to SDUI callback URL. Credentials may be invalid or flow changed.');
|
|
138
|
-
}
|
|
139
|
-
const callbackUrl = new URL(sduiCallbackUrl);
|
|
140
|
-
const code1 = callbackUrl.searchParams.get('code');
|
|
141
|
-
const state1 = callbackUrl.searchParams.get('state');
|
|
142
|
-
if (!code1 || !state1) {
|
|
143
|
-
throw new SduiAuthError('Missing code/state in SDUI callback URL.', {
|
|
144
|
-
callbackUrl: sduiCallbackUrl,
|
|
145
|
-
});
|
|
146
|
-
}
|
|
147
|
-
emitLog(options.logger, 'idp.exchange.1', 'Exchanging first SDUI bridge code.', {
|
|
148
|
-
code: maskSecret(code1),
|
|
149
|
-
});
|
|
150
|
-
const idpExchangeResponse = await http.get(SDUI_IDP_RETURN_URL, {
|
|
151
|
-
params: {
|
|
152
|
-
code: code1,
|
|
153
|
-
state: state1,
|
|
154
|
-
},
|
|
155
|
-
maxRedirects: 0,
|
|
156
|
-
validateStatus: () => true,
|
|
157
|
-
});
|
|
158
|
-
const ssoVerifyLocation = readLocationHeader(idpExchangeResponse);
|
|
159
|
-
if (!isRedirectStatus(idpExchangeResponse.status) || !ssoVerifyLocation) {
|
|
160
|
-
throw new SduiAuthError('Failed to exchange code at SDUI identity bridge.', {
|
|
161
|
-
statusCode: idpExchangeResponse.status,
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
const ssoVerifyUrl = resolveRedirectUrl(SDUI_IDP_RETURN_URL, ssoVerifyLocation);
|
|
165
|
-
const code2 = new URL(ssoVerifyUrl).searchParams.get('code');
|
|
166
|
-
if (!code2) {
|
|
167
|
-
throw new SduiAuthError('Missing code in SSO verify redirect URL.', {
|
|
168
|
-
ssoVerifyUrl,
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
emitLog(options.logger, 'idp.exchange.2', 'Exchanging second code for API token.', {
|
|
172
|
-
code: maskSecret(code2),
|
|
173
|
-
});
|
|
174
|
-
const tokenResponse = await http.post(`${SDUI_API_BASE_URL}/v1/auth/login-idm`, {
|
|
175
|
-
code: code2,
|
|
176
|
-
slink: schoolSlink,
|
|
177
|
-
});
|
|
178
|
-
const accessToken = tokenResponse.data?.data?.access_token ??
|
|
179
|
-
tokenResponse.data?.access_token;
|
|
180
|
-
if (!accessToken) {
|
|
181
|
-
throw new SduiAuthError('Token exchange succeeded but no access token was returned.', {
|
|
182
|
-
statusCode: tokenResponse.status,
|
|
183
|
-
responseBody: tokenResponse.data,
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
emitLog(options.logger, 'auth.success', 'Authentication completed.', {
|
|
187
|
-
accessToken: maskSecret(accessToken),
|
|
188
|
-
});
|
|
189
|
-
const authenticatedHttp = axios.create({
|
|
190
|
-
baseURL: SDUI_API_BASE_URL,
|
|
191
|
-
headers: {
|
|
192
|
-
Accept: 'application/json',
|
|
193
|
-
Authorization: `Bearer ${accessToken}`,
|
|
194
|
-
'User-Agent': userAgent,
|
|
195
|
-
},
|
|
196
|
-
});
|
|
197
|
-
return {
|
|
198
|
-
accessToken,
|
|
199
|
-
http: authenticatedHttp,
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
//# sourceMappingURL=webUntisAuth.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webUntisAuth.js","sourceRoot":"","sources":["../../src/auth/webUntisAuth.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { type AxiosInstance, type AxiosRequestConfig } from 'axios';
|
|
2
|
-
import type { AuthenticateWithWebUntisOptions, GetChatMessagesOptions, GetMessageReadersOptions, GetUserChatsOptions, GetUserNewsOptions, MarkChatAsReadPayload, SendChatMessagePayload, WebUntisCredentials } from './types.js';
|
|
3
|
-
export declare class SduiClient {
|
|
4
|
-
readonly accessToken: string;
|
|
5
|
-
private readonly http;
|
|
6
|
-
private constructor();
|
|
7
|
-
static authenticateWithWebUntis(credentials: WebUntisCredentials, options?: AuthenticateWithWebUntisOptions): Promise<SduiClient>;
|
|
8
|
-
static fromAccessToken(accessToken: string, userAgent?: string): SduiClient;
|
|
9
|
-
request<T>(config: AxiosRequestConfig): Promise<T>;
|
|
10
|
-
getCurrentUser<T = unknown>(): Promise<T>;
|
|
11
|
-
getUserNews<T = unknown>(userId: string | number, options?: GetUserNewsOptions): Promise<T>;
|
|
12
|
-
getUserChats<T = unknown>(userId: string | number, options?: GetUserChatsOptions): Promise<T>;
|
|
13
|
-
getChatMessages<T = unknown>(chatId: string | number, options?: GetChatMessagesOptions): Promise<T>;
|
|
14
|
-
getMessageReaders<T = unknown>(chatId: string | number, messageUuid: string | number, options?: GetMessageReadersOptions): Promise<T>;
|
|
15
|
-
markChatAsRead<T = unknown>(chatId: string | number, payload?: MarkChatAsReadPayload): Promise<T>;
|
|
16
|
-
sendChatMessage<T = unknown>(chatId: string | number, payload: SendChatMessagePayload): Promise<T>;
|
|
17
|
-
replyToChatMessage<T = unknown>(chatId: string | number, replyUuid: string | number, payload: SendChatMessagePayload): Promise<T>;
|
|
18
|
-
deleteChatMessage<T = unknown>(chatId: string | number, messageUuid: string | number): Promise<T>;
|
|
19
|
-
getChannelUsers<T = unknown>(channelId: string | number): Promise<T>;
|
|
20
|
-
getHttpClient(): AxiosInstance;
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,KAAK,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAG3E,OAAO,KAAK,EACR,+BAA+B,EAC/B,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACtB,MAAM,YAAY,CAAC;AAEpB,qBAAa,UAAU;IACnB,SAAgB,WAAW,EAAE,MAAM,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgB;IAErC,OAAO;WAKa,wBAAwB,CACxC,WAAW,EAAE,mBAAmB,EAChC,OAAO,GAAE,+BAAoC,GAC9C,OAAO,CAAC,UAAU,CAAC;WAQR,eAAe,CACzB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAA2B,GACvC,UAAU;IAaA,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKlD,cAAc,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC;IAOzC,WAAW,CAAC,CAAC,GAAG,OAAO,EAChC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,GAAE,kBAAuB,GACjC,OAAO,CAAC,CAAC,CAAC;IAuBA,YAAY,CAAC,CAAC,GAAG,OAAO,EACjC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,GAAE,mBAAwB,GAClC,OAAO,CAAC,CAAC,CAAC;IA6BA,eAAe,CAAC,CAAC,GAAG,OAAO,EACpC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,GAAE,sBAA2B,GACrC,OAAO,CAAC,CAAC,CAAC;IAoBA,iBAAiB,CAAC,CAAC,GAAG,OAAO,EACtC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,OAAO,GAAE,wBAA6B,GACvC,OAAO,CAAC,CAAC,CAAC;IA4BA,cAAc,CAAC,CAAC,GAAG,OAAO,EACnC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,GAAE,qBAA0B,GACpC,OAAO,CAAC,CAAC,CAAC;IAaA,eAAe,CAAC,CAAC,GAAG,OAAO,EACpC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,OAAO,EAAE,sBAAsB,GAChC,OAAO,CAAC,CAAC,CAAC;IA8BA,kBAAkB,CAAC,CAAC,GAAG,OAAO,EACvC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,OAAO,EAAE,sBAAsB,GAChC,OAAO,CAAC,CAAC,CAAC;IAYA,iBAAiB,CAAC,CAAC,GAAG,OAAO,EACtC,MAAM,EAAE,MAAM,GAAG,MAAM,EACvB,WAAW,EAAE,MAAM,GAAG,MAAM,GAC7B,OAAO,CAAC,CAAC,CAAC;IAiBA,eAAe,CAAC,CAAC,GAAG,OAAO,EACpC,SAAS,EAAE,MAAM,GAAG,MAAM,GAC3B,OAAO,CAAC,CAAC,CAAC;IAYN,aAAa,IAAI,aAAa;CAGxC"}
|
package/dist/client.js
DELETED
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
import axios, {} from 'axios';
|
|
2
|
-
import { authenticateWithWebUntis } from './auth/webUntisAuth.js';
|
|
3
|
-
import { DEFAULT_USER_AGENT, SDUI_API_BASE_URL } from './constants.js';
|
|
4
|
-
export class SduiClient {
|
|
5
|
-
accessToken;
|
|
6
|
-
http;
|
|
7
|
-
constructor(accessToken, http) {
|
|
8
|
-
this.accessToken = accessToken;
|
|
9
|
-
this.http = http;
|
|
10
|
-
}
|
|
11
|
-
static async authenticateWithWebUntis(credentials, options = {}) {
|
|
12
|
-
const { accessToken, http } = await authenticateWithWebUntis(credentials, options);
|
|
13
|
-
return new SduiClient(accessToken, http);
|
|
14
|
-
}
|
|
15
|
-
static fromAccessToken(accessToken, userAgent = DEFAULT_USER_AGENT) {
|
|
16
|
-
const http = axios.create({
|
|
17
|
-
baseURL: SDUI_API_BASE_URL,
|
|
18
|
-
headers: {
|
|
19
|
-
Accept: 'application/json',
|
|
20
|
-
Authorization: `Bearer ${accessToken}`,
|
|
21
|
-
'User-Agent': userAgent,
|
|
22
|
-
},
|
|
23
|
-
});
|
|
24
|
-
return new SduiClient(accessToken, http);
|
|
25
|
-
}
|
|
26
|
-
async request(config) {
|
|
27
|
-
const response = await this.http.request(config);
|
|
28
|
-
return response.data;
|
|
29
|
-
}
|
|
30
|
-
async getCurrentUser() {
|
|
31
|
-
return this.request({
|
|
32
|
-
method: 'GET',
|
|
33
|
-
url: '/v1/users/self',
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
async getUserNews(userId, options = {}) {
|
|
37
|
-
const normalizedUserId = String(userId).trim();
|
|
38
|
-
if (!normalizedUserId) {
|
|
39
|
-
throw new TypeError('userId is required.');
|
|
40
|
-
}
|
|
41
|
-
const page = options.page ?? 1;
|
|
42
|
-
if (!Number.isInteger(page) || page < 1) {
|
|
43
|
-
throw new RangeError('page must be a positive integer.');
|
|
44
|
-
}
|
|
45
|
-
const search = options.search ?? '';
|
|
46
|
-
return this.request({
|
|
47
|
-
method: 'GET',
|
|
48
|
-
url: `/v1/users/${encodeURIComponent(normalizedUserId)}/feed/news`,
|
|
49
|
-
params: {
|
|
50
|
-
page,
|
|
51
|
-
search,
|
|
52
|
-
},
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
async getUserChats(userId, options = {}) {
|
|
56
|
-
const normalizedUserId = String(userId).trim();
|
|
57
|
-
if (!normalizedUserId) {
|
|
58
|
-
throw new TypeError('userId is required.');
|
|
59
|
-
}
|
|
60
|
-
const page = options.page ?? 1;
|
|
61
|
-
if (!Number.isInteger(page) || page < 1) {
|
|
62
|
-
throw new RangeError('page must be a positive integer.');
|
|
63
|
-
}
|
|
64
|
-
const limit = options.limit ?? 10;
|
|
65
|
-
if (!Number.isInteger(limit) || limit < 1) {
|
|
66
|
-
throw new RangeError('limit must be a positive integer.');
|
|
67
|
-
}
|
|
68
|
-
const search = options.search ?? '';
|
|
69
|
-
return this.request({
|
|
70
|
-
method: 'GET',
|
|
71
|
-
url: `/v1/users/${encodeURIComponent(normalizedUserId)}/channels/chats`,
|
|
72
|
-
params: {
|
|
73
|
-
page,
|
|
74
|
-
search,
|
|
75
|
-
limit,
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
async getChatMessages(chatId, options = {}) {
|
|
80
|
-
const normalizedChatId = String(chatId).trim();
|
|
81
|
-
if (!normalizedChatId) {
|
|
82
|
-
throw new TypeError('chatId is required.');
|
|
83
|
-
}
|
|
84
|
-
const page = options.page ?? 1;
|
|
85
|
-
if (!Number.isInteger(page) || page < 1) {
|
|
86
|
-
throw new RangeError('page must be a positive integer.');
|
|
87
|
-
}
|
|
88
|
-
return this.request({
|
|
89
|
-
method: 'GET',
|
|
90
|
-
url: `/v1/channels/chats/${encodeURIComponent(normalizedChatId)}/messages`,
|
|
91
|
-
params: {
|
|
92
|
-
page,
|
|
93
|
-
},
|
|
94
|
-
});
|
|
95
|
-
}
|
|
96
|
-
async getMessageReaders(chatId, messageUuid, options = {}) {
|
|
97
|
-
const normalizedChatId = String(chatId).trim();
|
|
98
|
-
if (!normalizedChatId) {
|
|
99
|
-
throw new TypeError('chatId is required.');
|
|
100
|
-
}
|
|
101
|
-
const normalizedMessageUuid = String(messageUuid).trim();
|
|
102
|
-
if (!normalizedMessageUuid) {
|
|
103
|
-
throw new TypeError('messageUuid is required.');
|
|
104
|
-
}
|
|
105
|
-
const page = options.page ?? 1;
|
|
106
|
-
if (!Number.isInteger(page) || page < 1) {
|
|
107
|
-
throw new RangeError('page must be a positive integer.');
|
|
108
|
-
}
|
|
109
|
-
const search = options.search ?? '';
|
|
110
|
-
return this.request({
|
|
111
|
-
method: 'GET',
|
|
112
|
-
url: `/v1/channels/chats/${encodeURIComponent(normalizedChatId)}/messages/${encodeURIComponent(normalizedMessageUuid)}/readers`,
|
|
113
|
-
params: {
|
|
114
|
-
page,
|
|
115
|
-
search,
|
|
116
|
-
},
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
async markChatAsRead(chatId, payload = {}) {
|
|
120
|
-
const normalizedChatId = String(chatId).trim();
|
|
121
|
-
if (!normalizedChatId) {
|
|
122
|
-
throw new TypeError('chatId is required.');
|
|
123
|
-
}
|
|
124
|
-
return this.request({
|
|
125
|
-
method: 'POST',
|
|
126
|
-
url: `/v1/channels/chats/${encodeURIComponent(normalizedChatId)}/read`,
|
|
127
|
-
data: payload,
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
async sendChatMessage(chatId, payload) {
|
|
131
|
-
const normalizedChatId = String(chatId).trim();
|
|
132
|
-
if (!normalizedChatId) {
|
|
133
|
-
throw new TypeError('chatId is required.');
|
|
134
|
-
}
|
|
135
|
-
if (typeof payload?.content !== 'string') {
|
|
136
|
-
throw new TypeError('content must be a string.');
|
|
137
|
-
}
|
|
138
|
-
if (!payload.content.trim()) {
|
|
139
|
-
throw new TypeError('content is required.');
|
|
140
|
-
}
|
|
141
|
-
const formData = new FormData();
|
|
142
|
-
for (const [key, value] of Object.entries(payload)) {
|
|
143
|
-
if (value === undefined || value === null) {
|
|
144
|
-
continue;
|
|
145
|
-
}
|
|
146
|
-
formData.append(key, String(value));
|
|
147
|
-
}
|
|
148
|
-
return this.request({
|
|
149
|
-
method: 'POST',
|
|
150
|
-
url: `/v1/channels/chats/${encodeURIComponent(normalizedChatId)}/messages`,
|
|
151
|
-
data: formData,
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
async replyToChatMessage(chatId, replyUuid, payload) {
|
|
155
|
-
const normalizedReplyUuid = String(replyUuid).trim();
|
|
156
|
-
if (!normalizedReplyUuid) {
|
|
157
|
-
throw new TypeError('replyUuid is required.');
|
|
158
|
-
}
|
|
159
|
-
return this.sendChatMessage(chatId, {
|
|
160
|
-
...payload,
|
|
161
|
-
reply_uuid: normalizedReplyUuid,
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
async deleteChatMessage(chatId, messageUuid) {
|
|
165
|
-
const normalizedChatId = String(chatId).trim();
|
|
166
|
-
if (!normalizedChatId) {
|
|
167
|
-
throw new TypeError('chatId is required.');
|
|
168
|
-
}
|
|
169
|
-
const normalizedMessageUuid = String(messageUuid).trim();
|
|
170
|
-
if (!normalizedMessageUuid) {
|
|
171
|
-
throw new TypeError('messageUuid is required.');
|
|
172
|
-
}
|
|
173
|
-
return this.request({
|
|
174
|
-
method: 'DELETE',
|
|
175
|
-
url: `/v1/channels/chats/${encodeURIComponent(normalizedChatId)}/messages/${encodeURIComponent(normalizedMessageUuid)}`,
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
async getChannelUsers(channelId) {
|
|
179
|
-
const normalizedChannelId = String(channelId).trim();
|
|
180
|
-
if (!normalizedChannelId) {
|
|
181
|
-
throw new TypeError('channelId is required.');
|
|
182
|
-
}
|
|
183
|
-
return this.request({
|
|
184
|
-
method: 'GET',
|
|
185
|
-
url: `/v1/channels/${encodeURIComponent(normalizedChannelId)}/users`,
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
getHttpClient() {
|
|
189
|
-
return this.http;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export declare const SDUI_API_BASE_URL = "https://api.sdui.app";
|
|
2
|
-
export declare const SDUI_IDP_RETURN_URL = "https://idp.sdui.app/api/auth/return";
|
|
3
|
-
export declare const DEFAULT_USER_AGENT: string;
|
|
4
|
-
export declare const DEFAULT_REQUEST_HEADERS: {
|
|
5
|
-
readonly Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8";
|
|
6
|
-
readonly 'Accept-Language': "en-US,en;q=0.5";
|
|
7
|
-
};
|
|
8
|
-
export declare const DEFAULT_REDIRECT_HOP_LIMIT = 5;
|
|
9
|
-
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,yBAAyB,CAAC;AACxD,eAAO,MAAM,mBAAmB,yCAAyC,CAAC;AAE1E,eAAO,MAAM,kBAAkB,QAEyB,CAAC;AAEzD,eAAO,MAAM,uBAAuB;;;CAG1B,CAAC;AAEX,eAAO,MAAM,0BAA0B,IAAI,CAAC"}
|
package/dist/constants.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export const SDUI_API_BASE_URL = 'https://api.sdui.app';
|
|
2
|
-
export const SDUI_IDP_RETURN_URL = 'https://idp.sdui.app/api/auth/return';
|
|
3
|
-
export const DEFAULT_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 ' +
|
|
4
|
-
'(KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36';
|
|
5
|
-
export const DEFAULT_REQUEST_HEADERS = {
|
|
6
|
-
Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
|
|
7
|
-
'Accept-Language': 'en-US,en;q=0.5',
|
|
8
|
-
};
|
|
9
|
-
export const DEFAULT_REDIRECT_HOP_LIMIT = 5;
|
|
10
|
-
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC;AACxD,MAAM,CAAC,MAAM,mBAAmB,GAAG,sCAAsC,CAAC;AAE1E,MAAM,CAAC,MAAM,kBAAkB,GAC3B,+DAA+D;IAC/D,oDAAoD,CAAC;AAEzD,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACnC,MAAM,EAAE,uFAAuF;IAC/F,iBAAiB,EAAE,gBAAgB;CAC7B,CAAC;AAEX,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC"}
|
package/dist/errors.d.ts
DELETED
package/dist/errors.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAc,SAAQ,KAAK;IACpC,SAAgB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;gBAE1C,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAKxE"}
|
package/dist/errors.js
DELETED
package/dist/errors.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,aAAc,SAAQ,KAAK;IACpB,OAAO,CAAsC;IAE7D,YAAmB,OAAe,EAAE,OAAiC;QACjE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ"}
|
package/dist/index.d.ts
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export { authenticateWithWebUntis } from './auth/webUntisAuth.js';
|
|
2
|
-
export { SduiClient } from './client.js';
|
|
3
|
-
export { SduiAuthError } from './errors.js';
|
|
4
|
-
export type { AuthenticateWithWebUntisOptions, AuthLogEvent, AuthLogger, GetChatMessagesOptions, GetMessageReadersOptions, GetUserChatsOptions, GetUserNewsOptions, MarkChatAsReadPayload, SendChatMessagePayload, SduiAuthResult, WebUntisCredentials, } from './types.js';
|
|
5
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,YAAY,EACR,+BAA+B,EAC/B,YAAY,EACZ,UAAU,EACV,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,mBAAmB,GACtB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
DELETED
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/src/index.d.ts
DELETED
package/dist/src/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":""}
|
package/dist/src/index.js
DELETED
package/dist/src/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;AAAA,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC"}
|
package/dist/types.d.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { AxiosInstance } from 'axios';
|
|
2
|
-
export interface WebUntisCredentials {
|
|
3
|
-
schoolSlink: string;
|
|
4
|
-
username: string;
|
|
5
|
-
password: string;
|
|
6
|
-
}
|
|
7
|
-
export interface AuthLogEvent {
|
|
8
|
-
step: string;
|
|
9
|
-
message: string;
|
|
10
|
-
details?: Record<string, unknown>;
|
|
11
|
-
}
|
|
12
|
-
export type AuthLogger = (event: AuthLogEvent) => void;
|
|
13
|
-
export interface AuthenticateWithWebUntisOptions {
|
|
14
|
-
redirectHopLimit?: number;
|
|
15
|
-
userAgent?: string;
|
|
16
|
-
logger?: AuthLogger;
|
|
17
|
-
}
|
|
18
|
-
export interface GetUserNewsOptions {
|
|
19
|
-
page?: number;
|
|
20
|
-
search?: string;
|
|
21
|
-
}
|
|
22
|
-
export interface GetUserChatsOptions {
|
|
23
|
-
page?: number;
|
|
24
|
-
search?: string;
|
|
25
|
-
limit?: number;
|
|
26
|
-
}
|
|
27
|
-
export interface GetChatMessagesOptions {
|
|
28
|
-
page?: number;
|
|
29
|
-
}
|
|
30
|
-
export interface GetMessageReadersOptions {
|
|
31
|
-
page?: number;
|
|
32
|
-
search?: string;
|
|
33
|
-
}
|
|
34
|
-
export type MarkChatAsReadPayload = Record<string, unknown>;
|
|
35
|
-
export type SendChatMessagePayload = {
|
|
36
|
-
content: string;
|
|
37
|
-
} & Record<string, string | number | boolean | null | undefined>;
|
|
38
|
-
export interface SduiAuthResult {
|
|
39
|
-
accessToken: string;
|
|
40
|
-
http: AxiosInstance;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,WAAW,mBAAmB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAEvD,MAAM,WAAW,+BAA+B;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5D,MAAM,MAAM,sBAAsB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,aAAa,CAAC;CACvB"}
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
package/dist/utils/logging.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/utils/logging.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5D,wBAAgB,OAAO,CACnB,MAAM,EAAE,UAAU,GAAG,SAAS,EAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,IAAI,CAWN"}
|
package/dist/utils/logging.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/utils/logging.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,OAAO,CACnB,MAA8B,EAC9B,IAAY,EACZ,OAAe,EACf,OAAiC;IAEjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO;IACX,CAAC;IAED,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC;QACV,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,CAAC;AAClB,CAAC"}
|
package/dist/utils/parsers.d.ts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export declare function extractMetaRefreshUrl(html: string): string | null;
|
|
2
|
-
export declare function extractCsrfToken(html: string): string | null;
|
|
3
|
-
export declare function maskSecret(secret: string, visiblePrefixLength?: number): string;
|
|
4
|
-
//# sourceMappingURL=parsers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parsers.d.ts","sourceRoot":"","sources":["../../src/utils/parsers.ts"],"names":[],"mappings":"AAIA,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOjE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAG5D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,mBAAmB,SAAI,GAAG,MAAM,CAM1E"}
|
package/dist/utils/parsers.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
const META_REFRESH_URL_PATTERN = /<meta[^>]+http-equiv=["']?refresh["']?[^>]*content=["'][^"']*url=([^"'>]+)["']/i;
|
|
2
|
-
const CSRF_TOKEN_PATTERN = /"csrfToken":"([^"]+)"/i;
|
|
3
|
-
export function extractMetaRefreshUrl(html) {
|
|
4
|
-
const match = META_REFRESH_URL_PATTERN.exec(html);
|
|
5
|
-
if (!match?.[1]) {
|
|
6
|
-
return null;
|
|
7
|
-
}
|
|
8
|
-
return match[1].replaceAll('&', '&').trim();
|
|
9
|
-
}
|
|
10
|
-
export function extractCsrfToken(html) {
|
|
11
|
-
const match = CSRF_TOKEN_PATTERN.exec(html);
|
|
12
|
-
return match?.[1] ?? null;
|
|
13
|
-
}
|
|
14
|
-
export function maskSecret(secret, visiblePrefixLength = 5) {
|
|
15
|
-
if (secret.length <= visiblePrefixLength) {
|
|
16
|
-
return `${secret}...`;
|
|
17
|
-
}
|
|
18
|
-
return `${secret.slice(0, visiblePrefixLength)}...`;
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=parsers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parsers.js","sourceRoot":"","sources":["../../src/utils/parsers.ts"],"names":[],"mappings":"AAAA,MAAM,wBAAwB,GAC1B,iFAAiF,CAAC;AACtF,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;AAEpD,MAAM,UAAU,qBAAqB,CAAC,IAAY;IAC9C,MAAM,KAAK,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,mBAAmB,GAAG,CAAC;IAC9D,IAAI,MAAM,CAAC,MAAM,IAAI,mBAAmB,EAAE,CAAC;QACvC,OAAO,GAAG,MAAM,KAAK,CAAC;IAC1B,CAAC;IAED,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC;AACxD,CAAC"}
|
package/dist/utils/url.d.ts
DELETED
package/dist/utils/url.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,CACjC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GACpB,MAAM,CASR;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5E"}
|
package/dist/utils/url.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export function buildSduiAuthorizeUrl(idpUri, schoolSlink) {
|
|
2
|
-
const redirectUri = `https://sdui.app/sso-verify/${schoolSlink}`;
|
|
3
|
-
const statePayload = {
|
|
4
|
-
branding: 'UNTIS',
|
|
5
|
-
slink: schoolSlink,
|
|
6
|
-
goBackToParentWindow: false,
|
|
7
|
-
};
|
|
8
|
-
return `${idpUri}&redirect_uri=${encodeURIComponent(redirectUri)}&state=${encodeURIComponent(JSON.stringify(statePayload))}`;
|
|
9
|
-
}
|
|
10
|
-
export function resolveRedirectUrl(baseUrl, location) {
|
|
11
|
-
return new URL(location, baseUrl).toString();
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=url.js.map
|
package/dist/utils/url.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../src/utils/url.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,qBAAqB,CACjC,MAAc,EACd,WAAmB;IAEnB,MAAM,WAAW,GAAG,+BAA+B,WAAW,EAAE,CAAC;IACjE,MAAM,YAAY,GAAG;QACjB,QAAQ,EAAE,OAAO;QACjB,KAAK,EAAE,WAAW;QAClB,oBAAoB,EAAE,KAAK;KAC9B,CAAC;IAEF,OAAO,GAAG,MAAM,iBAAiB,kBAAkB,CAAC,WAAW,CAAC,UAAU,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;AACjI,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,QAAgB;IAChE,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;AACjD,CAAC"}
|