asma-helpers 0.2.47 → 0.2.49

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 (149) hide show
  1. package/.prettierrc +15 -15
  2. package/.vscode/settings.json +39 -39
  3. package/README.md +0 -0
  4. package/package.json +30 -30
  5. package/src/clients/srvAuth.ts +6 -6
  6. package/src/global.ts +46 -50
  7. package/src/helpers/CapitalizeFistLetter.ts +7 -7
  8. package/src/helpers/Config.ts +58 -58
  9. package/src/helpers/EnvironmentToOperateTypes.ts +6 -6
  10. package/src/helpers/EnvironmentsUrls.ts +102 -102
  11. package/src/helpers/FormatNumberConstants.ts +41 -41
  12. package/src/helpers/InitializeIDBListenersOnMstSnapshots.ts +62 -62
  13. package/src/helpers/InitializeIDBListenersOnMstSnapshotsThenCatch.ts +82 -82
  14. package/src/helpers/IsAdcuris.ts +4 -4
  15. package/src/helpers/IsNotEmpty.ts +2 -2
  16. package/src/helpers/NorwegianPostalCodes.ts +6 -6
  17. package/src/helpers/ProcessServerError.ts +92 -92
  18. package/src/helpers/attachUserJournalCredentials.ts +23 -23
  19. package/src/helpers/base64ToFile.ts +9 -9
  20. package/src/helpers/clearCacheData.ts +15 -15
  21. package/src/helpers/generateEnvConfigsBindings.ts +82 -82
  22. package/src/helpers/generateGenqlClient.ts +114 -120
  23. package/src/helpers/generateSrvAuthBindings.ts +231 -262
  24. package/src/helpers/getGqlOperationName.ts +20 -20
  25. package/src/helpers/getSubdomain.ts +50 -50
  26. package/src/helpers/isValidUrl.ts +12 -12
  27. package/src/helpers/parseJwt.ts +10 -10
  28. package/src/index.ts +34 -34
  29. package/src/interfaces/api/advoca/ISaveToDataBase.ts +17 -17
  30. package/src/interfaces/api/advoca/IUploadedDocument.ts +23 -23
  31. package/src/interfaces/enums.ts +56 -56
  32. package/src/utility/fetch.ts +9 -9
  33. package/tsconfig.json +84 -84
  34. package/lib/clients/srvAuth.d.ts +0 -2
  35. package/lib/clients/srvAuth.d.ts.map +0 -1
  36. package/lib/clients/srvAuth.js +0 -7
  37. package/lib/clients/srvAuth.js.map +0 -1
  38. package/lib/global.d.ts +0 -45
  39. package/lib/global.d.ts.map +0 -1
  40. package/lib/global.js +0 -5
  41. package/lib/global.js.map +0 -1
  42. package/lib/helpers/CapitalizeFistLetter.d.ts +0 -3
  43. package/lib/helpers/CapitalizeFistLetter.d.ts.map +0 -1
  44. package/lib/helpers/CapitalizeFistLetter.js +0 -7
  45. package/lib/helpers/CapitalizeFistLetter.js.map +0 -1
  46. package/lib/helpers/Config.d.ts +0 -6
  47. package/lib/helpers/Config.d.ts.map +0 -1
  48. package/lib/helpers/Config.js +0 -45
  49. package/lib/helpers/Config.js.map +0 -1
  50. package/lib/helpers/EnvironmentToOperateTypes.d.ts +0 -8
  51. package/lib/helpers/EnvironmentToOperateTypes.d.ts.map +0 -1
  52. package/lib/helpers/EnvironmentToOperateTypes.js +0 -9
  53. package/lib/helpers/EnvironmentToOperateTypes.js.map +0 -1
  54. package/lib/helpers/EnvironmentsUrls.d.ts +0 -94
  55. package/lib/helpers/EnvironmentsUrls.d.ts.map +0 -1
  56. package/lib/helpers/EnvironmentsUrls.js +0 -90
  57. package/lib/helpers/EnvironmentsUrls.js.map +0 -1
  58. package/lib/helpers/FormatNumberConstants.d.ts +0 -25
  59. package/lib/helpers/FormatNumberConstants.d.ts.map +0 -1
  60. package/lib/helpers/FormatNumberConstants.js +0 -41
  61. package/lib/helpers/FormatNumberConstants.js.map +0 -1
  62. package/lib/helpers/InitializeIDBListenersOnMstSnapshots.d.ts +0 -2
  63. package/lib/helpers/InitializeIDBListenersOnMstSnapshots.d.ts.map +0 -1
  64. package/lib/helpers/InitializeIDBListenersOnMstSnapshots.js +0 -50
  65. package/lib/helpers/InitializeIDBListenersOnMstSnapshots.js.map +0 -1
  66. package/lib/helpers/InitializeIDBListenersOnMstSnapshotsThenCatch.d.ts +0 -9
  67. package/lib/helpers/InitializeIDBListenersOnMstSnapshotsThenCatch.d.ts.map +0 -1
  68. package/lib/helpers/InitializeIDBListenersOnMstSnapshotsThenCatch.js +0 -69
  69. package/lib/helpers/InitializeIDBListenersOnMstSnapshotsThenCatch.js.map +0 -1
  70. package/lib/helpers/IsAdcuris.d.ts +0 -3
  71. package/lib/helpers/IsAdcuris.d.ts.map +0 -1
  72. package/lib/helpers/IsAdcuris.js +0 -5
  73. package/lib/helpers/IsAdcuris.js.map +0 -1
  74. package/lib/helpers/IsNotEmpty.d.ts +0 -2
  75. package/lib/helpers/IsNotEmpty.d.ts.map +0 -1
  76. package/lib/helpers/IsNotEmpty.js +0 -4
  77. package/lib/helpers/IsNotEmpty.js.map +0 -1
  78. package/lib/helpers/NorwegianPostalCodes.d.ts +0 -9
  79. package/lib/helpers/NorwegianPostalCodes.d.ts.map +0 -1
  80. package/lib/helpers/NorwegianPostalCodes.js +0 -4
  81. package/lib/helpers/NorwegianPostalCodes.js.map +0 -1
  82. package/lib/helpers/ProcessServerError.d.ts +0 -3
  83. package/lib/helpers/ProcessServerError.d.ts.map +0 -1
  84. package/lib/helpers/ProcessServerError.js +0 -101
  85. package/lib/helpers/ProcessServerError.js.map +0 -1
  86. package/lib/helpers/attachUserJournalCredentials.d.ts +0 -2
  87. package/lib/helpers/attachUserJournalCredentials.d.ts.map +0 -1
  88. package/lib/helpers/attachUserJournalCredentials.js +0 -17
  89. package/lib/helpers/attachUserJournalCredentials.js.map +0 -1
  90. package/lib/helpers/base64ToFile.d.ts +0 -2
  91. package/lib/helpers/base64ToFile.d.ts.map +0 -1
  92. package/lib/helpers/base64ToFile.js +0 -9
  93. package/lib/helpers/base64ToFile.js.map +0 -1
  94. package/lib/helpers/clearCacheData.d.ts +0 -2
  95. package/lib/helpers/clearCacheData.d.ts.map +0 -1
  96. package/lib/helpers/clearCacheData.js +0 -13
  97. package/lib/helpers/clearCacheData.js.map +0 -1
  98. package/lib/helpers/generateEnvConfigsBindings.d.ts +0 -31
  99. package/lib/helpers/generateEnvConfigsBindings.d.ts.map +0 -1
  100. package/lib/helpers/generateEnvConfigsBindings.js +0 -49
  101. package/lib/helpers/generateEnvConfigsBindings.js.map +0 -1
  102. package/lib/helpers/generateGenqlClient.d.ts +0 -22
  103. package/lib/helpers/generateGenqlClient.d.ts.map +0 -1
  104. package/lib/helpers/generateGenqlClient.js +0 -87
  105. package/lib/helpers/generateGenqlClient.js.map +0 -1
  106. package/lib/helpers/generateSrvAuthBindings.d.ts +0 -41
  107. package/lib/helpers/generateSrvAuthBindings.d.ts.map +0 -1
  108. package/lib/helpers/generateSrvAuthBindings.js +0 -200
  109. package/lib/helpers/generateSrvAuthBindings.js.map +0 -1
  110. package/lib/helpers/getGqlOperationName.d.ts +0 -2
  111. package/lib/helpers/getGqlOperationName.d.ts.map +0 -1
  112. package/lib/helpers/getGqlOperationName.js +0 -16
  113. package/lib/helpers/getGqlOperationName.js.map +0 -1
  114. package/lib/helpers/getSubdomain.d.ts +0 -13
  115. package/lib/helpers/getSubdomain.d.ts.map +0 -1
  116. package/lib/helpers/getSubdomain.js +0 -40
  117. package/lib/helpers/getSubdomain.js.map +0 -1
  118. package/lib/helpers/isValidUrl.d.ts +0 -2
  119. package/lib/helpers/isValidUrl.d.ts.map +0 -1
  120. package/lib/helpers/isValidUrl.js +0 -10
  121. package/lib/helpers/isValidUrl.js.map +0 -1
  122. package/lib/helpers/parseJwt.d.ts +0 -2
  123. package/lib/helpers/parseJwt.d.ts.map +0 -1
  124. package/lib/helpers/parseJwt.js +0 -8
  125. package/lib/helpers/parseJwt.js.map +0 -1
  126. package/lib/helpers/userTypingSignal.d.ts +0 -5
  127. package/lib/helpers/userTypingSignal.d.ts.map +0 -1
  128. package/lib/helpers/userTypingSignal.js +0 -33
  129. package/lib/helpers/userTypingSignal.js.map +0 -1
  130. package/lib/index.d.ts +0 -29
  131. package/lib/index.d.ts.map +0 -1
  132. package/lib/index.js +0 -27
  133. package/lib/index.js.map +0 -1
  134. package/lib/interfaces/api/advoca/ISaveToDataBase.d.ts +0 -17
  135. package/lib/interfaces/api/advoca/ISaveToDataBase.d.ts.map +0 -1
  136. package/lib/interfaces/api/advoca/ISaveToDataBase.js +0 -2
  137. package/lib/interfaces/api/advoca/ISaveToDataBase.js.map +0 -1
  138. package/lib/interfaces/api/advoca/IUploadedDocument.d.ts +0 -27
  139. package/lib/interfaces/api/advoca/IUploadedDocument.d.ts.map +0 -1
  140. package/lib/interfaces/api/advoca/IUploadedDocument.js +0 -2
  141. package/lib/interfaces/api/advoca/IUploadedDocument.js.map +0 -1
  142. package/lib/interfaces/enums.d.ts +0 -51
  143. package/lib/interfaces/enums.d.ts.map +0 -1
  144. package/lib/interfaces/enums.js +0 -60
  145. package/lib/interfaces/enums.js.map +0 -1
  146. package/lib/utility/fetch.d.ts +0 -2
  147. package/lib/utility/fetch.d.ts.map +0 -1
  148. package/lib/utility/fetch.js +0 -6
  149. package/lib/utility/fetch.js.map +0 -1
@@ -1,262 +1,231 @@
1
- import axios, { type AxiosResponse, type ResponseType } from 'axios'
2
- import { EventBus } from 'asma-event-bus/lib/event-buss'
3
- import { EnvironmentEnums, parseJwt } from '..'
4
-
5
- //let logoutsuccesfull = false
6
-
7
- let abortController = new AbortController()
8
-
9
- export function getAbortController() {
10
- return window.__ASMA__SHELL__?.abortController
11
- }
12
-
13
- export function generateSrvAuthBindings<FeatureEnums = never>(
14
- SRV_AUTH: () => string,
15
- DEVELOPMENT: () => boolean,
16
- EnvironmentToOperateFn: () => string,
17
- logout?: () => void,
18
- ) {
19
- let logoutMfes: (() => void)[] = []
20
-
21
- if (logout && window.__ASMA__SHELL__?.auth_bindings) {
22
- logoutMfes.push(logout)
23
- }
24
-
25
- if (window.__ASMA__SHELL__?.auth_bindings) {
26
- window.__ASMA__SHELL__.logoutMfes = logoutMfes
27
- return window.__ASMA__SHELL__.auth_bindings as typeof auth_bindings
28
- }
29
-
30
- let jwtToken = ''
31
-
32
- let features: Set<FeatureEnums> | undefined
33
-
34
- let parsed_jwt: any | undefined
35
-
36
- const { dispatch, register } = EventBus<{ jwt_changed: {} }>('auth-bindings')
37
-
38
- let changed_jwt_notifier_registry: (() => void)[] = []
39
-
40
- /**
41
- *
42
- * Regiser a callback to be called when the jwt token changes
43
- */
44
- function setCallbackToJwtNotifier(callback: () => void) {
45
- changed_jwt_notifier_registry.push(callback)
46
- }
47
-
48
- function notifyChangedJwt() {
49
- changed_jwt_notifier_registry.forEach((c) => c())
50
- return () => {}
51
- }
52
-
53
- let fetchJwtPromise: Promise<{
54
- data: { message: string; token?: string; features?: FeatureEnums[]; errors: { message: string }[] }
55
- }> | null = null
56
-
57
- const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken
58
-
59
- const isJwtValid = () => !isJwtInvalid()
60
-
61
- //function cancelRequest() {
62
- // return logoutsuccesfull
63
- // }
64
-
65
- async function srvAuthGet<R>(url: string, headers?: Record<string, string>) {
66
- if (DEVELOPMENT() && EnvironmentToOperateFn()) {
67
- if (EnvironmentToOperateFn() in EnvironmentEnums) {
68
- url = `${url}&env=${EnvironmentToOperateFn()}`
69
-
70
- // file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first occurence>
71
- url = url.includes('&') && !url.includes('?') ? url.replace('&', '?') : url
72
- } else {
73
- console.warn(
74
- 'EnvironmentToOperateFn() is not a valid EnvironmentEnums',
75
- 'shall be one of:',
76
- EnvironmentEnums,
77
- 'actual value:',
78
- EnvironmentToOperateFn(),
79
- )
80
- }
81
- }
82
-
83
- return axios.get<unknown, AxiosResponse<R>>(`${SRV_AUTH()}${url}`, {
84
- signal: getAbortController()?.signal,
85
- headers: {
86
- ...headers,
87
- 'asma-origin': window.location.origin,
88
- },
89
- withCredentials: true,
90
- })
91
- }
92
-
93
- function accessTokenHasExpired(): boolean {
94
- const tokenObj = getParsedJwt()
95
-
96
- const accessTokenExpDate = tokenObj?.exp || 0
97
-
98
- const nowTime = Math.floor(new Date().getTime() / 1000)
99
-
100
- //set exp time -20sec for token to be refreshed early
101
- return accessTokenExpDate - 10 <= nowTime
102
- }
103
-
104
- async function signin(url: string, headers?: Record<string, string>) {
105
- if (abortController.signal.aborted) {
106
- abortController = new AbortController()
107
- }
108
-
109
- const { data } = await srvAuthGet<{ token: string; features: FeatureEnums[] }>(url, headers)
110
-
111
- setAuthData(data)
112
-
113
- // logoutsuccesfull = false
114
-
115
- return data
116
- }
117
-
118
- async function signoutAuth() {
119
- setAuthData({ token: '' })
120
- await srvAuthGet('/signout')
121
- }
122
- function getUserId(): string {
123
- return getParsedJwt()?.['user_id'] || '-1'
124
- }
125
-
126
- function setAuthData(data: { token: string; features?: FeatureEnums[] }) {
127
- jwtToken = data.token
128
-
129
- if (jwtToken) {
130
- dispatch('jwt_changed', {}, false)
131
-
132
- parsed_jwt = parseJwt(jwtToken)
133
- }
134
- notifyChangedJwt()
135
- features = new Set(data.features)
136
- parsed_jwt = undefined
137
- }
138
-
139
- function getJwtToken() {
140
- return jwtToken
141
- }
142
-
143
- async function getJwtTokenAsync() {
144
- if (isJwtInvalid()) {
145
- const new_jwt = await getNewJwtToken()
146
-
147
- return new_jwt
148
- } else {
149
- return jwtToken
150
- }
151
- }
152
-
153
- async function setReqConfig<T = unknown>(data?: T, responseType?: ResponseType) {
154
- const token = await getJwtTokenAsync()
155
-
156
- const res = {
157
- data: data,
158
- responseType: responseType,
159
- headers: {} as Record<string, string>,
160
- }
161
-
162
- if (token) {
163
- res.headers['Authorization'] = `Bearer ${token}`
164
- }
165
-
166
- return res
167
- }
168
-
169
- async function getNewJwtToken() {
170
- //if (logoutsuccesfull) return
171
- try {
172
- if (!fetchJwtPromise) {
173
- fetchJwtPromise = srvAuthGet('/token')
174
- }
175
-
176
- const { data } = await fetchJwtPromise
177
-
178
- if (!data || data.errors || data.message != 'Success' || !data.token) {
179
- logout?.()
180
- //logoutsuccesfull = true
181
- abortController?.abort()
182
- logoutMfes.forEach((l) => l())
183
- //signoutAuth()
184
- }
185
-
186
- setAuthData({ token: data.token || '', features: data.features || [] })
187
- } catch (error) {
188
- // logout?.()
189
- // logoutsuccesfull = true
190
- abortController?.abort()
191
- logoutMfes.forEach((l) => l())
192
-
193
- //signoutAuth()
194
-
195
- setAuthData({ token: '', features: [] })
196
-
197
- console.error(error)
198
- } finally {
199
- fetchJwtPromise = null
200
-
201
- return jwtToken
202
- }
203
- }
204
-
205
- function getParsedJwt<R = { user_id: string; exp: number }>(): R | undefined {
206
- if (!parsed_jwt) {
207
- parsed_jwt = parseJwt<R>(jwtToken)
208
- }
209
- return parsed_jwt
210
- }
211
- function getFeatures() {
212
- return features
213
- }
214
- /**
215
- *
216
- * @param featureName feature_name_enums add this: generateSrvAuthBindings<feature_name_enums.>(...)
217
- * @returns boolean
218
- */
219
- function hasFeature(featureName: FeatureEnums) {
220
- return !!features?.has(featureName)
221
- }
222
-
223
- const auth_bindings = {
224
- hasFeature,
225
- getFeatures,
226
- isJwtValid,
227
- signin,
228
- srvAuthGet,
229
- signoutAuth,
230
- setReqConfig,
231
- getJwtTokenAsync,
232
- getNewJwtToken,
233
- registerOnJwtChanges: register,
234
- getUserId,
235
- setCallbackToJwtNotifier,
236
- getParsedJwt,
237
- abortController,
238
- getJwtToken,
239
- // cancelRequest,
240
- accessTokenHasExpired,
241
- }
242
- window.__ASMA__SHELL__ = window.__ASMA__SHELL__ || {}
243
-
244
- window.__ASMA__SHELL__.auth_bindings = auth_bindings
245
-
246
- return auth_bindings
247
- }
248
- /**
249
- * @deprecated use generateSrvAuthBindings
250
- *
251
- */
252
- export function generateSrvAuthBindingsMicroApp(
253
- SRV_AUTH: () => string,
254
- DEVELOPMENT: () => boolean,
255
- ENVIRONMENT_TO_OPERATE: () => EnvironmentEnums,
256
- logout?: () => void,
257
- ) {
258
- return (
259
- window.__ASMA__SHELL__?.auth_bindings ||
260
- generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, ENVIRONMENT_TO_OPERATE, logout)
261
- )
262
- }
1
+ import axios, { type AxiosResponse, type ResponseType } from 'axios'
2
+ import { EventBus } from 'asma-event-bus/lib/event-buss'
3
+ import { EnvironmentEnums, parseJwt } from '..'
4
+
5
+ let logoutsuccesfull = false
6
+
7
+ export const { dispatch, register: registerCallbackOnSrvAuthEvents } = EventBus<{ jwt_changed: {}; logout_event: {} }>(
8
+ 'auth-bindings',
9
+ )
10
+
11
+ export function generateSrvAuthBindings<FeatureEnums = never>(
12
+ SRV_AUTH: () => string,
13
+ DEVELOPMENT: () => boolean,
14
+ EnvironmentToOperateFn: () => string,
15
+ logout?: () => void,
16
+ ) {
17
+ // let logoutMfes: (() => void)[] = []
18
+
19
+ if (logout) {
20
+ registerCallbackOnSrvAuthEvents('logout_event', logout)
21
+ }
22
+
23
+ if (window.__ASMA__SHELL__?.auth_bindings) {
24
+ //window.__ASMA__SHELL__.logoutMfes = logoutMfes
25
+
26
+ return window.__ASMA__SHELL__.auth_bindings as typeof auth_bindings
27
+ }
28
+
29
+ let jwtToken = ''
30
+
31
+ let features: Set<FeatureEnums> | undefined
32
+
33
+ let parsed_jwt: any | undefined
34
+
35
+ let fetchJwtPromise: Promise<{
36
+ data: { message: string; token?: string; features?: FeatureEnums[]; errors: { message: string }[] }
37
+ }> | null = null
38
+
39
+ const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken
40
+
41
+ const isJwtValid = () => !isJwtInvalid()
42
+
43
+ async function srvAuthGet<R>(url: string, headers?: Record<string, string>) {
44
+ if (DEVELOPMENT() && EnvironmentToOperateFn()) {
45
+ if (EnvironmentToOperateFn() in EnvironmentEnums) {
46
+ url = `${url}&env=${EnvironmentToOperateFn()}`
47
+
48
+ url = url.includes('&') && !url.includes('?') ? url.replace('&', '?') : url
49
+ } else {
50
+ console.warn(
51
+ 'EnvironmentToOperateFn() is not a valid EnvironmentEnums',
52
+ 'shall be one of:',
53
+ EnvironmentEnums,
54
+ 'actual value:',
55
+ EnvironmentToOperateFn(),
56
+ )
57
+ }
58
+ }
59
+
60
+ return axios.get<unknown, AxiosResponse<R>>(`${SRV_AUTH()}${url}`, {
61
+ headers: {
62
+ ...headers,
63
+ 'asma-origin': window.location.origin,
64
+ },
65
+ withCredentials: true,
66
+ })
67
+ }
68
+
69
+ function accessTokenHasExpired(): boolean {
70
+ const tokenObj = getParsedJwt()
71
+
72
+ const accessTokenExpDate = tokenObj?.exp || 0
73
+
74
+ const nowTime = Math.floor(new Date().getTime() / 1000)
75
+
76
+ //set exp time -20sec for token to be refreshed early
77
+ return accessTokenExpDate - 10 <= nowTime
78
+ }
79
+
80
+ async function signin(url: string, headers?: Record<string, string>) {
81
+ const { data } = await srvAuthGet<{ token: string; features: FeatureEnums[] }>(url, headers)
82
+
83
+ setAuthData(data)
84
+
85
+ logoutsuccesfull = false
86
+
87
+ return data
88
+ }
89
+
90
+ async function signoutAuth() {
91
+ try {
92
+ setAuthData({ token: '' })
93
+
94
+ await srvAuthGet('/signout')
95
+ } catch (e) {
96
+ console.error(e)
97
+ } finally {
98
+ dispatch('logout_event', {}, false)
99
+ }
100
+ }
101
+ function getUserId(): string {
102
+ return getParsedJwt()?.['user_id'] || '-1'
103
+ }
104
+
105
+ function setAuthData(data: { token: string; features?: FeatureEnums[] }) {
106
+ jwtToken = data.token
107
+ features = new Set(data.features)
108
+ parsed_jwt = undefined
109
+ dispatch('jwt_changed', {}, false)
110
+ }
111
+
112
+ function getJwtToken() {
113
+ return jwtToken
114
+ }
115
+
116
+ async function getJwtTokenAsync() {
117
+ if (isJwtInvalid()) {
118
+ const new_jwt = await getNewJwtToken()
119
+
120
+ return new_jwt
121
+ } else {
122
+ return jwtToken
123
+ }
124
+ }
125
+
126
+ async function setReqConfig<T = unknown>(data?: T, responseType?: ResponseType) {
127
+ const token = await getJwtTokenAsync()
128
+
129
+ const res = {
130
+ data: data,
131
+ responseType: responseType,
132
+ headers: {} as Record<string, string>,
133
+ }
134
+
135
+ if (token) {
136
+ res.headers['Authorization'] = `Bearer ${token}`
137
+ }
138
+
139
+ return res
140
+ }
141
+
142
+ async function getNewJwtToken() {
143
+ if (logoutsuccesfull) return
144
+ try {
145
+ if (!fetchJwtPromise) {
146
+ fetchJwtPromise = srvAuthGet('/token')
147
+ }
148
+
149
+ const { data } = await fetchJwtPromise
150
+
151
+ if (!data || data.errors || data.message != 'Success' || !data.token) {
152
+ logout?.()
153
+ logoutsuccesfull = true
154
+
155
+ //signoutAuth()
156
+ }
157
+
158
+ setAuthData({ token: data.token || '', features: data.features || [] })
159
+ } catch (error) {
160
+ logout?.()
161
+ logoutsuccesfull = true
162
+ //signoutAuth()
163
+
164
+ setAuthData({ token: '', features: [] })
165
+
166
+ console.error(error)
167
+ } finally {
168
+ fetchJwtPromise = null
169
+
170
+ return jwtToken
171
+ }
172
+ }
173
+
174
+ function getParsedJwt<R = { user_id: string; exp: number }>(): R | undefined {
175
+ if (!parsed_jwt) {
176
+ parsed_jwt = parseJwt<R>(jwtToken)
177
+ }
178
+ return parsed_jwt
179
+ }
180
+ function getFeatures() {
181
+ return features
182
+ }
183
+ /**
184
+ *
185
+ * @param featureName feature_name_enums add this: generateSrvAuthBindings<feature_name_enums.>(...)
186
+ * @returns boolean
187
+ */
188
+ function hasFeature(featureName: FeatureEnums) {
189
+ return !!features?.has(featureName)
190
+ }
191
+
192
+ const auth_bindings = {
193
+ hasFeature,
194
+ getFeatures,
195
+ isJwtValid,
196
+ signin,
197
+ srvAuthGet,
198
+ signoutAuth,
199
+ setReqConfig,
200
+ getJwtTokenAsync,
201
+ getNewJwtToken,
202
+ getUserId,
203
+ getParsedJwt,
204
+ getJwtToken,
205
+ accessTokenHasExpired,
206
+ }
207
+ window.__ASMA__SHELL__ = window.__ASMA__SHELL__ || {}
208
+
209
+ window.__ASMA__SHELL__.auth_bindings = auth_bindings
210
+
211
+ return auth_bindings
212
+ }
213
+ /**
214
+ * @deprecated use generateSrvAuthBindings
215
+ * @param SRV_AUTH
216
+ * @param DEVELOPMENT
217
+ * @param ENVIRONMENT_TO_OPERATE
218
+ * @param logout
219
+ * @returns
220
+ */
221
+ export function generateSrvAuthBindingsMicroApp(
222
+ SRV_AUTH: () => string,
223
+ DEVELOPMENT: () => boolean,
224
+ ENVIRONMENT_TO_OPERATE: () => EnvironmentEnums,
225
+ logout?: () => void,
226
+ ) {
227
+ return (
228
+ window.__ASMA__SHELL__?.auth_bindings ||
229
+ generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, ENVIRONMENT_TO_OPERATE, logout)
230
+ )
231
+ }
@@ -1,21 +1,21 @@
1
- export function getGqlOperationName(query: string): string | undefined {
2
- const is_query = query.includes('query') ? 'query' : undefined
3
-
4
- const is_mutation = query.includes('mutation') ? 'mutation' : undefined
5
-
6
- const is_subscription = query.includes('subscription') ? 'subscription' : undefined
7
-
8
- const split_word = is_query || is_mutation || is_subscription
9
-
10
- if (!split_word) {
11
- return undefined
12
- }
13
-
14
- let operationName = query?.split(split_word, 2)?.[1]?.split('{', 1)[0]?.split(' ')?.[1]?.trim()
15
-
16
- if (operationName?.includes('(')) {
17
- operationName = operationName.split('(', 1)[0]
18
- }
19
-
20
- return operationName
1
+ export function getGqlOperationName(query: string): string | undefined {
2
+ const is_query = query.includes('query') ? 'query' : undefined
3
+
4
+ const is_mutation = query.includes('mutation') ? 'mutation' : undefined
5
+
6
+ const is_subscription = query.includes('subscription') ? 'subscription' : undefined
7
+
8
+ const split_word = is_query || is_mutation || is_subscription
9
+
10
+ if (!split_word) {
11
+ return undefined
12
+ }
13
+
14
+ let operationName = query?.split(split_word, 2)?.[1]?.split('{', 1)[0]?.split(' ')?.[1]?.trim()
15
+
16
+ if (operationName?.includes('(')) {
17
+ operationName = operationName.split('(', 1)[0]
18
+ }
19
+
20
+ return operationName
21
21
  }
@@ -1,50 +1,50 @@
1
- /**
2
- * @deprecated moved to asma-genql-directory use from there
3
- */
4
- function getSubdomain() {
5
- const hostname_arr = window.location.hostname.split('.') // fretex-dfsf.advoca.no
6
-
7
- let subdomain = ''
8
-
9
- if (
10
- hostname_arr.length === 3 &&
11
- hostname_arr[0] &&
12
- !['dev', 'test', 'stage', 'intern', 'www'].find((sub) => sub === hostname_arr[0])
13
- ) {
14
- subdomain = hostname_arr[0]
15
-
16
- const subdomain_arr = subdomain.split('-')
17
-
18
- if (subdomain_arr.length === 2 && subdomain_arr[0]) {
19
- subdomain = subdomain_arr[0]
20
- }
21
- }
22
- return subdomain
23
- }
24
- /**
25
- * @deprecated moved to asma-genql-directory use from there
26
- */
27
- export const subdomain = getSubdomain()
28
- /**
29
- * @deprecated moved to asma-genql-directory use from there
30
- */
31
- export function redirectFromSubdomainToDomain() {
32
- const domain_hostname = `${createDomainUrlFromSubdomain()}${window.location.pathname}`
33
-
34
- window.location.href = domain_hostname
35
-
36
- return null
37
- }
38
- /**
39
- * @deprecated moved to asma-genql-directory use from there
40
- */
41
- export function createDomainUrlFromSubdomain() {
42
- let hostname = window.location.hostname.replace(subdomain, '')
43
-
44
- ;(hostname.startsWith('-') && (hostname = hostname.substring(1))) ||
45
- (hostname.startsWith('.') && (hostname = 'www' + hostname))
46
-
47
- const { port, protocol } = window.location
48
-
49
- return protocol + '//' + hostname + (port ? `:${port}` : '')
50
- }
1
+ /**
2
+ * @deprecated moved to asma-genql-directory use from there
3
+ */
4
+ function getSubdomain() {
5
+ const hostname_arr = window.location.hostname.split('.') // fretex-dfsf.advoca.no
6
+
7
+ let subdomain = ''
8
+
9
+ if (
10
+ hostname_arr.length === 3 &&
11
+ hostname_arr[0] &&
12
+ !['dev', 'test', 'stage', 'intern', 'www'].find((sub) => sub === hostname_arr[0])
13
+ ) {
14
+ subdomain = hostname_arr[0]
15
+
16
+ const subdomain_arr = subdomain.split('-')
17
+
18
+ if (subdomain_arr.length === 2 && subdomain_arr[0]) {
19
+ subdomain = subdomain_arr[0]
20
+ }
21
+ }
22
+ return subdomain
23
+ }
24
+ /**
25
+ * @deprecated moved to asma-genql-directory use from there
26
+ */
27
+ export const subdomain = getSubdomain()
28
+ /**
29
+ * @deprecated moved to asma-genql-directory use from there
30
+ */
31
+ export function redirectFromSubdomainToDomain() {
32
+ const domain_hostname = `${createDomainUrlFromSubdomain()}${window.location.pathname}`
33
+
34
+ window.location.href = domain_hostname
35
+
36
+ return null
37
+ }
38
+ /**
39
+ * @deprecated moved to asma-genql-directory use from there
40
+ */
41
+ export function createDomainUrlFromSubdomain() {
42
+ let hostname = window.location.hostname.replace(subdomain, '')
43
+
44
+ ;(hostname.startsWith('-') && (hostname = hostname.substring(1))) ||
45
+ (hostname.startsWith('.') && (hostname = 'www' + hostname))
46
+
47
+ const { port, protocol } = window.location
48
+
49
+ return protocol + '//' + hostname + (port ? `:${port}` : '')
50
+ }
@@ -1,12 +1,12 @@
1
- export function isValidUrl(urlString: string) {
2
- const urlPattern = new RegExp(
3
- '^(https?:\\/\\/)?' + // validate protocol
4
- '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // validate domain name
5
- '((\\d{1,3}\\.){3}\\d{1,3}))' + // validate OR ip (v4) address
6
- '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // validate port and path
7
- '(\\?[;&a-z\\d%_.~+=-]*)?' + // validate query string
8
- '(\\#[-a-z\\d_]*)?$',
9
- 'i',
10
- )
11
- return !!urlPattern.test(urlString)
12
- }
1
+ export function isValidUrl(urlString: string) {
2
+ const urlPattern = new RegExp(
3
+ '^(https?:\\/\\/)?' + // validate protocol
4
+ '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' + // validate domain name
5
+ '((\\d{1,3}\\.){3}\\d{1,3}))' + // validate OR ip (v4) address
6
+ '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' + // validate port and path
7
+ '(\\?[;&a-z\\d%_.~+=-]*)?' + // validate query string
8
+ '(\\#[-a-z\\d_]*)?$',
9
+ 'i',
10
+ )
11
+ return !!urlPattern.test(urlString)
12
+ }