@nitra/vite-boot 3.7.0 → 3.8.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.7.0",
3
+ "version": "3.8.0",
4
4
  "description": "Vite boot",
5
5
  "type": "module",
6
6
  "exports": {
@@ -27,12 +27,12 @@
27
27
  "src"
28
28
  ],
29
29
  "dependencies": {
30
- "@apollo/client": "^3.9.10",
30
+ "@apollo/client": "^4.0.4",
31
31
  "@nitra/jwt-decode": "^1.2.0",
32
- "@sentry/tracing": "^7.109.0",
33
- "@sentry/vue": "^7.109.0",
34
- "graphql-ws": "^5.16.0",
35
- "pinia": "^2.1.7",
36
- "pinia-plugin-persistedstate": "^3.2.1"
32
+ "@sentry/tracing": "^7.120.4",
33
+ "@sentry/vue": "^10.10.0",
34
+ "graphql-ws": "^6.0.6",
35
+ "pinia": "^3.0.3",
36
+ "pinia-plugin-persistedstate": "^4.5.0"
37
37
  }
38
38
  }
package/src/router.js CHANGED
@@ -1,5 +1,5 @@
1
- import { getToken, checkToken } from './token.js'
2
- import { user, setUser } from './user.js'
1
+ import { checkToken, getToken } from './token.js'
2
+ import { setUser, user } from './user.js'
3
3
 
4
4
  export let router
5
5
 
@@ -26,7 +26,9 @@ export function canUserAccess(to) {
26
26
  if (!token) {
27
27
  // Записуємо поточний урл в session storage
28
28
  // щоб потім на нього повернути після логіну
29
- sessionStorage.setItem('url-before-logout', to.path)
29
+ // прибрати у рядку слеш, якщо він є першим символом
30
+ const url = `${import.meta.env.BASE_URL}${to.path.startsWith('/') ? to.path.slice(1) : to.path}`
31
+ sessionStorage.setItem('url-before-logout', url)
30
32
  return false
31
33
  }
32
34
  // Якщо перший раз запускаємо - завантажуємо користувача
package/src/token.js CHANGED
@@ -55,6 +55,9 @@ export function getToken() {
55
55
  export function cleanToken() {
56
56
  unsetUser()
57
57
 
58
+ // Очищаємо Apollo Client кеш
59
+ resetApolloClient()
60
+
58
61
  // видаляємо з localStorage
59
62
  localStorage.removeItem('__session')
60
63
 
@@ -62,6 +65,24 @@ export function cleanToken() {
62
65
  document.cookie = `__session=; Max-Age=0; path=/; domain=${import.meta.env.VITE_DOMAIN}` // eslint-disable-line unicorn/no-document-cookie
63
66
  }
64
67
 
68
+ /**
69
+ * Повне скидання Apollo Client (для критичних випадків)
70
+ */
71
+ export function resetApolloClient() {
72
+ if (apolloClient) {
73
+ // Очищаємо кеш
74
+ apolloClient.clearStore()
75
+
76
+ // Закриваємо всі активні запити
77
+ apolloClient.stop()
78
+ }
79
+
80
+ // Закриваємо WebSocket з'єднання
81
+ if (wsClient && wsClient.close) {
82
+ wsClient.close()
83
+ }
84
+ }
85
+
65
86
  /**
66
87
  *
67
88
  */