• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

teableio / teable / 18671961261

21 Oct 2025 03:30AM UTC coverage: 75.089% (-0.005%) from 75.094%
18671961261

push

github

web-flow
fix: missing avatar when pasted user field records (#2003)

* fix: missing avatar when pasted user field records

* fix: admin users not appear refresh tips when authority updated

* fix: more friendly ui display

* fix: hidden or show all fields in share view

* fix: should't closed when click mask in add records dialog

* feat: get base collaborator users support filter by role

* fix: lint error

10031 of 10784 branches covered (93.02%)

8 of 10 new or added lines in 2 files covered. (80.0%)

2 existing lines in 1 file now uncovered.

50125 of 66754 relevant lines covered (75.09%)

4478.38 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

86.67
/apps/nestjs-backend/src/features/access-token/access-token.encryptor.ts
1
import { authConfig } from '../../configs/auth.config';
2✔
2
import { Encryptor } from '../../utils/encryptor';
3

4
interface ITokenEncryptor {
5
  sign: string;
6
}
7

8
let accessTokenEncryptor: Encryptor<ITokenEncryptor>;
2✔
9

10
const getAccessTokenEncryptor = () => {
2✔
11
  if (!accessTokenEncryptor) {
44✔
12
    accessTokenEncryptor = new Encryptor<ITokenEncryptor>({
4✔
13
      ...authConfig().accessToken.encryption,
4✔
14
      encoding: 'base64',
4✔
15
    });
4✔
16
  }
4✔
17
  return accessTokenEncryptor;
44✔
18
};
44✔
19

20
export const getAccessToken = (accessTokenId: string, sign: string) => {
2✔
21
  return `${authConfig().accessToken.prefix}_${accessTokenId}_${getAccessTokenEncryptor().encrypt({
24✔
22
    sign,
24✔
23
  })}`;
24✔
24
};
24✔
25

26
export const splitAccessToken = (accessToken: string) => {
2✔
27
  const [prefix = '', accessTokenId = '', encryptedSign = ''] = accessToken.split('_');
22✔
28
  if (!accessTokenId) {
22✔
29
    return null;
2✔
30
  }
2✔
31
  if (prefix !== authConfig().accessToken.prefix) {
21!
UNCOV
32
    return null;
×
UNCOV
33
  }
✔
34
  const { sign } = getAccessTokenEncryptor().decrypt(encryptedSign);
20✔
35
  if (!sign) {
21!
36
    return null;
×
37
  }
✔
38
  return { prefix, accessTokenId, sign };
20✔
39
};
20✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc