asma-helpers 0.4.0 → 0.4.2
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/lib/helpers/generateSrvAuthBindings.d.ts +6 -8
- package/lib/helpers/generateSrvAuthBindings.d.ts.map +1 -1
- package/lib/helpers/generateSrvAuthBindings.js +14 -18
- package/lib/helpers/generateSrvAuthBindings.js.map +1 -1
- package/lib/helpers/getSubdomain.d.ts.map +1 -1
- package/lib/helpers/getSubdomain.js +11 -9
- package/lib/helpers/getSubdomain.js.map +1 -1
- package/package.json +1 -1
- package/src/helpers/generateSrvAuthBindings.ts +24 -27
- package/src/helpers/getSubdomain.ts +13 -15
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { EnvironmentEnums } from '..';
|
|
1
|
+
import { EnvironmentEnums } from '../interfaces/enums';
|
|
3
2
|
export declare const dispatchSrvAuthEvents: <Key extends "logout_event" | "jwt_changed" | "customer_changed">(event: Key, arg: {
|
|
4
3
|
jwt_changed: {};
|
|
5
4
|
logout_event: {};
|
|
@@ -17,21 +16,20 @@ export declare function generateSrvAuthBindings<FeatureEnums = never>(SRV_AUTH:
|
|
|
17
16
|
getConnector: () => string | undefined;
|
|
18
17
|
getFeatures: () => Set<FeatureEnums> | undefined;
|
|
19
18
|
isJwtValid: () => boolean;
|
|
20
|
-
signin: (url: string, headers?: Record<string, string>) => Promise<
|
|
19
|
+
signin: (url: string, headers?: Record<string, string>) => Promise<{
|
|
21
20
|
token: string;
|
|
22
21
|
features: FeatureEnums[];
|
|
23
22
|
connector?: string | undefined;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
srvAuthGet: <R>(url: string, headers?: Record<string, string>) => Promise<AxiosResponse<R, any>>;
|
|
23
|
+
}>;
|
|
24
|
+
srvAuthGet: <R>(url: string, headers?: Record<string, string>) => Promise<R>;
|
|
27
25
|
/**
|
|
28
26
|
* @deprecated use dispatchLogoutEvent directly
|
|
29
27
|
*/
|
|
30
28
|
signoutAuth: typeof dispatchLogoutEvent;
|
|
31
29
|
dispatchLogoutEvent: typeof dispatchLogoutEvent;
|
|
32
|
-
setReqConfig: <T = unknown>(data?: T | undefined, responseType?:
|
|
30
|
+
setReqConfig: <T = unknown>(data?: T | undefined, responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream') => Promise<{
|
|
33
31
|
data: T | undefined;
|
|
34
|
-
responseType:
|
|
32
|
+
responseType: "arraybuffer" | "blob" | "document" | "json" | "text" | "stream" | undefined;
|
|
35
33
|
headers: Record<string, string>;
|
|
36
34
|
}>;
|
|
37
35
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSrvAuthBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generateSrvAuthBindings.d.ts","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAKtD,eAAO,MAAkB,qBAAqB;iBAC7B,EAAE;kBACD,EAAE;sBACE,EAAE;sDAHkC,+BAA+B;iBACxE,EAAE;kBACD,EAAE;sBACE,EAAE;;;CACL,CAAA;AAEnB,iBAAS,mBAAmB,SAE3B;AAKD,wBAAgB,uBAAuB,CAAC,YAAY,GAAG,KAAK,EACxD,QAAQ,EAAE,MAAM,MAAM,EACtB,WAAW,EAAE,MAAM,OAAO,EAC1B,sBAAsB,EAAE,MAAM,MAAM,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI;8BAoMc,YAAY;;;;kBA/GlB,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;eACxB,MAAM;kBAAY,YAAY,EAAE;;;yBA7DzC,MAAM,YAAY,OAAO,MAAM,EAAE,MAAM,CAAC;IA0LtE;;OAEG;;;qEA7EY,aAAa,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ;;;;;IAiF/E;;UAEM;;;;IAIN;;OAEG;;;;;;;;qBApIe,MAAM;;iBAyFS,MAAM;aAAO,MAAM;;;iCArHtB,OAAO;EA6K5C;AACD;;;GAGG;AACH,wBAAgB,+BAA+B,CAC3C,QAAQ,EAAE,MAAM,MAAM,EACtB,WAAW,EAAE,MAAM,OAAO,EAC1B,sBAAsB,EAAE,MAAM,gBAAgB,EAC9C,MAAM,CAAC,EAAE,MAAM,IAAI,MAMtB"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import axios from 'axios'
|
|
1
|
+
//import axios, { type AxiosResponse, type ResponseType } from 'axios'
|
|
2
2
|
import { EventBus } from 'asma-event-bus/lib/event-buss';
|
|
3
|
-
import { EnvironmentEnums
|
|
4
|
-
|
|
3
|
+
import { EnvironmentEnums } from '../interfaces/enums';
|
|
4
|
+
import { parseJwt } from './parseJwt';
|
|
5
|
+
//let logoutsuccesfull = false
|
|
5
6
|
export const { dispatch: dispatchSrvAuthEvents, register: registerCallbackOnSrvAuthEvents } = EventBus('auth-bindings');
|
|
6
7
|
function dispatchLogoutEvent() {
|
|
7
8
|
dispatchSrvAuthEvents('logout_event', {}, false);
|
|
@@ -23,17 +24,13 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
23
24
|
let parsed_jwt;
|
|
24
25
|
const isJwtInvalid = () => (jwtToken && accessTokenHasExpired()) || !jwtToken;
|
|
25
26
|
const isJwtValid = () => !isJwtInvalid();
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
26
28
|
const promiseRegistry = {};
|
|
27
|
-
/**
|
|
28
|
-
*
|
|
29
|
-
* 1.req /singing
|
|
30
|
-
* 2.req /token
|
|
31
|
-
*/
|
|
32
29
|
async function srvAuthGet(url, headers) {
|
|
33
30
|
if (DEVELOPMENT() && EnvironmentToOperateFn()) {
|
|
34
31
|
if (EnvironmentToOperateFn() in EnvironmentEnums) {
|
|
35
32
|
url = `${url}&env=${EnvironmentToOperateFn()}`;
|
|
36
|
-
// file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first
|
|
33
|
+
// file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first occurence>
|
|
37
34
|
url = url.includes('&') && !url.includes('?') ? url.replace('&', '?') : url;
|
|
38
35
|
}
|
|
39
36
|
else {
|
|
@@ -41,13 +38,14 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
41
38
|
}
|
|
42
39
|
}
|
|
43
40
|
const promise = promiseRegistry[url] ||
|
|
44
|
-
|
|
41
|
+
fetch(`${SRV_AUTH()}${url}`, {
|
|
45
42
|
headers: {
|
|
46
43
|
...headers,
|
|
47
44
|
'asma-origin': window.location.origin,
|
|
48
45
|
},
|
|
49
|
-
|
|
50
|
-
|
|
46
|
+
credentials: 'include',
|
|
47
|
+
//withCredentials: true,
|
|
48
|
+
}).then((res) => res.json());
|
|
51
49
|
if (!promiseRegistry[url]) {
|
|
52
50
|
promiseRegistry[url] = promise;
|
|
53
51
|
}
|
|
@@ -64,7 +62,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
64
62
|
}
|
|
65
63
|
/**
|
|
66
64
|
*
|
|
67
|
-
* TODO: need to investigate smarter way of
|
|
65
|
+
* TODO: need to investigate smarter way of registerning and unregistering on `logout_event`
|
|
68
66
|
**/
|
|
69
67
|
registerCallbackOnSrvAuthEvents('logout_event', () => {
|
|
70
68
|
setAuthData({ token: '' });
|
|
@@ -72,7 +70,7 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
72
70
|
});
|
|
73
71
|
async function signin(url, headers) {
|
|
74
72
|
const data = await srvAuthGet(url, headers);
|
|
75
|
-
setAuthData(data
|
|
73
|
+
setAuthData(data);
|
|
76
74
|
return data;
|
|
77
75
|
}
|
|
78
76
|
function getUserId() {
|
|
@@ -85,7 +83,6 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
85
83
|
features = new Set(data.features);
|
|
86
84
|
connector = data.connector;
|
|
87
85
|
parsed_jwt = parseJwt(jwtToken);
|
|
88
|
-
data.theme && setTheme(data.theme);
|
|
89
86
|
dispatchJwtChangedEvent();
|
|
90
87
|
return;
|
|
91
88
|
}
|
|
@@ -119,17 +116,16 @@ export function generateSrvAuthBindings(SRV_AUTH, DEVELOPMENT, EnvironmentToOper
|
|
|
119
116
|
return res;
|
|
120
117
|
}
|
|
121
118
|
async function getNewJwtToken() {
|
|
122
|
-
var _a;
|
|
123
119
|
try {
|
|
124
120
|
/* if (!fetchJwtPromise) {
|
|
125
121
|
fetchJwtPromise = srvAuthGet('/token')
|
|
126
122
|
} */
|
|
127
123
|
const data = await srvAuthGet('/token');
|
|
128
|
-
if (!data || (
|
|
124
|
+
if (!data || (data === null || data === void 0 ? void 0 : data.errors) || !data.token) {
|
|
129
125
|
dispatchLogoutEvent();
|
|
130
126
|
return;
|
|
131
127
|
}
|
|
132
|
-
setAuthData({ token: data.
|
|
128
|
+
setAuthData({ token: data.token, features: data.features || [], connector: data.connector });
|
|
133
129
|
return jwtToken;
|
|
134
130
|
}
|
|
135
131
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateSrvAuthBindings.js","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"generateSrvAuthBindings.js","sourceRoot":"","sources":["../../src/helpers/generateSrvAuthBindings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSubdomain.d.ts","sourceRoot":"","sources":["../../src/helpers/getSubdomain.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getSubdomain.d.ts","sourceRoot":"","sources":["../../src/helpers/getSubdomain.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,SAAS,QAAiB,CAAA;AAEvC,wBAAgB,6BAA6B,SAM5C;AAED,wBAAgB,4BAA4B,WAe3C"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
const hostname_arr = window.location.hostname.split('.'); // fretex-dfsf.advoca.no
|
|
1
|
+
const hostname_arr = () => window.location.hostname.split('.'); // fretex-dfsf.advoca.no
|
|
2
2
|
function getSubdomain() {
|
|
3
3
|
let subdomain = '';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
const host_arr = hostname_arr();
|
|
5
|
+
if (host_arr.length === 3 &&
|
|
6
|
+
host_arr[0] &&
|
|
7
|
+
!['dev', 'test', 'stage', 'intern', 'www'].find((sub) => sub === host_arr[0])) {
|
|
8
|
+
subdomain = host_arr[0];
|
|
8
9
|
const subdomain_arr = subdomain.split('-');
|
|
9
10
|
if (subdomain_arr.length === 2 && subdomain_arr[0]) {
|
|
10
11
|
subdomain = subdomain_arr[0];
|
|
11
12
|
}
|
|
12
13
|
}
|
|
13
|
-
else if (
|
|
14
|
-
subdomain =
|
|
14
|
+
else if (host_arr.length === 4 && host_arr[0]) {
|
|
15
|
+
subdomain = host_arr[0];
|
|
15
16
|
}
|
|
16
17
|
return subdomain;
|
|
17
18
|
}
|
|
@@ -23,13 +24,14 @@ export function redirectFromSubdomainToDomain() {
|
|
|
23
24
|
}
|
|
24
25
|
export function createDomainUrlFromSubdomain() {
|
|
25
26
|
let hostname = window.location.hostname.replace(subdomain, '');
|
|
27
|
+
const hostname_arr_length = hostname_arr().length;
|
|
26
28
|
//TODO first if statment will be removed in the future when we all asma will move to nested subdomains
|
|
27
|
-
if (
|
|
29
|
+
if (hostname_arr_length === 3) {
|
|
28
30
|
;
|
|
29
31
|
(hostname.startsWith('-') && (hostname = hostname.substring(1))) ||
|
|
30
32
|
(hostname.startsWith('.') && (hostname = 'www' + hostname));
|
|
31
33
|
}
|
|
32
|
-
else if (
|
|
34
|
+
else if (hostname_arr_length === 4) {
|
|
33
35
|
// deepcode ignore GlobalReplacementRegex: <this is intended>
|
|
34
36
|
hostname = hostname.replace('.', '');
|
|
35
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSubdomain.js","sourceRoot":"","sources":["../../src/helpers/getSubdomain.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,
|
|
1
|
+
{"version":3,"file":"getSubdomain.js","sourceRoot":"","sources":["../../src/helpers/getSubdomain.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,CAAC,wBAAwB;AAEvF,SAAS,YAAY;IACjB,IAAI,SAAS,GAAG,EAAE,CAAA;IAClB,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAA;IAC/B,IACI,QAAQ,CAAC,MAAM,KAAK,CAAC;QACrB,QAAQ,CAAC,CAAC,CAAC;QACX,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAC/E;QACE,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAEvB,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAE1C,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE;YAChD,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAA;SAC/B;KACJ;SAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE;QAC7C,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;KAC1B;IACD,OAAO,SAAS,CAAA;AACpB,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAA;AAEvC,MAAM,UAAU,6BAA6B;IACzC,MAAM,eAAe,GAAG,GAAG,4BAA4B,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;IAEtF,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAA;IAEtC,OAAO,IAAI,CAAA;AACf,CAAC;AAED,MAAM,UAAU,4BAA4B;IACxC,IAAI,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;IAC9D,MAAM,mBAAmB,GAAG,YAAY,EAAE,CAAC,MAAM,CAAA;IACjD,sGAAsG;IACtG,IAAI,mBAAmB,KAAK,CAAC,EAAE;QAC3B,CAAC;QAAA,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAA;KAClE;SAAM,IAAI,mBAAmB,KAAK,CAAC,EAAE;QAClC,6DAA6D;QAC7D,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;KACvC;IAED,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAA;IAE1C,OAAO,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;AAChE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import axios, { type AxiosResponse, type ResponseType } from 'axios'
|
|
1
|
+
//import axios, { type AxiosResponse, type ResponseType } from 'axios'
|
|
2
2
|
import { EventBus } from 'asma-event-bus/lib/event-buss'
|
|
3
|
-
import { EnvironmentEnums
|
|
3
|
+
import { EnvironmentEnums } from '../interfaces/enums'
|
|
4
|
+
import { parseJwt } from './parseJwt'
|
|
4
5
|
|
|
5
|
-
//let
|
|
6
|
+
//let logoutsuccesfull = false
|
|
6
7
|
|
|
7
8
|
export const { dispatch: dispatchSrvAuthEvents, register: registerCallbackOnSrvAuthEvents } = EventBus<{
|
|
8
9
|
jwt_changed: {}
|
|
@@ -43,18 +44,15 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
43
44
|
|
|
44
45
|
const isJwtValid = () => !isJwtInvalid()
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
* 1.req /singing
|
|
50
|
-
* 2.req /token
|
|
51
|
-
*/
|
|
47
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
|
+
const promiseRegistry: Record<string, Promise<any>> = <{}>{}
|
|
49
|
+
|
|
52
50
|
async function srvAuthGet<R>(url: string, headers?: Record<string, string>) {
|
|
53
51
|
if (DEVELOPMENT() && EnvironmentToOperateFn()) {
|
|
54
52
|
if (EnvironmentToOperateFn() in EnvironmentEnums) {
|
|
55
53
|
url = `${url}&env=${EnvironmentToOperateFn()}`
|
|
56
54
|
|
|
57
|
-
// file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first
|
|
55
|
+
// file deepcode ignore GlobalReplacementRegex: <it is intended to be replaced only first occurence>
|
|
58
56
|
url = url.includes('&') && !url.includes('?') ? url.replace('&', '?') : url
|
|
59
57
|
} else {
|
|
60
58
|
console.warn(
|
|
@@ -67,15 +65,16 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
67
65
|
}
|
|
68
66
|
}
|
|
69
67
|
|
|
70
|
-
const promise =
|
|
68
|
+
const promise: Promise<R> =
|
|
71
69
|
promiseRegistry[url] ||
|
|
72
|
-
|
|
70
|
+
fetch(`${SRV_AUTH()}${url}`, {
|
|
73
71
|
headers: {
|
|
74
72
|
...headers,
|
|
75
73
|
'asma-origin': window.location.origin,
|
|
76
74
|
},
|
|
77
|
-
|
|
78
|
-
|
|
75
|
+
credentials: 'include',
|
|
76
|
+
//withCredentials: true,
|
|
77
|
+
}).then((res) => res.json())
|
|
79
78
|
|
|
80
79
|
if (!promiseRegistry[url]) {
|
|
81
80
|
promiseRegistry[url] = promise
|
|
@@ -85,7 +84,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
85
84
|
delete promiseRegistry[url]
|
|
86
85
|
})
|
|
87
86
|
|
|
88
|
-
return res
|
|
87
|
+
return res
|
|
89
88
|
}
|
|
90
89
|
|
|
91
90
|
function accessTokenHasExpired(): boolean {
|
|
@@ -100,7 +99,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
100
99
|
|
|
101
100
|
/**
|
|
102
101
|
*
|
|
103
|
-
* TODO: need to investigate smarter way of
|
|
102
|
+
* TODO: need to investigate smarter way of registerning and unregistering on `logout_event`
|
|
104
103
|
**/
|
|
105
104
|
registerCallbackOnSrvAuthEvents('logout_event', () => {
|
|
106
105
|
setAuthData({ token: '' })
|
|
@@ -109,12 +108,9 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
109
108
|
})
|
|
110
109
|
|
|
111
110
|
async function signin(url: string, headers?: Record<string, string>) {
|
|
112
|
-
const data = await srvAuthGet<{ token: string; features: FeatureEnums[]; connector?: string
|
|
113
|
-
url,
|
|
114
|
-
headers,
|
|
115
|
-
)
|
|
111
|
+
const data = await srvAuthGet<{ token: string; features: FeatureEnums[]; connector?: string }>(url, headers)
|
|
116
112
|
|
|
117
|
-
setAuthData(data
|
|
113
|
+
setAuthData(data)
|
|
118
114
|
|
|
119
115
|
return data
|
|
120
116
|
}
|
|
@@ -123,7 +119,7 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
123
119
|
return getParsedJwt()?.['user_id'] || '-1'
|
|
124
120
|
}
|
|
125
121
|
|
|
126
|
-
function setAuthData(data?: { token: string; features?: FeatureEnums[]; connector?: string
|
|
122
|
+
function setAuthData(data?: { token: string; features?: FeatureEnums[]; connector?: string }) {
|
|
127
123
|
if (data?.token) {
|
|
128
124
|
jwtToken = data?.token
|
|
129
125
|
|
|
@@ -133,8 +129,6 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
133
129
|
|
|
134
130
|
parsed_jwt = parseJwt(jwtToken)
|
|
135
131
|
|
|
136
|
-
data.theme && setTheme(data.theme)
|
|
137
|
-
|
|
138
132
|
dispatchJwtChangedEvent()
|
|
139
133
|
|
|
140
134
|
return
|
|
@@ -162,7 +156,10 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
162
156
|
}
|
|
163
157
|
}
|
|
164
158
|
|
|
165
|
-
async function setReqConfig<T = unknown>(
|
|
159
|
+
async function setReqConfig<T = unknown>(
|
|
160
|
+
data?: T,
|
|
161
|
+
responseType?: 'arraybuffer' | 'blob' | 'document' | 'json' | 'text' | 'stream',
|
|
162
|
+
) {
|
|
166
163
|
const token = await getCachedJwt()
|
|
167
164
|
|
|
168
165
|
const res = {
|
|
@@ -191,12 +188,12 @@ export function generateSrvAuthBindings<FeatureEnums = never>(
|
|
|
191
188
|
connector: string
|
|
192
189
|
}>('/token')
|
|
193
190
|
|
|
194
|
-
if (!data || data
|
|
191
|
+
if (!data || data?.errors || !data.token) {
|
|
195
192
|
dispatchLogoutEvent()
|
|
196
193
|
return
|
|
197
194
|
}
|
|
198
195
|
|
|
199
|
-
setAuthData({ token: data.
|
|
196
|
+
setAuthData({ token: data.token, features: data.features || [], connector: data.connector })
|
|
200
197
|
return jwtToken
|
|
201
198
|
} catch (error) {
|
|
202
199
|
dispatchLogoutEvent()
|
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
const hostname_arr = window.location.hostname.split('.')// fretex-dfsf.advoca.no
|
|
1
|
+
const hostname_arr = () => window.location.hostname.split('.') // fretex-dfsf.advoca.no
|
|
2
2
|
|
|
3
3
|
function getSubdomain() {
|
|
4
|
-
|
|
5
4
|
let subdomain = ''
|
|
6
|
-
|
|
5
|
+
const host_arr = hostname_arr()
|
|
7
6
|
if (
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
!['dev', 'test', 'stage', 'intern', 'www'].find((sub) => sub ===
|
|
7
|
+
host_arr.length === 3 &&
|
|
8
|
+
host_arr[0] &&
|
|
9
|
+
!['dev', 'test', 'stage', 'intern', 'www'].find((sub) => sub === host_arr[0])
|
|
11
10
|
) {
|
|
12
|
-
subdomain =
|
|
11
|
+
subdomain = host_arr[0]
|
|
13
12
|
|
|
14
13
|
const subdomain_arr = subdomain.split('-')
|
|
15
14
|
|
|
16
15
|
if (subdomain_arr.length === 2 && subdomain_arr[0]) {
|
|
17
16
|
subdomain = subdomain_arr[0]
|
|
18
17
|
}
|
|
19
|
-
}else if(
|
|
20
|
-
subdomain =
|
|
18
|
+
} else if (host_arr.length === 4 && host_arr[0]) {
|
|
19
|
+
subdomain = host_arr[0]
|
|
21
20
|
}
|
|
22
21
|
return subdomain
|
|
23
22
|
}
|
|
@@ -34,18 +33,17 @@ export function redirectFromSubdomainToDomain() {
|
|
|
34
33
|
|
|
35
34
|
export function createDomainUrlFromSubdomain() {
|
|
36
35
|
let hostname = window.location.hostname.replace(subdomain, '')
|
|
36
|
+
const hostname_arr_length = hostname_arr().length
|
|
37
37
|
//TODO first if statment will be removed in the future when we all asma will move to nested subdomains
|
|
38
|
-
if(
|
|
39
|
-
|
|
38
|
+
if (hostname_arr_length === 3) {
|
|
40
39
|
;(hostname.startsWith('-') && (hostname = hostname.substring(1))) ||
|
|
41
40
|
(hostname.startsWith('.') && (hostname = 'www' + hostname))
|
|
42
|
-
}
|
|
43
|
-
else if(hostname_arr.length === 4){
|
|
41
|
+
} else if (hostname_arr_length === 4) {
|
|
44
42
|
// deepcode ignore GlobalReplacementRegex: <this is intended>
|
|
45
|
-
hostname = hostname.replace('.','')
|
|
43
|
+
hostname = hostname.replace('.', '')
|
|
46
44
|
}
|
|
47
45
|
|
|
48
46
|
const { port, protocol } = window.location
|
|
49
47
|
|
|
50
48
|
return protocol + '//' + hostname + (port ? `:${port}` : '')
|
|
51
|
-
}
|
|
49
|
+
}
|