@newskit-render/api 1.9.0 → 1.10.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/cjs/apolloClient/createApolloClient.d.ts +1 -1
- package/dist/cjs/apolloClient/createApolloClient.js +20 -3
- package/dist/cjs/apolloClient/createApolloClient.js.map +1 -1
- package/dist/cjs/config/index.d.ts +1 -1
- package/dist/cjs/config/index.js +3 -2
- package/dist/cjs/config/index.js.map +1 -1
- package/dist/cjs/helpers/externalLinks/index.d.ts +3 -0
- package/dist/cjs/helpers/externalLinks/index.js +27 -1
- package/dist/cjs/helpers/externalLinks/index.js.map +1 -1
- package/dist/esm/apolloClient/createApolloClient.d.ts +1 -1
- package/dist/esm/apolloClient/createApolloClient.js +22 -5
- package/dist/esm/apolloClient/createApolloClient.js.map +1 -1
- package/dist/esm/config/index.d.ts +1 -1
- package/dist/esm/config/index.js +2 -1
- package/dist/esm/config/index.js.map +1 -1
- package/dist/esm/helpers/externalLinks/index.d.ts +3 -0
- package/dist/esm/helpers/externalLinks/index.js +25 -1
- package/dist/esm/helpers/externalLinks/index.js.map +1 -1
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -57,4 +57,5 @@ const apolloClient = await getApolloClient(
|
|
|
57
57
|
|
|
58
58
|
# Authentication environment variables
|
|
59
59
|
|
|
60
|
-
For MAIN and NewsKit API authentication see [MAIN](https://github.com/newscorp-ghfb/ncu-newskit-render/tree/master/packages/my-account#authentication) and [NewsKit API](https://github.com/newscorp-ghfb/ncu-newskit-render/tree/master/packages/core#running)
|
|
60
|
+
For MAIN and NewsKit API authentication see [MAIN](https://github.com/newscorp-ghfb/ncu-newskit-render/tree/master/packages/my-account#authentication) and [NewsKit API](https://github.com/newscorp-ghfb/ncu-newskit-render/tree/master/packages/core#running).
|
|
61
|
+
For Step-up MFA see [@newskit-render/my-account](https://github.com/newscorp-ghfb/ncu-newskit-render/tree/master/packages/my-account#step-up-mfa)
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Client, Config } from './types';
|
|
2
|
-
export declare const createApolloClient: (client: Client, cookie?: string, token?: string, accountProviderCookieName?: string, config?: Config) => Promise<import("./types").ApolloHttpClient>;
|
|
2
|
+
export declare const createApolloClient: (client: Client, cookie?: string, token?: string, accountProviderCookieName?: string, config?: Config, handleMfaError?: () => void) => Promise<import("./types").ApolloHttpClient>;
|
|
@@ -1,19 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
+
if (ar || !(i in from)) {
|
|
5
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
+
ar[i] = from[i];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.createApolloClient = void 0;
|
|
4
13
|
var createClient_1 = require("./createClient");
|
|
5
14
|
var helpers_1 = require("../helpers");
|
|
6
15
|
var types_1 = require("./types");
|
|
7
16
|
var config_1 = require("../config");
|
|
8
|
-
var createApolloClient = function (client, cookie, token, accountProviderCookieName, config) {
|
|
17
|
+
var createApolloClient = function (client, cookie, token, accountProviderCookieName, config, handleMfaError) {
|
|
9
18
|
if (client === types_1.ClientTypes.main) {
|
|
10
19
|
var headers = (0, helpers_1.getAcsCookie)(types_1.ClientTypes.main, cookie);
|
|
20
|
+
var links = [helpers_1.retryLink, helpers_1.errorLink];
|
|
11
21
|
if (!headers && config_1.acsSessionUrl) {
|
|
12
|
-
headers = {
|
|
22
|
+
headers = {
|
|
23
|
+
Cookie: "".concat(accountProviderCookieName, "=").concat(token),
|
|
24
|
+
};
|
|
13
25
|
}
|
|
14
26
|
return (0, createClient_1.createClient)({
|
|
15
27
|
uri: config_1.accountProviderGraphqlUrl || config_1.mainGraphqlUrl,
|
|
16
|
-
links:
|
|
28
|
+
links: !config_1.enableStepUpMfa
|
|
29
|
+
? links
|
|
30
|
+
: __spreadArray([
|
|
31
|
+
(0, helpers_1.enableStepUpLink)(headers, cookie),
|
|
32
|
+
(0, helpers_1.stepUpMfaErrorLink)(handleMfaError)
|
|
33
|
+
], links, true),
|
|
17
34
|
headers: headers,
|
|
18
35
|
});
|
|
19
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createApolloClient.js","sourceRoot":"","sources":["../../../src/apolloClient/createApolloClient.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createApolloClient.js","sourceRoot":"","sources":["../../../src/apolloClient/createApolloClient.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAA6C;AAC7C,sCAMmB;AACnB,iCAAqD;AACrD,oCAOkB;AAEX,IAAM,kBAAkB,GAAG,UAChC,MAAc,EACd,MAAe,EACf,KAAc,EACd,yBAAkC,EAClC,MAAe,EACf,cAA2B;IAE3B,IAAI,MAAM,KAAK,mBAAW,CAAC,IAAI,EAAE;QAC/B,IAAI,OAAO,GAAG,IAAA,sBAAY,EAAC,mBAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACpD,IAAM,KAAK,GAAG,CAAC,mBAAS,EAAE,mBAAS,CAAC,CAAA;QAEpC,IAAI,CAAC,OAAO,IAAI,sBAAa,EAAE;YAC7B,OAAO,GAAG;gBACR,MAAM,EAAE,UAAG,yBAAyB,cAAI,KAAK,CAAE;aAChD,CAAA;SACF;QAED,OAAO,IAAA,2BAAY,EAAC;YAClB,GAAG,EAAE,kCAAyB,IAAI,uBAAc;YAChD,KAAK,EAAE,CAAC,wBAAe;gBACrB,CAAC,CAAC,KAAK;gBACP,CAAC;oBACG,IAAA,0BAAgB,EAAC,OAAO,EAAE,MAAM,CAAC;oBACjC,IAAA,4BAAkB,EAAC,cAAc,CAAC;mBAC/B,KAAK,OACT;YACL,OAAO,SAAA;SACR,CAAC,CAAA;KACH;IAED,IAAI,MAAM,KAAK,mBAAW,CAAC,KAAK,EAAE;QAChC,IAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,0BAAiB,CAAA;QACxE,IAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,yBAAgB,CAAA;QAErE,OAAO,IAAA,2BAAY,EAAC;YAClB,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,MAAM;gBACb,CAAC,CAAC;oBACE,WAAW,EAAE,UAAU;oBACvB,mBAAmB,EAAE,IAAA,sBAAY,EAAC,mBAAW,CAAC,KAAK,EAAE,MAAM,CAAC;oBAC5D,eAAe,EAAE,SAAS;iBAC3B;gBACH,CAAC,CAAC;oBACE,WAAW,EAAE,UAAU;oBACvB,eAAe,EAAE,SAAS;iBAC3B;SACN,CAAC,CAAA;KACH;IACD,OAAO,IAAA,2BAAY,EAAC,MAAM,CAAC,CAAA;AAC7B,CAAC,CAAA;AAlDY,QAAA,kBAAkB,sBAkD9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const acsTestPassword: string, acsTestAccount: string, newskitApiXApiKey: string, newskitApiEnvUrl: string, mainGraphqlUrl: string, accountProviderGraphqlUrl: string, acsSessionUrl: string;
|
|
1
|
+
export declare const acsTestPassword: string, acsTestAccount: string, newskitApiXApiKey: string, newskitApiEnvUrl: string, mainGraphqlUrl: string, accountProviderGraphqlUrl: string, acsSessionUrl: string, enableStepUpMfa: boolean;
|
package/dist/cjs/config/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.acsSessionUrl = exports.accountProviderGraphqlUrl = exports.mainGraphqlUrl = exports.newskitApiEnvUrl = exports.newskitApiXApiKey = exports.acsTestAccount = exports.acsTestPassword = void 0;
|
|
3
|
+
exports.enableStepUpMfa = exports.acsSessionUrl = exports.accountProviderGraphqlUrl = exports.mainGraphqlUrl = exports.newskitApiEnvUrl = exports.newskitApiXApiKey = exports.acsTestAccount = exports.acsTestPassword = void 0;
|
|
4
4
|
var config = {
|
|
5
5
|
acsTestPassword: process.env.ACS_TEST_PASSWORD,
|
|
6
6
|
acsTestAccount: process.env.ACS_TEST_ACCOUNT,
|
|
@@ -9,6 +9,7 @@ var config = {
|
|
|
9
9
|
mainGraphqlUrl: process.env.MAIN_GRAPHQL_URL,
|
|
10
10
|
accountProviderGraphqlUrl: process.env.ACCOUNT_PROVIDER_GRAPHQL_URL,
|
|
11
11
|
acsSessionUrl: process.env.ACS_SESSION_URL,
|
|
12
|
+
enableStepUpMfa: process.env.ENABLE_STEPUP_MFA === 'true',
|
|
12
13
|
};
|
|
13
|
-
exports.acsTestPassword = config.acsTestPassword, exports.acsTestAccount = config.acsTestAccount, exports.newskitApiXApiKey = config.newskitApiXApiKey, exports.newskitApiEnvUrl = config.newskitApiEnvUrl, exports.mainGraphqlUrl = config.mainGraphqlUrl, exports.accountProviderGraphqlUrl = config.accountProviderGraphqlUrl, exports.acsSessionUrl = config.acsSessionUrl;
|
|
14
|
+
exports.acsTestPassword = config.acsTestPassword, exports.acsTestAccount = config.acsTestAccount, exports.newskitApiXApiKey = config.newskitApiXApiKey, exports.newskitApiEnvUrl = config.newskitApiEnvUrl, exports.mainGraphqlUrl = config.mainGraphqlUrl, exports.accountProviderGraphqlUrl = config.accountProviderGraphqlUrl, exports.acsSessionUrl = config.acsSessionUrl, exports.enableStepUpMfa = config.enableStepUpMfa;
|
|
14
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":";;;AAAA,IAAM,MAAM,GAAG;IACb,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAA2B;IACxD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAA0B;IACtD,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAA+B;IAC9D,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAA6B;IAC3D,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAA0B;IACtD,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,4BAAsC;IAC7E,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,eAAyB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":";;;AAAA,IAAM,MAAM,GAAG;IACb,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAA2B;IACxD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAA0B;IACtD,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAA+B;IAC9D,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAA6B;IAC3D,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAA0B;IACtD,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,4BAAsC;IAC7E,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,eAAyB;IACpD,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM;CAC1D,CAAA;AAGC,QAAA,eAAe,GAQb,MAAM,kBAPR,QAAA,cAAc,GAOZ,MAAM,iBANR,QAAA,iBAAiB,GAMf,MAAM,oBALR,QAAA,gBAAgB,GAKd,MAAM,mBAJR,QAAA,cAAc,GAIZ,MAAM,iBAHR,QAAA,yBAAyB,GAGvB,MAAM,4BAFR,QAAA,aAAa,GAEX,MAAM,gBADR,QAAA,eAAe,GACb,MAAM,iBAAA"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { RetryLink } from '@apollo/client/link/retry';
|
|
2
2
|
import { ApolloLink } from '@apollo/client';
|
|
3
|
+
import { MainAcsCookie } from 'helpers/session';
|
|
3
4
|
export declare const retryLink: RetryLink;
|
|
4
5
|
export declare const errorLink: ApolloLink;
|
|
6
|
+
export declare const stepUpMfaErrorLink: (handleMfaError?: () => void) => ApolloLink;
|
|
7
|
+
export declare const enableStepUpLink: (requestHeaders: MainAcsCookie, cookie?: string) => ApolloLink;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.errorLink = exports.retryLink = void 0;
|
|
3
|
+
exports.enableStepUpLink = exports.stepUpMfaErrorLink = exports.errorLink = exports.retryLink = void 0;
|
|
4
4
|
var retry_1 = require("@apollo/client/link/retry");
|
|
5
5
|
var error_1 = require("@apollo/client/link/error");
|
|
6
6
|
var client_1 = require("@apollo/client");
|
|
7
7
|
var fetchSessionCookie_1 = require("../../fetchSessionCookie");
|
|
8
8
|
var config_1 = require("../../config");
|
|
9
|
+
var cookie_1 = require("cookie");
|
|
9
10
|
//Error handling for getting a new access token for GraphQL
|
|
10
11
|
exports.retryLink = new retry_1.RetryLink({
|
|
11
12
|
delay: {
|
|
@@ -54,4 +55,29 @@ exports.errorLink = (0, error_1.onError)(function (_a) {
|
|
|
54
55
|
}
|
|
55
56
|
return;
|
|
56
57
|
});
|
|
58
|
+
var stepUpMfaErrorLink = function (handleMfaError) {
|
|
59
|
+
return (0, error_1.onError)(function (_a) {
|
|
60
|
+
var operation = _a.operation, forward = _a.forward, graphQLErrors = _a.graphQLErrors;
|
|
61
|
+
if (graphQLErrors &&
|
|
62
|
+
graphQLErrors.some(function (error) { var _a, _b; return (_b = (_a = error.extensions) === null || _a === void 0 ? void 0 : _a.authErrorCode) === null || _b === void 0 ? void 0 : _b.startsWith('MFA-AUTH'); })) {
|
|
63
|
+
if (handleMfaError !== undefined) {
|
|
64
|
+
handleMfaError();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return forward(operation);
|
|
68
|
+
});
|
|
69
|
+
};
|
|
70
|
+
exports.stepUpMfaErrorLink = stepUpMfaErrorLink;
|
|
71
|
+
var enableStepUpLink = function (requestHeaders, cookie) {
|
|
72
|
+
return new client_1.ApolloLink(function (operation, forward) {
|
|
73
|
+
var stepUpMfaToken = (0, cookie_1.parse)(cookie || '').stepup_access_token;
|
|
74
|
+
var headers = {
|
|
75
|
+
enableStepUpMfa: true,
|
|
76
|
+
Cookie: "".concat(requestHeaders['Cookie'], ";stepup_access_token=").concat(stepUpMfaToken),
|
|
77
|
+
};
|
|
78
|
+
operation.setContext({ headers: headers });
|
|
79
|
+
return forward(operation);
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
exports.enableStepUpLink = enableStepUpLink;
|
|
57
83
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/helpers/externalLinks/index.ts"],"names":[],"mappings":";;;AAAA,mDAAqD;AACrD,mDAAmD;AACnD,yCAAuD;AACvD,+DAA6D;AAC7D,uCAA4C;AAC5C,2DAA2D;AAC9C,QAAA,SAAS,GAAG,IAAI,iBAAS,CAAC;IACrC,KAAK,EAAE;QACL,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,IAAI;QACT,MAAM,EAAE,IAAI;KACb;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,CAAC;KACP;CACF,CAAC,CAAA;AAEW,QAAA,SAAS,GAAe,IAAA,eAAO,EAC1C,UAAC,EAAqC;QAAnC,SAAS,eAAA,EAAE,OAAO,aAAA,EAAE,aAAa,mBAAA;IAClC,IAAI,aAAa,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;KAC7B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/helpers/externalLinks/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { Client, Config } from './types';
|
|
2
|
-
export declare const createApolloClient: (client: Client, cookie?: string, token?: string, accountProviderCookieName?: string, config?: Config) => Promise<import("./types").ApolloHttpClient>;
|
|
2
|
+
export declare const createApolloClient: (client: Client, cookie?: string, token?: string, accountProviderCookieName?: string, config?: Config, handleMfaError?: () => void) => Promise<import("./types").ApolloHttpClient>;
|
|
@@ -1,16 +1,33 @@
|
|
|
1
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
2
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
3
|
+
if (ar || !(i in from)) {
|
|
4
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
5
|
+
ar[i] = from[i];
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
9
|
+
};
|
|
1
10
|
import { createClient } from './createClient';
|
|
2
|
-
import { getAcsCookie, retryLink, errorLink } from '../helpers';
|
|
11
|
+
import { getAcsCookie, retryLink, errorLink, enableStepUpLink, stepUpMfaErrorLink, } from '../helpers';
|
|
3
12
|
import { ClientTypes } from './types';
|
|
4
|
-
import { acsSessionUrl, mainGraphqlUrl, accountProviderGraphqlUrl, newskitApiEnvUrl, newskitApiXApiKey, } from '../config';
|
|
5
|
-
export var createApolloClient = function (client, cookie, token, accountProviderCookieName, config) {
|
|
13
|
+
import { acsSessionUrl, mainGraphqlUrl, accountProviderGraphqlUrl, newskitApiEnvUrl, newskitApiXApiKey, enableStepUpMfa, } from '../config';
|
|
14
|
+
export var createApolloClient = function (client, cookie, token, accountProviderCookieName, config, handleMfaError) {
|
|
6
15
|
if (client === ClientTypes.main) {
|
|
7
16
|
var headers = getAcsCookie(ClientTypes.main, cookie);
|
|
17
|
+
var links = [retryLink, errorLink];
|
|
8
18
|
if (!headers && acsSessionUrl) {
|
|
9
|
-
headers = {
|
|
19
|
+
headers = {
|
|
20
|
+
Cookie: "".concat(accountProviderCookieName, "=").concat(token),
|
|
21
|
+
};
|
|
10
22
|
}
|
|
11
23
|
return createClient({
|
|
12
24
|
uri: accountProviderGraphqlUrl || mainGraphqlUrl,
|
|
13
|
-
links:
|
|
25
|
+
links: !enableStepUpMfa
|
|
26
|
+
? links
|
|
27
|
+
: __spreadArray([
|
|
28
|
+
enableStepUpLink(headers, cookie),
|
|
29
|
+
stepUpMfaErrorLink(handleMfaError)
|
|
30
|
+
], links, true),
|
|
14
31
|
headers: headers,
|
|
15
32
|
});
|
|
16
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createApolloClient.js","sourceRoot":"","sources":["../../../src/apolloClient/createApolloClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"createApolloClient.js","sourceRoot":"","sources":["../../../src/apolloClient/createApolloClient.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EACL,YAAY,EACZ,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAU,WAAW,EAAU,MAAM,SAAS,CAAA;AACrD,OAAO,EACL,aAAa,EACb,cAAc,EACd,yBAAyB,EACzB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,GAChB,MAAM,WAAW,CAAA;AAElB,MAAM,CAAC,IAAM,kBAAkB,GAAG,UAChC,MAAc,EACd,MAAe,EACf,KAAc,EACd,yBAAkC,EAClC,MAAe,EACf,cAA2B;IAE3B,IAAI,MAAM,KAAK,WAAW,CAAC,IAAI,EAAE;QAC/B,IAAI,OAAO,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACpD,IAAM,KAAK,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAEpC,IAAI,CAAC,OAAO,IAAI,aAAa,EAAE;YAC7B,OAAO,GAAG;gBACR,MAAM,EAAE,UAAG,yBAAyB,cAAI,KAAK,CAAE;aAChD,CAAA;SACF;QAED,OAAO,YAAY,CAAC;YAClB,GAAG,EAAE,yBAAyB,IAAI,cAAc;YAChD,KAAK,EAAE,CAAC,eAAe;gBACrB,CAAC,CAAC,KAAK;gBACP,CAAC;oBACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC;oBACjC,kBAAkB,CAAC,cAAc,CAAC;mBAC/B,KAAK,OACT;YACL,OAAO,SAAA;SACR,CAAC,CAAA;KACH;IAED,IAAI,MAAM,KAAK,WAAW,CAAC,KAAK,EAAE;QAChC,IAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAA;QACxE,IAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAA;QAErE,OAAO,YAAY,CAAC;YAClB,GAAG,EAAE,SAAS;YACd,OAAO,EAAE,MAAM;gBACb,CAAC,CAAC;oBACE,WAAW,EAAE,UAAU;oBACvB,mBAAmB,EAAE,YAAY,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;oBAC5D,eAAe,EAAE,SAAS;iBAC3B;gBACH,CAAC,CAAC;oBACE,WAAW,EAAE,UAAU;oBACvB,eAAe,EAAE,SAAS;iBAC3B;SACN,CAAC,CAAA;KACH;IACD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAA;AAC7B,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const acsTestPassword: string, acsTestAccount: string, newskitApiXApiKey: string, newskitApiEnvUrl: string, mainGraphqlUrl: string, accountProviderGraphqlUrl: string, acsSessionUrl: string;
|
|
1
|
+
export declare const acsTestPassword: string, acsTestAccount: string, newskitApiXApiKey: string, newskitApiEnvUrl: string, mainGraphqlUrl: string, accountProviderGraphqlUrl: string, acsSessionUrl: string, enableStepUpMfa: boolean;
|
package/dist/esm/config/index.js
CHANGED
|
@@ -6,6 +6,7 @@ var config = {
|
|
|
6
6
|
mainGraphqlUrl: process.env.MAIN_GRAPHQL_URL,
|
|
7
7
|
accountProviderGraphqlUrl: process.env.ACCOUNT_PROVIDER_GRAPHQL_URL,
|
|
8
8
|
acsSessionUrl: process.env.ACS_SESSION_URL,
|
|
9
|
+
enableStepUpMfa: process.env.ENABLE_STEPUP_MFA === 'true',
|
|
9
10
|
};
|
|
10
|
-
export var acsTestPassword = config.acsTestPassword, acsTestAccount = config.acsTestAccount, newskitApiXApiKey = config.newskitApiXApiKey, newskitApiEnvUrl = config.newskitApiEnvUrl, mainGraphqlUrl = config.mainGraphqlUrl, accountProviderGraphqlUrl = config.accountProviderGraphqlUrl, acsSessionUrl = config.acsSessionUrl;
|
|
11
|
+
export var acsTestPassword = config.acsTestPassword, acsTestAccount = config.acsTestAccount, newskitApiXApiKey = config.newskitApiXApiKey, newskitApiEnvUrl = config.newskitApiEnvUrl, mainGraphqlUrl = config.mainGraphqlUrl, accountProviderGraphqlUrl = config.accountProviderGraphqlUrl, acsSessionUrl = config.acsSessionUrl, enableStepUpMfa = config.enableStepUpMfa;
|
|
11
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,IAAM,MAAM,GAAG;IACb,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAA2B;IACxD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAA0B;IACtD,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAA+B;IAC9D,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAA6B;IAC3D,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAA0B;IACtD,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,4BAAsC;IAC7E,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,eAAyB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,IAAM,MAAM,GAAG;IACb,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAA2B;IACxD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAA0B;IACtD,iBAAiB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAA+B;IAC9D,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,mBAA6B;IAC3D,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAA0B;IACtD,yBAAyB,EAAE,OAAO,CAAC,GAAG,CAAC,4BAAsC;IAC7E,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,eAAyB;IACpD,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,MAAM;CAC1D,CAAA;AAED,MAAM,CACJ,IAAA,eAAe,GAQb,MAAM,gBARO,EACf,cAAc,GAOZ,MAAM,eAPM,EACd,iBAAiB,GAMf,MAAM,kBANS,EACjB,gBAAgB,GAKd,MAAM,iBALQ,EAChB,cAAc,GAIZ,MAAM,eAJM,EACd,yBAAyB,GAGvB,MAAM,0BAHiB,EACzB,aAAa,GAEX,MAAM,cAFK,EACb,eAAe,GACb,MAAM,gBADO,CACP"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { RetryLink } from '@apollo/client/link/retry';
|
|
2
2
|
import { ApolloLink } from '@apollo/client';
|
|
3
|
+
import { MainAcsCookie } from 'helpers/session';
|
|
3
4
|
export declare const retryLink: RetryLink;
|
|
4
5
|
export declare const errorLink: ApolloLink;
|
|
6
|
+
export declare const stepUpMfaErrorLink: (handleMfaError?: () => void) => ApolloLink;
|
|
7
|
+
export declare const enableStepUpLink: (requestHeaders: MainAcsCookie, cookie?: string) => ApolloLink;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { RetryLink } from '@apollo/client/link/retry';
|
|
2
2
|
import { onError } from '@apollo/client/link/error';
|
|
3
|
-
import { Observable } from '@apollo/client';
|
|
3
|
+
import { ApolloLink, Observable } from '@apollo/client';
|
|
4
4
|
import { fetchSessionCookie } from '../../fetchSessionCookie';
|
|
5
5
|
import { acsSessionUrl } from '../../config';
|
|
6
|
+
import { parse } from 'cookie';
|
|
6
7
|
//Error handling for getting a new access token for GraphQL
|
|
7
8
|
export var retryLink = new RetryLink({
|
|
8
9
|
delay: {
|
|
@@ -51,4 +52,27 @@ export var errorLink = onError(function (_a) {
|
|
|
51
52
|
}
|
|
52
53
|
return;
|
|
53
54
|
});
|
|
55
|
+
export var stepUpMfaErrorLink = function (handleMfaError) {
|
|
56
|
+
return onError(function (_a) {
|
|
57
|
+
var operation = _a.operation, forward = _a.forward, graphQLErrors = _a.graphQLErrors;
|
|
58
|
+
if (graphQLErrors &&
|
|
59
|
+
graphQLErrors.some(function (error) { var _a, _b; return (_b = (_a = error.extensions) === null || _a === void 0 ? void 0 : _a.authErrorCode) === null || _b === void 0 ? void 0 : _b.startsWith('MFA-AUTH'); })) {
|
|
60
|
+
if (handleMfaError !== undefined) {
|
|
61
|
+
handleMfaError();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return forward(operation);
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
export var enableStepUpLink = function (requestHeaders, cookie) {
|
|
68
|
+
return new ApolloLink(function (operation, forward) {
|
|
69
|
+
var stepUpMfaToken = parse(cookie || '').stepup_access_token;
|
|
70
|
+
var headers = {
|
|
71
|
+
enableStepUpMfa: true,
|
|
72
|
+
Cookie: "".concat(requestHeaders['Cookie'], ";stepup_access_token=").concat(stepUpMfaToken),
|
|
73
|
+
};
|
|
74
|
+
operation.setContext({ headers: headers });
|
|
75
|
+
return forward(operation);
|
|
76
|
+
});
|
|
77
|
+
};
|
|
54
78
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/helpers/externalLinks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AACnD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/helpers/externalLinks/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@newskit-render/api",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0-alpha.2",
|
|
4
4
|
"description": "helper package for accessing MAIN and NK API data",
|
|
5
5
|
"author": "",
|
|
6
6
|
"license": "UNLICENSED",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
"@babel/core": "7.20.5",
|
|
38
38
|
"@babel/polyfill": "7.12.1",
|
|
39
39
|
"@babel/register": "7.18.9",
|
|
40
|
-
"@types/jest": "
|
|
40
|
+
"@types/jest": "29.5.5",
|
|
41
41
|
"@types/react": "18.0.26",
|
|
42
42
|
"@typescript-eslint/eslint-plugin": "5.51.0",
|
|
43
43
|
"@typescript-eslint/parser": "5.51.0",
|
|
@@ -46,13 +46,14 @@
|
|
|
46
46
|
"eslint-config-prettier": "8.6.0",
|
|
47
47
|
"eslint-plugin-prettier": "4.2.1",
|
|
48
48
|
"eslint-plugin-react": "7.31.11",
|
|
49
|
-
"jest": "
|
|
49
|
+
"jest": "29.7.0",
|
|
50
|
+
"jest-environment-jsdom": "29.7.0",
|
|
50
51
|
"jest-junit": "15.0.0",
|
|
51
52
|
"jest-watch-typeahead": "2.2.1",
|
|
52
53
|
"lint-staged": "13.1.0",
|
|
53
54
|
"prettier": "2.8.1",
|
|
54
55
|
"react": "18.2.0",
|
|
55
|
-
"ts-jest": "
|
|
56
|
+
"ts-jest": "29.1.1",
|
|
56
57
|
"typescript": "4.9.4"
|
|
57
58
|
},
|
|
58
59
|
"peerDependencies": {
|