@equinor/fusion-framework-module-msal 5.1.2 → 6.0.0-next.0
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/CHANGELOG.md +98 -0
- package/README.md +237 -40
- package/dist/esm/MsalClient.interface.js +2 -0
- package/dist/esm/MsalClient.interface.js.map +1 -0
- package/dist/esm/MsalClient.js +215 -0
- package/dist/esm/MsalClient.js.map +1 -0
- package/dist/esm/MsalConfigurator.js +248 -0
- package/dist/esm/MsalConfigurator.js.map +1 -0
- package/dist/esm/MsalProvider.interface.js +2 -0
- package/dist/esm/MsalProvider.interface.js.map +1 -0
- package/dist/esm/MsalProvider.js +525 -0
- package/dist/esm/MsalProvider.js.map +1 -0
- package/dist/esm/MsalProxyProvider.interface.js +2 -0
- package/dist/esm/MsalProxyProvider.interface.js.map +1 -0
- package/dist/esm/__tests__/versioning/resolve-version.test.js +29 -38
- package/dist/esm/__tests__/versioning/resolve-version.test.js.map +1 -1
- package/dist/esm/create-client-log-callback.js +87 -0
- package/dist/esm/create-client-log-callback.js.map +1 -0
- package/dist/esm/create-proxy-provider.js +84 -0
- package/dist/esm/create-proxy-provider.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/module.js +64 -16
- package/dist/esm/module.js.map +1 -1
- package/dist/esm/static.js +32 -2
- package/dist/esm/static.js.map +1 -1
- package/dist/esm/types.js +9 -0
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/util/compare-origin.js +11 -0
- package/dist/esm/util/compare-origin.js.map +1 -0
- package/dist/esm/{v2/client/util/url.js → util/normalize-uri.js} +1 -10
- package/dist/esm/util/normalize-uri.js.map +1 -0
- package/dist/esm/{v2/client/util/browser.js → util/redirect.js} +1 -1
- package/dist/esm/util/redirect.js.map +1 -0
- package/dist/esm/v2/IAuthClient.interface.js +2 -0
- package/dist/esm/v2/IAuthClient.interface.js.map +1 -0
- package/dist/esm/v2/IPublicClientApplication.interface.js +2 -0
- package/dist/esm/v2/IPublicClientApplication.interface.js.map +1 -0
- package/dist/esm/v2/MsalProvider.interface.js +2 -0
- package/dist/esm/v2/MsalProvider.interface.js.map +1 -0
- package/dist/esm/v2/create-proxy-client.js +155 -0
- package/dist/esm/v2/create-proxy-client.js.map +1 -0
- package/dist/esm/v2/create-proxy-provider.js +140 -0
- package/dist/esm/v2/create-proxy-provider.js.map +1 -0
- package/dist/esm/v2/map-account-info.js +18 -0
- package/dist/esm/v2/map-account-info.js.map +1 -0
- package/dist/esm/v2/map-authentication-result.js +22 -0
- package/dist/esm/v2/map-authentication-result.js.map +1 -0
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/versioning/resolve-version.js +28 -16
- package/dist/esm/versioning/resolve-version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/MsalClient.d.ts +141 -0
- package/dist/types/MsalClient.interface.d.ts +103 -0
- package/dist/types/MsalConfigurator.d.ts +147 -0
- package/dist/types/MsalProvider.d.ts +291 -0
- package/dist/types/MsalProvider.interface.d.ts +159 -0
- package/dist/types/MsalProxyProvider.interface.d.ts +52 -0
- package/dist/types/create-client-log-callback.d.ts +38 -0
- package/dist/types/create-proxy-provider.d.ts +19 -0
- package/dist/types/index.d.ts +5 -4
- package/dist/types/module.d.ts +70 -4
- package/dist/types/static.d.ts +32 -1
- package/dist/types/types.d.ts +14 -6
- package/dist/types/util/redirect.d.ts +1 -0
- package/dist/types/v2/IAuthClient.interface.d.ts +68 -0
- package/dist/types/v2/IPublicClientApplication.interface.d.ts +68 -0
- package/dist/types/v2/MsalProvider.interface.d.ts +85 -0
- package/dist/types/v2/create-proxy-client.d.ts +22 -0
- package/dist/types/v2/create-proxy-provider.d.ts +24 -0
- package/dist/types/v2/map-account-info.d.ts +9 -0
- package/dist/types/v2/map-authentication-result.d.ts +9 -0
- package/dist/types/v2/types.d.ts +12 -0
- package/dist/types/version.d.ts +1 -1
- package/dist/types/versioning/resolve-version.d.ts +1 -1
- package/package.json +11 -6
- package/src/MsalClient.interface.ts +121 -0
- package/src/MsalClient.ts +274 -0
- package/src/MsalConfigurator.ts +289 -0
- package/src/MsalProvider.interface.ts +175 -0
- package/src/MsalProvider.ts +597 -0
- package/src/MsalProxyProvider.interface.ts +71 -0
- package/src/__tests__/versioning/resolve-version.test.ts +29 -42
- package/src/create-client-log-callback.ts +101 -0
- package/src/create-proxy-provider.ts +89 -0
- package/src/index.ts +6 -7
- package/src/module.ts +88 -20
- package/src/static.ts +32 -3
- package/src/types.ts +15 -7
- package/src/util/compare-origin.ts +11 -0
- package/src/{v2/client/util/url.ts → util/normalize-uri.ts} +0 -10
- package/src/v2/IAuthClient.interface.ts +91 -0
- package/src/v2/IPublicClientApplication.interface.ts +71 -0
- package/src/v2/MsalProvider.interface.ts +92 -0
- package/src/v2/create-proxy-client.ts +186 -0
- package/src/v2/create-proxy-provider.ts +156 -0
- package/src/v2/map-account-info.ts +20 -0
- package/src/v2/map-authentication-result.ts +24 -0
- package/src/v2/types.ts +12 -0
- package/src/version.ts +1 -1
- package/src/versioning/resolve-version.ts +35 -28
- package/tsconfig.json +3 -0
- package/dist/esm/v2/client/behavior.js +0 -5
- package/dist/esm/v2/client/behavior.js.map +0 -1
- package/dist/esm/v2/client/client.js +0 -142
- package/dist/esm/v2/client/client.js.map +0 -1
- package/dist/esm/v2/client/create-auth-client.js +0 -36
- package/dist/esm/v2/client/create-auth-client.js.map +0 -1
- package/dist/esm/v2/client/index.js +0 -5
- package/dist/esm/v2/client/index.js.map +0 -1
- package/dist/esm/v2/client/log/console.js +0 -45
- package/dist/esm/v2/client/log/console.js.map +0 -1
- package/dist/esm/v2/client/request.js +0 -2
- package/dist/esm/v2/client/request.js.map +0 -1
- package/dist/esm/v2/client/util/browser.js.map +0 -1
- package/dist/esm/v2/client/util/url.js.map +0 -1
- package/dist/esm/v2/configurator.js +0 -42
- package/dist/esm/v2/configurator.js.map +0 -1
- package/dist/esm/v2/index.js +0 -3
- package/dist/esm/v2/index.js.map +0 -1
- package/dist/esm/v2/provider.js +0 -115
- package/dist/esm/v2/provider.js.map +0 -1
- package/dist/types/v2/client/behavior.d.ts +0 -13
- package/dist/types/v2/client/client.d.ts +0 -89
- package/dist/types/v2/client/create-auth-client.d.ts +0 -27
- package/dist/types/v2/client/index.d.ts +0 -5
- package/dist/types/v2/client/log/console.d.ts +0 -28
- package/dist/types/v2/client/request.d.ts +0 -65
- package/dist/types/v2/configurator.d.ts +0 -32
- package/dist/types/v2/index.d.ts +0 -2
- package/dist/types/v2/provider.d.ts +0 -59
- package/src/v2/client/behavior.ts +0 -14
- package/src/v2/client/client.ts +0 -180
- package/src/v2/client/create-auth-client.ts +0 -48
- package/src/v2/client/index.ts +0 -8
- package/src/v2/client/log/console.ts +0 -58
- package/src/v2/client/request.ts +0 -66
- package/src/v2/configurator.ts +0 -58
- package/src/v2/index.ts +0 -2
- package/src/v2/provider.ts +0 -178
- /package/dist/types/{v2/client/util/browser.d.ts → util/compare-origin.d.ts} +0 -0
- /package/dist/types/{v2/client/util/url.d.ts → util/normalize-uri.d.ts} +0 -0
- /package/src/{v2/client/util/browser.ts → util/redirect.ts} +0 -0
|
@@ -1,10 +1,35 @@
|
|
|
1
|
-
import semver, {
|
|
1
|
+
import semver, { SemVer } from 'semver';
|
|
2
2
|
|
|
3
3
|
import { MsalModuleVersion } from '../static';
|
|
4
4
|
|
|
5
5
|
import { VersionError } from './VersionError';
|
|
6
6
|
import type { ResolvedVersion } from './types';
|
|
7
7
|
|
|
8
|
+
import { version as latestVersionString } from '../version';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Maps a version string or object to the corresponding MSAL module enum version.
|
|
12
|
+
*
|
|
13
|
+
* @param version - The version string or SemVer object to map
|
|
14
|
+
* @returns The corresponding MsalModuleVersion enum value
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* mapVersionToEnumVersion('2.1.0') // returns MsalModuleVersion.V2
|
|
19
|
+
* mapVersionToEnumVersion('7.0.0') // returns MsalModuleVersion.V4
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
function mapVersionToEnumVersion(version: string | SemVer): MsalModuleVersion {
|
|
23
|
+
const coercedVersion = semver.coerce(version);
|
|
24
|
+
if (!coercedVersion) {
|
|
25
|
+
throw new Error(`Invalid version: ${version}`);
|
|
26
|
+
}
|
|
27
|
+
if (semver.satisfies(coercedVersion, '<6.0.0')) {
|
|
28
|
+
return MsalModuleVersion.V2;
|
|
29
|
+
}
|
|
30
|
+
return MsalModuleVersion.V4;
|
|
31
|
+
}
|
|
32
|
+
|
|
8
33
|
/**
|
|
9
34
|
* Resolves and validates a version string against the latest available MSAL version.
|
|
10
35
|
*
|
|
@@ -49,28 +74,27 @@ export function resolveVersion(version?: string | SemVer): ResolvedVersion {
|
|
|
49
74
|
const warnings: string[] = [];
|
|
50
75
|
|
|
51
76
|
// Parse the requested version, defaulting to latest if not provided
|
|
52
|
-
|
|
77
|
+
let wantedVersion = version ? semver.coerce(version) : semver.coerce(latestVersionString);
|
|
53
78
|
|
|
54
79
|
// Parse versions using coerce for backward compatibility
|
|
55
|
-
const latestVersion = semver.coerce(
|
|
80
|
+
const latestVersion = semver.coerce(latestVersionString);
|
|
56
81
|
|
|
57
82
|
// This should never happen! Indicates version.ts was not generated correctly
|
|
58
83
|
// This is a critical build-time issue that needs immediate attention
|
|
59
84
|
if (!latestVersion) {
|
|
60
85
|
throw new VersionError(
|
|
61
|
-
`Failed to parse latest version "${
|
|
62
|
-
|
|
63
|
-
|
|
86
|
+
`Failed to parse latest version "${latestVersionString}" - this indicates the version.ts file was not generated correctly. Check for import errors in the build process.`,
|
|
87
|
+
wantedVersion || '<unknown version>',
|
|
88
|
+
latestVersionString,
|
|
64
89
|
);
|
|
65
90
|
}
|
|
66
91
|
|
|
67
|
-
let wantedVersion: SemVer | null = semver.coerce(versionString);
|
|
68
92
|
// Validate that the requested version is a valid semver
|
|
69
93
|
if (!wantedVersion) {
|
|
70
94
|
const missingVersionWarning = new VersionError(
|
|
71
|
-
`Failed to parse requested version "${
|
|
72
|
-
|
|
73
|
-
|
|
95
|
+
`Failed to parse requested version "${version || '<unknown version>'}"`,
|
|
96
|
+
wantedVersion || '<unknown version>',
|
|
97
|
+
latestVersion,
|
|
74
98
|
);
|
|
75
99
|
warnings.push(missingVersionWarning.message);
|
|
76
100
|
wantedVersion = latestVersion;
|
|
@@ -98,24 +122,7 @@ export function resolveVersion(version?: string | SemVer): ResolvedVersion {
|
|
|
98
122
|
|
|
99
123
|
// Find the corresponding enum version for the requested major version
|
|
100
124
|
// This is used for module configuration and feature detection
|
|
101
|
-
|
|
102
|
-
(x) => semver.coerce(x)?.major === wantedVersion.major,
|
|
103
|
-
);
|
|
104
|
-
|
|
105
|
-
// If no matching enum version is found, fall back to the latest available
|
|
106
|
-
// This allows forward compatibility with future versions
|
|
107
|
-
if (!enumVersion) {
|
|
108
|
-
enumVersion = MsalModuleVersion.Latest;
|
|
109
|
-
// Only warn if this is a future version (higher than latest)
|
|
110
|
-
if (wantedVersion.major > latestVersion.major) {
|
|
111
|
-
const fallbackWarning = new VersionError(
|
|
112
|
-
`Requested major version ${wantedVersion.major} is greater than the latest major version ${latestVersion.major}. Falling back to latest version.`,
|
|
113
|
-
wantedVersion,
|
|
114
|
-
latestVersion,
|
|
115
|
-
);
|
|
116
|
-
warnings.push(fallbackWarning.message);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
125
|
+
const enumVersion = mapVersionToEnumVersion(wantedVersion);
|
|
119
126
|
|
|
120
127
|
// Return comprehensive version resolution result
|
|
121
128
|
return {
|
package/tsconfig.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"behavior.js","sourceRoot":"","sources":["../../../../src/v2/client/behavior.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAiB,UAAU,CAAC"}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { PublicClientApplication, } from '@azure/msal-browser';
|
|
2
|
-
import { defaultBehavior } from './behavior';
|
|
3
|
-
/**
|
|
4
|
-
* ### Simple extension of Microsoft`s authentication client.
|
|
5
|
-
*
|
|
6
|
-
* When using this client tenant is **required** since common login is deprecated after all.
|
|
7
|
-
* By providing tenant the user account can simple be extracted from current session *if any*.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```typescript
|
|
11
|
-
* const tenantId = '224123a0d-7990-4ba1-aff3-1dss9569af32';
|
|
12
|
-
* const authPath = '/my-app/auth';
|
|
13
|
-
* const client = new AuthClient(tenantId, {
|
|
14
|
-
* auth: {
|
|
15
|
-
* clientId: '6dab35d4-59ff-4dcc-3356-24479e6fc888',
|
|
16
|
-
* authority: `https://login.microsoftonline.com/${tenantId}`,
|
|
17
|
-
* redirectUri: window.location.origin + '/my-app/auth'
|
|
18
|
-
* }
|
|
19
|
-
* });
|
|
20
|
-
* document.getElementById('login-btn').addEventListener('click', () =>
|
|
21
|
-
* client.login({ scopes: ['data.read'] })
|
|
22
|
-
* .then(console.log)
|
|
23
|
-
* .catch(console.error)
|
|
24
|
-
* );
|
|
25
|
-
* (async() => {
|
|
26
|
-
* if(window.location.path === authPath) {
|
|
27
|
-
* await client.handleRedirectPromise()
|
|
28
|
-
* }
|
|
29
|
-
* )();
|
|
30
|
-
* ```
|
|
31
|
-
* @see [Microsoft Authentication Library](https://github.com/AzureAD/microsoft-authentication-library-for-js)
|
|
32
|
-
* @see [Microsoft identity platform](https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-auth-code-flow)
|
|
33
|
-
*/
|
|
34
|
-
export class AuthClient extends PublicClientApplication {
|
|
35
|
-
tenantId;
|
|
36
|
-
/**
|
|
37
|
-
* @returns
|
|
38
|
-
* Returns account for client tenant that MSAL currently has data for.
|
|
39
|
-
* (the account object is created at the time of successful login)
|
|
40
|
-
*/
|
|
41
|
-
get account() {
|
|
42
|
-
const accounts = this.getAllAccounts();
|
|
43
|
-
const account = accounts.find((a) => a.idTokenClaims?.aud === this.clientId);
|
|
44
|
-
return account;
|
|
45
|
-
}
|
|
46
|
-
get hasValidClaims() {
|
|
47
|
-
const idTokenClaims = this.account?.idTokenClaims;
|
|
48
|
-
if (idTokenClaims) {
|
|
49
|
-
const epoch = Math.ceil(Date.now() / 1000);
|
|
50
|
-
return idTokenClaims.exp > epoch;
|
|
51
|
-
}
|
|
52
|
-
return false;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* @returns - Configured client id
|
|
56
|
-
*/
|
|
57
|
-
get clientId() {
|
|
58
|
-
return this.config.auth?.clientId;
|
|
59
|
-
}
|
|
60
|
-
get requestOrigin() {
|
|
61
|
-
return this.browserStorage.getTemporaryCache('request.origin', true);
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* @param tenantId - tenant id for client domain
|
|
65
|
-
* @param config - required [Configuration](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/src/config/Configuration.ts)
|
|
66
|
-
*/
|
|
67
|
-
constructor(tenantId, config) {
|
|
68
|
-
super(config);
|
|
69
|
-
this.tenantId = tenantId;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* @param silent
|
|
73
|
-
* Attempt to use a hidden iframe to fetch an authorization code from the eSTS if {@link AuthClient.account} or login hint.
|
|
74
|
-
* Provided {@link AuthBehavior} is used as fallback.
|
|
75
|
-
* There are cases where this may not work:
|
|
76
|
-
* - Any browser using a form of Intelligent Tracking Prevention
|
|
77
|
-
* - If there is not an established session with the service
|
|
78
|
-
*
|
|
79
|
-
* @returns
|
|
80
|
-
* Promise that is fulfilled when this function has completed, or rejected if an error was raised.
|
|
81
|
-
*/
|
|
82
|
-
async login(options, behavior = defaultBehavior, silent = true) {
|
|
83
|
-
const loginHint = options?.loginHint || this.account?.username;
|
|
84
|
-
const scopes = options?.scopes || [];
|
|
85
|
-
const request = { ...options, loginHint, scopes };
|
|
86
|
-
if (loginHint && silent) {
|
|
87
|
-
this.logger.verbose('Attempting to login in silently');
|
|
88
|
-
try {
|
|
89
|
-
const res = await this.ssoSilent(request);
|
|
90
|
-
return res;
|
|
91
|
-
}
|
|
92
|
-
catch {
|
|
93
|
-
this.logger.verbose('Silent login attempt failed');
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
this.logger.verbose(`Attempting to login in by [${behavior}]`);
|
|
97
|
-
switch (behavior) {
|
|
98
|
-
case 'popup':
|
|
99
|
-
return this.loginPopup(request);
|
|
100
|
-
case 'redirect': {
|
|
101
|
-
return this.loginRedirect(request);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Will try to silently acquire an access token for a given set of scopes.
|
|
107
|
-
* Will use cached token if available, otherwise will attempt to acquire a new token from the network via refresh token.
|
|
108
|
-
*
|
|
109
|
-
* @param silent
|
|
110
|
-
* Attempt to use a hidden iframe to fetch an authorization code from the eSTS if {@link AuthClient.account} or login hint.
|
|
111
|
-
* Provided {@link AuthBehavior} is used as fallback.
|
|
112
|
-
* There are cases where this may not work:
|
|
113
|
-
* - Any browser using a form of Intelligent Tracking Prevention
|
|
114
|
-
* - If there is not an established session with the service
|
|
115
|
-
*
|
|
116
|
-
* @returns
|
|
117
|
-
* Promise that is fulfilled when this function has completed, or rejected if an error was raised.
|
|
118
|
-
*/
|
|
119
|
-
async acquireToken(options = { scopes: [] }, behavior = defaultBehavior, silent = true) {
|
|
120
|
-
const account = await this.account;
|
|
121
|
-
if (silent && account) {
|
|
122
|
-
this.logger.verbose('Attempting to acquire token in silently');
|
|
123
|
-
try {
|
|
124
|
-
const token = await this.acquireTokenSilent({ account, ...options });
|
|
125
|
-
return token;
|
|
126
|
-
}
|
|
127
|
-
catch (err) {
|
|
128
|
-
this.logger.info('Expected to navigate away from the current page but timeout occurred.');
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
this.logger.verbose(`Attempting to acquire token by [${behavior}]`);
|
|
132
|
-
switch (behavior) {
|
|
133
|
-
case 'popup':
|
|
134
|
-
return this.acquireTokenPopup(options);
|
|
135
|
-
case 'redirect': {
|
|
136
|
-
return this.acquireTokenRedirect(options);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
export default AuthClient;
|
|
142
|
-
//# sourceMappingURL=client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/v2/client/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { AuthClient } from './client';
|
|
2
|
-
import { normalizeUri } from './util/url';
|
|
3
|
-
/**
|
|
4
|
-
* Creates an authentication client with basic config.
|
|
5
|
-
*
|
|
6
|
-
* @example
|
|
7
|
-
* ```typescript
|
|
8
|
-
* const myClient = createClient(
|
|
9
|
-
* '224123a0d-7990-4ba1-aff3-1dss9569af32',
|
|
10
|
-
* '6dab35d4-59ff-4dcc-3356-24479e6fc888',
|
|
11
|
-
* '/my-app/auth'
|
|
12
|
-
* );
|
|
13
|
-
* ```
|
|
14
|
-
*
|
|
15
|
-
* @template T - client type, default to {@link AuthClient}
|
|
16
|
-
*
|
|
17
|
-
* @param tenantId - tenant to for authentication
|
|
18
|
-
* @param clientId - client id for authentication
|
|
19
|
-
* @param redirectUri - callback url for authentication (must match exact configured url in app)
|
|
20
|
-
* @param config - optional [Configuration](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/src/config/Configuration.ts)
|
|
21
|
-
* @param ctor - optional client class
|
|
22
|
-
*/
|
|
23
|
-
export const createAuthClient = (tenantId, clientId, redirectUri, config, ctor) => {
|
|
24
|
-
const auth = {
|
|
25
|
-
clientId,
|
|
26
|
-
redirectUri: normalizeUri(redirectUri || ''),
|
|
27
|
-
navigateToLoginRequestUrl: false,
|
|
28
|
-
authority: `https://login.microsoftonline.com/${tenantId}`,
|
|
29
|
-
...config?.auth,
|
|
30
|
-
};
|
|
31
|
-
const cache = { cacheLocation: 'localStorage', ...config?.cache };
|
|
32
|
-
const system = config?.system;
|
|
33
|
-
return new (ctor || AuthClient)(tenantId, { auth, cache, system });
|
|
34
|
-
};
|
|
35
|
-
export default createAuthClient;
|
|
36
|
-
//# sourceMappingURL=create-auth-client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-auth-client.js","sourceRoot":"","sources":["../../../../src/v2/client/create-auth-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAM1C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,QAAgB,EAChB,QAAgB,EAChB,WAAoB,EACpB,MAAyB,EACzB,IAAyD,EACtD,EAAE;IACL,MAAM,IAAI,GAA0B;QAClC,QAAQ;QACR,WAAW,EAAE,YAAY,CAAC,WAAW,IAAI,EAAE,CAAC;QAC5C,yBAAyB,EAAE,KAAK;QAChC,SAAS,EAAE,qCAAqC,QAAQ,EAAE;QAC1D,GAAG,MAAM,EAAE,IAAI;KAChB,CAAC;IACF,MAAM,KAAK,GAAG,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,CAAC;IAClE,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC;IAC9B,OAAO,IAAI,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAM,CAAC;AAC1E,CAAC,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v2/client/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAoB,MAAM,sBAAsB,CAAC;AAEnF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { Logger, LogLevel } from '@azure/msal-browser';
|
|
2
|
-
/**
|
|
3
|
-
* MSAL client logger for development, production should use telemetry
|
|
4
|
-
*
|
|
5
|
-
* @example
|
|
6
|
-
* ```typescript
|
|
7
|
-
* client.setLogger(new ConsoleLogger());
|
|
8
|
-
* ```
|
|
9
|
-
*/
|
|
10
|
-
export class ConsoleLogger extends Logger {
|
|
11
|
-
/**
|
|
12
|
-
* @param logLevel - 0-1-2-3 (error-warning-info-debug) if not provided all records logged
|
|
13
|
-
*/
|
|
14
|
-
constructor(logLevel) {
|
|
15
|
-
super({
|
|
16
|
-
logLevel,
|
|
17
|
-
loggerCallback: (...args) => this.loggerCallback(...args),
|
|
18
|
-
});
|
|
19
|
-
}
|
|
20
|
-
/** @inheritdoc */
|
|
21
|
-
loggerCallback(lvl, msg, _containsPii) {
|
|
22
|
-
console[this.getLogType(lvl)]('%c FUSION::MSAL %c %s', 'border: 1px solid;', 'border: none;', msg);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Map log level to console log function type
|
|
26
|
-
*
|
|
27
|
-
* @default LogLevel.Verbose
|
|
28
|
-
*/
|
|
29
|
-
getLogType = (lvl) => {
|
|
30
|
-
switch (lvl) {
|
|
31
|
-
case LogLevel.Error:
|
|
32
|
-
return 'error';
|
|
33
|
-
case LogLevel.Warning:
|
|
34
|
-
return 'warn';
|
|
35
|
-
case LogLevel.Info:
|
|
36
|
-
return 'info';
|
|
37
|
-
case LogLevel.Verbose:
|
|
38
|
-
return 'debug';
|
|
39
|
-
default:
|
|
40
|
-
return this.getLogType(LogLevel.Verbose);
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
export default ConsoleLogger;
|
|
45
|
-
//# sourceMappingURL=console.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"console.js","sourceRoot":"","sources":["../../../../../src/v2/client/log/console.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAOvD;;;;;;;GAOG;AACH,MAAM,OAAO,aAAc,SAAQ,MAAM;IACvC;;OAEG;IACH,YAAY,QAAmB;QAC7B,KAAK,CAAC;YACJ,QAAQ;YACR,cAAc,EAAE,CAAC,GAAG,IAAiC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;SACvF,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IACR,cAAc,CAAC,GAAa,EAAE,GAAW,EAAE,YAAsB;QACzE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAC3B,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,GAAG,CACJ,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACO,UAAU,GAAG,CAAC,GAAa,EAAgB,EAAE;QACrD,QAAQ,GAAG,EAAE,CAAC;YACZ,KAAK,QAAQ,CAAC,KAAK;gBACjB,OAAO,OAAO,CAAC;YACjB,KAAK,QAAQ,CAAC,OAAO;gBACnB,OAAO,MAAM,CAAC;YAChB,KAAK,QAAQ,CAAC,IAAI;gBAChB,OAAO,MAAM,CAAC;YAChB,KAAK,QAAQ,CAAC,OAAO;gBACnB,OAAO,OAAO,CAAC;YACjB;gBACE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,CAAC;CACH;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../../src/v2/client/request.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../../../src/v2/client/util/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,OAAO,GAAG,IAAI,EAAE,OAAiB,EAAiB,EAAE;IACxF,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrE,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AACjE,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"url.js","sourceRoot":"","sources":["../../../../../src/v2/client/util/url.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAE,OAAe,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAU,EAAE;IACzF,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;IAChD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAS,EAAE,CAAS,EAAW,EAAE;IAC7D,MAAM,GAAG,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,OAAO,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AACzB,CAAC,CAAC"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import z from 'zod';
|
|
2
|
-
import { BaseConfigBuilder } from '@equinor/fusion-framework-module';
|
|
3
|
-
import { MsalModuleVersion } from '../static';
|
|
4
|
-
import semver from 'semver';
|
|
5
|
-
const VersionSchema = z.string().transform((x) => String(semver.coerce(x)));
|
|
6
|
-
const AuthClientConfigSchema = z.object({
|
|
7
|
-
clientId: z.string(),
|
|
8
|
-
tenantId: z.string(),
|
|
9
|
-
redirectUri: z.string().optional(),
|
|
10
|
-
});
|
|
11
|
-
// NOTE: this might need refinement to validate the provider
|
|
12
|
-
const AuthClientSchema = z.custom();
|
|
13
|
-
const AuthConfigSchema = z.object({
|
|
14
|
-
client: AuthClientConfigSchema.optional(),
|
|
15
|
-
provider: AuthClientSchema.optional(),
|
|
16
|
-
requiresAuth: z.boolean().optional(),
|
|
17
|
-
version: VersionSchema,
|
|
18
|
-
});
|
|
19
|
-
export class AuthConfigurator extends BaseConfigBuilder {
|
|
20
|
-
version = MsalModuleVersion.Latest;
|
|
21
|
-
constructor() {
|
|
22
|
-
super();
|
|
23
|
-
this._set('version', async () => this.version);
|
|
24
|
-
}
|
|
25
|
-
setClientConfig(config) {
|
|
26
|
-
this._set('client', async () => config);
|
|
27
|
-
}
|
|
28
|
-
setRequiresAuth(requiresAuth) {
|
|
29
|
-
this._set('requiresAuth', async () => requiresAuth);
|
|
30
|
-
}
|
|
31
|
-
setProvider(provider) {
|
|
32
|
-
this._set('provider', async () => provider);
|
|
33
|
-
}
|
|
34
|
-
setVersion(version) {
|
|
35
|
-
this._set('version', async () => version);
|
|
36
|
-
}
|
|
37
|
-
async _processConfig(config) {
|
|
38
|
-
// TODO: handle parsing of clientConfig
|
|
39
|
-
return AuthConfigSchema.parseAsync(config);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=configurator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"configurator.js","sourceRoot":"","sources":["../../../src/v2/configurator.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpF,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAEH,4DAA4D;AAC5D,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAiB,CAAC;AAEnD,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,MAAM,EAAE,sBAAsB,CAAC,QAAQ,EAAE;IACzC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EAAE;IACrC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACpC,OAAO,EAAE,aAAa;CACvB,CAAC,CAAC;AAKH,MAAM,OAAO,gBAAiB,SAAQ,iBAA6B;IAC1D,OAAO,GAAG,iBAAiB,CAAC,MAAe,CAAC;IAEnD;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjD,CAAC;IAED,eAAe,CAAC,MAA+C;QAC7D,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,eAAe,CAAC,YAAqB;QACnC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC;IACtD,CAAC;IAED,WAAW,CAAC,QAA2C;QACrD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAkB;QACrC,uCAAuC;QACvC,OAAO,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;CACF"}
|
package/dist/esm/v2/index.js
DELETED
package/dist/esm/v2/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v2/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,gBAAgB,EAAoB,MAAM,gBAAgB,CAAC;AACrF,OAAO,EAAsB,YAAY,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/esm/v2/provider.js
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { createAuthClient, ConsoleLogger } from './client';
|
|
2
|
-
import { MsalModuleVersion } from '../static';
|
|
3
|
-
import { resolveVersion } from '../versioning/resolve-version';
|
|
4
|
-
import { BaseModuleProvider } from '@equinor/fusion-framework-module/provider';
|
|
5
|
-
export class AuthProvider extends BaseModuleProvider {
|
|
6
|
-
_config;
|
|
7
|
-
#client;
|
|
8
|
-
get defaultAccount() {
|
|
9
|
-
return this.client.account;
|
|
10
|
-
}
|
|
11
|
-
/** @deprecated */
|
|
12
|
-
get defaultConfig() {
|
|
13
|
-
return this._config;
|
|
14
|
-
}
|
|
15
|
-
constructor(_config) {
|
|
16
|
-
super({
|
|
17
|
-
version: MsalModuleVersion.Latest,
|
|
18
|
-
config: _config,
|
|
19
|
-
});
|
|
20
|
-
this._config = _config;
|
|
21
|
-
this.#client = this.createClient();
|
|
22
|
-
}
|
|
23
|
-
get client() {
|
|
24
|
-
return this.#client;
|
|
25
|
-
}
|
|
26
|
-
/** @deprecated */
|
|
27
|
-
createClient() {
|
|
28
|
-
const client = createAuthClient(this._config.tenantId, this._config.clientId, this._config.redirectUri);
|
|
29
|
-
// TODO - fix with log streamer
|
|
30
|
-
client.setLogger(new ConsoleLogger(0));
|
|
31
|
-
return client;
|
|
32
|
-
}
|
|
33
|
-
async handleRedirect() {
|
|
34
|
-
const { redirectUri } = this.defaultConfig || {};
|
|
35
|
-
if (window.location.pathname === redirectUri) {
|
|
36
|
-
const logger = this.client.getLogger();
|
|
37
|
-
const { requestOrigin } = this.client;
|
|
38
|
-
await this.client.handleRedirectPromise();
|
|
39
|
-
if (requestOrigin === redirectUri) {
|
|
40
|
-
logger.warning(`detected callback loop from url ${redirectUri}, redirecting to root`);
|
|
41
|
-
window.location.replace('/');
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
window.location.replace(requestOrigin || '/');
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
acquireToken(req) {
|
|
50
|
-
return this.client.acquireToken(req);
|
|
51
|
-
}
|
|
52
|
-
async acquireAccessToken(req) {
|
|
53
|
-
const token = await this.acquireToken(req);
|
|
54
|
-
return token ? token.accessToken : undefined;
|
|
55
|
-
}
|
|
56
|
-
async login(options) {
|
|
57
|
-
// skip login if already logged in and has valid claims
|
|
58
|
-
if (options?.onlyIfRequired && this.client.hasValidClaims) {
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
await this.client.login();
|
|
62
|
-
}
|
|
63
|
-
async logout(options) {
|
|
64
|
-
// TODO - might have an option for popup or redirect
|
|
65
|
-
await this.client.logoutRedirect({
|
|
66
|
-
postLogoutRedirectUri: options?.redirectUri,
|
|
67
|
-
account: this.defaultAccount,
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
createProxyProvider(version) {
|
|
71
|
-
// TODO - check if version is supported and telemetry
|
|
72
|
-
const { enumVersion } = resolveVersion(version);
|
|
73
|
-
switch (enumVersion) {
|
|
74
|
-
case MsalModuleVersion.V2:
|
|
75
|
-
case MsalModuleVersion.Latest:
|
|
76
|
-
return this._createProxyProvider_v2();
|
|
77
|
-
default:
|
|
78
|
-
throw new Error(`Version ${version} is not supported`);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
_createProxyProvider_v2() {
|
|
82
|
-
const proxy = new Proxy(this, {
|
|
83
|
-
get: (target, prop) => {
|
|
84
|
-
switch (prop) {
|
|
85
|
-
case 'version':
|
|
86
|
-
return target.version;
|
|
87
|
-
case 'dispose':
|
|
88
|
-
return target.dispose.bind(target);
|
|
89
|
-
case 'client':
|
|
90
|
-
return target.client;
|
|
91
|
-
// @ts-expect-error this is deprecated since version 5.0.1
|
|
92
|
-
case 'defaultClient':
|
|
93
|
-
console.warn('defaultClient is deprecated, use client instead');
|
|
94
|
-
return target.client;
|
|
95
|
-
case 'defaultAccount':
|
|
96
|
-
return target.defaultAccount;
|
|
97
|
-
case 'defaultConfig':
|
|
98
|
-
return target.defaultConfig;
|
|
99
|
-
case 'acquireToken':
|
|
100
|
-
return target.acquireToken.bind(target);
|
|
101
|
-
case 'acquireAccessToken':
|
|
102
|
-
return target.acquireAccessToken.bind(target);
|
|
103
|
-
case 'login':
|
|
104
|
-
return target.login.bind(target);
|
|
105
|
-
case 'handleRedirect':
|
|
106
|
-
return target.handleRedirect.bind(target);
|
|
107
|
-
case 'createProxyProvider':
|
|
108
|
-
return target.createProxyProvider.bind(target);
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
});
|
|
112
|
-
return proxy;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
//# sourceMappingURL=provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/v2/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* - **Popup:**
|
|
3
|
-
* Use when initiating the process via opening a popup window in the user's browser
|
|
4
|
-
*
|
|
5
|
-
* - **Redirect:**
|
|
6
|
-
* Use when initiating the login process by redirecting the user's browser to the authorization endpoint.
|
|
7
|
-
* This function redirects the page, so any code that follows this function will not execute.
|
|
8
|
-
*/
|
|
9
|
-
export type AuthBehavior = 'popup' | 'redirect';
|
|
10
|
-
/**
|
|
11
|
-
* Default behavior for login and acquisition of token
|
|
12
|
-
*/
|
|
13
|
-
export declare const defaultBehavior: AuthBehavior;
|