@frankieone/one-sdk 0.5.1-rc → 0.5.2-rc.8
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/README.md +481 -1
- package/dist/commit.txt +1 -1
- package/dist/esm/modules/biometrics/wrappers/OcrLabs/index.d.ts +1 -1
- package/dist/esm/modules/biometrics/wrappers/OcrLabs/index.js +1 -1
- package/dist/esm/modules/biometrics/wrappers/OcrLabs/index.js.map +1 -1
- package/dist/esm/modules/biometrics/wrappers/OcrLabs/nolint_liveness-v3.1.0.min.umd.js +28345 -0
- package/dist/esm/modules/biometrics/wrappers/OcrLabs/nolint_liveness-v3.1.0.min.umd.js.map +1 -0
- package/dist/esm/modules/common/modules/LocalStorage.d.ts +6 -0
- package/dist/esm/modules/common/modules/LocalStorage.js +21 -0
- package/dist/esm/modules/common/modules/LocalStorage.js.map +1 -0
- package/dist/esm/modules/frankie-client/DummyFrankieApiClient.d.ts +26 -21
- 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 +5 -8
- package/dist/esm/modules/frankie-client/FrankieApiClient.js +7 -24
- package/dist/esm/modules/frankie-client/FrankieApiClient.js.map +1 -1
- package/dist/esm/modules/frankie-client/clients/ApplicantClient.js +7 -11
- package/dist/esm/modules/frankie-client/clients/ApplicantClient.js.map +1 -1
- package/dist/esm/modules/frankie-client/clients/BaseClient.d.ts +1 -3
- package/dist/esm/modules/frankie-client/clients/BaseClient.js +4 -3
- package/dist/esm/modules/frankie-client/clients/BaseClient.js.map +1 -1
- package/dist/esm/modules/frankie-client/index.d.ts +5 -1
- package/dist/esm/modules/frankie-client/index.js +3 -4
- 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 +4 -5
- 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 +3 -1
- package/dist/esm/modules/sdk/index.js.map +1 -1
- package/dist/esm/modules/sdk/initialisation/configurationParser.js +3 -6
- package/dist/esm/modules/sdk/initialisation/configurationParser.js.map +1 -1
- package/dist/esm/modules/sdk/initialisation/sharedDependencies.d.ts +2 -1
- 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 +4 -15
- package/dist/esm/modules/sdk/types/configuration.js.map +1 -1
- package/dist/esm/modules/session/SessionContext.d.ts +51 -0
- package/dist/esm/modules/session/SessionContext.js +83 -0
- package/dist/esm/modules/session/SessionContext.js.map +1 -0
- package/dist/esm/modules/session/constants.d.ts +3 -0
- package/dist/esm/modules/session/constants.js +4 -0
- package/dist/esm/modules/session/constants.js.map +1 -0
- package/dist/esm/modules/session/index.d.ts +6 -0
- package/dist/esm/modules/session/index.js +50 -0
- package/dist/esm/modules/session/index.js.map +1 -0
- package/dist/esm/modules/session/types/module.d.ts +5 -0
- package/dist/esm/modules/session/types/module.js +2 -0
- package/dist/esm/modules/session/types/module.js.map +1 -0
- package/dist/umd/biometrics-ocrlabs.js +1 -2
- 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 +144 -143
- package/dist/esm/modules/biometrics/wrappers/OcrLabs/nolint_liveness-v3.min.umd.d.ts +0 -0
- package/dist/esm/modules/biometrics/wrappers/OcrLabs/nolint_liveness-v3.min.umd.js +0 -13071
- package/dist/esm/modules/biometrics/wrappers/OcrLabs/nolint_liveness-v3.min.umd.js.map +0 -1
- package/dist/esm/modules/common/types/Session.d.ts +0 -16
- package/dist/esm/modules/common/types/Session.js +0 -2
- package/dist/esm/modules/common/types/Session.js.map +0 -1
- package/dist/esm/modules/device/vendors/Threatmetrix/nolint_fp-clientlib-v4.d.ts +0 -11
- package/dist/umd/biometrics-ocrlabs.js.LICENSE.txt +0 -8
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export class LocalStorage {
|
|
2
|
+
store(key, value) {
|
|
3
|
+
window.localStorage.setItem(key, JSON.stringify(value));
|
|
4
|
+
}
|
|
5
|
+
retrieve(key) {
|
|
6
|
+
// May fail parsing and throw exception
|
|
7
|
+
const value = window.localStorage.getItem(key);
|
|
8
|
+
if (!value)
|
|
9
|
+
return null;
|
|
10
|
+
return JSON.parse(value);
|
|
11
|
+
}
|
|
12
|
+
delete(key) {
|
|
13
|
+
window.localStorage.removeItem(key);
|
|
14
|
+
}
|
|
15
|
+
retrieveAndDelete(key) {
|
|
16
|
+
const value = this.retrieve(key);
|
|
17
|
+
this.delete(key);
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=LocalStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalStorage.js","sourceRoot":"","sources":["../../../../../modules/common/modules/LocalStorage.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAY;IACvB,KAAK,CAAC,GAAW,EAAE,KAAc;QAC/B,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,QAAQ,CAAO,GAAW;QACxB,uCAAuC;QACvC,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,GAAW;QAChB,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED,iBAAiB,CAAO,GAAW;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAO,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -1,39 +1,25 @@
|
|
|
1
1
|
import { EventHub } from "../common";
|
|
2
2
|
import { AxiosRequestConfig, AxiosResponse } from "axios";
|
|
3
|
+
import { SessionMeta } from "../session/SessionContext";
|
|
3
4
|
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
|
-
}>;
|
|
15
5
|
export declare const URL_PARAM = "([^/]+)";
|
|
6
|
+
export declare const dummySessionMeta: SessionMeta;
|
|
16
7
|
export declare class DummyFrankieApiClient extends FrankieApiClient {
|
|
17
8
|
protected o: {
|
|
18
9
|
globalEventHub: EventHub;
|
|
19
10
|
defaultDelay?: number;
|
|
20
11
|
};
|
|
21
|
-
protected requestPayloadDictionary:
|
|
12
|
+
protected requestPayloadDictionary: StubResponseDictionary;
|
|
22
13
|
protected globalEventHub: EventHub;
|
|
23
14
|
constructor(o: {
|
|
24
15
|
globalEventHub: EventHub;
|
|
25
16
|
defaultDelay?: number;
|
|
26
17
|
});
|
|
27
|
-
|
|
28
|
-
checkValidity?: boolean;
|
|
29
|
-
}): Promise<void>;
|
|
30
|
-
stubResponse(options: {
|
|
18
|
+
stubResponse<TheMethod extends Method | "redirect" | "default">(options: {
|
|
31
19
|
url: string | RegExp;
|
|
32
|
-
method?:
|
|
33
|
-
}, responsePayload?:
|
|
34
|
-
|
|
35
|
-
title: string;
|
|
36
|
-
}>): void;
|
|
20
|
+
method?: TheMethod;
|
|
21
|
+
}, responsePayload?: StubResponseDictionary[string][TheMethod]): void;
|
|
22
|
+
findStub<URLPattern extends string, TheMethod extends Method | "redirect">(url: URLPattern, method: TheMethod): FoundStub<TheMethod> | null;
|
|
37
23
|
getStubPayload(config: Partial<AxiosRequestConfig>): AxiosResponse & {
|
|
38
24
|
delay?: number;
|
|
39
25
|
};
|
|
@@ -42,7 +28,26 @@ export declare class DummyFrankieApiClient extends FrankieApiClient {
|
|
|
42
28
|
delete<T = unknown>(url: string, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
|
|
43
29
|
post<T = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
|
|
44
30
|
put<T = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
|
|
31
|
+
redirect(url: URL): void;
|
|
45
32
|
private delayResponse;
|
|
46
33
|
}
|
|
47
34
|
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;
|
|
48
53
|
export {};
|
|
@@ -20,19 +20,21 @@ 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";
|
|
23
24
|
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
|
-
const
|
|
30
|
-
environment: "https://dummy.com",
|
|
29
|
+
export const dummySessionMeta = {
|
|
31
30
|
customerID: "none",
|
|
31
|
+
customerChildID: "none",
|
|
32
|
+
environment: "https://dummy.com",
|
|
32
33
|
sessionId: "none",
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
reference: "dummy-reference",
|
|
35
|
+
entityId: null,
|
|
35
36
|
};
|
|
37
|
+
const trimUrl = (url) => url.replace(/\/$/, "").replace(/^\//, "");
|
|
36
38
|
export class DummyFrankieApiClient extends FrankieApiClient {
|
|
37
39
|
constructor(o) {
|
|
38
40
|
var _a;
|
|
@@ -42,18 +44,7 @@ export class DummyFrankieApiClient extends FrankieApiClient {
|
|
|
42
44
|
this.o.defaultDelay = (_a = o.defaultDelay) !== null && _a !== void 0 ? _a : DEFAULT_DELAY;
|
|
43
45
|
this.globalEventHub = o.globalEventHub;
|
|
44
46
|
this.instance.defaults.baseURL = "https://dummy.com";
|
|
45
|
-
this.
|
|
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
|
-
});
|
|
47
|
+
this.session = new SessionContext(dummySessionMeta);
|
|
57
48
|
}
|
|
58
49
|
stubResponse(options, responsePayload) {
|
|
59
50
|
var _a, _b;
|
|
@@ -68,17 +59,8 @@ export class DummyFrankieApiClient extends FrankieApiClient {
|
|
|
68
59
|
const method = (_b = options.method) !== null && _b !== void 0 ? _b : "default";
|
|
69
60
|
this.requestPayloadDictionary[trimmedUrl][method] = responsePayload;
|
|
70
61
|
}
|
|
71
|
-
|
|
72
|
-
const { url, method } = config;
|
|
62
|
+
findStub(url, method) {
|
|
73
63
|
const trimmedUrl = trimUrl(url);
|
|
74
|
-
const defaultResponse = {
|
|
75
|
-
data: {},
|
|
76
|
-
status: 200,
|
|
77
|
-
statusText: "OK",
|
|
78
|
-
headers: {},
|
|
79
|
-
config,
|
|
80
|
-
isMockResponse: true,
|
|
81
|
-
};
|
|
82
64
|
const dictionary = this.requestPayloadDictionary;
|
|
83
65
|
const findAsRegex = () => {
|
|
84
66
|
const matchedKey = Object.keys(dictionary)
|
|
@@ -94,42 +76,54 @@ export class DummyFrankieApiClient extends FrankieApiClient {
|
|
|
94
76
|
const regex = new RegExp(`^${matchedKey}$`);
|
|
95
77
|
const urlMatch = regex.exec(trimmedUrl);
|
|
96
78
|
return {
|
|
97
|
-
|
|
79
|
+
methods: dictionary[`${regexKeyPrefix}${matchedKey}`],
|
|
98
80
|
urlMatch,
|
|
99
81
|
};
|
|
100
82
|
};
|
|
101
83
|
const findAsKey = () => {
|
|
102
84
|
if (!dictionary[trimmedUrl])
|
|
103
85
|
return false;
|
|
104
|
-
return {
|
|
86
|
+
return { methods: dictionary[trimmedUrl], urlMatch: trimmedUrl };
|
|
105
87
|
};
|
|
106
88
|
const findStoredStub = () => {
|
|
107
|
-
const emptyStub = { stub: {} };
|
|
108
89
|
const payloadsForUrl = findAsKey() || findAsRegex();
|
|
109
90
|
if (!payloadsForUrl)
|
|
110
|
-
return
|
|
111
|
-
const {
|
|
112
|
-
const payloadForMethod =
|
|
113
|
-
const defaultPayload =
|
|
114
|
-
// If url wasn't even found
|
|
91
|
+
return null;
|
|
92
|
+
const { methods, urlMatch } = payloadsForUrl;
|
|
93
|
+
const payloadForMethod = methods === null || methods === void 0 ? void 0 : methods[method];
|
|
94
|
+
const defaultPayload = methods === null || methods === void 0 ? void 0 : methods.default;
|
|
95
|
+
// If url wasn't even found
|
|
115
96
|
if (!payloadsForUrl)
|
|
116
|
-
return
|
|
117
|
-
// If method wasn't found and there isnt a default
|
|
97
|
+
return null;
|
|
98
|
+
// If method wasn't found and there isnt a default
|
|
118
99
|
if (!payloadForMethod && !defaultPayload)
|
|
119
|
-
return
|
|
100
|
+
return null;
|
|
120
101
|
// If method wasn't found, but default stub was, return default
|
|
121
102
|
if (!payloadForMethod && defaultPayload)
|
|
122
103
|
return { stub: defaultPayload };
|
|
123
104
|
// Otherwise stub for specific method was found, return it
|
|
124
105
|
return { stub: payloadForMethod, urlMatch };
|
|
125
106
|
};
|
|
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
|
+
};
|
|
126
120
|
const mergeWithDefaults = (foundStub) => {
|
|
127
121
|
const { stub, urlMatch } = foundStub;
|
|
128
122
|
// provide configuration and matched url (either regex match results or trimmed url string)
|
|
129
123
|
const response = typeof stub === "function" ? stub(Object.assign(Object.assign({}, config), { urlMatch })) : stub;
|
|
130
124
|
return merge({}, defaultResponse, response);
|
|
131
125
|
};
|
|
132
|
-
const storedStub =
|
|
126
|
+
const storedStub = (_a = this.findStub(url, method)) !== null && _a !== void 0 ? _a : { stub: {} };
|
|
133
127
|
const mergedResponse = mergeWithDefaults(storedStub);
|
|
134
128
|
return mergedResponse;
|
|
135
129
|
}
|
|
@@ -163,6 +157,12 @@ export class DummyFrankieApiClient extends FrankieApiClient {
|
|
|
163
157
|
return this.preventUncaughtErrors(url, config, "put", data);
|
|
164
158
|
});
|
|
165
159
|
}
|
|
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,6 +1,5 @@
|
|
|
1
1
|
import { ENVIRONMENTS } from "../common";
|
|
2
|
-
import { ApplicantId } from "../
|
|
3
|
-
import { SessionMeta } from "../sdk/types";
|
|
2
|
+
import { ApplicantId, SessionContext } from "../session/SessionContext";
|
|
4
3
|
import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from "axios";
|
|
5
4
|
import { ClientsConstructorDictionary, InstanceOf, LoadClientParametersFor } from "./ClientsDictionary";
|
|
6
5
|
export declare type IFrankieClientCredentials = {
|
|
@@ -10,7 +9,7 @@ export declare type IFrankieClientCredentials = {
|
|
|
10
9
|
};
|
|
11
10
|
export declare class FrankieApiClient {
|
|
12
11
|
protected instance: AxiosInstance;
|
|
13
|
-
protected
|
|
12
|
+
protected sessionContext: SessionContext;
|
|
14
13
|
constructor();
|
|
15
14
|
get interceptors(): AxiosInstance["interceptors"];
|
|
16
15
|
set entityId(value: string);
|
|
@@ -18,11 +17,9 @@ export declare class FrankieApiClient {
|
|
|
18
17
|
environment: ENVIRONMENTS;
|
|
19
18
|
}): Promise<string>;
|
|
20
19
|
get token(): string;
|
|
21
|
-
get session():
|
|
22
|
-
set session(session:
|
|
23
|
-
|
|
24
|
-
checkValidity?: boolean;
|
|
25
|
-
}): Promise<void>;
|
|
20
|
+
get session(): SessionContext;
|
|
21
|
+
set session(session: SessionContext);
|
|
22
|
+
validateSession(): Promise<AxiosResponse<unknown, any>>;
|
|
26
23
|
get<T = unknown>(url: string, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
|
|
27
24
|
delete<T = unknown>(url: string, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
|
|
28
25
|
post<T = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
|
|
@@ -9,16 +9,14 @@ 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";
|
|
13
12
|
import Axios from "axios";
|
|
14
|
-
import jwtDecode from "jwt-decode";
|
|
15
13
|
export class FrankieApiClient {
|
|
16
14
|
constructor() {
|
|
17
15
|
this.instance = Axios.create();
|
|
18
16
|
this.interceptors.response.use((response) => {
|
|
19
17
|
const token = response.headers.token;
|
|
20
|
-
if (token)
|
|
21
|
-
this.setToken(token);
|
|
18
|
+
if (token && this.session)
|
|
19
|
+
this.session.setToken(token);
|
|
22
20
|
return response;
|
|
23
21
|
});
|
|
24
22
|
}
|
|
@@ -26,7 +24,7 @@ export class FrankieApiClient {
|
|
|
26
24
|
return this.instance.interceptors;
|
|
27
25
|
}
|
|
28
26
|
set entityId(value) {
|
|
29
|
-
this.
|
|
27
|
+
this.sessionContext.setEntityId(value);
|
|
30
28
|
}
|
|
31
29
|
login(credentials, applicantId, options) {
|
|
32
30
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -50,23 +48,16 @@ export class FrankieApiClient {
|
|
|
50
48
|
return this.session.token;
|
|
51
49
|
}
|
|
52
50
|
get session() {
|
|
53
|
-
return this.
|
|
51
|
+
return this.sessionContext;
|
|
54
52
|
}
|
|
55
53
|
set session(session) {
|
|
56
54
|
this.instance.defaults.baseURL = session.environment;
|
|
57
55
|
this.instance.defaults.headers.common.authorization = session.token;
|
|
58
56
|
this.instance.defaults.headers.common["X-Frankie-Channel"] = "onesdk";
|
|
59
|
-
this.
|
|
57
|
+
this.sessionContext = session;
|
|
60
58
|
}
|
|
61
|
-
|
|
62
|
-
return
|
|
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
|
-
});
|
|
59
|
+
validateSession() {
|
|
60
|
+
return this.get("data/v2/token-validity");
|
|
70
61
|
}
|
|
71
62
|
get(url, config) {
|
|
72
63
|
return this.instance.get(url, config);
|
|
@@ -94,14 +85,6 @@ export class FrankieApiClient {
|
|
|
94
85
|
});
|
|
95
86
|
}
|
|
96
87
|
}
|
|
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
|
-
};
|
|
105
88
|
function serialiseCredentials(credentials) {
|
|
106
89
|
const elements = [credentials.customerID, credentials.customerChildID, credentials.apiKey];
|
|
107
90
|
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,7 +10,6 @@ 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";
|
|
14
13
|
import { BaseClient } from "./BaseClient";
|
|
15
14
|
/**
|
|
16
15
|
* Applicant client handles BFF Applicant and Document Operations
|
|
@@ -23,7 +22,7 @@ export class ApplicantClient extends BaseClient {
|
|
|
23
22
|
* A search made using entityId HAS to be successful, since the entity id already exists. If not found, throw exception
|
|
24
23
|
* A search made using reference doesn't need to return results, as it might be a
|
|
25
24
|
*/
|
|
26
|
-
const { reference, entityId } = this
|
|
25
|
+
const { reference, entityId } = this;
|
|
27
26
|
const data = yield this.frankie
|
|
28
27
|
.get("/data/v2/applicant/", {
|
|
29
28
|
params: {
|
|
@@ -59,11 +58,10 @@ export class ApplicantClient extends BaseClient {
|
|
|
59
58
|
updateApplicant(payload) {
|
|
60
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
61
60
|
const { applicant, documents } = payload;
|
|
62
|
-
if (!
|
|
61
|
+
if (!this.entityId)
|
|
63
62
|
throw new Error("Entity id not found in local state. Has entity been created yet?");
|
|
64
|
-
const { entityId } = this.entityIdentifier;
|
|
65
63
|
return this.frankie
|
|
66
|
-
.put(`/data/v2/applicants/${entityId}`, {
|
|
64
|
+
.put(`/data/v2/applicants/${this.entityId}`, {
|
|
67
65
|
applicant,
|
|
68
66
|
documents,
|
|
69
67
|
kycMethod: "electronic",
|
|
@@ -73,10 +71,9 @@ export class ApplicantClient extends BaseClient {
|
|
|
73
71
|
}
|
|
74
72
|
getLatestCheckResults() {
|
|
75
73
|
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
-
if (!
|
|
74
|
+
if (!this.entityId)
|
|
77
75
|
throw new Error("Entity id not found in local state. Has entity been created yet?");
|
|
78
|
-
|
|
79
|
-
return yield this.frankie.get(`/data/v2/applicants/${entityId}`).then((r) => {
|
|
76
|
+
return yield this.frankie.get(`/data/v2/applicants/${this.entityId}`).then((r) => {
|
|
80
77
|
const { checkSummary } = r.data;
|
|
81
78
|
return CheckSummary.fromJSON(checkSummary);
|
|
82
79
|
});
|
|
@@ -84,10 +81,9 @@ export class ApplicantClient extends BaseClient {
|
|
|
84
81
|
}
|
|
85
82
|
triggerChecks() {
|
|
86
83
|
return __awaiter(this, void 0, void 0, function* () {
|
|
87
|
-
if (!
|
|
84
|
+
if (!this.entityId)
|
|
88
85
|
throw new Error("Entity id not found in local state. Has entity been created yet?");
|
|
89
|
-
|
|
90
|
-
yield this.frankie.post(`/data/v1/applicants/${entityId}/checks`);
|
|
86
|
+
yield this.frankie.post(`/data/v1/applicants/${this.entityId}/checks`);
|
|
91
87
|
return this.getLatestCheckResults();
|
|
92
88
|
});
|
|
93
89
|
}
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"ApplicantClient.js","sourceRoot":"","sources":["../../../../../modules/frankie-client/clients/ApplicantClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { ApplicantId } from "../../common/types/Session";
|
|
2
|
-
import { ReadonlyDeep } from "type-fest";
|
|
3
1
|
import { FrankieApiClient } from "../FrankieApiClient";
|
|
4
2
|
export declare class BaseClient {
|
|
5
3
|
protected frankie: FrankieApiClient;
|
|
6
4
|
constructor(frankie: FrankieApiClient);
|
|
7
|
-
get
|
|
5
|
+
get reference(): string | null;
|
|
8
6
|
get entityId(): string | null;
|
|
9
7
|
set entityId(v: string | null);
|
|
10
8
|
}
|
|
@@ -2,12 +2,13 @@ export class BaseClient {
|
|
|
2
2
|
constructor(frankie) {
|
|
3
3
|
this.frankie = frankie;
|
|
4
4
|
}
|
|
5
|
-
get
|
|
6
|
-
|
|
5
|
+
get reference() {
|
|
6
|
+
var _a;
|
|
7
|
+
return (_a = this.frankie.session.reference) !== null && _a !== void 0 ? _a : null;
|
|
7
8
|
}
|
|
8
9
|
get entityId() {
|
|
9
10
|
var _a;
|
|
10
|
-
return (_a = this.
|
|
11
|
+
return (_a = this.frankie.session.entityId) !== null && _a !== void 0 ? _a : null;
|
|
11
12
|
}
|
|
12
13
|
set entityId(v) {
|
|
13
14
|
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":"AAEA,MAAM,OAAO,UAAU;IACrB,YAAsB,OAAyB;QAAzB,YAAO,GAAP,OAAO,CAAkB;IAAG,CAAC;IAEnD,IAAI,SAAS;;QACX,OAAO,MAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,mCAAI,IAAI,CAAC;IAChD,CAAC;IACD,IAAI,QAAQ;;QACV,OAAO,MAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,mCAAI,IAAI,CAAC;IAC/C,CAAC;IACD,IAAI,QAAQ,CAAC,CAAgB;QAC3B,IAAI,CAAC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IAC5B,CAAC;CACF"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { EventHub } from "../common";
|
|
2
2
|
import { GlobalEvents, OneSdkRootParameters } from "../sdk/types";
|
|
3
|
+
import { SessionContext } from "../session/SessionContext";
|
|
3
4
|
import { DummyFrankieApiClient } from "./DummyFrankieApiClient";
|
|
4
5
|
import { FrankieApiClient } from "./FrankieApiClient";
|
|
5
|
-
declare type
|
|
6
|
+
declare type Mode = OneSdkRootParameters["mode"];
|
|
7
|
+
declare type Options = {
|
|
6
8
|
globalEventHub: EventHub<GlobalEvents>;
|
|
9
|
+
mode: Mode;
|
|
10
|
+
session: SessionContext;
|
|
7
11
|
};
|
|
8
12
|
export declare function mkFrankieClient(options: Options): Promise<FrankieApiClient>;
|
|
9
13
|
export { FrankieApiClient, DummyFrankieApiClient };
|
|
@@ -24,13 +24,11 @@ const defaultMockOptions = {
|
|
|
24
24
|
};
|
|
25
25
|
const isDummy = (mode) => (typeof mode === "string" ? mode : mode.modeName);
|
|
26
26
|
export function mkFrankieClient(options) {
|
|
27
|
-
var _a;
|
|
28
27
|
return __awaiter(this, void 0, void 0, function* () {
|
|
29
28
|
if (isDummy(options.mode) === SdkModes.DUMMY) {
|
|
30
29
|
// initialise dummy client with optional token
|
|
31
30
|
const dummyClient = new DummyFrankieApiClient(Object.assign(Object.assign({}, options), { defaultDelay: 200 }));
|
|
32
|
-
|
|
33
|
-
dummyClient.setToken(options.session.token);
|
|
31
|
+
dummyClient.session = options.session;
|
|
34
32
|
// resolve mock options either from mode: { options } or if mode: "dummy", then use default mock options
|
|
35
33
|
const simplifiedMockOptions = typeof options.mode === "string" ? defaultMockOptions : options.mode.mocks;
|
|
36
34
|
const mockOptions = resolveSimplifiedMockOptions(simplifiedMockOptions);
|
|
@@ -43,7 +41,8 @@ export function mkFrankieClient(options) {
|
|
|
43
41
|
}
|
|
44
42
|
// if not in dummy mode, simply initialise the regular api client with the provided token
|
|
45
43
|
const client = new FrankieApiClient();
|
|
46
|
-
|
|
44
|
+
client.session = options.session;
|
|
45
|
+
yield client.validateSession();
|
|
47
46
|
return client;
|
|
48
47
|
});
|
|
49
48
|
}
|
|
@@ -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;AAEjF,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,WAAW,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;YACtC,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,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACjC,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;CAAA;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 resolveIndividualData(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 resolveIndividualData(options) {
|
|
8
8
|
var _a, _b;
|
|
9
9
|
return {
|
|
10
10
|
individual: merge(new Applicant(), {
|
|
@@ -22,7 +22,7 @@ export function resolveIndividualDdata(options) {
|
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
24
|
export function loadExistingApplicant(client, options) {
|
|
25
|
-
const { individual, documents } =
|
|
25
|
+
const { individual, documents } = resolveIndividualData(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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"}
|