asma-helpers 0.2.49 → 0.3.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.
Files changed (120) hide show
  1. package/lib/clients/srvAuth.d.ts +2 -0
  2. package/lib/clients/srvAuth.d.ts.map +1 -0
  3. package/lib/clients/srvAuth.js +7 -0
  4. package/lib/clients/srvAuth.js.map +1 -0
  5. package/lib/global.d.ts +40 -0
  6. package/lib/global.d.ts.map +1 -0
  7. package/lib/global.js +5 -0
  8. package/lib/global.js.map +1 -0
  9. package/lib/helpers/CapitalizeFistLetter.d.ts +3 -0
  10. package/lib/helpers/CapitalizeFistLetter.d.ts.map +1 -0
  11. package/lib/helpers/CapitalizeFistLetter.js +7 -0
  12. package/lib/helpers/CapitalizeFistLetter.js.map +1 -0
  13. package/lib/helpers/Config.d.ts +6 -0
  14. package/lib/helpers/Config.d.ts.map +1 -0
  15. package/lib/helpers/Config.js +45 -0
  16. package/lib/helpers/Config.js.map +1 -0
  17. package/lib/helpers/EnvironmentToOperateTypes.d.ts +8 -0
  18. package/lib/helpers/EnvironmentToOperateTypes.d.ts.map +1 -0
  19. package/lib/helpers/EnvironmentToOperateTypes.js +9 -0
  20. package/lib/helpers/EnvironmentToOperateTypes.js.map +1 -0
  21. package/lib/helpers/EnvironmentsUrls.d.ts +94 -0
  22. package/lib/helpers/EnvironmentsUrls.d.ts.map +1 -0
  23. package/lib/helpers/EnvironmentsUrls.js +90 -0
  24. package/lib/helpers/EnvironmentsUrls.js.map +1 -0
  25. package/lib/helpers/FormatNumberConstants.d.ts +25 -0
  26. package/lib/helpers/FormatNumberConstants.d.ts.map +1 -0
  27. package/lib/helpers/FormatNumberConstants.js +41 -0
  28. package/lib/helpers/FormatNumberConstants.js.map +1 -0
  29. package/lib/helpers/InitializeIDBListenersOnMstSnapshots.d.ts +2 -0
  30. package/lib/helpers/InitializeIDBListenersOnMstSnapshots.d.ts.map +1 -0
  31. package/lib/helpers/InitializeIDBListenersOnMstSnapshots.js +50 -0
  32. package/lib/helpers/InitializeIDBListenersOnMstSnapshots.js.map +1 -0
  33. package/lib/helpers/InitializeIDBListenersOnMstSnapshotsThenCatch.d.ts +9 -0
  34. package/lib/helpers/InitializeIDBListenersOnMstSnapshotsThenCatch.d.ts.map +1 -0
  35. package/lib/helpers/InitializeIDBListenersOnMstSnapshotsThenCatch.js +69 -0
  36. package/lib/helpers/InitializeIDBListenersOnMstSnapshotsThenCatch.js.map +1 -0
  37. package/lib/helpers/IsAdcuris.d.ts +3 -0
  38. package/lib/helpers/IsAdcuris.d.ts.map +1 -0
  39. package/lib/helpers/IsAdcuris.js +5 -0
  40. package/lib/helpers/IsAdcuris.js.map +1 -0
  41. package/lib/helpers/IsNotEmpty.d.ts +2 -0
  42. package/lib/helpers/IsNotEmpty.d.ts.map +1 -0
  43. package/lib/helpers/IsNotEmpty.js +4 -0
  44. package/lib/helpers/IsNotEmpty.js.map +1 -0
  45. package/lib/helpers/NorwegianPostalCodes.d.ts +9 -0
  46. package/lib/helpers/NorwegianPostalCodes.d.ts.map +1 -0
  47. package/lib/helpers/NorwegianPostalCodes.js +4 -0
  48. package/lib/helpers/NorwegianPostalCodes.js.map +1 -0
  49. package/lib/helpers/ProcessServerError.d.ts +3 -0
  50. package/lib/helpers/ProcessServerError.d.ts.map +1 -0
  51. package/lib/helpers/ProcessServerError.js +101 -0
  52. package/lib/helpers/ProcessServerError.js.map +1 -0
  53. package/lib/helpers/attachUserJournalCredentials.d.ts +2 -0
  54. package/lib/helpers/attachUserJournalCredentials.d.ts.map +1 -0
  55. package/lib/helpers/attachUserJournalCredentials.js +17 -0
  56. package/lib/helpers/attachUserJournalCredentials.js.map +1 -0
  57. package/lib/helpers/base64ToFile.d.ts +2 -0
  58. package/lib/helpers/base64ToFile.d.ts.map +1 -0
  59. package/lib/helpers/base64ToFile.js +9 -0
  60. package/lib/helpers/base64ToFile.js.map +1 -0
  61. package/lib/helpers/clearCacheData.d.ts +2 -0
  62. package/lib/helpers/clearCacheData.d.ts.map +1 -0
  63. package/lib/helpers/clearCacheData.js +13 -0
  64. package/lib/helpers/clearCacheData.js.map +1 -0
  65. package/lib/helpers/generateEnvConfigsBindings.d.ts +31 -0
  66. package/lib/helpers/generateEnvConfigsBindings.d.ts.map +1 -0
  67. package/lib/helpers/generateEnvConfigsBindings.js +49 -0
  68. package/lib/helpers/generateEnvConfigsBindings.js.map +1 -0
  69. package/lib/helpers/generateGenqlClient.d.ts +24 -0
  70. package/lib/helpers/generateGenqlClient.d.ts.map +1 -0
  71. package/lib/helpers/generateGenqlClient.js +70 -0
  72. package/lib/helpers/generateGenqlClient.js.map +1 -0
  73. package/lib/helpers/generateSrvAuthBindings.d.ts +51 -0
  74. package/lib/helpers/generateSrvAuthBindings.d.ts.map +1 -0
  75. package/lib/helpers/generateSrvAuthBindings.js +190 -0
  76. package/lib/helpers/generateSrvAuthBindings.js.map +1 -0
  77. package/lib/helpers/getGqlOperationName.d.ts +2 -0
  78. package/lib/helpers/getGqlOperationName.d.ts.map +1 -0
  79. package/lib/helpers/getGqlOperationName.js +16 -0
  80. package/lib/helpers/getGqlOperationName.js.map +1 -0
  81. package/lib/helpers/getSubdomain.d.ts +13 -0
  82. package/lib/helpers/getSubdomain.d.ts.map +1 -0
  83. package/lib/helpers/getSubdomain.js +40 -0
  84. package/lib/helpers/getSubdomain.js.map +1 -0
  85. package/lib/helpers/isValidUrl.d.ts +2 -0
  86. package/lib/helpers/isValidUrl.d.ts.map +1 -0
  87. package/lib/helpers/isValidUrl.js +10 -0
  88. package/lib/helpers/isValidUrl.js.map +1 -0
  89. package/lib/helpers/parseJwt.d.ts +2 -0
  90. package/lib/helpers/parseJwt.d.ts.map +1 -0
  91. package/lib/helpers/parseJwt.js +8 -0
  92. package/lib/helpers/parseJwt.js.map +1 -0
  93. package/lib/helpers/userTypingSignal.d.ts +5 -0
  94. package/lib/helpers/userTypingSignal.d.ts.map +1 -0
  95. package/lib/helpers/userTypingSignal.js +33 -0
  96. package/lib/helpers/userTypingSignal.js.map +1 -0
  97. package/lib/index.d.ts +29 -0
  98. package/lib/index.d.ts.map +1 -0
  99. package/lib/index.js +27 -0
  100. package/lib/index.js.map +1 -0
  101. package/lib/interfaces/api/advoca/ISaveToDataBase.d.ts +17 -0
  102. package/lib/interfaces/api/advoca/ISaveToDataBase.d.ts.map +1 -0
  103. package/lib/interfaces/api/advoca/ISaveToDataBase.js +2 -0
  104. package/lib/interfaces/api/advoca/ISaveToDataBase.js.map +1 -0
  105. package/lib/interfaces/api/advoca/IUploadedDocument.d.ts +27 -0
  106. package/lib/interfaces/api/advoca/IUploadedDocument.d.ts.map +1 -0
  107. package/lib/interfaces/api/advoca/IUploadedDocument.js +2 -0
  108. package/lib/interfaces/api/advoca/IUploadedDocument.js.map +1 -0
  109. package/lib/interfaces/enums.d.ts +51 -0
  110. package/lib/interfaces/enums.d.ts.map +1 -0
  111. package/lib/interfaces/enums.js +60 -0
  112. package/lib/interfaces/enums.js.map +1 -0
  113. package/lib/utility/fetch.d.ts +2 -0
  114. package/lib/utility/fetch.d.ts.map +1 -0
  115. package/lib/utility/fetch.js +6 -0
  116. package/lib/utility/fetch.js.map +1 -0
  117. package/package.json +1 -1
  118. package/src/helpers/generateGenqlClient.ts +35 -40
  119. package/src/helpers/generateSrvAuthBindings.ts +77 -54
  120. package/src/helpers/parseJwt.ts +4 -4
@@ -2,11 +2,12 @@ import axios, { type AxiosResponse, type ResponseType } from 'axios'
2
2
  import { EventBus } from 'asma-event-bus/lib/event-buss'
3
3
  import { EnvironmentEnums, parseJwt } from '..'
4
4
 
5
- let logoutsuccesfull = false
5
+ //let logoutsuccesfull = false
6
6
 
7
- export const { dispatch, register: registerCallbackOnSrvAuthEvents } = EventBus<{ jwt_changed: {}; logout_event: {} }>(
8
- 'auth-bindings',
9
- )
7
+ export const { dispatch: dispatchSrvAuthEvents, register: registerCallbackOnSrvAuthEvents } = EventBus<{
8
+ jwt_changed: {}
9
+ logout_event: {}
10
+ }>('auth-bindings')
10
11
 
11
12
  export function generateSrvAuthBindings<FeatureEnums = never>(
12
13
  SRV_AUTH: () => string,
@@ -14,15 +15,11 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
14
15
  EnvironmentToOperateFn: () => string,
15
16
  logout?: () => void,
16
17
  ) {
17
- // let logoutMfes: (() => void)[] = []
18
-
19
18
  if (logout) {
20
19
  registerCallbackOnSrvAuthEvents('logout_event', logout)
21
20
  }
22
21
 
23
22
  if (window.__ASMA__SHELL__?.auth_bindings) {
24
- //window.__ASMA__SHELL__.logoutMfes = logoutMfes
25
-
26
23
  return window.__ASMA__SHELL__.auth_bindings as typeof auth_bindings
27
24
  }
28
25
 
@@ -30,21 +27,28 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
30
27
 
31
28
  let features: Set<FeatureEnums> | undefined
32
29
 
33
- let parsed_jwt: any | undefined
30
+ let parsed_jwt: unknown | undefined
34
31
 
35
- let fetchJwtPromise: Promise<{
32
+ /* let fetchJwtPromise: Promise<{
36
33
  data: { message: string; token?: string; features?: FeatureEnums[]; errors: { message: string }[] }
37
- }> | null = null
34
+ }> | null = null */
38
35
 
39
36
  const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken
40
37
 
41
38
  const isJwtValid = () => !isJwtInvalid()
42
39
 
40
+ //function cancelRequest() {
41
+ // return logoutsuccesfull
42
+ // }
43
+
44
+ const promiseRegistry: Record<string, Promise<unknown>> = <{}>{}
45
+
43
46
  async function srvAuthGet<R>(url: string, headers?: Record<string, string>) {
44
47
  if (DEVELOPMENT() && EnvironmentToOperateFn()) {
45
48
  if (EnvironmentToOperateFn() in EnvironmentEnums) {
46
49
  url = `${url}&env=${EnvironmentToOperateFn()}`
47
50
 
51
+ // file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first occurence>
48
52
  url = url.includes('&') && !url.includes('?') ? url.replace('&', '?') : url
49
53
  } else {
50
54
  console.warn(
@@ -57,13 +61,29 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
57
61
  }
58
62
  }
59
63
 
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
- })
64
+ const promise =
65
+ promiseRegistry[url] ||
66
+ axios.get<unknown, AxiosResponse<R>>(`${SRV_AUTH()}${url}`, {
67
+ headers: {
68
+ ...headers,
69
+ 'asma-origin': window.location.origin,
70
+ },
71
+ withCredentials: true,
72
+ })
73
+
74
+ if (!promiseRegistry[url]) {
75
+ promiseRegistry[url] = promise
76
+ }
77
+ try {
78
+ const res = await promise
79
+
80
+ return res as AxiosResponse<R, any>
81
+ } catch (e) {
82
+ console.error(e)
83
+ return
84
+ } finally {
85
+ delete promiseRegistry[url]
86
+ }
67
87
  }
68
88
 
69
89
  function accessTokenHasExpired(): boolean {
@@ -78,35 +98,43 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
78
98
  }
79
99
 
80
100
  async function signin(url: string, headers?: Record<string, string>) {
81
- const { data } = await srvAuthGet<{ token: string; features: FeatureEnums[] }>(url, headers)
101
+ const data = await srvAuthGet<{ token: string; features: FeatureEnums[] }>(url, headers)
82
102
 
83
- setAuthData(data)
103
+ setAuthData(data?.data)
84
104
 
85
- logoutsuccesfull = false
105
+ // logoutsuccesfull = false
86
106
 
87
107
  return data
88
108
  }
89
109
 
110
+ const { unregister } = registerCallbackOnSrvAuthEvents('logout_event', () => {
111
+ setAuthData({ token: '' })
112
+
113
+ srvAuthGet('/signout')
114
+
115
+ unregister()
116
+ })
117
+
90
118
  async function signoutAuth() {
91
- try {
92
- setAuthData({ token: '' })
119
+ dispatchSrvAuthEvents('logout_event', {}, false)
93
120
 
94
- await srvAuthGet('/signout')
95
- } catch (e) {
96
- console.error(e)
97
- } finally {
98
- dispatch('logout_event', {}, false)
99
- }
121
+ // return srvAuthGet('/signout')
100
122
  }
123
+
101
124
  function getUserId(): string {
102
125
  return getParsedJwt()?.['user_id'] || '-1'
103
126
  }
104
127
 
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)
128
+ function setAuthData(data?: { token: string; features?: FeatureEnums[] }) {
129
+ if (data) {
130
+ jwtToken = data?.token
131
+
132
+ features = new Set(data.features)
133
+
134
+ parsed_jwt = parseJwt(jwtToken)
135
+ }
136
+
137
+ dispatchSrvAuthEvents('jwt_changed', {}, false)
110
138
  }
111
139
 
112
140
  function getJwtToken() {
@@ -140,33 +168,27 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
140
168
  }
141
169
 
142
170
  async function getNewJwtToken() {
143
- if (logoutsuccesfull) return
144
171
  try {
145
- if (!fetchJwtPromise) {
172
+ /* if (!fetchJwtPromise) {
146
173
  fetchJwtPromise = srvAuthGet('/token')
147
- }
174
+ } */
148
175
 
149
- const { data } = await fetchJwtPromise
176
+ const data = await srvAuthGet<{ errors?: string; token: string; features: FeatureEnums[] }>('/token')
150
177
 
151
- if (!data || data.errors || data.message != 'Success' || !data.token) {
152
- logout?.()
153
- logoutsuccesfull = true
178
+ if (!data || data.data?.errors || !data.data.token) {
179
+ dispatchSrvAuthEvents('logout_event', {}, false)
154
180
 
155
- //signoutAuth()
181
+ return
156
182
  }
157
183
 
158
- setAuthData({ token: data.token || '', features: data.features || [] })
184
+ setAuthData({ token: data.data.token || '', features: data.data.features || [] })
159
185
  } catch (error) {
160
- logout?.()
161
- logoutsuccesfull = true
162
- //signoutAuth()
186
+ dispatchSrvAuthEvents('logout_event', {}, false)
163
187
 
164
188
  setAuthData({ token: '', features: [] })
165
189
 
166
190
  console.error(error)
167
191
  } finally {
168
- fetchJwtPromise = null
169
-
170
192
  return jwtToken
171
193
  }
172
194
  }
@@ -175,7 +197,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
175
197
  if (!parsed_jwt) {
176
198
  parsed_jwt = parseJwt<R>(jwtToken)
177
199
  }
178
- return parsed_jwt
200
+ return parsed_jwt as R
179
201
  }
180
202
  function getFeatures() {
181
203
  return features
@@ -199,9 +221,14 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
199
221
  setReqConfig,
200
222
  getJwtTokenAsync,
201
223
  getNewJwtToken,
224
+ /**
225
+ * @deprecated use registerCallbackOnSrvAuthEvents directly
226
+ */
227
+ registerOnJwtChanges: registerCallbackOnSrvAuthEvents,
202
228
  getUserId,
203
229
  getParsedJwt,
204
230
  getJwtToken,
231
+ // cancelRequest,
205
232
  accessTokenHasExpired,
206
233
  }
207
234
  window.__ASMA__SHELL__ = window.__ASMA__SHELL__ || {}
@@ -212,11 +239,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
212
239
  }
213
240
  /**
214
241
  * @deprecated use generateSrvAuthBindings
215
- * @param SRV_AUTH
216
- * @param DEVELOPMENT
217
- * @param ENVIRONMENT_TO_OPERATE
218
- * @param logout
219
- * @returns
242
+ *
220
243
  */
221
244
  export function generateSrvAuthBindingsMicroApp(
222
245
  SRV_AUTH: () => string,
@@ -1,11 +1,11 @@
1
1
 
2
2
 
3
- export function parseJwt<R>(jwtToken: string): R|undefined {
3
+ export function parseJwt<R>(jwtToken: string){
4
4
  const base64Url = jwtToken?.split('.')[1]
5
5
 
6
- if (base64Url === undefined) {
7
- return {} as any
6
+ if (!base64Url) {
7
+ return
8
8
  }
9
9
 
10
- return JSON.parse(decodeURIComponent(escape(window.atob(base64Url))))
10
+ return JSON.parse(decodeURIComponent(escape(window.atob(base64Url)))) as R
11
11
  }