@nitra/vite-boot 3.6.1 → 3.7.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nitra/vite-boot",
3
- "version": "3.6.1",
3
+ "version": "3.7.0",
4
4
  "description": "Vite boot",
5
5
  "type": "module",
6
6
  "exports": {
package/src/apollo.js CHANGED
@@ -5,6 +5,10 @@ import { GraphQLWsLink } from '@apollo/client/link/subscriptions'
5
5
  import { checkToken, refreshToken, getToken } from './token.js'
6
6
  import { user } from './user.js'
7
7
 
8
+ /**
9
+ *
10
+ * @param options
11
+ */
8
12
  function createRestartableClient(options) {
9
13
  let restartRequested = false
10
14
  let restart = () => {
@@ -73,7 +77,7 @@ const wsLink = new GraphQLWsLink(wsClient)
73
77
  const errorLink = onError(({ graphQLErrors, networkError }) => {
74
78
  if (graphQLErrors) {
75
79
  for (const err of graphQLErrors) {
76
- console.error('graphQLErrors: ', err)
80
+ console.error('graphQLErrors:', err)
77
81
  }
78
82
  }
79
83
 
@@ -90,7 +94,7 @@ const errorLink = onError(({ graphQLErrors, networkError }) => {
90
94
  // // Роль не підходить хашурі
91
95
  // router.push('/logout')
92
96
  } else {
93
- console.log(`[Network error]: `, networkError?.message, networkError)
97
+ console.log(`[Network error]:`, networkError?.message, networkError)
94
98
  }
95
99
  }
96
100
  })
package/src/login.js CHANGED
@@ -23,9 +23,9 @@ export async function autoLogin() {
23
23
 
24
24
  /**
25
25
  * Вхід або на попередню або на кореневу сторінку
26
- *
27
- * @param {Object} decoded
28
- * @param {String} raw? - необов'язково, але потрібно якщо використовується localStorage
26
+ * @param {object} decoded
27
+ * @param {string} raw? - необов'язково, але потрібно якщо використовується localStorage
28
+ * @param raw
29
29
  */
30
30
  export async function defaultLogin(decoded, raw) {
31
31
  // Якщо задано що токен з localStorage
package/src/router.js CHANGED
@@ -3,10 +3,18 @@ import { user, setUser } from './user.js'
3
3
 
4
4
  export let router
5
5
 
6
+ /**
7
+ *
8
+ * @param r
9
+ */
6
10
  export function setRouter(r) {
7
11
  router = r
8
12
  }
9
13
 
14
+ /**
15
+ *
16
+ * @param to
17
+ */
10
18
  export function canUserAccess(to) {
11
19
  // Якщо сторінка без обмеження по ролям то дозволяємо завжди
12
20
  if (to.meta?.layout === 404 || to.meta?.layout === 'blank') {
@@ -36,13 +44,17 @@ export function canUserAccess(to) {
36
44
  }
37
45
 
38
46
  // Якщо вказано - чи входить в дозволені користувачу
39
- if (to.meta?.roles.some(x => x === user.role)) {
47
+ if (to.meta?.roles.includes(user.role)) {
40
48
  return true
41
49
  }
42
50
 
43
51
  return false
44
52
  }
45
53
 
54
+ /**
55
+ *
56
+ * @param to
57
+ */
46
58
  export function canUserAccessMetaRoles(to) {
47
59
  // Якщо сторінка без обмеження по ролям то дозволяємо завжди
48
60
  if (to.meta?.layout === 404 || to.meta?.layout === 'blank' || !to.meta?.roles) {
package/src/sentry.js CHANGED
@@ -4,6 +4,8 @@ import { router } from './router.js'
4
4
 
5
5
  /**
6
6
  * Ініціалізація Sentry
7
+ * @param app
8
+ * @param tracing
7
9
  */
8
10
  export const bootSentry = (app, tracing = 0) => {
9
11
  if (!import.meta.env.VITE_SENTRY) {
package/src/token.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import jwtDecode from '@nitra/jwt-decode'
2
- import { unsetUser, setUser } from './user.js'
2
+ import { apolloClient, wsClient } from './apollo.js'
3
3
  import { defaultLogin } from './login.js'
4
- import { wsClient, apolloClient } from './apollo.js'
4
+ import { setUser, unsetUser } from './user.js'
5
5
 
6
6
  // @ts-ignore
7
7
  const allowedRoles = import.meta.env.VITE_HASURA_ROLE.split(',')
@@ -9,7 +9,6 @@ const allowedRoles = import.meta.env.VITE_HASURA_ROLE.split(',')
9
9
  /**
10
10
  * Запам'ятовуємо поточну сторінку
11
11
  * та перенаправляємо на сторінку входу
12
- *
13
12
  * @param {string} token - JWT токен
14
13
  * @returns {{result: string, decoded?: {}}} - Повертає результат перевірки токена
15
14
  */
@@ -21,7 +20,7 @@ export function checkToken(token) {
21
20
  return { result: 'cleaned' }
22
21
  }
23
22
 
24
- if (!decoded['https://hasura.io/jwt/claims']['x-hasura-allowed-roles'].some(x => allowedRoles.some(y => y === x))) {
23
+ if (!decoded['https://hasura.io/jwt/claims']['x-hasura-allowed-roles'].some(x => allowedRoles.includes(x))) {
25
24
  // Виходимо
26
25
  return { result: 'broken-role' }
27
26
  }
@@ -40,7 +39,7 @@ export function checkToken(token) {
40
39
  */
41
40
  export function getToken() {
42
41
  // інакше з кукі
43
- const cookieObj = new URLSearchParams(document.cookie.replaceAll('; ', '&')) // eslint-disable-line
42
+ const cookieObj = new URLSearchParams(document.cookie.replaceAll('; ', '&'))
44
43
  const token = cookieObj.get('__session')
45
44
  if (token) {
46
45
  return token
@@ -60,9 +59,12 @@ export function cleanToken() {
60
59
  localStorage.removeItem('__session')
61
60
 
62
61
  // @ts-ignore
63
- document.cookie = `__session=; Max-Age=0; path=/; domain=${import.meta.env.VITE_DOMAIN}` // eslint-disable-line
62
+ document.cookie = `__session=; Max-Age=0; path=/; domain=${import.meta.env.VITE_DOMAIN}` // eslint-disable-line unicorn/no-document-cookie
64
63
  }
65
64
 
65
+ /**
66
+ *
67
+ */
66
68
  export async function refreshToken() {
67
69
  try {
68
70
  const token = getToken()
package/src/user.js CHANGED
@@ -2,10 +2,17 @@ const allowedRoles = import.meta.env.VITE_HASURA_ROLE.split(',')
2
2
 
3
3
  export let user = {}
4
4
 
5
+ /**
6
+ *
7
+ */
5
8
  export function unsetUser() {
6
9
  user = {}
7
10
  }
8
11
 
12
+ /**
13
+ *
14
+ * @param u
15
+ */
9
16
  export function setUser(u) {
10
17
  user = u
11
18
 
@@ -15,6 +22,11 @@ export function setUser(u) {
15
22
  user.role = intersect[0]
16
23
  }
17
24
 
25
+ /**
26
+ *
27
+ * @param a
28
+ * @param b
29
+ */
18
30
  function intersection(a, b) {
19
31
  const setA = new Set(a)
20
32
  return b.filter(value => setA.has(value))