@voicenter-team/events-sdk 0.0.6 → 0.0.8
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/.nvmrc +1 -1
- package/dist/voicenter-events-sdk.cjs.js +30 -30
- package/dist/voicenter-events-sdk.cjs.js.map +1 -1
- package/dist/voicenter-events-sdk.d.ts +8 -25
- package/dist/voicenter-events-sdk.es.js +3900 -3866
- package/dist/voicenter-events-sdk.es.js.map +1 -1
- package/dist/voicenter-events-sdk.iife.js +30 -30
- package/dist/voicenter-events-sdk.iife.js.map +1 -1
- package/dist/voicenter-events-sdk.umd.js +30 -30
- package/dist/voicenter-events-sdk.umd.js.map +1 -1
- package/docs/src/.vuepress/components/Demo.vue +2 -3
- package/package.json +16 -16
- package/src/classes/auth/auth.class.ts +73 -177
- package/src/classes/auth/auth.urls.ts +5 -5
- package/src/classes/events-sdk/events-sdk-default-options.ts +5 -12
- package/src/classes/events-sdk/events-sdk.types.ts +5 -17
- package/src/classes/socket-io/socket-io.class.ts +3 -7
- package/src/classes/storage/storage.class.ts +43 -0
- package/src/enum/auth.enum.ts +3 -8
- package/src/index.ts +2 -5
- package/src/types/auth.d.ts +20 -17
|
@@ -26,7 +26,7 @@ import EventsSdkClass from '@/index'
|
|
|
26
26
|
import {eventsSdkDefaultOptions} from '@/classes/events-sdk/events-sdk-default-options'
|
|
27
27
|
import {EventsEnum} from '@/enum/events.enum'
|
|
28
28
|
import {EventTypeData} from '@/types/events'
|
|
29
|
-
import {
|
|
29
|
+
import {LoginType} from "@/enum/auth.enum";
|
|
30
30
|
|
|
31
31
|
/* Data */
|
|
32
32
|
const token = ref('QMSVU9dwNYC9Le9VCBqx24AB9TYyWj9Xn5aCPV0GFHIWoShQqfPtnAPmnw24xpJIUSsDDtlac2OPpjx0t3MSkxH3AhiQGHCeGZ8e')
|
|
@@ -45,8 +45,7 @@ async function login() {
|
|
|
45
45
|
const sdk = new EventsSdkClass({
|
|
46
46
|
...eventsSdkDefaultOptions,
|
|
47
47
|
token: token.value,
|
|
48
|
-
loginType:
|
|
49
|
-
newStack: true
|
|
48
|
+
loginType: LoginType.USER,
|
|
50
49
|
})
|
|
51
50
|
|
|
52
51
|
await sdk.init()
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voicenter-team/events-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/voicenter-events-sdk.cjs.js",
|
|
6
6
|
"jsdelivr": "dist/voicenter-events-sdk.umd.js",
|
|
@@ -26,29 +26,29 @@
|
|
|
26
26
|
"author": "",
|
|
27
27
|
"license": "ISC",
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@types/chrome": "
|
|
30
|
-
"@types/jest": "
|
|
29
|
+
"@types/chrome": "0.0.259",
|
|
30
|
+
"@types/jest": "29.5.11",
|
|
31
31
|
"@types/js-md5": "^0.7.2",
|
|
32
32
|
"@types/lodash": "^4.14.200",
|
|
33
|
-
"@types/node": "
|
|
34
|
-
"@typescript-eslint/eslint-plugin": "
|
|
35
|
-
"@typescript-eslint/parser": "
|
|
33
|
+
"@types/node": "20.11.13",
|
|
34
|
+
"@typescript-eslint/eslint-plugin": "6.20.0",
|
|
35
|
+
"@typescript-eslint/parser": "6.20.0",
|
|
36
36
|
"@voicenter-team/eslint-config-ts": "^1.0.22",
|
|
37
|
-
"dotenv": "
|
|
38
|
-
"eslint": "
|
|
39
|
-
"eslint-plugin-jest": "
|
|
37
|
+
"dotenv": "16.4.1",
|
|
38
|
+
"eslint": "8.56.0",
|
|
39
|
+
"eslint-plugin-jest": "27.6.3",
|
|
40
40
|
"jest": "^29.7.0",
|
|
41
41
|
"pre-commit": "^1.2.2",
|
|
42
|
-
"socket.io-client": "
|
|
43
|
-
"swagger-axios-codegen": "
|
|
44
|
-
"ts-jest": "
|
|
42
|
+
"socket.io-client": "4.7.4",
|
|
43
|
+
"swagger-axios-codegen": "0.16.8",
|
|
44
|
+
"ts-jest": "29.1.2",
|
|
45
45
|
"tsc-alias": "^1.8.6",
|
|
46
|
-
"typescript": "
|
|
47
|
-
"vite": "
|
|
48
|
-
"vite-plugin-dts": "
|
|
46
|
+
"typescript": "5.3.3",
|
|
47
|
+
"vite": "5.0.12",
|
|
48
|
+
"vite-plugin-dts": "3.7.2"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"js-md5": "
|
|
51
|
+
"js-md5": "0.8.3",
|
|
52
52
|
"lodash": "^4.17.21"
|
|
53
53
|
}
|
|
54
54
|
}
|
|
@@ -1,36 +1,39 @@
|
|
|
1
1
|
import md5 from 'js-md5'
|
|
2
2
|
|
|
3
3
|
import EventsSdkClass from '@/classes/events-sdk/events-sdk.class'
|
|
4
|
-
import {
|
|
4
|
+
import { EventsSdkOptions, ServerParameter } from '@/classes/events-sdk/events-sdk.types'
|
|
5
5
|
import {
|
|
6
|
+
ExternalLoginRequestBody,
|
|
6
7
|
ExternalLoginResponse,
|
|
7
|
-
ExternalLoginResponseDataNewStack,
|
|
8
|
-
ExternalLoginResponseDataOldStack,
|
|
9
8
|
LoginSessionData,
|
|
10
9
|
LoginSessionPayload,
|
|
11
10
|
Settings
|
|
12
11
|
} from '@/types/auth'
|
|
13
|
-
import {
|
|
14
|
-
import { getSettingsUrl, newLoginUrl,
|
|
12
|
+
import { LoginType } from '@/enum/auth.enum'
|
|
13
|
+
import { getSettingsUrl, newLoginUrl, refreshTokenUrl } from '@/classes/auth/auth.urls'
|
|
14
|
+
import { StorageClass } from '@/classes/storage/storage.class'
|
|
15
15
|
|
|
16
16
|
class AuthClass{
|
|
17
17
|
constructor (private readonly eventsSdkClass: EventsSdkClass) {
|
|
18
18
|
this.eventsSdkClass = eventsSdkClass
|
|
19
|
+
|
|
20
|
+
this.storageKey = ''
|
|
19
21
|
}
|
|
20
|
-
|
|
22
|
+
|
|
21
23
|
private delay = 1000
|
|
22
24
|
public lastLoginTimestamp: number | undefined
|
|
23
25
|
public token: string | undefined
|
|
24
26
|
|
|
27
|
+
private storageKey: string
|
|
28
|
+
|
|
25
29
|
public async login (options: EventsSdkOptions) {
|
|
26
30
|
const payload: LoginSessionPayload = {
|
|
27
31
|
token: options.token,
|
|
28
32
|
email: options.email,
|
|
29
|
-
username: options.username,
|
|
30
33
|
password: options.password
|
|
31
34
|
}
|
|
32
35
|
|
|
33
|
-
|
|
36
|
+
this.storageKey = md5(JSON.stringify(payload))
|
|
34
37
|
|
|
35
38
|
if (this.lastLoginTimestamp && this.lastLoginTimestamp + this.delay > new Date().getTime()) {
|
|
36
39
|
return
|
|
@@ -38,10 +41,10 @@ class AuthClass{
|
|
|
38
41
|
|
|
39
42
|
this.updateLastLoginTimestamp()
|
|
40
43
|
|
|
41
|
-
const isLoggedIn = await this.checkLoginStatus(
|
|
44
|
+
const isLoggedIn = await this.checkLoginStatus(this.storageKey)
|
|
42
45
|
|
|
43
46
|
if (!isLoggedIn) {
|
|
44
|
-
await this.userLoginFunction(payload,
|
|
47
|
+
await this.userLoginFunction(payload, this.storageKey, options.loginType)
|
|
45
48
|
}
|
|
46
49
|
}
|
|
47
50
|
|
|
@@ -49,144 +52,62 @@ class AuthClass{
|
|
|
49
52
|
this.lastLoginTimestamp = new Date().getTime()
|
|
50
53
|
}
|
|
51
54
|
|
|
52
|
-
private async checkLoginStatus (
|
|
53
|
-
|
|
54
|
-
if (environment === Environment.BROWSER && window) {
|
|
55
|
-
const loginSessionKey = window.sessionStorage.getItem(key)
|
|
55
|
+
private async checkLoginStatus (key: string): Promise<boolean> {
|
|
56
|
+
const loginSessionData = await StorageClass.getSessionStorageDataByKey(key)
|
|
56
57
|
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
if (loginSessionData) {
|
|
59
|
+
this.onLoginResponse(loginSessionData)
|
|
59
60
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
return true
|
|
63
|
-
}
|
|
61
|
+
return true
|
|
64
62
|
}
|
|
65
|
-
if (environment === Environment.CHROME_EXTENSION && chrome) {
|
|
66
|
-
const loginSessionKey = await chrome.storage.session.get(key)
|
|
67
63
|
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
return false
|
|
65
|
+
}
|
|
70
66
|
|
|
71
|
-
|
|
67
|
+
private async userLoginFunction (
|
|
68
|
+
payload: LoginSessionPayload,
|
|
69
|
+
key: string,
|
|
70
|
+
loginType: LoginType,
|
|
71
|
+
) {
|
|
72
|
+
const externalLoginResponse = await this.externalLogin(
|
|
73
|
+
newLoginUrl,
|
|
74
|
+
payload,
|
|
75
|
+
loginType,
|
|
76
|
+
)
|
|
72
77
|
|
|
73
|
-
|
|
74
|
-
|
|
78
|
+
const settings = await this.getSettings(externalLoginResponse.Data.AccessToken)
|
|
79
|
+
|
|
80
|
+
const loginSessionData: LoginSessionData = {
|
|
81
|
+
...externalLoginResponse.Data,
|
|
82
|
+
...settings
|
|
75
83
|
}
|
|
76
|
-
|
|
84
|
+
|
|
85
|
+
this.onLoginResponse(loginSessionData)
|
|
86
|
+
|
|
87
|
+
await StorageClass.updateSessionStorageKey(key, loginSessionData)
|
|
77
88
|
}
|
|
78
89
|
|
|
79
|
-
private onLoginResponse (loginSessionData:
|
|
80
|
-
if (loginSessionData.
|
|
81
|
-
this.eventsSdkClass.socketIoClass.getSocketIoFunction(loginSessionData.Client)
|
|
82
|
-
}
|
|
83
|
-
if (loginSessionData.Url) {
|
|
84
|
-
this.eventsSdkClass.server = {
|
|
85
|
-
Priority: 0,
|
|
86
|
-
Domain: loginSessionData.Url.replace('https://', '')
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
if (loginSessionData.URLList) {
|
|
90
|
-
this.eventsSdkClass.servers = loginSessionData.URLList.map((url, index) => {
|
|
91
|
-
return {
|
|
92
|
-
Priority: index,
|
|
93
|
-
Domain: url.replace('https://', '')
|
|
94
|
-
}
|
|
95
|
-
})
|
|
96
|
-
}
|
|
97
|
-
if (loginSessionData.MonitorList) {
|
|
90
|
+
private onLoginResponse (loginSessionData: LoginSessionData) {
|
|
91
|
+
if (loginSessionData.MonitorList && loginSessionData.MonitorList.length) {
|
|
98
92
|
this.eventsSdkClass.servers = [ ...loginSessionData.MonitorList ]
|
|
93
|
+
this.eventsSdkClass.server = this.eventsSdkClass.servers.reduce((prev, current) =>
|
|
94
|
+
(prev.Priority > current.Priority) ? prev : current
|
|
95
|
+
)
|
|
99
96
|
}
|
|
100
|
-
if (
|
|
101
|
-
this.eventsSdkClass.server = this.eventsSdkClass.servers[0]
|
|
102
|
-
}
|
|
103
|
-
if (!loginSessionData.Client) {
|
|
97
|
+
if (this.eventsSdkClass.server) {
|
|
104
98
|
this.eventsSdkClass.socketIoClass.getSocketIoFunction(`v=${this.eventsSdkClass.server.Version}`)
|
|
105
99
|
}
|
|
106
|
-
if (loginSessionData.Token) {
|
|
107
|
-
// this.options.token = loginSessionData.Token
|
|
108
|
-
this.token = loginSessionData.Token
|
|
109
|
-
this.eventsSdkClass.connect(ServerParameter.DEFAULT, true)
|
|
110
|
-
}
|
|
111
100
|
if (loginSessionData.IdentityCode) {
|
|
112
101
|
this.token = loginSessionData.IdentityCode
|
|
113
102
|
this.eventsSdkClass.connect(ServerParameter.DEFAULT, true)
|
|
114
103
|
}
|
|
115
|
-
if (loginSessionData.RefreshToken && loginSessionData.
|
|
116
|
-
this.eventsSdkClass.options.refreshToken = loginSessionData.RefreshToken
|
|
117
|
-
this.eventsSdkClass.options.tokenExpiry = loginSessionData.TokenExpiry
|
|
118
|
-
this.handleTokenExpiry()
|
|
119
|
-
}
|
|
120
|
-
if (loginSessionData.RefreshToken && loginSessionData.IdentityCodeExpiry && this.eventsSdkClass.options.loginType === LoginTypeNewStackEnum.USER) {
|
|
104
|
+
if (loginSessionData.RefreshToken && loginSessionData.IdentityCodeExpiry && this.eventsSdkClass.options.loginType === LoginType.USER) {
|
|
121
105
|
this.eventsSdkClass.options.refreshToken = loginSessionData.RefreshToken
|
|
122
106
|
this.eventsSdkClass.options.tokenExpiry = loginSessionData.IdentityCodeExpiry
|
|
123
107
|
this.handleTokenExpiry()
|
|
124
108
|
}
|
|
125
109
|
}
|
|
126
110
|
|
|
127
|
-
private async userLoginFunction (
|
|
128
|
-
payload: LoginSessionPayload,
|
|
129
|
-
key: string,
|
|
130
|
-
loginType: LoginTypeNewStackEnum | LoginTypeOldStackEnum,
|
|
131
|
-
newStack: boolean
|
|
132
|
-
) {
|
|
133
|
-
const externalLoginUrl = this.getExternalLoginUrl(
|
|
134
|
-
loginType,
|
|
135
|
-
newStack
|
|
136
|
-
)
|
|
137
|
-
|
|
138
|
-
if (!externalLoginUrl) {
|
|
139
|
-
throw new Error('External login url not found. Check provided options')
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
if (newStack) {
|
|
143
|
-
const externalLoginResponse = await this.externalLogin<ExternalLoginResponseDataNewStack>(
|
|
144
|
-
externalLoginUrl,
|
|
145
|
-
payload,
|
|
146
|
-
loginType,
|
|
147
|
-
newStack
|
|
148
|
-
)
|
|
149
|
-
|
|
150
|
-
const settings = await this.getSettings(externalLoginResponse.Data.AccessToken)
|
|
151
|
-
|
|
152
|
-
this.onLoginResponse({
|
|
153
|
-
...externalLoginResponse.Data,
|
|
154
|
-
...settings
|
|
155
|
-
})
|
|
156
|
-
|
|
157
|
-
if (this.eventsSdkClass.options.environment === Environment.BROWSER) {
|
|
158
|
-
window.sessionStorage.setItem(key, JSON.stringify({
|
|
159
|
-
...externalLoginResponse.Data,
|
|
160
|
-
...settings
|
|
161
|
-
}))
|
|
162
|
-
}
|
|
163
|
-
if (this.eventsSdkClass.options.environment === Environment.CHROME_EXTENSION) {
|
|
164
|
-
await chrome.storage.session.set({
|
|
165
|
-
[key]: JSON.stringify({
|
|
166
|
-
...externalLoginResponse.Data,
|
|
167
|
-
...settings
|
|
168
|
-
})
|
|
169
|
-
})
|
|
170
|
-
}
|
|
171
|
-
} else {
|
|
172
|
-
const externalLoginResponse = await this.externalLogin<ExternalLoginResponseDataOldStack>(
|
|
173
|
-
externalLoginUrl,
|
|
174
|
-
payload,
|
|
175
|
-
loginType,
|
|
176
|
-
newStack
|
|
177
|
-
)
|
|
178
|
-
|
|
179
|
-
this.onLoginResponse(externalLoginResponse.Data.Socket)
|
|
180
|
-
|
|
181
|
-
if (this.eventsSdkClass.options.environment === Environment.BROWSER) {
|
|
182
|
-
window.sessionStorage.setItem(key, JSON.stringify(externalLoginResponse.Data.Socket))
|
|
183
|
-
}
|
|
184
|
-
if (this.eventsSdkClass.options.environment === Environment.CHROME_EXTENSION) {
|
|
185
|
-
await chrome.storage.session.set({ [key]: JSON.stringify(externalLoginResponse.Data.Socket) })
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
111
|
public handleTokenExpiry () {
|
|
191
112
|
let date: Date
|
|
192
113
|
|
|
@@ -202,68 +123,43 @@ class AuthClass{
|
|
|
202
123
|
|
|
203
124
|
setTimeout(
|
|
204
125
|
async () => {
|
|
205
|
-
if (
|
|
206
|
-
|
|
207
|
-
|
|
126
|
+
if (refreshTokenUrl && this.eventsSdkClass.options.refreshToken) {
|
|
127
|
+
this.eventsSdkClass.socketIoClass.closeAllConnections()
|
|
128
|
+
|
|
129
|
+
const refreshTokenResponse = await this.refreshToken(refreshTokenUrl, this.eventsSdkClass.options.refreshToken)
|
|
208
130
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
131
|
+
const settings = await this.getSettings(refreshTokenResponse.Data.AccessToken)
|
|
132
|
+
|
|
133
|
+
const loginSessionData: LoginSessionData = {
|
|
134
|
+
...refreshTokenResponse.Data,
|
|
135
|
+
...settings
|
|
212
136
|
}
|
|
213
137
|
|
|
214
|
-
|
|
138
|
+
this.onLoginResponse(loginSessionData)
|
|
139
|
+
|
|
140
|
+
await StorageClass.updateSessionStorageKey(this.storageKey, loginSessionData)
|
|
215
141
|
}
|
|
216
142
|
},
|
|
217
143
|
maxAllowedTimeout)
|
|
218
144
|
}
|
|
219
145
|
|
|
220
|
-
private
|
|
221
|
-
loginType: LoginTypeNewStackEnum | LoginTypeOldStackEnum,
|
|
222
|
-
newStack: boolean
|
|
223
|
-
) {
|
|
224
|
-
if (newStack) {
|
|
225
|
-
return newLoginUrl
|
|
226
|
-
} else {
|
|
227
|
-
if (loginType === LoginTypeOldStackEnum.TOKEN) {
|
|
228
|
-
return `${oldLoginUrl}/Token`
|
|
229
|
-
}
|
|
230
|
-
if (loginType === LoginTypeOldStackEnum.USER) {
|
|
231
|
-
return `${oldLoginUrl}/User`
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
private async externalLogin<T> (
|
|
146
|
+
private async externalLogin (
|
|
237
147
|
url: string,
|
|
238
148
|
{ password, token, email }: LoginSessionPayload,
|
|
239
|
-
loginType:
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
type: Number(LoginTypeNewStackEnum.TOKEN),
|
|
248
|
-
token
|
|
249
|
-
})
|
|
250
|
-
} else {
|
|
251
|
-
body = JSON.stringify({
|
|
252
|
-
type: Number(LoginTypeNewStackEnum.USER),
|
|
253
|
-
username: email,
|
|
254
|
-
password,
|
|
255
|
-
})
|
|
149
|
+
loginType: LoginType,
|
|
150
|
+
): Promise<ExternalLoginResponse> {
|
|
151
|
+
let body: ExternalLoginRequestBody
|
|
152
|
+
|
|
153
|
+
if (loginType === LoginType.TOKEN) {
|
|
154
|
+
body = {
|
|
155
|
+
identityType: LoginType.TOKEN,
|
|
156
|
+
token
|
|
256
157
|
}
|
|
257
158
|
} else {
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
} else {
|
|
263
|
-
body = JSON.stringify({
|
|
264
|
-
email,
|
|
265
|
-
pin: password
|
|
266
|
-
})
|
|
159
|
+
body = {
|
|
160
|
+
identityType: LoginType.USER,
|
|
161
|
+
username: email,
|
|
162
|
+
password,
|
|
267
163
|
}
|
|
268
164
|
}
|
|
269
165
|
|
|
@@ -272,7 +168,7 @@ class AuthClass{
|
|
|
272
168
|
headers: {
|
|
273
169
|
'Content-Type': 'application/json'
|
|
274
170
|
},
|
|
275
|
-
body,
|
|
171
|
+
body: JSON.stringify(body),
|
|
276
172
|
})
|
|
277
173
|
|
|
278
174
|
const data = await res.json()
|
|
@@ -293,7 +189,7 @@ class AuthClass{
|
|
|
293
189
|
return res.json()
|
|
294
190
|
}
|
|
295
191
|
|
|
296
|
-
private async refreshToken (refreshTokenUrl: string, oldRefreshToken: string) {
|
|
192
|
+
private async refreshToken (refreshTokenUrl: string, oldRefreshToken: string): Promise<ExternalLoginResponse> {
|
|
297
193
|
const res = await fetch(refreshTokenUrl, {
|
|
298
194
|
method: 'GET',
|
|
299
195
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
3
|
-
const
|
|
1
|
+
const newLoginUrl = 'https://loginapidev.voicenter.co.il/Auth/Login/Voicenter/Monitor'
|
|
2
|
+
const getSettingsUrl = 'https://loginapidev.voicenter.co.il/Application/GetSettings'
|
|
3
|
+
const refreshTokenUrl = 'https://loginapidev.voicenter.co.il/Auth/RefreshToken'
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
export {
|
|
7
|
-
oldLoginUrl,
|
|
8
7
|
newLoginUrl,
|
|
9
|
-
getSettingsUrl
|
|
8
|
+
getSettingsUrl,
|
|
9
|
+
refreshTokenUrl
|
|
10
10
|
}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { EventsSdkOptions } from '@/classes/events-sdk/events-sdk.types'
|
|
2
|
+
import { LoginType } from '@/enum/auth.enum'
|
|
3
3
|
|
|
4
4
|
export const eventsSdkDefaultOptions: EventsSdkOptions = {
|
|
5
|
-
url: 'https://monitorapi.voicenter.co.il/monitorAPI/getMonitorUrls',
|
|
6
|
-
environment: Environment.BROWSER,
|
|
7
5
|
fallbackServer: {
|
|
8
6
|
Domain: 'monitor5.voicenter.co.il',
|
|
9
7
|
Priority: 0,
|
|
8
|
+
Version: '1.3.7',
|
|
9
|
+
URLID: 1
|
|
10
10
|
},
|
|
11
|
-
refreshTokenUrl: 'https://loginapi.voicenter.co.il/monitorAPI/RefreshIdentityToken',
|
|
12
|
-
// servers: defaultServers, // commented temporary
|
|
13
11
|
token: '',
|
|
14
|
-
loginType:
|
|
12
|
+
loginType: LoginType.TOKEN,
|
|
15
13
|
forceNew: true,
|
|
16
14
|
reconnectionDelay: 10000,
|
|
17
15
|
reconnectionDelayMax: 10000,
|
|
@@ -22,10 +20,6 @@ export const eventsSdkDefaultOptions: EventsSdkOptions = {
|
|
|
22
20
|
protocol: 'https',
|
|
23
21
|
transports: [ 'websocket' ],
|
|
24
22
|
upgrade: false,
|
|
25
|
-
store: '',
|
|
26
|
-
extensionsModuleName: 'sdkExtensions',
|
|
27
|
-
queuesModuleName: 'sdkQueues',
|
|
28
|
-
dialersModuleName: 'sdkDialers',
|
|
29
23
|
serverFetchStrategy: 'static',
|
|
30
24
|
serverType: 0,
|
|
31
25
|
useLogger: false,
|
|
@@ -49,5 +43,4 @@ export const eventsSdkDefaultOptions: EventsSdkOptions = {
|
|
|
49
43
|
username: 'username',
|
|
50
44
|
password: '78253050510',
|
|
51
45
|
email: 'test2@status.com',
|
|
52
|
-
newStack: false,
|
|
53
46
|
}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LoginType } from 'enum/auth.enum'
|
|
2
2
|
|
|
3
3
|
export interface EventsSdkOptions {
|
|
4
|
-
url?: string,
|
|
5
|
-
environment: Environment,
|
|
6
4
|
fallbackServer: Server,
|
|
7
5
|
refreshTokenUrl?: string,
|
|
8
6
|
refreshToken?: string,
|
|
9
7
|
servers?: string,
|
|
10
8
|
token: string,
|
|
11
9
|
tokenExpiry?: Date,
|
|
12
|
-
loginType:
|
|
10
|
+
loginType: LoginType,
|
|
13
11
|
forceNew?: boolean,
|
|
14
12
|
reconnectionDelay: number,
|
|
15
13
|
reconnectionDelayMax?: number,
|
|
@@ -20,10 +18,6 @@ export interface EventsSdkOptions {
|
|
|
20
18
|
protocol: string,
|
|
21
19
|
transports?: string[],
|
|
22
20
|
upgrade?: boolean,
|
|
23
|
-
store?: string,
|
|
24
|
-
extensionsModuleName?: string,
|
|
25
|
-
queuesModuleName?: string,
|
|
26
|
-
dialersModuleName?: string,
|
|
27
21
|
serverFetchStrategy?: string,
|
|
28
22
|
serverType?: number,
|
|
29
23
|
useLogger?: boolean,
|
|
@@ -34,19 +28,13 @@ export interface EventsSdkOptions {
|
|
|
34
28
|
email: string,
|
|
35
29
|
password: string,
|
|
36
30
|
username: string,
|
|
37
|
-
newStack: boolean
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
export enum Environment {
|
|
41
|
-
BROWSER = 'browser',
|
|
42
|
-
CHROME_EXTENSION = 'chrome-extension'
|
|
43
31
|
}
|
|
44
32
|
|
|
45
33
|
export interface Server {
|
|
46
34
|
Priority: number,
|
|
47
35
|
Domain: string,
|
|
48
|
-
URLID
|
|
49
|
-
Version
|
|
36
|
+
URLID: number,
|
|
37
|
+
Version: string,
|
|
50
38
|
}
|
|
51
39
|
|
|
52
40
|
export interface LoggerConfig {
|
|
@@ -78,4 +66,4 @@ export enum ServerParameter {
|
|
|
78
66
|
DEFAULT = 'default',
|
|
79
67
|
NEXT = 'next',
|
|
80
68
|
PREVIOUS = 'previous'
|
|
81
|
-
}
|
|
69
|
+
}
|
|
@@ -2,9 +2,10 @@ import { ManagerOptions, SocketOptions } from 'socket.io-client'
|
|
|
2
2
|
import EventsSdkClass from '@/classes/events-sdk/events-sdk.class'
|
|
3
3
|
import sockets, { TypedSocketIo } from '@/classes/socket-io/versions'
|
|
4
4
|
import { SocketTyped } from '@/types/socket'
|
|
5
|
-
import {
|
|
5
|
+
import { ServerParameter } from '@/classes/events-sdk/events-sdk.types'
|
|
6
6
|
import { EventsEnum } from '@/enum/events.enum'
|
|
7
7
|
import { KeepAliveResponseEvent } from '@/types/events'
|
|
8
|
+
import { StorageClass } from '@/classes/storage/storage.class'
|
|
8
9
|
|
|
9
10
|
export class SocketIoClass{
|
|
10
11
|
constructor (private readonly eventsSdkClass: EventsSdkClass) {
|
|
@@ -125,12 +126,7 @@ export class SocketIoClass{
|
|
|
125
126
|
this.io = undefined
|
|
126
127
|
}
|
|
127
128
|
|
|
128
|
-
|
|
129
|
-
window.sessionStorage.clear()
|
|
130
|
-
}
|
|
131
|
-
if (this.eventsSdkClass.options.environment === Environment.CHROME_EXTENSION && chrome) {
|
|
132
|
-
chrome.storage.session.clear()
|
|
133
|
-
}
|
|
129
|
+
StorageClass.clearSessionStorage()
|
|
134
130
|
}
|
|
135
131
|
|
|
136
132
|
private onKeepAliveResponse (data: KeepAliveResponseEvent) {
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { LoginSessionData } from '@/types/auth'
|
|
2
|
+
|
|
3
|
+
export class StorageClass{
|
|
4
|
+
public static async getSessionStorageDataByKey (key: string): Promise<LoginSessionData | undefined> {
|
|
5
|
+
if (typeof chrome !== 'undefined' && typeof chrome.storage !== 'undefined') {
|
|
6
|
+
const loginSessionKey = await chrome.storage.session.get(key)
|
|
7
|
+
|
|
8
|
+
if (loginSessionKey[key]) {
|
|
9
|
+
return JSON.parse(loginSessionKey[key])
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
if (typeof window !== 'undefined') {
|
|
14
|
+
const loginSessionKey = window.sessionStorage.getItem(key)
|
|
15
|
+
|
|
16
|
+
if (loginSessionKey) {
|
|
17
|
+
return JSON.parse(loginSessionKey)
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
public static async updateSessionStorageKey (key: string, storageData: LoginSessionData) {
|
|
23
|
+
if (typeof chrome !== 'undefined' && typeof chrome.storage !== 'undefined') {
|
|
24
|
+
await chrome.storage.session.set({
|
|
25
|
+
[key]: JSON.stringify(storageData)
|
|
26
|
+
})
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (typeof window !== 'undefined') {
|
|
30
|
+
window.sessionStorage.setItem(key, JSON.stringify(storageData))
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
public static clearSessionStorage () {
|
|
35
|
+
if (typeof chrome !== 'undefined' && typeof chrome.storage !== 'undefined') {
|
|
36
|
+
chrome.storage.session.clear()
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (typeof window !== 'undefined') {
|
|
40
|
+
window.sessionStorage.clear()
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
package/src/enum/auth.enum.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import EventsSdkClass from '@/classes/events-sdk/events-sdk.class'
|
|
2
|
-
import { Environment } from '@/classes/events-sdk/events-sdk.types'
|
|
3
2
|
import { EventsEnum } from '@/enum/events.enum'
|
|
4
3
|
|
|
5
|
-
export {
|
|
6
|
-
|
|
7
|
-
EventsEnum
|
|
8
|
-
}
|
|
4
|
+
export { EventsEnum }
|
|
5
|
+
|
|
9
6
|
export default EventsSdkClass
|