@or-sdk/auth 0.24.9-beta.995.0 → 0.24.9

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 (47) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/Auth.js +616 -0
  3. package/dist/cjs/Auth.js.map +1 -1
  4. package/dist/cjs/index.js +3 -10
  5. package/dist/cjs/index.js.map +1 -1
  6. package/dist/esm/Auth.js +449 -1
  7. package/dist/esm/Auth.js.map +1 -1
  8. package/dist/esm/index.js +1 -5
  9. package/dist/esm/index.js.map +1 -1
  10. package/dist/types/Auth.d.ts +56 -0
  11. package/dist/types/Auth.d.ts.map +1 -1
  12. package/dist/types/index.d.ts +1 -5
  13. package/dist/types/index.d.ts.map +1 -1
  14. package/dist/types/types.d.ts +2 -20
  15. package/dist/types/types.d.ts.map +1 -1
  16. package/package.json +5 -4
  17. package/src/Auth.ts +763 -763
  18. package/src/index.ts +1 -6
  19. package/src/types.ts +4 -22
  20. package/dist/cjs/AuthBase.js +0 -97
  21. package/dist/cjs/AuthBase.js.map +0 -1
  22. package/dist/cjs/AuthCookieStorage.js +0 -217
  23. package/dist/cjs/AuthCookieStorage.js.map +0 -1
  24. package/dist/cjs/AuthForBackend.js +0 -28
  25. package/dist/cjs/AuthForBackend.js.map +0 -1
  26. package/dist/cjs/AuthForClient.js +0 -402
  27. package/dist/cjs/AuthForClient.js.map +0 -1
  28. package/dist/esm/AuthBase.js +0 -42
  29. package/dist/esm/AuthBase.js.map +0 -1
  30. package/dist/esm/AuthCookieStorage.js +0 -145
  31. package/dist/esm/AuthCookieStorage.js.map +0 -1
  32. package/dist/esm/AuthForBackend.js +0 -7
  33. package/dist/esm/AuthForBackend.js.map +0 -1
  34. package/dist/esm/AuthForClient.js +0 -257
  35. package/dist/esm/AuthForClient.js.map +0 -1
  36. package/dist/types/AuthBase.d.ts +0 -14
  37. package/dist/types/AuthBase.d.ts.map +0 -1
  38. package/dist/types/AuthCookieStorage.d.ts +0 -40
  39. package/dist/types/AuthCookieStorage.d.ts.map +0 -1
  40. package/dist/types/AuthForBackend.d.ts +0 -6
  41. package/dist/types/AuthForBackend.d.ts.map +0 -1
  42. package/dist/types/AuthForClient.d.ts +0 -30
  43. package/dist/types/AuthForClient.d.ts.map +0 -1
  44. package/src/AuthBase.ts +0 -44
  45. package/src/AuthCookieStorage.ts +0 -307
  46. package/src/AuthForBackend.ts +0 -8
  47. package/src/AuthForClient.ts +0 -426
@@ -1,426 +0,0 @@
1
- import { AuthBase } from './AuthBase';
2
- import {
3
- AuthBaseConfig, AuthDataStorage,
4
- AuthResponse,
5
- MultiUserLoginUserArgs,
6
- MultiUserResponse,
7
- MultiUserUpdateTwoFactorArgs,
8
- MultiUserUploadIconArgs,
9
- MultiUserUploadIconResponse,
10
- SignInArgs,
11
- User,
12
- } from './types';
13
- import _ from 'lodash';
14
- import { generateFingerPrint } from './utils';
15
- import { isNode } from 'browser-or-node';
16
- import axios from 'axios';
17
-
18
- export class AuthForClient extends AuthBase {
19
- readonly dataStorage: AuthDataStorage;
20
- constructor(params: AuthBaseConfig & {dataStorage: AuthDataStorage;}) {
21
- super(params);
22
- this.dataStorage = params.dataStorage;
23
- }
24
-
25
- /**
26
- * Sign in
27
- * ```typescript
28
- * const user = await instance.signIn({
29
- * credentials: {
30
- * username: 'username',
31
- * password: 'password'
32
- * },
33
- * long: true,
34
- * captchaToken: 'captchaToken'
35
- * });
36
- * ```
37
- */
38
- async signIn({
39
- credentials,
40
- long = false,
41
- allowGuestLogin = false,
42
- captchaToken,
43
- isCaptchaV2Checkbox,
44
- verificationCode,
45
- userToken,
46
- rememberTwoFactor,
47
- }: SignInArgs): Promise<AuthResponse> {
48
- const fingerPrint = await generateFingerPrint();
49
-
50
- const options = {
51
- ...credentials,
52
- captchaToken,
53
- isCaptchaV2Checkbox,
54
- verificationCode,
55
- fingerPrint,
56
- rememberTwoFactor,
57
- ... userToken ? { userToken } : {},
58
- };
59
-
60
- const user = await this.sdkApi.makeRequest<AuthResponse>({
61
- method: 'POST',
62
- route: '/auth/token',
63
- data: options,
64
- });
65
-
66
- this.validateGuest(user.role, allowGuestLogin);
67
-
68
- if (!user.twoFactorCheck && !user.captchaCheck) {
69
- if (user.tokenType === 'multi-user') {
70
- this.dataStorage.saveMultiUser(user, long);
71
- } else {
72
- await this.dataStorage.saveUser({
73
- long,
74
- user,
75
- });
76
- }
77
- }
78
-
79
- return user;
80
- }
81
-
82
- /**
83
- * Sign in with token
84
- * ```typescript
85
- * const user = await instance.signInWithToken({
86
- * token: 'token'
87
- * });
88
- * ```
89
- */
90
- async signInWithToken(
91
- token: string | { token: string; allowGuestLogin?: boolean; shouldNotSaveCookies?: boolean; },
92
- allowGuestLogin = false,
93
- shouldNotSaveCookies = false
94
- ): Promise<User> {
95
- let userInfo = {};
96
- if (_.isObject(token)) {
97
- allowGuestLogin = _.get(token, 'allowGuestLogin', false);
98
- shouldNotSaveCookies = _.get(token, 'shouldNotSaveCookies', false);
99
- userInfo = _.get(token, 'userInfo', {});
100
- token = token.token;
101
- }
102
-
103
- if (!token) {
104
- return Promise.reject(new Error('No token given'));
105
- }
106
-
107
- this.dataStorage.checkDeprecatedData();
108
-
109
- const user = await this.validateToken(token, allowGuestLogin);
110
-
111
- _.assign(user, { token });
112
-
113
- const allow = _.get(user, 'allow', false);
114
- if (!allow) {
115
- throw Error('Invalid Token');
116
- }
117
-
118
- if (!shouldNotSaveCookies) {
119
- this.dataStorage.setItem({
120
- ...userInfo,
121
- ...user,
122
- }, this.dataStorage.getCurrentExpire());
123
- }
124
-
125
- return user;
126
- }
127
-
128
- /**
129
- * Sign out
130
- * ```typescript
131
- * await instance.signOut('token');
132
- * ```
133
- */
134
- async signOut(token?: string, multiuserToken?: string): Promise<void> {
135
- try {
136
- const promises = [];
137
- if (token) {
138
- promises.push(this.sdkApi.makeRequest<void>({
139
- method: 'DELETE',
140
- route: '/auth/fingerprint-token',
141
- customHeaders: {
142
- ...this.addTokenToHeaders(token),
143
- },
144
- }));
145
- }
146
- if (multiuserToken) {
147
- promises.push(this.sdkApi.makeRequest<void>({
148
- method: 'DELETE',
149
- route: '/multi-user/fingerprint-token',
150
- ...this.addTokenToHeaders(multiuserToken),
151
- }));
152
- }
153
- await Promise.all(promises);
154
- } catch (error) {
155
- // eslint-disable-next-line no-console
156
- console.log('Logout failed: ', error);
157
- }
158
- this.dataStorage.removeItem();
159
- }
160
-
161
- /**
162
- * Validate user
163
- * ```typescript
164
- * const user = await instance.validateUser();
165
- * ```
166
- */
167
- async validateUser(allowGuestLogin = false): Promise<User> {
168
- this.dataStorage.checkDeprecatedData();
169
- const userParams = this.dataStorage.user;
170
-
171
- if (!userParams) {
172
- return Promise.reject(new Error('No cached user params are available'));
173
- }
174
-
175
- const user = await this.validateToken(userParams.token || '', allowGuestLogin);
176
-
177
- if (!user.identityProvider && userParams.identityProvider) {
178
- user.identityProvider = userParams.identityProvider;
179
- }
180
- _.assign(user, { token: userParams.token });
181
-
182
- const allow = _.get(user, 'allow', false);
183
- if (!allow) {
184
- throw Error('Invalid Token');
185
- }
186
-
187
- return user;
188
- }
189
-
190
- /**
191
- * Get users list of a multi-user
192
- * ```typescript
193
- * const result = await instance.multiUserGetUsersList();
194
- * ```
195
- */
196
- async multiUserGetUsersList(): Promise<any> {
197
- if (!this.multiUserToken) return false;
198
-
199
- return this.sdkApi.makeRequest<any>({
200
- method: 'GET',
201
- route: '/multi-user/list-users',
202
- customHeaders: {
203
- ...this.addTokenToHeaders(this.multiUserToken),
204
- },
205
- });
206
- }
207
-
208
- /**
209
- * Log in user of a multi-user
210
- * ```typescript
211
- * const result = await instance.multiUserLoginUser({
212
- * accountId: 'account-id',
213
- * id: 'id',
214
- * long: true
215
- * });
216
- * ```
217
- */
218
- async multiUserLoginUser({ accountId, id, long }: MultiUserLoginUserArgs): Promise<User> {
219
- const user = await this.sdkApi.makeRequest<User>({
220
- method: 'POST',
221
- route: '/multi-user/user-token',
222
- data: {
223
- accountId,
224
- id,
225
- },
226
- customHeaders: {
227
- ...this.addTokenToHeaders(this.multiUserToken),
228
- },
229
- });
230
-
231
- await this.dataStorage.saveUser({
232
- long,
233
- user,
234
- });
235
-
236
- return user;
237
- }
238
-
239
- /**
240
- * Get username for lock screen
241
- * ```typescript
242
- * const username = await instance.getUserNameForLockScreen(user);
243
- * ```
244
- */
245
- async getUserNameForLockScreen(user: Pick<User, 'multiUserId'| 'username'| 'token'>): Promise<string> {
246
- const multiUserCookie = this.dataStorage.multiUserData;
247
- if (multiUserCookie.username) return multiUserCookie.username;
248
-
249
- const { multiUserId, username, token } = user;
250
- if (multiUserId) {
251
- const { username } = await this.sdkApi.makeRequest<MultiUserResponse>({
252
- method: 'GET',
253
- route: '/user/multi-user',
254
- customHeaders: {
255
- ...this.addTokenToHeaders(token || ''),
256
- },
257
- });
258
-
259
- return username;
260
-
261
- }
262
- return username;
263
- }
264
-
265
- /**
266
- * Get profile for multi-user
267
- * ```typescript
268
- * const result = await instance.multiUserGetProfile();
269
- * ```
270
- */
271
- async multiUserGetProfile(): Promise<any> {
272
- return this.sdkApi.makeRequest<any>({
273
- method: 'GET',
274
- route: '/multi-user/profile',
275
- customHeaders: {
276
- ...this.addTokenToHeaders(this.multiUserToken),
277
- },
278
- });
279
- }
280
-
281
-
282
- /**
283
- * Update cookie expiration
284
- * ```typescript
285
- * instance.updateCookieExpiration();
286
- * ```
287
- */
288
- updateCookieExpiration() {
289
- this.dataStorage.updateExpiration();
290
- }
291
-
292
- /**
293
- * Set profile for multi-user
294
- * ```typescript
295
- * const knowledgeModels = await instance.multiUserSetProfile(profile);
296
- * ```
297
- */
298
- async multiUserSetProfile(profile: unknown): Promise<any> {
299
- return this.sdkApi.makeRequest<any>({
300
- method: 'POST',
301
- route: '/multi-user/profile',
302
- data: profile,
303
- customHeaders: {
304
- ...this.addTokenToHeaders(this.multiUserToken),
305
- },
306
- });
307
- }
308
-
309
- /**
310
- * Validate multi-user token
311
- * ```typescript
312
- * const result = await instance.validateMultiUserToken();
313
- * ```
314
- */
315
- async validateMultiUserToken(): Promise<any> {
316
- return this.sdkApi.makeRequest<any>({
317
- method: 'GET',
318
- route: '/multi-user/token',
319
- customHeaders: {
320
- ...this.addTokenToHeaders(this.multiUserToken),
321
- },
322
- });
323
- }
324
-
325
- /**
326
- * Upload icon for multi-user
327
- * ```typescript
328
- * const downloadUrl = await instance.multiUserUploadIcon({
329
- * name: 'name',
330
- * contentType: 'content-type',
331
- * file: file
332
- * });
333
- * ```
334
- */
335
- async multiUserUploadIcon(
336
- { name, contentType, cacheControl = 'no-cache', file }: MultiUserUploadIconArgs
337
- ): Promise<string> {
338
- const data = await this.sdkApi.makeRequest<MultiUserUploadIconResponse>({
339
- method: 'POST',
340
- route: '/multi-user/sign-upload-url',
341
- data: {
342
- name,
343
- contentType,
344
- cacheControl,
345
- },
346
- customHeaders: {
347
- ...this.addTokenToHeaders(this.multiUserToken),
348
- },
349
- });
350
-
351
- const FormDataLib = isNode ? require('form-data') : FormData;
352
- const formData = new FormDataLib();
353
-
354
- _.forEach(data.uploadParams.fields, (value, key) => {
355
- formData.append(key, value);
356
- });
357
-
358
- formData.append('cache-control', cacheControl);
359
- formData.append('content-type', contentType);
360
- formData.append('File', file, name);
361
-
362
- if (isNode) {
363
- await new Promise<void>((resolve, reject) => {
364
- formData.submit(data.uploadParams.url, (error: any) => {
365
- if (error) return reject(error);
366
- resolve();
367
- });
368
- });
369
- } else {
370
- await axios.post(data.uploadParams.url, formData);
371
- }
372
-
373
- return data.downloadUrl;
374
- }
375
-
376
- /**
377
- * Confirm email change
378
- * ```typescript
379
- * const result = await instance.confirmEmailChange({ token: 'token' });
380
- * ```
381
- */
382
- async confirmEmailChange({ token }: { token: string; }): Promise<any> {
383
- return this.sdkApi.makeRequest<any>({
384
- method: 'POST',
385
- route: '/multi-user/change-email-finish',
386
- data: {
387
- token,
388
- },
389
- });
390
- }
391
-
392
- /**
393
- * Update 2fa for multi-user
394
- * ```typescript
395
- * const result = await instance.multiUserUpdateTwoFactor({
396
- * secret: 'secret',
397
- * enabled: true,
398
- * codes: codes,
399
- * verificationCode: 'verification-code'
400
- * });
401
- * ```
402
- */
403
- async multiUserUpdateTwoFactor(
404
- { secret, enabled, codes, verificationCode }: MultiUserUpdateTwoFactorArgs
405
- ): Promise<any> {
406
- return this.sdkApi.makeRequest<any>({
407
- method: 'POST',
408
- route: '/multi-user/twofactor',
409
- data: {
410
- secret,
411
- enabled,
412
- codes,
413
- verificationCode,
414
- },
415
- customHeaders: {
416
- ...this.addTokenToHeaders(this.multiUserToken),
417
- },
418
- });
419
- }
420
-
421
-
422
- private get multiUserToken(): string {
423
- const { token = '' } = this.dataStorage.multiUserData;
424
- return token;
425
- }
426
- }