@frankieone/one-sdk 0.5.5-rc → 0.6.5-rc

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/README.md +38 -36
  2. package/dist/commit.txt +2 -2
  3. package/dist/esm/modules/common/constants.d.ts +1 -0
  4. package/dist/esm/modules/common/constants.js +2 -0
  5. package/dist/esm/modules/common/constants.js.map +1 -1
  6. package/dist/esm/modules/common/modules/{runIfWhen.d.ts → HOF.d.ts} +17 -2
  7. package/dist/esm/modules/common/modules/{runIfWhen.js → HOF.js} +22 -3
  8. package/dist/esm/modules/common/modules/HOF.js.map +1 -0
  9. package/dist/esm/modules/common/modules/LocalStorage.d.ts +6 -0
  10. package/dist/esm/modules/common/modules/LocalStorage.js +21 -0
  11. package/dist/esm/modules/common/modules/LocalStorage.js.map +1 -0
  12. package/dist/esm/modules/common/modules/env2url.d.ts +6 -1
  13. package/dist/esm/modules/common/modules/env2url.js +17 -1
  14. package/dist/esm/modules/common/modules/env2url.js.map +1 -1
  15. package/dist/esm/modules/common/modules/url.d.ts +5 -0
  16. package/dist/esm/modules/common/modules/url.js +10 -0
  17. package/dist/esm/modules/common/modules/url.js.map +1 -0
  18. package/dist/esm/modules/common/types/Configuration.d.ts +15 -0
  19. package/dist/esm/modules/federation/constants.d.ts +2 -0
  20. package/dist/esm/modules/federation/constants.js +3 -0
  21. package/dist/esm/modules/federation/constants.js.map +1 -0
  22. package/dist/esm/modules/federation/index.d.ts +3 -0
  23. package/dist/esm/modules/federation/index.js +69 -0
  24. package/dist/esm/modules/federation/index.js.map +1 -0
  25. package/dist/esm/modules/federation/parseConfiguration.d.ts +2 -0
  26. package/dist/esm/modules/federation/parseConfiguration.js +43 -0
  27. package/dist/esm/modules/federation/parseConfiguration.js.map +1 -0
  28. package/dist/esm/modules/federation/types/events.d.ts +4 -0
  29. package/dist/esm/modules/federation/types/events.js +2 -0
  30. package/dist/esm/modules/federation/types/events.js.map +1 -0
  31. package/dist/esm/modules/federation/types/module.d.ts +8 -0
  32. package/dist/esm/modules/federation/types/module.js +2 -0
  33. package/dist/esm/modules/federation/types/module.js.map +1 -0
  34. package/dist/esm/modules/federation/types/wrapper.d.ts +18 -0
  35. package/dist/esm/modules/federation/types/wrapper.js +2 -0
  36. package/dist/esm/modules/federation/types/wrapper.js.map +1 -0
  37. package/dist/esm/modules/federation/vendors/Singpass.d.ts +8 -0
  38. package/dist/esm/modules/federation/vendors/Singpass.js +110 -0
  39. package/dist/esm/modules/federation/vendors/Singpass.js.map +1 -0
  40. package/dist/esm/modules/frankie-client/DummyFrankieApiClient.d.ts +28 -22
  41. package/dist/esm/modules/frankie-client/DummyFrankieApiClient.js +47 -45
  42. package/dist/esm/modules/frankie-client/DummyFrankieApiClient.js.map +1 -1
  43. package/dist/esm/modules/frankie-client/FrankieApiClient.d.ts +6 -8
  44. package/dist/esm/modules/frankie-client/FrankieApiClient.js +10 -25
  45. package/dist/esm/modules/frankie-client/FrankieApiClient.js.map +1 -1
  46. package/dist/esm/modules/frankie-client/clients/ApplicantClient.js +7 -11
  47. package/dist/esm/modules/frankie-client/clients/ApplicantClient.js.map +1 -1
  48. package/dist/esm/modules/frankie-client/clients/BaseClient.d.ts +1 -3
  49. package/dist/esm/modules/frankie-client/clients/BaseClient.js +4 -3
  50. package/dist/esm/modules/frankie-client/clients/BaseClient.js.map +1 -1
  51. package/dist/esm/modules/frankie-client/clients/FederationClient.d.ts +11 -0
  52. package/dist/esm/modules/frankie-client/clients/FederationClient.js +24 -0
  53. package/dist/esm/modules/frankie-client/clients/FederationClient.js.map +1 -0
  54. package/dist/esm/modules/frankie-client/clients/StorageClient.d.ts +10 -0
  55. package/dist/esm/modules/frankie-client/clients/StorageClient.js +23 -0
  56. package/dist/esm/modules/frankie-client/clients/StorageClient.js.map +1 -0
  57. package/dist/esm/modules/frankie-client/index.d.ts +8 -2
  58. package/dist/esm/modules/frankie-client/index.js +23 -32
  59. package/dist/esm/modules/frankie-client/index.js.map +1 -1
  60. package/dist/esm/modules/frankie-client/mocks/federation/index.d.ts +4 -0
  61. package/dist/esm/modules/frankie-client/mocks/federation/index.js +32 -0
  62. package/dist/esm/modules/frankie-client/mocks/federation/index.js.map +1 -0
  63. package/dist/esm/modules/frankie-client/mocks/index.js +4 -0
  64. package/dist/esm/modules/frankie-client/mocks/index.js.map +1 -1
  65. package/dist/esm/modules/frankie-client/mocks/individual/loadIndividual.d.ts +1 -1
  66. package/dist/esm/modules/frankie-client/mocks/individual/loadIndividual.js +2 -2
  67. package/dist/esm/modules/frankie-client/mocks/individual/loadIndividual.js.map +1 -1
  68. package/dist/esm/modules/index.d.ts +15 -3
  69. package/dist/esm/modules/index.js +18 -9
  70. package/dist/esm/modules/index.js.map +1 -1
  71. package/dist/esm/modules/individual/actions/search.js +4 -5
  72. package/dist/esm/modules/individual/actions/search.js.map +1 -1
  73. package/dist/esm/modules/individual/types/events.d.ts +1 -1
  74. package/dist/esm/modules/meta.json +1 -1
  75. package/dist/esm/modules/ocr/actions/start.js +6 -14
  76. package/dist/esm/modules/ocr/actions/start.js.map +1 -1
  77. package/dist/esm/modules/sdk/index.js +3 -1
  78. package/dist/esm/modules/sdk/index.js.map +1 -1
  79. package/dist/esm/modules/sdk/initialisation/componentLoader.js +1 -1
  80. package/dist/esm/modules/sdk/initialisation/componentLoader.js.map +1 -1
  81. package/dist/esm/modules/sdk/initialisation/configurationParser.js +4 -7
  82. package/dist/esm/modules/sdk/initialisation/configurationParser.js.map +1 -1
  83. package/dist/esm/modules/sdk/initialisation/sharedDependencies.d.ts +2 -1
  84. package/dist/esm/modules/sdk/initialisation/sharedDependencies.js +4 -4
  85. package/dist/esm/modules/sdk/initialisation/sharedDependencies.js.map +1 -1
  86. package/dist/esm/modules/sdk/types/components.d.ts +2 -2
  87. package/dist/esm/modules/sdk/types/configuration.d.ts +17 -26
  88. package/dist/esm/modules/sdk/types/configuration.js.map +1 -1
  89. package/dist/esm/modules/sdk/types/module.d.ts +1 -1
  90. package/dist/esm/modules/session/SessionContext.d.ts +55 -0
  91. package/dist/esm/modules/session/SessionContext.js +90 -0
  92. package/dist/esm/modules/session/SessionContext.js.map +1 -0
  93. package/dist/esm/modules/session/constants.d.ts +3 -0
  94. package/dist/esm/modules/session/constants.js +4 -0
  95. package/dist/esm/modules/session/constants.js.map +1 -0
  96. package/dist/esm/modules/session/index.d.ts +6 -0
  97. package/dist/esm/modules/session/index.js +70 -0
  98. package/dist/esm/modules/session/index.js.map +1 -0
  99. package/dist/esm/modules/session/types/module.d.ts +5 -0
  100. package/dist/esm/modules/session/types/module.js +2 -0
  101. package/dist/esm/modules/session/types/module.js.map +1 -0
  102. package/dist/esm/types/Primitives.d.ts +1 -0
  103. package/dist/release.txt +1 -1
  104. package/dist/umd/commit.txt +1 -0
  105. package/dist/umd/device-sardine.js +1 -1
  106. package/dist/umd/oneSdk.umd.js +1 -1
  107. package/dist/umd/oneSdk.umd.js.map +1 -1
  108. package/dist/umd/release.txt +1 -0
  109. package/dist/umd/version.txt +1 -0
  110. package/dist/version.txt +2 -2
  111. package/package.json +12 -9
  112. package/dist/esm/modules/common/modules/runIfWhen.js.map +0 -1
  113. package/dist/esm/modules/common/types/Session.d.ts +0 -16
  114. package/dist/esm/modules/common/types/Session.js +0 -2
  115. package/dist/esm/modules/common/types/Session.js.map +0 -1
@@ -0,0 +1,8 @@
1
+ import { BaseModuleOptions, ModuleContext } from "../../sdk/types";
2
+ import { Events } from "./events";
3
+ export interface FederationModule {
4
+ initialise: (o: BaseModuleOptions) => FederationModuleContext;
5
+ }
6
+ export declare type FederationModuleContext = ModuleContext<{
7
+ start: () => void;
8
+ }, Events>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../../modules/federation/types/module.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { EventHub } from "../../common";
2
+ import { BaseModuleOptions } from "../../sdk/types";
3
+ import { Vendor } from "../constants";
4
+ import { Events } from "./events";
5
+ export interface WrapperModule {
6
+ wrapper: VendorWrapper;
7
+ }
8
+ export interface VendorWrapper {
9
+ readonly vendor: Vendor;
10
+ authorize(o: VendorOptions): Promise<VendorContext>;
11
+ }
12
+ export interface VendorContext {
13
+ readonly vendor: Vendor;
14
+ }
15
+ export interface AdditionalDeviceInternalDependencies {
16
+ eventHub: EventHub<Events>;
17
+ }
18
+ export declare type VendorOptions = BaseModuleOptions & AdditionalDeviceInternalDependencies;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../../../modules/federation/types/wrapper.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { RecipeConfiguration } from "../../common";
2
+ import { VendorOptions, VendorWrapper } from "../types/wrapper";
3
+ export declare const wrapper: VendorWrapper;
4
+ export declare function hasAllAuthorisationParams(urlParams: URLSearchParams, options: VendorOptions): boolean;
5
+ export declare type SingpassEnvironment = RecipeConfiguration["idps"]["singpass"]["environment"];
6
+ export declare type SingpassEnvironmentURLDictionary = Record<SingpassEnvironment, string>;
7
+ export declare const singpassURLs: SingpassEnvironmentURLDictionary;
8
+ export declare function getSingpassURL(environment: SingpassEnvironment): URL;
@@ -0,0 +1,110 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { OneSDKError } from "../../common";
11
+ import { LocalStorage } from "../../common/modules/LocalStorage";
12
+ import { getURLParams } from "../../common/modules/url";
13
+ import { FederationClient } from "../../frankie-client/clients/FederationClient";
14
+ import { StorageKeys } from "../../session/constants";
15
+ // 302 Service will redirect all responses to 'redirect_uri' with additional parameters added as response results. Expected parameters include:
16
+ // code: this is the authorisation code you will use when calling the token endpoint
17
+ // state: this should be the same state passed in your initial URL.
18
+ // error: if there are any errors encountered, the error code will be given in this parameter.
19
+ // '500' - Unknown or other server side errors.
20
+ // '503' - MyInfo under maintenance. Error description will also be given in error_description parameter.
21
+ // 'access_denied' - When user did not give consent, refer to error_description parameter for the reason.
22
+ // error_description: if error is 'access_denied' i.e. user did not give consent, the description will be 'Resource Owner did not authorize the request'.
23
+ // Note: If user closes the browser window prematurely, there will be no callback to the 'redirect_uri'. Therefore it is important for you to check the 'state' to verify that the transaction is the same.
24
+ export const wrapper = {
25
+ vendor: "singpass",
26
+ authorize(options) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ const urlParams = getURLParams();
29
+ if (hasAllAuthorisationParams(urlParams, options))
30
+ yield submitAuthorization(urlParams, options);
31
+ else
32
+ yield authorize(options);
33
+ return {
34
+ vendor: "singpass",
35
+ };
36
+ });
37
+ },
38
+ };
39
+ function submitAuthorization(urlParams, options) {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ // Submit data to BFF
42
+ const client = new FederationClient(options.frankieClient);
43
+ const clearStoredToken = () => new LocalStorage().delete(StorageKeys.TOKEN);
44
+ const emitError = (e) => {
45
+ options.eventHub.emit("error", new OneSDKError(e.message, e.payload));
46
+ };
47
+ try {
48
+ // If initial request fails, it will contain an object in the form { message, errorCode }
49
+ // On failure, this request interrupts the flow with an error event containing
50
+ // the message and an error payload containing "errorCode" AND clears any stored session
51
+ const { individual, status } = yield client.provideAuthorisation("singpass", urlParams.get("code"));
52
+ // If customer decides to call "approve", submit confirmation to BFF
53
+ // otherwise data will automatically be purged after a few minutes
54
+ const approve = () => {
55
+ client
56
+ .submitCachedData()
57
+ .then(() => {
58
+ options.eventHub.emit("data_extracted_successfully");
59
+ })
60
+ .catch((e) => {
61
+ const { message, errorCode, issues } = e.response.data;
62
+ emitError({ message: `Failed sending confirmation: "${message}"`, payload: { errorCode, issues } });
63
+ })
64
+ .finally(clearStoredToken);
65
+ };
66
+ options.eventHub.emit("results", individual, status, approve);
67
+ }
68
+ catch (e) {
69
+ clearStoredToken();
70
+ const { message, errorCode, issues } = e.response.data;
71
+ emitError({ message: `Failed sending authorisation: "${message}"`, payload: { errorCode, issues } });
72
+ }
73
+ });
74
+ }
75
+ function authorize(options) {
76
+ var _a;
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ const singpassConfig = options.recipe.idps.singpass;
79
+ // Set query parameters
80
+ const url = getSingpassURL(singpassConfig.environment);
81
+ url.searchParams.set("client_id", singpassConfig.client_id);
82
+ url.searchParams.set("attributes", singpassConfig.attributes);
83
+ url.searchParams.set("state", options.session.sessionId); // Take at runtime from customer
84
+ url.searchParams.set("redirect_uri", (_a = singpassConfig.redirect_url) !== null && _a !== void 0 ? _a : window.location.href);
85
+ url.searchParams.set("purpose", singpassConfig.purpose);
86
+ // Using FrankieClient for redirection so in dummy mode we can intercept it and fake a redirection
87
+ options.frankieClient.redirect(url);
88
+ });
89
+ }
90
+ export function hasAllAuthorisationParams(urlParams, options) {
91
+ const stateMatches = options.session.sessionId === urlParams.get("state");
92
+ const authCode = urlParams.get("code");
93
+ const error = urlParams.get("error");
94
+ const errorInfo = urlParams.get("error_description");
95
+ if (error)
96
+ throw new Error(errorInfo !== null && errorInfo !== void 0 ? errorInfo : "Internal server error");
97
+ if (authCode && !stateMatches)
98
+ throw new Error("A different session is being used to initialise the OneSDK than the one used at the beginning of the federation flow.");
99
+ return authCode && stateMatches;
100
+ }
101
+ export const singpassURLs = {
102
+ sandbox: "https://sandbox.api.myinfo.gov.sg",
103
+ test: "https://test.api.myinfo.gov.sg",
104
+ production: "https://api.myinfo.gov.sg",
105
+ };
106
+ export function getSingpassURL(environment) {
107
+ const urlString = [singpassURLs[environment], "com/v3/authorise"].join("/");
108
+ return new URL(urlString);
109
+ }
110
+ //# sourceMappingURL=Singpass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Singpass.js","sourceRoot":"","sources":["../../../../../modules/federation/vendors/Singpass.ts"],"names":[],"mappings":"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"}
@@ -1,39 +1,26 @@
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
- export declare const URL_PARAM = "([^/]+)";
5
+ export declare const URL_PARAM = "([^/?]+)";
6
+ export declare const QUERY_PARAM = "([^&?]+)";
7
+ export declare const dummySessionMeta: SessionMeta;
16
8
  export declare class DummyFrankieApiClient extends FrankieApiClient {
17
9
  protected o: {
18
10
  globalEventHub: EventHub;
19
11
  defaultDelay?: number;
20
12
  };
21
- protected requestPayloadDictionary: RequestResponse;
13
+ protected requestPayloadDictionary: StubResponseDictionary;
22
14
  protected globalEventHub: EventHub;
23
15
  constructor(o: {
24
16
  globalEventHub: EventHub;
25
17
  defaultDelay?: number;
26
18
  });
27
- setToken(t: string, o?: {
28
- checkValidity?: boolean;
29
- }): Promise<void>;
30
- stubResponse(options: {
19
+ stubResponse<TheMethod extends Method | "redirect" | "default">(options: {
31
20
  url: string | RegExp;
32
- method?: Method;
33
- }, responsePayload?: StubFactory | Partial<AxiosResponse & {
34
- delay: number;
35
- title: string;
36
- }>): void;
21
+ method?: TheMethod;
22
+ }, responsePayload?: StubResponseDictionary[string][TheMethod]): void;
23
+ findStub<URLPattern extends string, TheMethod extends Method | "redirect">(url: URLPattern, method: TheMethod): FoundStub<TheMethod> | null;
37
24
  getStubPayload(config: Partial<AxiosRequestConfig>): AxiosResponse & {
38
25
  delay?: number;
39
26
  };
@@ -42,7 +29,26 @@ export declare class DummyFrankieApiClient extends FrankieApiClient {
42
29
  delete<T = unknown>(url: string, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
43
30
  post<T = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
44
31
  put<T = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
32
+ redirect(url: URL): void;
45
33
  private delayResponse;
46
34
  }
47
35
  declare type Method = "get" | "put" | "post" | "delete";
36
+ declare type URLPattern = string;
37
+ declare type StubResponse = Partial<AxiosResponse & {
38
+ delay: number;
39
+ title?: string;
40
+ }>;
41
+ declare type StubResponseDictionary = Record<URLPattern, Partial<MethodStubDictionary>>;
42
+ declare type MethodStubDictionary = Record<Method | "default", Partial<StubResponse> | StubFactory> & {
43
+ redirect: RedirectStub;
44
+ };
45
+ declare type StubFactoryParameter = Partial<AxiosRequestConfig> & {
46
+ urlMatch?: RegExpExecArray | string;
47
+ };
48
+ declare type StubFactory = (options: StubFactoryParameter) => StubResponse;
49
+ declare type FoundStub<TheMethod extends Method | "redirect"> = {
50
+ stub: StubResponseDictionary[string][TheMethod];
51
+ urlMatch?: RegExpExecArray | string;
52
+ };
53
+ declare type RedirectStub = (url: URL) => URL | null;
48
54
  export {};
@@ -20,19 +20,22 @@ 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
- export const URL_PARAM = "([^/]+)";
25
+ export const URL_PARAM = "([^/?]+)";
26
+ export const QUERY_PARAM = "([^&?]+)";
26
27
  const DEFAULT_DELAY = 0;
27
28
  const regexKeyMatcher = /^regex:/;
28
29
  const regexKeyPrefix = "regex:";
29
- const defaultSessionData = {
30
- environment: "https://dummy.com",
30
+ export const dummySessionMeta = {
31
31
  customerID: "none",
32
+ customerChildID: "none",
33
+ environment: "https://dummy.com",
32
34
  sessionId: "none",
33
- token: "none",
34
- reference: "dummy-session",
35
+ reference: "dummy-reference",
36
+ entityId: null,
35
37
  };
38
+ const trimUrl = (url) => url.replace(/\/$/, "").replace(/^\//, "");
36
39
  export class DummyFrankieApiClient extends FrankieApiClient {
37
40
  constructor(o) {
38
41
  var _a;
@@ -42,18 +45,7 @@ export class DummyFrankieApiClient extends FrankieApiClient {
42
45
  this.o.defaultDelay = (_a = o.defaultDelay) !== null && _a !== void 0 ? _a : DEFAULT_DELAY;
43
46
  this.globalEventHub = o.globalEventHub;
44
47
  this.instance.defaults.baseURL = "https://dummy.com";
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
+ this.session = new SessionContext(dummySessionMeta);
57
49
  }
58
50
  stubResponse(options, responsePayload) {
59
51
  var _a, _b;
@@ -68,68 +60,72 @@ export class DummyFrankieApiClient extends FrankieApiClient {
68
60
  const method = (_b = options.method) !== null && _b !== void 0 ? _b : "default";
69
61
  this.requestPayloadDictionary[trimmedUrl][method] = responsePayload;
70
62
  }
71
- getStubPayload(config) {
72
- const { url, method } = config;
63
+ findStub(url, method) {
73
64
  const trimmedUrl = trimUrl(url);
74
- const defaultResponse = {
75
- data: {},
76
- status: 200,
77
- statusText: "OK",
78
- headers: {},
79
- config,
80
- isMockResponse: true,
81
- };
82
65
  const dictionary = this.requestPayloadDictionary;
83
66
  const findAsRegex = () => {
84
- const matchedKey = Object.keys(dictionary)
67
+ const allMatchedKeys = Object.keys(dictionary)
85
68
  .filter((k) => k.match(regexKeyMatcher))
86
69
  .map((k) => k.replace(regexKeyMatcher, ""))
87
- .find((regexPattern) => {
88
- // ensure regex pattern is searching the full url by prepending with '^' and appending with $
70
+ .filter((regexPattern) => {
71
+ // ensure regex pattern is searching the full url by prepending with '^' and appending with '$'
89
72
  const regex = new RegExp(`^${regexPattern}$`);
90
73
  return Boolean(regex.exec(trimmedUrl));
91
74
  });
92
- if (!matchedKey)
75
+ if (!allMatchedKeys)
93
76
  return false;
94
- const regex = new RegExp(`^${matchedKey}$`);
77
+ const longestMatchedKey = allMatchedKeys.sort((a, b) => b.length - a.length).shift();
78
+ const regex = new RegExp(`^${longestMatchedKey}$`);
95
79
  const urlMatch = regex.exec(trimmedUrl);
96
80
  return {
97
- data: dictionary[`${regexKeyPrefix}${matchedKey}`],
81
+ methods: dictionary[`${regexKeyPrefix}${longestMatchedKey}`],
98
82
  urlMatch,
99
83
  };
100
84
  };
101
85
  const findAsKey = () => {
102
86
  if (!dictionary[trimmedUrl])
103
87
  return false;
104
- return { data: dictionary[trimmedUrl], urlMatch: trimmedUrl };
88
+ return { methods: dictionary[trimmedUrl], urlMatch: trimmedUrl };
105
89
  };
106
90
  const findStoredStub = () => {
107
- const emptyStub = { stub: {} };
108
91
  const payloadsForUrl = findAsKey() || findAsRegex();
109
92
  if (!payloadsForUrl)
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
93
+ return null;
94
+ const { methods, urlMatch } = payloadsForUrl;
95
+ const payloadForMethod = methods === null || methods === void 0 ? void 0 : methods[method];
96
+ const defaultPayload = methods === null || methods === void 0 ? void 0 : methods.default;
97
+ // If url wasn't even found
115
98
  if (!payloadsForUrl)
116
- return emptyStub;
117
- // If method wasn't found and there isnt a default, return empty stub
99
+ return null;
100
+ // If method wasn't found and there isnt a default
118
101
  if (!payloadForMethod && !defaultPayload)
119
- return emptyStub;
102
+ return null;
120
103
  // If method wasn't found, but default stub was, return default
121
104
  if (!payloadForMethod && defaultPayload)
122
105
  return { stub: defaultPayload };
123
106
  // Otherwise stub for specific method was found, return it
124
107
  return { stub: payloadForMethod, urlMatch };
125
108
  };
109
+ return findStoredStub();
110
+ }
111
+ getStubPayload(config) {
112
+ var _a;
113
+ const { url, method } = config;
114
+ const defaultResponse = {
115
+ data: {},
116
+ status: 200,
117
+ statusText: "OK",
118
+ headers: {},
119
+ config,
120
+ isMockResponse: true,
121
+ };
126
122
  const mergeWithDefaults = (foundStub) => {
127
123
  const { stub, urlMatch } = foundStub;
128
124
  // provide configuration and matched url (either regex match results or trimmed url string)
129
125
  const response = typeof stub === "function" ? stub(Object.assign(Object.assign({}, config), { urlMatch })) : stub;
130
126
  return merge({}, defaultResponse, response);
131
127
  };
132
- const storedStub = findStoredStub();
128
+ const storedStub = (_a = this.findStub(url, method)) !== null && _a !== void 0 ? _a : { stub: {} };
133
129
  const mergedResponse = mergeWithDefaults(storedStub);
134
130
  return mergedResponse;
135
131
  }
@@ -163,6 +159,12 @@ export class DummyFrankieApiClient extends FrankieApiClient {
163
159
  return this.preventUncaughtErrors(url, config, "put", data);
164
160
  });
165
161
  }
162
+ redirect(url) {
163
+ const { stub } = this.findStub(url.hostname, "redirect");
164
+ const resultingURL = stub(url);
165
+ if (resultingURL)
166
+ window.location.href = resultingURL.href;
167
+ }
166
168
  delayResponse(payload, delay) {
167
169
  return __awaiter(this, void 0, void 0, function* () {
168
170
  let groupTitle = "Executing mock request to";
@@ -1 +1 @@
1
- {"version":3,"file":"DummyFrankieApiClient.js","sourceRoot":"","sources":["../../../../modules/frankie-client/DummyFrankieApiClient.ts"],"names":[],"mappings":"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"}
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 "../common/types/Session";
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 sessionMeta: SessionMeta;
12
+ protected sessionContext: SessionContext;
14
13
  constructor();
15
14
  get interceptors(): AxiosInstance["interceptors"];
16
15
  set entityId(value: string);
@@ -18,14 +17,13 @@ export declare class FrankieApiClient {
18
17
  environment: ENVIRONMENTS;
19
18
  }): Promise<string>;
20
19
  get token(): string;
21
- get session(): SessionMeta;
22
- set session(session: SessionMeta);
23
- setToken(token: string, options?: {
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>>;
29
26
  put<T = unknown>(url: string, data?: unknown, config?: AxiosRequestConfig | undefined): Promise<AxiosResponse<T>>;
27
+ redirect(url: URL): void;
30
28
  loadClient<Client extends keyof ClientsConstructorDictionary>(...parameters: LoadClientParametersFor<Client>): Promise<InstanceOf<Client>>;
31
29
  }
@@ -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.sessionMeta.entityId = value;
27
+ this.sessionContext.setEntityId(value);
30
28
  }
31
29
  login(credentials, applicantId, options) {
32
30
  return __awaiter(this, void 0, void 0, function* () {
@@ -34,7 +32,6 @@ export class FrankieApiClient {
34
32
  const agent = "machine";
35
33
  const environmentUrl = env2url(options.environment);
36
34
  this.instance.defaults.baseURL = environmentUrl;
37
- // TODO: create new set of permissions for onesdk
38
35
  const response = yield this.post(endpoint, {
39
36
  permissions: Object.assign({ preset: "one-sdk" }, applicantId),
40
37
  }, {
@@ -50,23 +47,16 @@ export class FrankieApiClient {
50
47
  return this.session.token;
51
48
  }
52
49
  get session() {
53
- return this.sessionMeta;
50
+ return this.sessionContext;
54
51
  }
55
52
  set session(session) {
56
53
  this.instance.defaults.baseURL = session.environment;
57
54
  this.instance.defaults.headers.common.authorization = session.token;
58
55
  this.instance.defaults.headers.common["X-Frankie-Channel"] = "onesdk";
59
- this.sessionMeta = session;
56
+ this.sessionContext = session;
60
57
  }
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
- });
58
+ validateSession() {
59
+ return this.get("data/v2/token-validity");
70
60
  }
71
61
  get(url, config) {
72
62
  return this.instance.get(url, config);
@@ -80,6 +70,9 @@ export class FrankieApiClient {
80
70
  put(url, data, config) {
81
71
  return this.instance.put(url, data, config);
82
72
  }
73
+ redirect(url) {
74
+ window.location.href = url.href;
75
+ }
83
76
  loadClient(...parameters) {
84
77
  return __awaiter(this, void 0, void 0, function* () {
85
78
  const [which, options] = parameters;
@@ -94,14 +87,6 @@ export class FrankieApiClient {
94
87
  });
95
88
  }
96
89
  }
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
90
  function serialiseCredentials(credentials) {
106
91
  const elements = [credentials.customerID, credentials.customerChildID, credentials.apiKey];
107
92
  return stringToBase64(elements.filter(Boolean).join(":"));
@@ -1 +1 @@
1
- {"version":3,"file":"FrankieApiClient.js","sourceRoot":"","sources":["../../../../modules/frankie-client/FrankieApiClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FrankieApiClient.js","sourceRoot":"","sources":["../../../../modules/frankie-client/FrankieApiClient.ts"],"names":[],"mappings":"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"}