@frankieone/one-sdk 0.5.2-rc.8 → 0.5.3-alpha
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/commit.txt +1 -1
- package/dist/esm/modules/biometrics/wrappers/OcrLabs/nolint_liveness-v3.1.0.min.umd.js +15944 -21328
- package/dist/esm/modules/biometrics/wrappers/OcrLabs/nolint_liveness-v3.1.0.min.umd.js.map +1 -1
- package/dist/esm/modules/common/types/Session.d.ts +16 -0
- package/dist/esm/modules/common/types/Session.js +2 -0
- package/dist/esm/modules/common/types/Session.js.map +1 -0
- package/dist/esm/modules/frankie-client/DummyFrankieApiClient.d.ts +21 -26
- package/dist/esm/modules/frankie-client/DummyFrankieApiClient.js +39 -39
- package/dist/esm/modules/frankie-client/DummyFrankieApiClient.js.map +1 -1
- package/dist/esm/modules/frankie-client/FrankieApiClient.d.ts +8 -5
- package/dist/esm/modules/frankie-client/FrankieApiClient.js +24 -7
- package/dist/esm/modules/frankie-client/FrankieApiClient.js.map +1 -1
- package/dist/esm/modules/frankie-client/clients/ApplicantClient.js +11 -7
- package/dist/esm/modules/frankie-client/clients/ApplicantClient.js.map +1 -1
- package/dist/esm/modules/frankie-client/clients/BaseClient.d.ts +3 -1
- package/dist/esm/modules/frankie-client/clients/BaseClient.js +3 -4
- package/dist/esm/modules/frankie-client/clients/BaseClient.js.map +1 -1
- package/dist/esm/modules/frankie-client/index.d.ts +1 -5
- package/dist/esm/modules/frankie-client/index.js +4 -3
- package/dist/esm/modules/frankie-client/index.js.map +1 -1
- package/dist/esm/modules/frankie-client/mocks/individual/loadIndividual.d.ts +1 -1
- package/dist/esm/modules/frankie-client/mocks/individual/loadIndividual.js +2 -2
- package/dist/esm/modules/frankie-client/mocks/individual/loadIndividual.js.map +1 -1
- package/dist/esm/modules/individual/actions/search.js +5 -4
- package/dist/esm/modules/individual/actions/search.js.map +1 -1
- package/dist/esm/modules/individual/types/events.d.ts +1 -1
- package/dist/esm/modules/meta.json +1 -1
- package/dist/esm/modules/sdk/index.js +1 -3
- package/dist/esm/modules/sdk/index.js.map +1 -1
- package/dist/esm/modules/sdk/initialisation/configurationParser.js +6 -3
- package/dist/esm/modules/sdk/initialisation/configurationParser.js.map +1 -1
- package/dist/esm/modules/sdk/initialisation/sharedDependencies.d.ts +1 -2
- package/dist/esm/modules/sdk/initialisation/sharedDependencies.js +4 -4
- package/dist/esm/modules/sdk/initialisation/sharedDependencies.js.map +1 -1
- package/dist/esm/modules/sdk/types/configuration.d.ts +15 -4
- package/dist/esm/modules/sdk/types/configuration.js.map +1 -1
- package/dist/release.txt +1 -1
- package/dist/umd/biometrics-ocrlabs.js +1 -1
- package/dist/umd/biometrics-ocrlabs.js.map +1 -1
- package/dist/umd/oneSdk.umd.js +1 -1
- package/dist/umd/oneSdk.umd.js.map +1 -1
- package/package.json +1 -2
- package/dist/esm/modules/common/modules/LocalStorage.d.ts +0 -6
- package/dist/esm/modules/common/modules/LocalStorage.js +0 -21
- package/dist/esm/modules/common/modules/LocalStorage.js.map +0 -1
- package/dist/esm/modules/session/SessionContext.d.ts +0 -51
- package/dist/esm/modules/session/SessionContext.js +0 -83
- package/dist/esm/modules/session/SessionContext.js.map +0 -1
- package/dist/esm/modules/session/constants.d.ts +0 -3
- package/dist/esm/modules/session/constants.js +0 -4
- package/dist/esm/modules/session/constants.js.map +0 -1
- package/dist/esm/modules/session/index.d.ts +0 -6
- package/dist/esm/modules/session/index.js +0 -50
- package/dist/esm/modules/session/index.js.map +0 -1
- package/dist/esm/modules/session/types/module.d.ts +0 -5
- package/dist/esm/modules/session/types/module.js +0 -2
- package/dist/esm/modules/session/types/module.js.map +0 -1
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const hasEntityId: (p: ApplicantId) => p is {
|
|
2
|
+
entityId: string;
|
|
3
|
+
};
|
|
4
|
+
export declare type ApplicantId = {
|
|
5
|
+
entityId: string;
|
|
6
|
+
} | {
|
|
7
|
+
reference: string;
|
|
8
|
+
};
|
|
9
|
+
export declare type SessionTokenPayload = {
|
|
10
|
+
organisation: {
|
|
11
|
+
customerId: string;
|
|
12
|
+
customerChildId?: string;
|
|
13
|
+
};
|
|
14
|
+
sessionId: string;
|
|
15
|
+
environment: string;
|
|
16
|
+
} & ApplicantId;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Session.js","sourceRoot":"","sources":["../../../../../modules/common/types/Session.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAc,EAA6B,EAAE,CACvE,OAAQ,CAA0B,CAAC,QAAQ,KAAK,QAAQ,CAAC"}
|
|
@@ -1,25 +1,39 @@
|
|
|
1
1
|
import { EventHub } from "../common";
|
|
2
2
|
import { AxiosRequestConfig, AxiosResponse } from "axios";
|
|
3
|
-
import { SessionMeta } from "../session/SessionContext";
|
|
4
3
|
import { FrankieApiClient } from "./FrankieApiClient";
|
|
4
|
+
interface RequestResponse {
|
|
5
|
+
[requestUrl: string]: {
|
|
6
|
+
[method in Method | "default"]?: Partial<AxiosResponse> | StubFactory;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
declare type StubFactory = (options: Partial<AxiosRequestConfig> & {
|
|
10
|
+
urlMatch?: RegExpExecArray | string;
|
|
11
|
+
}) => Partial<AxiosResponse & {
|
|
12
|
+
delay: number;
|
|
13
|
+
title?: string;
|
|
14
|
+
}>;
|
|
5
15
|
export declare const URL_PARAM = "([^/]+)";
|
|
6
|
-
export declare const dummySessionMeta: SessionMeta;
|
|
7
16
|
export declare class DummyFrankieApiClient extends FrankieApiClient {
|
|
8
17
|
protected o: {
|
|
9
18
|
globalEventHub: EventHub;
|
|
10
19
|
defaultDelay?: number;
|
|
11
20
|
};
|
|
12
|
-
protected requestPayloadDictionary:
|
|
21
|
+
protected requestPayloadDictionary: RequestResponse;
|
|
13
22
|
protected globalEventHub: EventHub;
|
|
14
23
|
constructor(o: {
|
|
15
24
|
globalEventHub: EventHub;
|
|
16
25
|
defaultDelay?: number;
|
|
17
26
|
});
|
|
18
|
-
|
|
27
|
+
setToken(t: string, o?: {
|
|
28
|
+
checkValidity?: boolean;
|
|
29
|
+
}): Promise<void>;
|
|
30
|
+
stubResponse(options: {
|
|
19
31
|
url: string | RegExp;
|
|
20
|
-
method?:
|
|
21
|
-
}, responsePayload?:
|
|
22
|
-
|
|
32
|
+
method?: Method;
|
|
33
|
+
}, responsePayload?: StubFactory | Partial<AxiosResponse & {
|
|
34
|
+
delay: number;
|
|
35
|
+
title: string;
|
|
36
|
+
}>): void;
|
|
23
37
|
getStubPayload(config: Partial<AxiosRequestConfig>): AxiosResponse & {
|
|
24
38
|
delay?: number;
|
|
25
39
|
};
|
|
@@ -28,26 +42,7 @@ export declare class DummyFrankieApiClient extends FrankieApiClient {
|
|
|
28
42
|
delete<T = unknown>(url: string, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
|
|
29
43
|
post<T = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
|
|
30
44
|
put<T = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
|
|
31
|
-
redirect(url: URL): void;
|
|
32
45
|
private delayResponse;
|
|
33
46
|
}
|
|
34
47
|
declare type Method = "get" | "put" | "post" | "delete";
|
|
35
|
-
declare type URLPattern = string;
|
|
36
|
-
declare type StubResponse = Partial<AxiosResponse & {
|
|
37
|
-
delay: number;
|
|
38
|
-
title?: string;
|
|
39
|
-
}>;
|
|
40
|
-
declare type StubResponseDictionary = Record<URLPattern, Partial<MethodStubDictionary>>;
|
|
41
|
-
declare type MethodStubDictionary = Record<Method | "default", Partial<StubResponse> | StubFactory> & {
|
|
42
|
-
redirect: RedirectStub;
|
|
43
|
-
};
|
|
44
|
-
declare type StubFactoryParameter = Partial<AxiosRequestConfig> & {
|
|
45
|
-
urlMatch?: RegExpExecArray | string;
|
|
46
|
-
};
|
|
47
|
-
declare type StubFactory = (options: StubFactoryParameter) => StubResponse;
|
|
48
|
-
declare type FoundStub<TheMethod extends Method | "redirect"> = {
|
|
49
|
-
stub: StubResponseDictionary[string][TheMethod];
|
|
50
|
-
urlMatch?: RegExpExecArray | string;
|
|
51
|
-
};
|
|
52
|
-
declare type RedirectStub = (url: URL) => URL | null;
|
|
53
48
|
export {};
|
|
@@ -20,21 +20,19 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
20
20
|
};
|
|
21
21
|
import { merge } from "../common";
|
|
22
22
|
import { AxiosError } from "axios";
|
|
23
|
-
import { SessionContext } from "../session/SessionContext";
|
|
24
23
|
import { FrankieApiClient } from "./FrankieApiClient";
|
|
24
|
+
const trimUrl = (url) => url.replace(/\/$/, "").replace(/^\//, "");
|
|
25
25
|
export const URL_PARAM = "([^/]+)";
|
|
26
26
|
const DEFAULT_DELAY = 0;
|
|
27
27
|
const regexKeyMatcher = /^regex:/;
|
|
28
28
|
const regexKeyPrefix = "regex:";
|
|
29
|
-
|
|
30
|
-
customerID: "none",
|
|
31
|
-
customerChildID: "none",
|
|
29
|
+
const defaultSessionData = {
|
|
32
30
|
environment: "https://dummy.com",
|
|
31
|
+
customerID: "none",
|
|
33
32
|
sessionId: "none",
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
token: "none",
|
|
34
|
+
reference: "dummy-session",
|
|
36
35
|
};
|
|
37
|
-
const trimUrl = (url) => url.replace(/\/$/, "").replace(/^\//, "");
|
|
38
36
|
export class DummyFrankieApiClient extends FrankieApiClient {
|
|
39
37
|
constructor(o) {
|
|
40
38
|
var _a;
|
|
@@ -44,7 +42,18 @@ export class DummyFrankieApiClient extends FrankieApiClient {
|
|
|
44
42
|
this.o.defaultDelay = (_a = o.defaultDelay) !== null && _a !== void 0 ? _a : DEFAULT_DELAY;
|
|
45
43
|
this.globalEventHub = o.globalEventHub;
|
|
46
44
|
this.instance.defaults.baseURL = "https://dummy.com";
|
|
47
|
-
this.
|
|
45
|
+
this.sessionMeta = Object.assign({}, defaultSessionData);
|
|
46
|
+
}
|
|
47
|
+
setToken(t, o = {}) {
|
|
48
|
+
const _super = Object.create(null, {
|
|
49
|
+
setToken: { get: () => super.setToken }
|
|
50
|
+
});
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
yield _super.setToken.call(this, t, o);
|
|
53
|
+
// Fill gaps of session object defined by token with values from defaultSessionData and reassign to sessionMeta
|
|
54
|
+
const sessionObject = Object.assign(defaultSessionData, this.session);
|
|
55
|
+
this.session = sessionObject;
|
|
56
|
+
});
|
|
48
57
|
}
|
|
49
58
|
stubResponse(options, responsePayload) {
|
|
50
59
|
var _a, _b;
|
|
@@ -59,8 +68,17 @@ export class DummyFrankieApiClient extends FrankieApiClient {
|
|
|
59
68
|
const method = (_b = options.method) !== null && _b !== void 0 ? _b : "default";
|
|
60
69
|
this.requestPayloadDictionary[trimmedUrl][method] = responsePayload;
|
|
61
70
|
}
|
|
62
|
-
|
|
71
|
+
getStubPayload(config) {
|
|
72
|
+
const { url, method } = config;
|
|
63
73
|
const trimmedUrl = trimUrl(url);
|
|
74
|
+
const defaultResponse = {
|
|
75
|
+
data: {},
|
|
76
|
+
status: 200,
|
|
77
|
+
statusText: "OK",
|
|
78
|
+
headers: {},
|
|
79
|
+
config,
|
|
80
|
+
isMockResponse: true,
|
|
81
|
+
};
|
|
64
82
|
const dictionary = this.requestPayloadDictionary;
|
|
65
83
|
const findAsRegex = () => {
|
|
66
84
|
const matchedKey = Object.keys(dictionary)
|
|
@@ -76,54 +94,42 @@ export class DummyFrankieApiClient extends FrankieApiClient {
|
|
|
76
94
|
const regex = new RegExp(`^${matchedKey}$`);
|
|
77
95
|
const urlMatch = regex.exec(trimmedUrl);
|
|
78
96
|
return {
|
|
79
|
-
|
|
97
|
+
data: dictionary[`${regexKeyPrefix}${matchedKey}`],
|
|
80
98
|
urlMatch,
|
|
81
99
|
};
|
|
82
100
|
};
|
|
83
101
|
const findAsKey = () => {
|
|
84
102
|
if (!dictionary[trimmedUrl])
|
|
85
103
|
return false;
|
|
86
|
-
return {
|
|
104
|
+
return { data: dictionary[trimmedUrl], urlMatch: trimmedUrl };
|
|
87
105
|
};
|
|
88
106
|
const findStoredStub = () => {
|
|
107
|
+
const emptyStub = { stub: {} };
|
|
89
108
|
const payloadsForUrl = findAsKey() || findAsRegex();
|
|
90
109
|
if (!payloadsForUrl)
|
|
91
|
-
return
|
|
92
|
-
const {
|
|
93
|
-
const payloadForMethod =
|
|
94
|
-
const defaultPayload =
|
|
95
|
-
// If url wasn't even found
|
|
110
|
+
return emptyStub;
|
|
111
|
+
const { data, urlMatch } = payloadsForUrl;
|
|
112
|
+
const payloadForMethod = data === null || data === void 0 ? void 0 : data[method];
|
|
113
|
+
const defaultPayload = data === null || data === void 0 ? void 0 : data.default;
|
|
114
|
+
// If url wasn't even found, use empty stub
|
|
96
115
|
if (!payloadsForUrl)
|
|
97
|
-
return
|
|
98
|
-
// If method wasn't found and there isnt a default
|
|
116
|
+
return emptyStub;
|
|
117
|
+
// If method wasn't found and there isnt a default, return empty stub
|
|
99
118
|
if (!payloadForMethod && !defaultPayload)
|
|
100
|
-
return
|
|
119
|
+
return emptyStub;
|
|
101
120
|
// If method wasn't found, but default stub was, return default
|
|
102
121
|
if (!payloadForMethod && defaultPayload)
|
|
103
122
|
return { stub: defaultPayload };
|
|
104
123
|
// Otherwise stub for specific method was found, return it
|
|
105
124
|
return { stub: payloadForMethod, urlMatch };
|
|
106
125
|
};
|
|
107
|
-
return findStoredStub();
|
|
108
|
-
}
|
|
109
|
-
getStubPayload(config) {
|
|
110
|
-
var _a;
|
|
111
|
-
const { url, method } = config;
|
|
112
|
-
const defaultResponse = {
|
|
113
|
-
data: {},
|
|
114
|
-
status: 200,
|
|
115
|
-
statusText: "OK",
|
|
116
|
-
headers: {},
|
|
117
|
-
config,
|
|
118
|
-
isMockResponse: true,
|
|
119
|
-
};
|
|
120
126
|
const mergeWithDefaults = (foundStub) => {
|
|
121
127
|
const { stub, urlMatch } = foundStub;
|
|
122
128
|
// provide configuration and matched url (either regex match results or trimmed url string)
|
|
123
129
|
const response = typeof stub === "function" ? stub(Object.assign(Object.assign({}, config), { urlMatch })) : stub;
|
|
124
130
|
return merge({}, defaultResponse, response);
|
|
125
131
|
};
|
|
126
|
-
const storedStub = (
|
|
132
|
+
const storedStub = findStoredStub();
|
|
127
133
|
const mergedResponse = mergeWithDefaults(storedStub);
|
|
128
134
|
return mergedResponse;
|
|
129
135
|
}
|
|
@@ -157,12 +163,6 @@ export class DummyFrankieApiClient extends FrankieApiClient {
|
|
|
157
163
|
return this.preventUncaughtErrors(url, config, "put", data);
|
|
158
164
|
});
|
|
159
165
|
}
|
|
160
|
-
redirect(url) {
|
|
161
|
-
const { stub } = this.findStub(url.hostname, "redirect");
|
|
162
|
-
const resultingURL = stub(url);
|
|
163
|
-
if (resultingURL)
|
|
164
|
-
window.location.href = resultingURL.href;
|
|
165
|
-
}
|
|
166
166
|
delayResponse(payload, delay) {
|
|
167
167
|
return __awaiter(this, void 0, void 0, function* () {
|
|
168
168
|
let groupTitle = "Executing mock request to";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DummyFrankieApiClient.js","sourceRoot":"","sources":["../../../../modules/frankie-client/DummyFrankieApiClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAY,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAqC,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"DummyFrankieApiClient.js","sourceRoot":"","sources":["../../../../modules/frankie-client/DummyFrankieApiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ENVIRONMENTS } from "../common";
|
|
2
|
-
import { ApplicantId
|
|
2
|
+
import { ApplicantId } from "../common/types/Session";
|
|
3
|
+
import { SessionMeta } from "../sdk/types";
|
|
3
4
|
import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from "axios";
|
|
4
5
|
import { ClientsConstructorDictionary, InstanceOf, LoadClientParametersFor } from "./ClientsDictionary";
|
|
5
6
|
export declare type IFrankieClientCredentials = {
|
|
@@ -9,7 +10,7 @@ export declare type IFrankieClientCredentials = {
|
|
|
9
10
|
};
|
|
10
11
|
export declare class FrankieApiClient {
|
|
11
12
|
protected instance: AxiosInstance;
|
|
12
|
-
protected
|
|
13
|
+
protected sessionMeta: SessionMeta;
|
|
13
14
|
constructor();
|
|
14
15
|
get interceptors(): AxiosInstance["interceptors"];
|
|
15
16
|
set entityId(value: string);
|
|
@@ -17,9 +18,11 @@ export declare class FrankieApiClient {
|
|
|
17
18
|
environment: ENVIRONMENTS;
|
|
18
19
|
}): Promise<string>;
|
|
19
20
|
get token(): string;
|
|
20
|
-
get session():
|
|
21
|
-
set session(session:
|
|
22
|
-
|
|
21
|
+
get session(): SessionMeta;
|
|
22
|
+
set session(session: SessionMeta);
|
|
23
|
+
setToken(token: string, options?: {
|
|
24
|
+
checkValidity?: boolean;
|
|
25
|
+
}): Promise<void>;
|
|
23
26
|
get<T = unknown>(url: string, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
|
|
24
27
|
delete<T = unknown>(url: string, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
|
|
25
28
|
post<T = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
|
|
@@ -9,14 +9,16 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { env2url } from "../common";
|
|
11
11
|
import { stringToBase64 } from "../common/modules/base64";
|
|
12
|
+
import { hasEntityId } from "../common/types/Session";
|
|
12
13
|
import Axios from "axios";
|
|
14
|
+
import jwtDecode from "jwt-decode";
|
|
13
15
|
export class FrankieApiClient {
|
|
14
16
|
constructor() {
|
|
15
17
|
this.instance = Axios.create();
|
|
16
18
|
this.interceptors.response.use((response) => {
|
|
17
19
|
const token = response.headers.token;
|
|
18
|
-
if (token
|
|
19
|
-
this.
|
|
20
|
+
if (token)
|
|
21
|
+
this.setToken(token);
|
|
20
22
|
return response;
|
|
21
23
|
});
|
|
22
24
|
}
|
|
@@ -24,7 +26,7 @@ export class FrankieApiClient {
|
|
|
24
26
|
return this.instance.interceptors;
|
|
25
27
|
}
|
|
26
28
|
set entityId(value) {
|
|
27
|
-
this.
|
|
29
|
+
this.sessionMeta.entityId = value;
|
|
28
30
|
}
|
|
29
31
|
login(credentials, applicantId, options) {
|
|
30
32
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -48,16 +50,23 @@ export class FrankieApiClient {
|
|
|
48
50
|
return this.session.token;
|
|
49
51
|
}
|
|
50
52
|
get session() {
|
|
51
|
-
return this.
|
|
53
|
+
return this.sessionMeta;
|
|
52
54
|
}
|
|
53
55
|
set session(session) {
|
|
54
56
|
this.instance.defaults.baseURL = session.environment;
|
|
55
57
|
this.instance.defaults.headers.common.authorization = session.token;
|
|
56
58
|
this.instance.defaults.headers.common["X-Frankie-Channel"] = "onesdk";
|
|
57
|
-
this.
|
|
59
|
+
this.sessionMeta = session;
|
|
58
60
|
}
|
|
59
|
-
|
|
60
|
-
return this
|
|
61
|
+
setToken(token, options = {}) {
|
|
62
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
+
const { checkValidity = false } = options;
|
|
64
|
+
const session = deconstructToken(token);
|
|
65
|
+
this.session = session;
|
|
66
|
+
if (checkValidity) {
|
|
67
|
+
yield this.get("data/v2/token-validity");
|
|
68
|
+
}
|
|
69
|
+
});
|
|
61
70
|
}
|
|
62
71
|
get(url, config) {
|
|
63
72
|
return this.instance.get(url, config);
|
|
@@ -85,6 +94,14 @@ export class FrankieApiClient {
|
|
|
85
94
|
});
|
|
86
95
|
}
|
|
87
96
|
}
|
|
97
|
+
const deconstructToken = (token) => {
|
|
98
|
+
var _a, _b;
|
|
99
|
+
// deconstructs JWT to get entityId or reference and environment (url)
|
|
100
|
+
// returns all that information, including token into SessionMeta
|
|
101
|
+
const { data: payload } = jwtDecode(token);
|
|
102
|
+
const identifier = hasEntityId(payload) ? { entityId: payload.entityId } : { reference: payload.reference };
|
|
103
|
+
return Object.assign({ token, customerID: (_a = payload.organisation) === null || _a === void 0 ? void 0 : _a.customerId, customerChildID: (_b = payload.organisation) === null || _b === void 0 ? void 0 : _b.customerChildId, environment: payload.environment, sessionId: payload.sessionId }, identifier);
|
|
104
|
+
};
|
|
88
105
|
function serialiseCredentials(credentials) {
|
|
89
106
|
const elements = [credentials.customerID, credentials.customerChildID, credentials.apiKey];
|
|
90
107
|
return stringToBase64(elements.filter(Boolean).join(":"));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrankieApiClient.js","sourceRoot":"","sources":["../../../../modules/frankie-client/FrankieApiClient.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAgB,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"FrankieApiClient.js","sourceRoot":"","sources":["../../../../modules/frankie-client/FrankieApiClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
import { Applicant } from "../../common/shared/models/Applicant";
|
|
11
11
|
import { CheckSummary } from "../../common/shared/models/CheckSummary";
|
|
12
12
|
import { Document } from "../../common/shared/models/Document";
|
|
13
|
+
import { hasEntityId } from "../../common/types/Session";
|
|
13
14
|
import { BaseClient } from "./BaseClient";
|
|
14
15
|
/**
|
|
15
16
|
* Applicant client handles BFF Applicant and Document Operations
|
|
@@ -22,7 +23,7 @@ export class ApplicantClient extends BaseClient {
|
|
|
22
23
|
* A search made using entityId HAS to be successful, since the entity id already exists. If not found, throw exception
|
|
23
24
|
* A search made using reference doesn't need to return results, as it might be a
|
|
24
25
|
*/
|
|
25
|
-
const { reference, entityId } = this;
|
|
26
|
+
const { reference, entityId } = this.entityIdentifier;
|
|
26
27
|
const data = yield this.frankie
|
|
27
28
|
.get("/data/v2/applicant/", {
|
|
28
29
|
params: {
|
|
@@ -58,10 +59,11 @@ export class ApplicantClient extends BaseClient {
|
|
|
58
59
|
updateApplicant(payload) {
|
|
59
60
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
61
|
const { applicant, documents } = payload;
|
|
61
|
-
if (!this.
|
|
62
|
+
if (!hasEntityId(this.entityIdentifier))
|
|
62
63
|
throw new Error("Entity id not found in local state. Has entity been created yet?");
|
|
64
|
+
const { entityId } = this.entityIdentifier;
|
|
63
65
|
return this.frankie
|
|
64
|
-
.put(`/data/v2/applicants/${
|
|
66
|
+
.put(`/data/v2/applicants/${entityId}`, {
|
|
65
67
|
applicant,
|
|
66
68
|
documents,
|
|
67
69
|
kycMethod: "electronic",
|
|
@@ -71,9 +73,10 @@ export class ApplicantClient extends BaseClient {
|
|
|
71
73
|
}
|
|
72
74
|
getLatestCheckResults() {
|
|
73
75
|
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
-
if (!this.
|
|
76
|
+
if (!hasEntityId(this.entityIdentifier))
|
|
75
77
|
throw new Error("Entity id not found in local state. Has entity been created yet?");
|
|
76
|
-
|
|
78
|
+
const { entityId } = this.entityIdentifier;
|
|
79
|
+
return yield this.frankie.get(`/data/v2/applicants/${entityId}`).then((r) => {
|
|
77
80
|
const { checkSummary } = r.data;
|
|
78
81
|
return CheckSummary.fromJSON(checkSummary);
|
|
79
82
|
});
|
|
@@ -81,9 +84,10 @@ export class ApplicantClient extends BaseClient {
|
|
|
81
84
|
}
|
|
82
85
|
triggerChecks() {
|
|
83
86
|
return __awaiter(this, void 0, void 0, function* () {
|
|
84
|
-
if (!this.
|
|
87
|
+
if (!hasEntityId(this.entityIdentifier))
|
|
85
88
|
throw new Error("Entity id not found in local state. Has entity been created yet?");
|
|
86
|
-
|
|
89
|
+
const { entityId } = this.entityIdentifier;
|
|
90
|
+
yield this.frankie.post(`/data/v1/applicants/${entityId}/checks`);
|
|
87
91
|
return this.getLatestCheckResults();
|
|
88
92
|
});
|
|
89
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplicantClient.js","sourceRoot":"","sources":["../../../../../modules/frankie-client/clients/ApplicantClient.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,SAAS,EAAqB,MAAM,wCAAwC,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAoB,MAAM,uCAAuC,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,UAAU;IACvC,IAAI;;YACR;;;eAGG;YACH,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ApplicantClient.js","sourceRoot":"","sources":["../../../../../modules/frankie-client/clients/ApplicantClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { ApplicantId } from "../../common/types/Session";
|
|
2
|
+
import { ReadonlyDeep } from "type-fest";
|
|
1
3
|
import { FrankieApiClient } from "../FrankieApiClient";
|
|
2
4
|
export declare class BaseClient {
|
|
3
5
|
protected frankie: FrankieApiClient;
|
|
4
6
|
constructor(frankie: FrankieApiClient);
|
|
5
|
-
get
|
|
7
|
+
get entityIdentifier(): ReadonlyDeep<ApplicantId>;
|
|
6
8
|
get entityId(): string | null;
|
|
7
9
|
set entityId(v: string | null);
|
|
8
10
|
}
|
|
@@ -2,13 +2,12 @@ export class BaseClient {
|
|
|
2
2
|
constructor(frankie) {
|
|
3
3
|
this.frankie = frankie;
|
|
4
4
|
}
|
|
5
|
-
get
|
|
6
|
-
|
|
7
|
-
return (_a = this.frankie.session.reference) !== null && _a !== void 0 ? _a : null;
|
|
5
|
+
get entityIdentifier() {
|
|
6
|
+
return Object.freeze(Object.assign({}, this.frankie.session));
|
|
8
7
|
}
|
|
9
8
|
get entityId() {
|
|
10
9
|
var _a;
|
|
11
|
-
return (_a = this.
|
|
10
|
+
return (_a = this.entityIdentifier.entityId) !== null && _a !== void 0 ? _a : null;
|
|
12
11
|
}
|
|
13
12
|
set entityId(v) {
|
|
14
13
|
this.frankie.entityId = v;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseClient.js","sourceRoot":"","sources":["../../../../../modules/frankie-client/clients/BaseClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseClient.js","sourceRoot":"","sources":["../../../../../modules/frankie-client/clients/BaseClient.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,UAAU;IACrB,YAAsB,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAEnD,IAAI,gBAAgB;QAClB,OAAO,MAAM,CAAC,MAAM,mBAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAG,CAAC;IACpD,CAAC;IACD,IAAI,QAAQ;;QACV,OAAO,MAAC,IAAI,CAAC,gBAAiC,CAAC,QAAQ,mCAAI,IAAI,CAAC;IAClE,CAAC;IACD,IAAI,QAAQ,CAAC,CAAgB;QAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
1
|
import { EventHub } from "../common";
|
|
2
2
|
import { GlobalEvents, OneSdkRootParameters } from "../sdk/types";
|
|
3
|
-
import { SessionContext } from "../session/SessionContext";
|
|
4
3
|
import { DummyFrankieApiClient } from "./DummyFrankieApiClient";
|
|
5
4
|
import { FrankieApiClient } from "./FrankieApiClient";
|
|
6
|
-
declare type
|
|
7
|
-
declare type Options = {
|
|
5
|
+
declare type Options = Pick<OneSdkRootParameters, "mode" | "session"> & {
|
|
8
6
|
globalEventHub: EventHub<GlobalEvents>;
|
|
9
|
-
mode: Mode;
|
|
10
|
-
session: SessionContext;
|
|
11
7
|
};
|
|
12
8
|
export declare function mkFrankieClient(options: Options): Promise<FrankieApiClient>;
|
|
13
9
|
export { FrankieApiClient, DummyFrankieApiClient };
|
|
@@ -24,11 +24,13 @@ const defaultMockOptions = {
|
|
|
24
24
|
};
|
|
25
25
|
const isDummy = (mode) => (typeof mode === "string" ? mode : mode.modeName);
|
|
26
26
|
export function mkFrankieClient(options) {
|
|
27
|
+
var _a;
|
|
27
28
|
return __awaiter(this, void 0, void 0, function* () {
|
|
28
29
|
if (isDummy(options.mode) === SdkModes.DUMMY) {
|
|
29
30
|
// initialise dummy client with optional token
|
|
30
31
|
const dummyClient = new DummyFrankieApiClient(Object.assign(Object.assign({}, options), { defaultDelay: 200 }));
|
|
31
|
-
|
|
32
|
+
if ((_a = options.session) === null || _a === void 0 ? void 0 : _a.token)
|
|
33
|
+
dummyClient.setToken(options.session.token);
|
|
32
34
|
// resolve mock options either from mode: { options } or if mode: "dummy", then use default mock options
|
|
33
35
|
const simplifiedMockOptions = typeof options.mode === "string" ? defaultMockOptions : options.mode.mocks;
|
|
34
36
|
const mockOptions = resolveSimplifiedMockOptions(simplifiedMockOptions);
|
|
@@ -41,8 +43,7 @@ export function mkFrankieClient(options) {
|
|
|
41
43
|
}
|
|
42
44
|
// if not in dummy mode, simply initialise the regular api client with the provided token
|
|
43
45
|
const client = new FrankieApiClient();
|
|
44
|
-
client.session
|
|
45
|
-
yield client.validateSession();
|
|
46
|
+
yield client.setToken(options.session.token, { checkValidity: true });
|
|
46
47
|
return client;
|
|
47
48
|
});
|
|
48
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/frankie-client/index.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAsC,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../modules/frankie-client/index.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAsC,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAe,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAyB,MAAM,oBAAoB,CAAC;AAEzF,MAAM,kBAAkB,GAA0B;IAChD,mBAAmB,EAAE;QACnB,SAAS,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;KAChD;IACD,OAAO,EAAE;QACP,YAAY,EAAE,iBAAiB;QAC/B,aAAa,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,QAAQ,CAAC;KAChF;CACF,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,IAAU,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAGlF,MAAM,UAAgB,eAAe,CAAC,OAAgB;;;QACpD,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,KAAK,EAAE;YAC5C,8CAA8C;YAC9C,MAAM,WAAW,GAAG,IAAI,qBAAqB,iCAAM,OAAO,KAAE,YAAY,EAAE,GAAG,IAAG,CAAC;YACjF,IAAI,MAAA,OAAO,CAAC,OAAO,0CAAE,KAAK;gBAAE,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxE,wGAAwG;YACxG,MAAM,qBAAqB,GACzB,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAC7E,MAAM,WAAW,GAAgB,4BAA4B,CAAC,qBAAqB,CAAC,CAAC;YACrF,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE;gBACrC,WAAW;gBACX,uBAAuB,EAAE,WAAW;aACrC,CAAC,CAAC;YACH,qCAAqC;YACrC,OAAO,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;SAC3C;QACD,yFAAyF;QACzF,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACtC,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,OAAO,MAAM,CAAC;;CACf;AACD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,CAAC"}
|
|
@@ -10,7 +10,7 @@ export declare type Options = {
|
|
|
10
10
|
declare type MockOptions = MockOptionsPartial & {
|
|
11
11
|
preloadedIndividual: Options;
|
|
12
12
|
};
|
|
13
|
-
export declare function
|
|
13
|
+
export declare function resolveIndividualDdata(options: Options): {
|
|
14
14
|
individual: Applicant & {
|
|
15
15
|
name: {
|
|
16
16
|
givenName: string;
|
|
@@ -4,7 +4,7 @@ import { Document } from "../../../common/shared/models/Document";
|
|
|
4
4
|
import merge from "lodash.merge";
|
|
5
5
|
import { v4 as uuid } from "uuid";
|
|
6
6
|
import { URL_PARAM } from "../../DummyFrankieApiClient";
|
|
7
|
-
export function
|
|
7
|
+
export function resolveIndividualDdata(options) {
|
|
8
8
|
var _a, _b;
|
|
9
9
|
return {
|
|
10
10
|
individual: merge(new Applicant(), {
|
|
@@ -22,7 +22,7 @@ export function resolveIndividualData(options) {
|
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
export function loadExistingApplicant(client, options) {
|
|
25
|
-
const { individual, documents } =
|
|
25
|
+
const { individual, documents } = resolveIndividualDdata(options.preloadedIndividual);
|
|
26
26
|
client.stubResponse({ url: "/data/v2/applicant", method: "get" }, (config) => {
|
|
27
27
|
if (config.params.entityId)
|
|
28
28
|
individual.entityId = config.params.entityId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadIndividual.js","sourceRoot":"","sources":["../../../../../../modules/frankie-client/mocks/individual/loadIndividual.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,uCAAuC,CAAC;AAEjE,OAAO,KAAK,MAAM,cAAc,CAAC;AACjC,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAGlC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAOxD,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"loadIndividual.js","sourceRoot":"","sources":["../../../../../../modules/frankie-client/mocks/individual/loadIndividual.ts"],"names":[],"mappings":"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"}
|