@imposium-hub/components 2.9.0-10 → 2.9.0-11
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/dist/cjs/components/app-wrapper/AppWrapperV2.d.ts +26 -0
- package/dist/cjs/components/app-wrapper/AppWrapperV2.js +266 -0
- package/dist/cjs/components/app-wrapper/AppWrapperV2.js.map +1 -0
- package/dist/cjs/components/app-wrapper/AppWrapperV3.d.ts +19 -0
- package/dist/cjs/components/app-wrapper/AppWrapperV3.js +195 -0
- package/dist/cjs/components/app-wrapper/AppWrapperV3.js.map +1 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js +243 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js +255 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js +243 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js +251 -0
- package/dist/cjs/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
- package/dist/cjs/components/auth-gate/AuthGate.d.ts +2 -0
- package/dist/cjs/components/auth-gate/AuthGate.js +105 -0
- package/dist/cjs/components/auth-gate/AuthGate.js.map +1 -0
- package/dist/cjs/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
- package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js +91 -0
- package/dist/cjs/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
- package/dist/cjs/components/header/Header_BACKUP_73021.d.ts +33 -0
- package/dist/cjs/components/header/Header_BACKUP_73021.js +393 -0
- package/dist/cjs/components/header/Header_BACKUP_73021.js.map +1 -0
- package/dist/cjs/components/header/Header_BASE_73021.d.ts +29 -0
- package/dist/cjs/components/header/Header_BASE_73021.js +376 -0
- package/dist/cjs/components/header/Header_BASE_73021.js.map +1 -0
- package/dist/cjs/components/header/Header_LOCAL_73021.d.ts +33 -0
- package/dist/cjs/components/header/Header_LOCAL_73021.js +382 -0
- package/dist/cjs/components/header/Header_LOCAL_73021.js.map +1 -0
- package/dist/cjs/components/header/Header_REMOTE_73021.d.ts +30 -0
- package/dist/cjs/components/header/Header_REMOTE_73021.js +386 -0
- package/dist/cjs/components/header/Header_REMOTE_73021.js.map +1 -0
- package/dist/cjs/components/header/StoryDropdown.d.ts +6 -0
- package/dist/cjs/components/header/StoryDropdown.js +111 -0
- package/dist/cjs/components/header/StoryDropdown.js.map +1 -0
- package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js +9 -5
- package/dist/cjs/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
- package/dist/cjs/redux/actions/auth.d.ts +9 -0
- package/dist/cjs/redux/actions/auth.js +30 -0
- package/dist/cjs/redux/actions/auth.js.map +1 -0
- package/dist/cjs/redux/reducers/auth.d.ts +3 -0
- package/dist/cjs/redux/reducers/auth.js +67 -0
- package/dist/cjs/redux/reducers/auth.js.map +1 -0
- package/dist/cjs/services/Auth0.d.ts +18 -0
- package/dist/cjs/services/Auth0.js +102 -0
- package/dist/cjs/services/Auth0.js.map +1 -0
- package/dist/cjs/services/Session.d.ts +26 -0
- package/dist/cjs/services/Session.js +155 -0
- package/dist/cjs/services/Session.js.map +1 -0
- package/dist/esm/components/app-wrapper/AppWrapperV2.d.ts +26 -0
- package/dist/esm/components/app-wrapper/AppWrapperV2.js +142 -0
- package/dist/esm/components/app-wrapper/AppWrapperV2.js.map +1 -0
- package/dist/esm/components/app-wrapper/AppWrapperV3.d.ts +19 -0
- package/dist/esm/components/app-wrapper/AppWrapperV3.js +88 -0
- package/dist/esm/components/app-wrapper/AppWrapperV3.js.map +1 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.d.ts +27 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js +194 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BACKUP_73190.js.map +1 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.d.ts +28 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js +208 -0
- package/dist/esm/components/app-wrapper/AppWrapper_BASE_73190.js.map +1 -0
- package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.d.ts +27 -0
- package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js +194 -0
- package/dist/esm/components/app-wrapper/AppWrapper_LOCAL_73190.js.map +1 -0
- package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.d.ts +28 -0
- package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js +204 -0
- package/dist/esm/components/app-wrapper/AppWrapper_REMOTE_73190.js.map +1 -0
- package/dist/esm/components/auth-gate/AuthGate.d.ts +2 -0
- package/dist/esm/components/auth-gate/AuthGate.js +59 -0
- package/dist/esm/components/auth-gate/AuthGate.js.map +1 -0
- package/dist/esm/components/error-message-preview/ErrorMessagePreview.d.ts +15 -0
- package/dist/esm/components/error-message-preview/ErrorMessagePreview.js +35 -0
- package/dist/esm/components/error-message-preview/ErrorMessagePreview.js.map +1 -0
- package/dist/esm/components/header/Header_BACKUP_73021.d.ts +33 -0
- package/dist/esm/components/header/Header_BACKUP_73021.js +336 -0
- package/dist/esm/components/header/Header_BACKUP_73021.js.map +1 -0
- package/dist/esm/components/header/Header_BASE_73021.d.ts +29 -0
- package/dist/esm/components/header/Header_BASE_73021.js +322 -0
- package/dist/esm/components/header/Header_BASE_73021.js.map +1 -0
- package/dist/esm/components/header/Header_LOCAL_73021.d.ts +33 -0
- package/dist/esm/components/header/Header_LOCAL_73021.js +328 -0
- package/dist/esm/components/header/Header_LOCAL_73021.js.map +1 -0
- package/dist/esm/components/header/Header_REMOTE_73021.d.ts +30 -0
- package/dist/esm/components/header/Header_REMOTE_73021.js +329 -0
- package/dist/esm/components/header/Header_REMOTE_73021.js.map +1 -0
- package/dist/esm/components/header/StoryDropdown.d.ts +6 -0
- package/dist/esm/components/header/StoryDropdown.js +82 -0
- package/dist/esm/components/header/StoryDropdown.js.map +1 -0
- package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js +9 -5
- package/dist/esm/components/publish-wizard/publish/EmailWorkflow.js.map +1 -1
- package/dist/esm/redux/actions/auth.d.ts +9 -0
- package/dist/esm/redux/actions/auth.js +25 -0
- package/dist/esm/redux/actions/auth.js.map +1 -0
- package/dist/esm/redux/reducers/auth.d.ts +3 -0
- package/dist/esm/redux/reducers/auth.js +27 -0
- package/dist/esm/redux/reducers/auth.js.map +1 -0
- package/dist/esm/services/Auth0.d.ts +18 -0
- package/dist/esm/services/Auth0.js +68 -0
- package/dist/esm/services/Auth0.js.map +1 -0
- package/dist/esm/services/Session.d.ts +26 -0
- package/dist/esm/services/Session.js +107 -0
- package/dist/esm/services/Session.js.map +1 -0
- package/package.json +1 -1
- package/src/components/publish-wizard/publish/EmailWorkflow.tsx +11 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/redux/actions/auth.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAW,oBAAoB,CAAC;AAE3D,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,IAAe,EAAO,EAAE;IAC1C,IAAI,CAAC;QACD,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,GAAQ,EAAE;IACrC,IAAI,CAAC;QACD,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG;IACZ,KAAK,EAAE,YAAY;IACnB,KAAK,EAAE,YAAY;CACtB,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import actions, { AUTH_CACHE_KEY } from '../actions/auth';
|
|
2
|
+
import AuthService from '../../services/Auth0';
|
|
3
|
+
let initialState = null;
|
|
4
|
+
try {
|
|
5
|
+
const cachedAuth = JSON.parse(localStorage.getItem(AUTH_CACHE_KEY));
|
|
6
|
+
if (cachedAuth) {
|
|
7
|
+
const { idTokenPayload: { exp } } = cachedAuth;
|
|
8
|
+
if (AuthService.checkExpiry(exp)) {
|
|
9
|
+
initialState = cachedAuth;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
catch (e) {
|
|
14
|
+
console.warn('Cached credentials were malformed or missing, redirected to login.');
|
|
15
|
+
}
|
|
16
|
+
const auth = (state = initialState, action) => {
|
|
17
|
+
switch (action.type) {
|
|
18
|
+
case actions.LOGIN:
|
|
19
|
+
return { ...action.auth };
|
|
20
|
+
case actions.CLEAR:
|
|
21
|
+
return null;
|
|
22
|
+
default:
|
|
23
|
+
return state;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
export default auth;
|
|
27
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../../src/redux/reducers/auth.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,WAA0B,MAAM,sBAAsB,CAAC;AAE9D,IAAI,YAAY,GAAc,IAAI,CAAC;AAEnC,IAAI,CAAC;IACD,MAAM,UAAU,GAAc,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;IAE/E,IAAI,UAAU,EAAE,CAAC;QACb,MAAM,EACF,cAAc,EAAE,EAAE,GAAG,EAAE,EAC1B,GAAG,UAAU,CAAC;QAEf,IAAI,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,YAAY,GAAG,UAAU,CAAC;QAC9B,CAAC;IACL,CAAC;AACL,CAAC;AAAC,OAAO,CAAC,EAAE,CAAC;IACT,OAAO,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;AACvF,CAAC;AAED,MAAM,IAAI,GAAG,CAAC,KAAK,GAAG,YAAY,EAAE,MAAM,EAAE,EAAE;IAC1C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,OAAO,CAAC,KAAK;YACd,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,KAAK,OAAO,CAAC,KAAK;YACd,OAAO,IAAI,CAAC;QAChB;YACI,OAAO,KAAK,CAAC;IACrB,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface IIdentity {
|
|
2
|
+
accessToken: string;
|
|
3
|
+
expiry: number;
|
|
4
|
+
expiresIn: number;
|
|
5
|
+
idToken: string;
|
|
6
|
+
tokenType: string;
|
|
7
|
+
idTokenPayload: any;
|
|
8
|
+
}
|
|
9
|
+
export default class AuthService {
|
|
10
|
+
private static readonly IMPOSIUM_APP_DEFAULTS;
|
|
11
|
+
private static auth0Client;
|
|
12
|
+
static bindToClient: (clientID: string, domain: string) => void;
|
|
13
|
+
static login: () => void;
|
|
14
|
+
static logout: () => void;
|
|
15
|
+
static checkExpiry: (expiry: number) => boolean;
|
|
16
|
+
static parseIdFromHash: (hash: string) => Promise<IIdentity>;
|
|
17
|
+
static checkSession: () => Promise<IIdentity | Error>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import * as auth0 from 'auth0-js';
|
|
2
|
+
export default class AuthService {
|
|
3
|
+
static IMPOSIUM_APP_DEFAULTS = {
|
|
4
|
+
scope: 'openid',
|
|
5
|
+
audience: 'https://api.4cinsights.io/',
|
|
6
|
+
responseType: 'token id_token',
|
|
7
|
+
redirectUri: `${window.location.origin}/auth`
|
|
8
|
+
};
|
|
9
|
+
// Auth0 JS client
|
|
10
|
+
static auth0Client;
|
|
11
|
+
/*
|
|
12
|
+
Initialize the auth0 web client with client ID for a given app-wrapper
|
|
13
|
+
*/
|
|
14
|
+
static bindToClient = (clientID, domain) => {
|
|
15
|
+
AuthService.auth0Client = new auth0.WebAuth({
|
|
16
|
+
clientID,
|
|
17
|
+
domain,
|
|
18
|
+
...AuthService.IMPOSIUM_APP_DEFAULTS
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
/*
|
|
22
|
+
redirect to auth0 for login
|
|
23
|
+
*/
|
|
24
|
+
static login = () => {
|
|
25
|
+
AuthService.auth0Client.authorize();
|
|
26
|
+
};
|
|
27
|
+
/*
|
|
28
|
+
Re-direct to auth0 to cancel session & instruct auth0 to redirect back to login
|
|
29
|
+
*/
|
|
30
|
+
static logout = () => {
|
|
31
|
+
AuthService.auth0Client.logout({ returnTo: `${window.location.origin}/auth` });
|
|
32
|
+
};
|
|
33
|
+
/*
|
|
34
|
+
Validate auth0 expiry timestamp
|
|
35
|
+
*/
|
|
36
|
+
static checkExpiry = (expiry) => expiry > Date.now().valueOf() / 1000;
|
|
37
|
+
/*
|
|
38
|
+
Parse out identity from hash
|
|
39
|
+
*/
|
|
40
|
+
static parseIdFromHash = (hash) => {
|
|
41
|
+
return new Promise((resolve, reject) => {
|
|
42
|
+
AuthService.auth0Client.parseHash({ options: hash }, (e, id) => {
|
|
43
|
+
if (!e) {
|
|
44
|
+
resolve(id);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
reject(e);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
/*
|
|
53
|
+
Defer to auth0 web servers to check if users session is valid
|
|
54
|
+
*/
|
|
55
|
+
static checkSession = () => {
|
|
56
|
+
return new Promise((resolve, reject) => {
|
|
57
|
+
AuthService.auth0Client.checkSession({}, (e, id) => {
|
|
58
|
+
if (!e) {
|
|
59
|
+
resolve(id);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
reject(e);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=Auth0.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Auth0.js","sourceRoot":"","sources":["../../../src/services/Auth0.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,UAAU,CAAC;AAWlC,MAAM,CAAC,OAAO,OAAO,WAAW;IACpB,MAAM,CAAU,qBAAqB,GAAQ;QACjD,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,4BAA4B;QACtC,YAAY,EAAE,gBAAgB;QAC9B,WAAW,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,OAAO;KAChD,CAAC;IAEF,kBAAkB;IACV,MAAM,CAAC,WAAW,CAAgB;IAE1C;;OAEG;IACI,MAAM,CAAC,YAAY,GAAG,CAAC,QAAgB,EAAE,MAAc,EAAQ,EAAE;QACpE,WAAW,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC;YACxC,QAAQ;YACR,MAAM;YACN,GAAG,WAAW,CAAC,qBAAqB;SACvC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF;;OAEG;IACI,MAAM,CAAC,KAAK,GAAG,GAAS,EAAE;QAC7B,WAAW,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;IACxC,CAAC,CAAC;IAEF;;OAEG;IACI,MAAM,CAAC,MAAM,GAAG,GAAS,EAAE;QAC9B,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC,CAAC;IAEF;;OAEG;IACI,MAAM,CAAC,WAAW,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;IAE9F;;OAEG;IACI,MAAM,CAAC,eAAe,GAAG,CAAC,IAAY,EAAsB,EAAE;QACjE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,CAAQ,EAAE,EAAa,EAAE,EAAE;gBAC7E,IAAI,CAAC,CAAC,EAAE,CAAC;oBACL,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,CAAC,CAAC,CAAC;gBACd,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAEF;;OAEG;IACI,MAAM,CAAC,YAAY,GAAG,GAA+B,EAAE;QAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAQ,EAAE,EAAa,EAAE,EAAE;gBACjE,IAAI,CAAC,CAAC,EAAE,CAAC;oBACL,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChB,CAAC;qBAAM,CAAC;oBACJ,MAAM,CAAC,CAAC,CAAC,CAAC;gBACd,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { IIdentity } from './Auth0';
|
|
2
|
+
export interface IHubSession {
|
|
3
|
+
sub: string;
|
|
4
|
+
organization_id: string;
|
|
5
|
+
story_id: string;
|
|
6
|
+
}
|
|
7
|
+
export default class SessionService {
|
|
8
|
+
private static readonly LOGIN_STORY_ID_CACHE;
|
|
9
|
+
private static readonly LOGIN_ORG_ID_CACHE;
|
|
10
|
+
private static readonly SESSION_COOKIE_NAME;
|
|
11
|
+
private static readonly FRESH_COOKIE;
|
|
12
|
+
static getAccessData: (idToken: string, baseUrl?: string, getTotalRenders?: boolean, accountId?: string) => Promise<any[]>;
|
|
13
|
+
static getSession: () => IHubSession;
|
|
14
|
+
static removeSession: () => void;
|
|
15
|
+
static buildFreshSession: (freshIdentity: IIdentity, orgId?: string, storyId?: string) => void;
|
|
16
|
+
static storeSession: (values: any, auth0Expiry: number) => void;
|
|
17
|
+
static cacheOrgId: (organizationId: string) => void;
|
|
18
|
+
static clearCachedOrgId: () => void;
|
|
19
|
+
static getCachedOrgId: () => string;
|
|
20
|
+
static cacheStoryId: (storyId: string) => void;
|
|
21
|
+
static clearCachedStoryId: () => void;
|
|
22
|
+
static getCachedStoryId: () => string;
|
|
23
|
+
static updateSession: (values: any, auth0Expiry: number) => void;
|
|
24
|
+
private static scrapeDomain;
|
|
25
|
+
private static determineAccessUrl;
|
|
26
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import * as Cookies from 'js-cookie';
|
|
2
|
+
import axios from 'axios';
|
|
3
|
+
export default class SessionService {
|
|
4
|
+
static LOGIN_STORY_ID_CACHE = 'imp_hub_last_story_id';
|
|
5
|
+
static LOGIN_ORG_ID_CACHE = 'imp_hub_last_org_id';
|
|
6
|
+
static SESSION_COOKIE_NAME = 'auth_state';
|
|
7
|
+
static FRESH_COOKIE = {
|
|
8
|
+
sub: '',
|
|
9
|
+
organization_id: '',
|
|
10
|
+
story_id: ''
|
|
11
|
+
};
|
|
12
|
+
/*
|
|
13
|
+
Get list of accessible services with themes from Imposium API
|
|
14
|
+
*/
|
|
15
|
+
static getAccessData = (idToken, baseUrl, getTotalRenders = false, accountId) => {
|
|
16
|
+
return new Promise((resolve, reject) => {
|
|
17
|
+
let accessUrl = baseUrl ? `${baseUrl}/access` : SessionService.determineAccessUrl();
|
|
18
|
+
const headers = { Authorization: `Bearer ${idToken}` };
|
|
19
|
+
if (getTotalRenders) {
|
|
20
|
+
accessUrl += '?include_total_renders=true';
|
|
21
|
+
}
|
|
22
|
+
if (accountId && accountId !== 'undefined') {
|
|
23
|
+
headers['X-Imposium-Account-Id'] = accountId;
|
|
24
|
+
}
|
|
25
|
+
axios
|
|
26
|
+
.get(accessUrl, { headers })
|
|
27
|
+
.then((res) => {
|
|
28
|
+
resolve(res.data ? res.data : []);
|
|
29
|
+
})
|
|
30
|
+
.catch((e) => {
|
|
31
|
+
reject(e);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
static getSession = () => Cookies.getJSON(SessionService.SESSION_COOKIE_NAME);
|
|
36
|
+
static removeSession = () => {
|
|
37
|
+
const domain = SessionService.scrapeDomain();
|
|
38
|
+
Cookies.remove(SessionService.SESSION_COOKIE_NAME, { domain });
|
|
39
|
+
SessionService.clearCachedOrgId();
|
|
40
|
+
SessionService.clearCachedStoryId();
|
|
41
|
+
};
|
|
42
|
+
static buildFreshSession = (freshIdentity, orgId = null, storyId = null) => {
|
|
43
|
+
const { idTokenPayload: { sub, exp } } = freshIdentity;
|
|
44
|
+
const freshSession = {
|
|
45
|
+
sub
|
|
46
|
+
};
|
|
47
|
+
if (orgId) {
|
|
48
|
+
freshSession.organization_id = orgId;
|
|
49
|
+
}
|
|
50
|
+
if (storyId) {
|
|
51
|
+
freshSession.story_id = storyId;
|
|
52
|
+
}
|
|
53
|
+
SessionService.storeSession(freshSession, exp);
|
|
54
|
+
};
|
|
55
|
+
static storeSession = (values, auth0Expiry) => {
|
|
56
|
+
const cookieData = { ...SessionService.FRESH_COOKIE, ...values };
|
|
57
|
+
const domain = SessionService.scrapeDomain();
|
|
58
|
+
const expiry = new Date(auth0Expiry * 1000);
|
|
59
|
+
Cookies.set(SessionService.SESSION_COOKIE_NAME, cookieData, { domain, expires: expiry });
|
|
60
|
+
};
|
|
61
|
+
static cacheOrgId = (organizationId) => {
|
|
62
|
+
localStorage.setItem(SessionService.LOGIN_ORG_ID_CACHE, organizationId);
|
|
63
|
+
};
|
|
64
|
+
static clearCachedOrgId = () => {
|
|
65
|
+
localStorage.removeItem(SessionService.LOGIN_ORG_ID_CACHE);
|
|
66
|
+
};
|
|
67
|
+
static getCachedOrgId = () => {
|
|
68
|
+
return localStorage.getItem(SessionService.LOGIN_ORG_ID_CACHE);
|
|
69
|
+
};
|
|
70
|
+
static cacheStoryId = (storyId) => {
|
|
71
|
+
localStorage.setItem(SessionService.LOGIN_STORY_ID_CACHE, storyId);
|
|
72
|
+
};
|
|
73
|
+
static clearCachedStoryId = () => {
|
|
74
|
+
localStorage.removeItem(SessionService.LOGIN_STORY_ID_CACHE);
|
|
75
|
+
};
|
|
76
|
+
static getCachedStoryId = () => {
|
|
77
|
+
return localStorage.getItem(SessionService.LOGIN_STORY_ID_CACHE);
|
|
78
|
+
};
|
|
79
|
+
static updateSession = (values, auth0Expiry) => {
|
|
80
|
+
const prevCookieData = SessionService.getSession();
|
|
81
|
+
const nextCookieData = { ...prevCookieData, ...values };
|
|
82
|
+
SessionService.storeSession(nextCookieData, auth0Expiry);
|
|
83
|
+
};
|
|
84
|
+
/*
|
|
85
|
+
Determine which domain to assign cookie to
|
|
86
|
+
*/
|
|
87
|
+
static scrapeDomain = () => {
|
|
88
|
+
const domainParts = window.location.host.split('.').reverse();
|
|
89
|
+
return domainParts.length > 2 ? `.${domainParts[1]}.${domainParts[0].split(':')[0]}` : null;
|
|
90
|
+
};
|
|
91
|
+
/*
|
|
92
|
+
Figure out which access endpoint to hit based on env
|
|
93
|
+
*/
|
|
94
|
+
static determineAccessUrl = () => {
|
|
95
|
+
const { location: { hostname, host } } = window;
|
|
96
|
+
if (hostname === 'localhost') {
|
|
97
|
+
return 'https://api/access';
|
|
98
|
+
}
|
|
99
|
+
else if (host.includes('.staging.')) {
|
|
100
|
+
return 'https://api.staging.imposium.com/access';
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
return 'https://api.imposium.com/access';
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=Session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Session.js","sourceRoot":"","sources":["../../../src/services/Session.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -729,7 +729,9 @@ class EmailWorkflow extends React.PureComponent<IEmailWorkflowProps, IEmailWorkf
|
|
|
729
729
|
};
|
|
730
730
|
|
|
731
731
|
if (!publishDataset) {
|
|
732
|
-
|
|
732
|
+
if (!batchError) {
|
|
733
|
+
emailOptions.push(downloadSampleCsv);
|
|
734
|
+
}
|
|
733
735
|
emailOptions.push(selectCsv);
|
|
734
736
|
} else {
|
|
735
737
|
emailOptions.push(uploadDataset);
|
|
@@ -793,7 +795,7 @@ class EmailWorkflow extends React.PureComponent<IEmailWorkflowProps, IEmailWorkf
|
|
|
793
795
|
|
|
794
796
|
const downloadCSV = (
|
|
795
797
|
<>
|
|
796
|
-
{
|
|
798
|
+
{downloadCSVDiv}
|
|
797
799
|
{this.renderColumnMap()}
|
|
798
800
|
</>
|
|
799
801
|
);
|
|
@@ -869,6 +871,13 @@ class EmailWorkflow extends React.PureComponent<IEmailWorkflowProps, IEmailWorkf
|
|
|
869
871
|
/>
|
|
870
872
|
);
|
|
871
873
|
})}
|
|
874
|
+
{batchError && (
|
|
875
|
+
<BigButton
|
|
876
|
+
label={downloadCsvLabel}
|
|
877
|
+
disabled={downloading}
|
|
878
|
+
onClick={() => this.downloadCsv()}
|
|
879
|
+
/>
|
|
880
|
+
)}
|
|
872
881
|
</div>
|
|
873
882
|
</div>
|
|
874
883
|
);
|