@prove-identity/prove-auth 2.4.5 → 2.7.1
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 +35 -0
- package/build/lib/index.d.ts +3 -1
- package/build/lib/index.js +3 -1
- package/build/lib/proveauth/authenticator-builder.d.ts +12 -2
- package/build/lib/proveauth/authenticator-builder.js +114 -7
- package/build/lib/proveauth/device-context-options.d.ts +19 -0
- package/build/lib/proveauth/device-context-options.js +19 -0
- package/build/lib/proveauth/internal/auth-request.d.ts +12 -0
- package/build/lib/proveauth/internal/auth-response.d.ts +1 -0
- package/build/lib/proveauth/internal/auth-session.d.ts +12 -8
- package/build/lib/proveauth/internal/auth-session.js +94 -20
- package/build/lib/proveauth/internal/auth-token-claims.d.ts +4 -0
- package/build/lib/proveauth/internal/device-auth.d.ts +4 -1
- package/build/lib/proveauth/internal/device-passive-register-step.js +10 -9
- package/build/lib/proveauth/internal/device-passive-silent-step.d.ts +5 -3
- package/build/lib/proveauth/internal/device-passive-silent-step.js +30 -11
- package/build/lib/proveauth/internal/device-passive-verify-step.d.ts +2 -0
- package/build/lib/proveauth/internal/device-passive-verify-step.js +18 -0
- package/build/lib/proveauth/internal/device-universal-redirect-steps.js +2 -2
- package/build/lib/proveauth/internal/main-authenticator.d.ts +2 -3
- package/build/lib/proveauth/internal/main-authenticator.js +3 -10
- package/build/lib/proveauth/internal/mobile-instantlink-step.js +6 -4
- package/build/lib/proveauth/internal/platform.d.ts +5 -1
- package/build/lib/proveauth/internal/report-error-step.d.ts +2 -2
- package/build/lib/proveauth/internal/report-error-step.js +5 -5
- package/build/lib/proveauth/internal/settings.d.ts +1 -0
- package/build/lib/proveauth/internal/settings.js +1 -0
- package/build/lib/proveauth/internal/web-device-auth.d.ts +4 -1
- package/build/lib/proveauth/internal/web-device-auth.js +6 -0
- package/build/lib/proveauth/internal/web-platform.d.ts +7 -1
- package/build/lib/proveauth/internal/web-platform.js +11 -2
- package/build/lib/proveauth/user-consent-step.d.ts +7 -0
- package/build/lib/proveauth/user-consent-step.js +2 -0
- package/build/lib/proveauth/version.d.ts +2 -2
- package/build/lib/proveauth/version.js +2 -2
- package/package.json +9 -1
- package/build/bundle/release/prove-auth.js +0 -1
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import AuthSession from './auth-session';
|
|
2
2
|
import AuthStep from './auth-step';
|
|
3
|
+
import UserConsentStep from '../user-consent-step';
|
|
3
4
|
export default class DevicePassiveSilentStep implements AuthStep {
|
|
4
5
|
static readonly NAME = "device/passive/silent";
|
|
5
|
-
private readonly log;
|
|
6
6
|
readonly name = "device/passive/silent";
|
|
7
|
-
private
|
|
8
|
-
|
|
7
|
+
private readonly log;
|
|
8
|
+
private readonly forUPK;
|
|
9
|
+
private readonly userConsentStep;
|
|
10
|
+
constructor(forUPK: boolean, userConsentStep?: UserConsentStep);
|
|
9
11
|
execute(session: AuthSession): Promise<string>;
|
|
10
12
|
private getBackendRegisterEndpoint;
|
|
11
13
|
private getBackendVerifyEndpoint;
|
|
@@ -6,11 +6,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const logger_1 = require("../common/logger");
|
|
7
7
|
const auth_error_1 = __importDefault(require("./auth-error"));
|
|
8
8
|
class DevicePassiveSilentStep {
|
|
9
|
-
constructor(forUPK) {
|
|
10
|
-
this.log = logger_1.LoggerFactory.getLogger('device-passive-silent-step');
|
|
9
|
+
constructor(forUPK, userConsentStep) {
|
|
11
10
|
this.name = DevicePassiveSilentStep.NAME;
|
|
12
|
-
this.
|
|
11
|
+
this.log = logger_1.LoggerFactory.getLogger('device-passive-silent-step');
|
|
13
12
|
this.forUPK = forUPK;
|
|
13
|
+
this.userConsentStep = userConsentStep !== null && userConsentStep !== void 0 ? userConsentStep : {
|
|
14
|
+
execute: () => Promise.resolve({ consentGranted: true }),
|
|
15
|
+
};
|
|
14
16
|
}
|
|
15
17
|
execute(session) {
|
|
16
18
|
this.log.trace('Executing');
|
|
@@ -19,16 +21,29 @@ class DevicePassiveSilentStep {
|
|
|
19
21
|
.getDeviceRegistration()
|
|
20
22
|
.then((registration) => {
|
|
21
23
|
if (registration) {
|
|
22
|
-
|
|
24
|
+
session.embedFpResultToDeviceRegistration(registration).then((registration) => {
|
|
25
|
+
this.verify(session, registration).then(resolve).catch(reject);
|
|
26
|
+
});
|
|
23
27
|
}
|
|
24
28
|
else {
|
|
25
|
-
|
|
26
|
-
.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
this.userConsentStep
|
|
30
|
+
.execute()
|
|
31
|
+
.then((output) => {
|
|
32
|
+
if (output.consentGranted) {
|
|
33
|
+
session.platform.deviceAuth
|
|
34
|
+
.createRegistration({
|
|
35
|
+
namespace: session.namespace,
|
|
36
|
+
endpoint: session.backendOrigin,
|
|
37
|
+
})
|
|
38
|
+
.then((registration) => session.embedFpResultToDeviceRegistration(registration))
|
|
39
|
+
.then((registration) => this.register(session, registration))
|
|
40
|
+
.then(resolve)
|
|
41
|
+
.catch(reject);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
reject(new Error('User denied the consent to register the device'));
|
|
45
|
+
}
|
|
29
46
|
})
|
|
30
|
-
.then((registration) => this.register(session, registration))
|
|
31
|
-
.then(resolve)
|
|
32
47
|
.catch(reject);
|
|
33
48
|
}
|
|
34
49
|
})
|
|
@@ -52,17 +67,20 @@ class DevicePassiveSilentStep {
|
|
|
52
67
|
deviceName: session.platform.getPlatformName(),
|
|
53
68
|
deviceCapabilities: session.platform.getDeviceCapabilities(),
|
|
54
69
|
registrations: [authRegistration],
|
|
70
|
+
signals: registration.getSignals(),
|
|
55
71
|
})
|
|
56
72
|
.then((response) => {
|
|
57
73
|
if (response.error) {
|
|
58
74
|
reject(new auth_error_1.default(response.error.message, response.error.code, response.next, false));
|
|
59
75
|
}
|
|
60
76
|
else {
|
|
61
|
-
const
|
|
77
|
+
const deviceRegisterAuthResp = response;
|
|
78
|
+
const deviceId = deviceRegisterAuthResp.data.deviceId;
|
|
62
79
|
if (!deviceId) {
|
|
63
80
|
reject(new auth_error_1.default('Failed to register device, returned deviceId is null or empty', 0, response.next));
|
|
64
81
|
}
|
|
65
82
|
session.settings.deviceId = deviceId;
|
|
83
|
+
session.settings.fidoPasskeyRegistered = deviceRegisterAuthResp.data.passkey;
|
|
66
84
|
registration.deviceId = deviceId;
|
|
67
85
|
this.log.debug('Device ID: ' + deviceId);
|
|
68
86
|
session.platform.deviceAuth
|
|
@@ -86,6 +104,7 @@ class DevicePassiveSilentStep {
|
|
|
86
104
|
deviceId: registration.deviceId,
|
|
87
105
|
keyId: registration.keyId,
|
|
88
106
|
signature: signature,
|
|
107
|
+
signals: registration.getSignals(),
|
|
89
108
|
})
|
|
90
109
|
.then((response) => {
|
|
91
110
|
if (response.error) {
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import AuthSession from './auth-session';
|
|
2
2
|
import AuthStep from './auth-step';
|
|
3
|
+
import { Signals } from './auth-request';
|
|
3
4
|
export default class DevicePassiveVerifyStep implements AuthStep {
|
|
4
5
|
static readonly NAME = "device/passive/verify";
|
|
5
6
|
private readonly log;
|
|
6
7
|
readonly name = "device/passive/verify";
|
|
7
8
|
execute(session: AuthSession): Promise<string>;
|
|
9
|
+
runFidoVerifyFinish(session: AuthSession, signals?: Signals): Promise<string>;
|
|
8
10
|
}
|
|
@@ -12,6 +12,23 @@ class DevicePassiveVerifyStep {
|
|
|
12
12
|
this.name = DevicePassiveVerifyStep.NAME;
|
|
13
13
|
}
|
|
14
14
|
execute(session) {
|
|
15
|
+
return new Promise((resolve, reject) => {
|
|
16
|
+
session
|
|
17
|
+
.getFingerprintData()
|
|
18
|
+
.then((signal) => {
|
|
19
|
+
const signals = signal ? { fingerprint: signal } : undefined;
|
|
20
|
+
this.runFidoVerifyFinish(session, signals).then(resolve).catch(reject);
|
|
21
|
+
})
|
|
22
|
+
.catch((error) => {
|
|
23
|
+
var errorMsg = `Unexpected error happened during Fingerprint data collection ${error.toString}`;
|
|
24
|
+
this.log.warn(errorMsg);
|
|
25
|
+
this.runFidoVerifyFinish(session, { fingerprint: { error: errorMsg } })
|
|
26
|
+
.then(resolve)
|
|
27
|
+
.catch(reject);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
runFidoVerifyFinish(session, signals) {
|
|
15
32
|
return new Promise((resolve, reject) => {
|
|
16
33
|
const credential = session.credential;
|
|
17
34
|
const assertion = credential.response;
|
|
@@ -30,6 +47,7 @@ class DevicePassiveVerifyStep {
|
|
|
30
47
|
: undefined,
|
|
31
48
|
},
|
|
32
49
|
},
|
|
50
|
+
signals: signals,
|
|
33
51
|
})
|
|
34
52
|
.then((response) => {
|
|
35
53
|
if (response.error) {
|
|
@@ -11,8 +11,8 @@ class DeviceUniversalRedirectBaseStep {
|
|
|
11
11
|
}
|
|
12
12
|
execute(session) {
|
|
13
13
|
return new Promise((resolve, reject) => {
|
|
14
|
-
var _a, _b, _c;
|
|
15
|
-
let redirectUrl = (_c = (_b = (_a = session.claims) === null || _a === void 0 ? void 0 : _a.auth.subs.dev) === null ||
|
|
14
|
+
var _a, _b, _c, _d, _e, _f;
|
|
15
|
+
let redirectUrl = (_f = (_e = (_d = (_c = (_b = (_a = session.claims) === null || _a === void 0 ? void 0 : _a.auth) === null || _b === void 0 ? void 0 : _b.subs) === null || _c === void 0 ? void 0 : _c.dev) === null || _d === void 0 ? void 0 : _d.auths) === null || _e === void 0 ? void 0 : _e.unvsl) === null || _f === void 0 ? void 0 : _f.ftu;
|
|
16
16
|
if (typeof redirectUrl != 'undefined' && redirectUrl) {
|
|
17
17
|
redirectUrl += `?authId=${session.authId}`;
|
|
18
18
|
let upkNext = '';
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import AuthFinishStep from '../auth-finish-step';
|
|
2
2
|
import Authenticator from '../authenticator';
|
|
3
3
|
import Settings from './settings';
|
|
4
|
-
import { Logger } from '../common/logger';
|
|
5
4
|
import Platform from './platform';
|
|
6
5
|
import CancelablePromise from '../common/cancelable-promise';
|
|
7
6
|
import AuthSession from './auth-session';
|
|
@@ -11,11 +10,11 @@ export default class MainAuthenticator implements Authenticator {
|
|
|
11
10
|
static readonly AUTH_EMPTY = "";
|
|
12
11
|
static readonly MAX_ATTEMPTS = 50;
|
|
13
12
|
private readonly steps;
|
|
14
|
-
protected log: Logger;
|
|
13
|
+
protected log: import("../common/logger").Logger;
|
|
15
14
|
protected readonly platform: Platform;
|
|
16
15
|
protected readonly settings: Settings;
|
|
17
16
|
protected readonly authFinishStep?: AuthFinishStep;
|
|
18
|
-
constructor(platform
|
|
17
|
+
constructor(platform: Platform, settings: Settings, finishStep?: AuthFinishStep, steps?: Array<AuthStep>);
|
|
19
18
|
isPasskeyRegistered(): boolean;
|
|
20
19
|
isFidoSupported(): boolean;
|
|
21
20
|
isDeviceRegistered(): boolean;
|
|
@@ -3,7 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const settings_1 = __importDefault(require("./settings"));
|
|
7
6
|
const logger_1 = require("../common/logger");
|
|
8
7
|
const cancelable_promise_1 = __importDefault(require("../common/cancelable-promise"));
|
|
9
8
|
const auth_session_1 = __importDefault(require("./auth-session"));
|
|
@@ -11,18 +10,12 @@ const auth_error_1 = __importDefault(require("./auth-error"));
|
|
|
11
10
|
const report_error_step_1 = __importDefault(require("./report-error-step"));
|
|
12
11
|
const error_code_1 = __importDefault(require("./error-code"));
|
|
13
12
|
class MainAuthenticator {
|
|
14
|
-
constructor(platform,
|
|
13
|
+
constructor(platform, settings, finishStep, steps) {
|
|
15
14
|
this.steps = new Map();
|
|
16
|
-
if (!platform) {
|
|
17
|
-
throw new Error('Implementation of Platform is required');
|
|
18
|
-
}
|
|
19
|
-
if (!storage) {
|
|
20
|
-
throw new Error('Implementation of Storage is required');
|
|
21
|
-
}
|
|
22
15
|
this.log = logger_1.LoggerFactory.getLogger('main-authenticator');
|
|
23
16
|
this.platform = platform;
|
|
24
17
|
this.authFinishStep = finishStep;
|
|
25
|
-
this.settings =
|
|
18
|
+
this.settings = settings;
|
|
26
19
|
if (steps) {
|
|
27
20
|
for (let step of steps) {
|
|
28
21
|
this.steps.set(step.name, step);
|
|
@@ -59,7 +52,7 @@ class MainAuthenticator {
|
|
|
59
52
|
}
|
|
60
53
|
try {
|
|
61
54
|
const session = new auth_session_1.default(this.settings, this.platform, authToken);
|
|
62
|
-
|
|
55
|
+
const processing = this.process(session);
|
|
63
56
|
onCancel(() => processing.cancel());
|
|
64
57
|
processing
|
|
65
58
|
.then(() => {
|
|
@@ -91,15 +91,17 @@ class MobileInstantLinkStep extends auth_status_actions_1.AuthStatusActions {
|
|
|
91
91
|
this.log.info('Simulating user clicking the instant link');
|
|
92
92
|
setTimeout(() => {
|
|
93
93
|
session.platform
|
|
94
|
-
.fetch(session.
|
|
94
|
+
.fetch(session.backendOrigin +
|
|
95
95
|
'/v1/client/mobile/instantlink/finish?token=' +
|
|
96
96
|
encodeURIComponent(session.authToken) +
|
|
97
97
|
'&vfp=test-vfp', {
|
|
98
|
-
mode: 'cors',
|
|
98
|
+
mode: 'no-cors',
|
|
99
99
|
method: 'GET',
|
|
100
100
|
})
|
|
101
|
-
.
|
|
102
|
-
.
|
|
101
|
+
.catch((e) => {
|
|
102
|
+
this.log.error('Calling AuthFinish in test mode has failed: ', auth_error_1.default.extractMessage(e));
|
|
103
|
+
})
|
|
104
|
+
.finally(resolve);
|
|
103
105
|
}, SIMULATED_LINK_CLICK_DELAY);
|
|
104
106
|
}
|
|
105
107
|
else {
|
|
@@ -3,6 +3,7 @@ import { AuthenticatorBuilder } from '@prove-identity/mobile-auth';
|
|
|
3
3
|
import { AuthRequest } from './auth-request';
|
|
4
4
|
import AuthResponse from './auth-response';
|
|
5
5
|
import DeviceAuth, { DeviceRegistration } from './device-auth';
|
|
6
|
+
import { Agent } from '@fingerprintjs/fingerprintjs-pro';
|
|
6
7
|
export declare const DEVICE_CAPABILITY_WEBAUTHN = "webauthn";
|
|
7
8
|
export interface MessageChannel {
|
|
8
9
|
addEventListener: (type: string, listener: (event: any) => void) => void;
|
|
@@ -33,12 +34,15 @@ export default interface Platform {
|
|
|
33
34
|
getUserAgent: () => string | null;
|
|
34
35
|
isFidoSupported: () => boolean;
|
|
35
36
|
fetch: (input: string, init?: RequestInit) => Promise<Response>;
|
|
36
|
-
createMessageChannel: (
|
|
37
|
+
createMessageChannel: (input: string) => MessageChannel;
|
|
37
38
|
createRequestSigner: (session: AuthSessionIntegration) => RequestSigner;
|
|
38
39
|
getDeviceCapabilities: () => string[];
|
|
39
40
|
getMobileAuthBuilder: () => AuthenticatorBuilder<any>;
|
|
40
41
|
exit: (code?: number) => void;
|
|
41
42
|
urlRedirect: (url: string) => void;
|
|
43
|
+
getFpPromise: () => Promise<Agent> | undefined;
|
|
44
|
+
setFpPromise: (fpPromise: Promise<Agent>) => void;
|
|
45
|
+
getOrigin: () => string;
|
|
42
46
|
}
|
|
43
47
|
export declare function stringToArrayBuffer(input: string): ArrayBuffer;
|
|
44
48
|
export declare function arrayBufferToString(input: ArrayBuffer): string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import AuthSession from './auth-session';
|
|
2
2
|
import AuthStep from './auth-step';
|
|
3
3
|
export default class ReportErrorStep implements AuthStep {
|
|
4
|
-
private static readonly
|
|
4
|
+
private static readonly errorMap;
|
|
5
5
|
private readonly logger;
|
|
6
6
|
private _message;
|
|
7
7
|
private _code?;
|
|
@@ -12,5 +12,5 @@ export default class ReportErrorStep implements AuthStep {
|
|
|
12
12
|
get code(): number | undefined;
|
|
13
13
|
get message(): string;
|
|
14
14
|
execute(session: AuthSession): Promise<string>;
|
|
15
|
-
private
|
|
15
|
+
private lookupError;
|
|
16
16
|
}
|
|
@@ -55,9 +55,9 @@ class ReportErrorStep {
|
|
|
55
55
|
}
|
|
56
56
|
else if (!this.nextStep || this.reportable) {
|
|
57
57
|
return new Promise((resolve, reject) => {
|
|
58
|
-
const
|
|
58
|
+
const error = this.lookupError(session.lastStep);
|
|
59
59
|
session
|
|
60
|
-
.fetchFromBackend(`/v1/client/${
|
|
60
|
+
.fetchFromBackend(`/v1/client/${error}/error`, {
|
|
61
61
|
code: this._code ? this._code : undefined,
|
|
62
62
|
message: this._message,
|
|
63
63
|
})
|
|
@@ -71,12 +71,12 @@ class ReportErrorStep {
|
|
|
71
71
|
return Promise.resolve(this.nextStep);
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
|
|
74
|
+
lookupError(last) {
|
|
75
75
|
const defaultKind = 'device/passive';
|
|
76
|
-
return last ? ReportErrorStep.
|
|
76
|
+
return last ? ReportErrorStep.errorMap.get(last) || defaultKind : defaultKind;
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
|
-
ReportErrorStep.
|
|
79
|
+
ReportErrorStep.errorMap = new Map([
|
|
80
80
|
[device_passive_step_1.default.NAME, 'device/passive'],
|
|
81
81
|
[device_passive_silent_step_1.default.NAME, 'device/passive'],
|
|
82
82
|
[device_passive_register_step_1.default.NAME, 'device/fido2'],
|
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import { AuthRegistration } from './auth-request';
|
|
1
|
+
import { AuthRegistration, Signal, Signals } from './auth-request';
|
|
2
2
|
import DeviceAuth, { DeviceRegistration, DeviceRegistrationOptions } from './device-auth';
|
|
3
3
|
export declare class WebDeviceRegistration implements DeviceRegistration {
|
|
4
4
|
private keys?;
|
|
5
5
|
deviceId: string | null;
|
|
6
|
+
fingerprint?: Signal;
|
|
6
7
|
readonly namespace: string;
|
|
7
8
|
readonly keyId: string;
|
|
8
9
|
readonly algorithm: string;
|
|
9
10
|
readonly endpoint: string;
|
|
10
11
|
readonly createdAt: number;
|
|
11
12
|
constructor(options: DeviceRegistrationOptions | any);
|
|
13
|
+
setFpSignal(fingerprintSignal: Signal): void;
|
|
12
14
|
sign(data: string): Promise<string>;
|
|
13
15
|
getPublicKey(): Promise<string>;
|
|
14
16
|
getAuthRegistration(challenge: string): Promise<AuthRegistration>;
|
|
17
|
+
getSignals(): Signals | undefined;
|
|
15
18
|
private initialize;
|
|
16
19
|
private p1363ToDer;
|
|
17
20
|
private lenVal;
|
|
@@ -25,6 +25,9 @@ class WebDeviceRegistration {
|
|
|
25
25
|
this.createdAt = (0, platform_1.getUnixTime)();
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
+
setFpSignal(fingerprintSignal) {
|
|
29
|
+
this.fingerprint = fingerprintSignal;
|
|
30
|
+
}
|
|
28
31
|
sign(data) {
|
|
29
32
|
return new Promise((resolve, reject) => {
|
|
30
33
|
this.initialize()
|
|
@@ -80,6 +83,9 @@ class WebDeviceRegistration {
|
|
|
80
83
|
.catch(reject);
|
|
81
84
|
});
|
|
82
85
|
}
|
|
86
|
+
getSignals() {
|
|
87
|
+
return this.fingerprint ? { fingerprint: this.fingerprint } : undefined;
|
|
88
|
+
}
|
|
83
89
|
initialize() {
|
|
84
90
|
return new Promise((resolve, reject) => {
|
|
85
91
|
if (this.keys) {
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
/// <reference types="webappsec-credential-management" />
|
|
1
2
|
import { AuthenticatorBuilder } from '@prove-identity/mobile-auth';
|
|
2
3
|
import Platform, { AuthSessionIntegration, MessageChannel, RequestSigner } from './platform';
|
|
3
4
|
import WebDeviceAuth from './web-device-auth';
|
|
5
|
+
import { Agent } from '@fingerprintjs/fingerprintjs-pro';
|
|
4
6
|
export declare class WebSocketMessageChannel implements MessageChannel {
|
|
5
7
|
private readonly webSocket;
|
|
6
8
|
constructor(endpointUrl: string);
|
|
@@ -9,6 +11,7 @@ export declare class WebSocketMessageChannel implements MessageChannel {
|
|
|
9
11
|
close(): void;
|
|
10
12
|
}
|
|
11
13
|
export declare class WebPlatform implements Platform {
|
|
14
|
+
private fpPromise;
|
|
12
15
|
readonly webauthn: {
|
|
13
16
|
getCredentials: (options?: CredentialRequestOptions) => Promise<CredentialType | null>;
|
|
14
17
|
createCredentials: (options: CredentialCreationOptions) => Promise<CredentialType | null>;
|
|
@@ -18,7 +21,7 @@ export declare class WebPlatform implements Platform {
|
|
|
18
21
|
getUserAgent(): string | null;
|
|
19
22
|
isFidoSupported(): boolean;
|
|
20
23
|
fetch(input: string, init?: RequestInit): Promise<Response>;
|
|
21
|
-
createMessageChannel(
|
|
24
|
+
createMessageChannel(input: string): MessageChannel;
|
|
22
25
|
createRequestSigner(session: AuthSessionIntegration): RequestSigner;
|
|
23
26
|
private getBrowserName;
|
|
24
27
|
private getBrowserVersion;
|
|
@@ -27,4 +30,7 @@ export declare class WebPlatform implements Platform {
|
|
|
27
30
|
getMobileAuthBuilder(): AuthenticatorBuilder<any>;
|
|
28
31
|
exit(code?: number): void;
|
|
29
32
|
urlRedirect(url: string): void;
|
|
33
|
+
getFpPromise(): Promise<Agent> | undefined;
|
|
34
|
+
setFpPromise(fpPromise: Promise<Agent>): void;
|
|
35
|
+
getOrigin(): string;
|
|
30
36
|
}
|
|
@@ -47,8 +47,8 @@ class WebPlatform {
|
|
|
47
47
|
fetch(input, init) {
|
|
48
48
|
return fetch(input, init);
|
|
49
49
|
}
|
|
50
|
-
createMessageChannel(
|
|
51
|
-
return new WebSocketMessageChannel(
|
|
50
|
+
createMessageChannel(input) {
|
|
51
|
+
return new WebSocketMessageChannel(input);
|
|
52
52
|
}
|
|
53
53
|
createRequestSigner(session) {
|
|
54
54
|
return new request_signer_v3_1.default(session);
|
|
@@ -159,5 +159,14 @@ class WebPlatform {
|
|
|
159
159
|
urlRedirect(url) {
|
|
160
160
|
window.location.replace(url);
|
|
161
161
|
}
|
|
162
|
+
getFpPromise() {
|
|
163
|
+
return this.fpPromise;
|
|
164
|
+
}
|
|
165
|
+
setFpPromise(fpPromise) {
|
|
166
|
+
this.fpPromise = fpPromise;
|
|
167
|
+
}
|
|
168
|
+
getOrigin() {
|
|
169
|
+
return window.location.origin;
|
|
170
|
+
}
|
|
162
171
|
}
|
|
163
172
|
exports.WebPlatform = WebPlatform;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const VERSION = "2.
|
|
2
|
-
export declare const API_CONTRACT_VERSION = "2.
|
|
1
|
+
export declare const VERSION = "2.7.1";
|
|
2
|
+
export declare const API_CONTRACT_VERSION = "2.8.0";
|
|
3
3
|
export declare const USER_AGENT_VERSIONS: string;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.USER_AGENT_VERSIONS = exports.API_CONTRACT_VERSION = exports.VERSION = void 0;
|
|
4
|
-
exports.VERSION = '2.
|
|
5
|
-
exports.API_CONTRACT_VERSION = '2.
|
|
4
|
+
exports.VERSION = '2.7.1';
|
|
5
|
+
exports.API_CONTRACT_VERSION = '2.8.0';
|
|
6
6
|
exports.USER_AGENT_VERSIONS = `ProveAuth/${exports.VERSION} Contract/${exports.API_CONTRACT_VERSION} WEB/1`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prove-identity/prove-auth",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.1",
|
|
4
4
|
"description": "Prove Auth SDK for Web",
|
|
5
5
|
"main": "build/lib/index.js",
|
|
6
6
|
"files": [
|
|
@@ -68,5 +68,13 @@
|
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
70
|
"@prove-identity/mobile-auth": "^3.0.0"
|
|
71
|
+
},
|
|
72
|
+
"peerDependencies": {
|
|
73
|
+
"@fingerprintjs/fingerprintjs-pro": "^3.11.0"
|
|
74
|
+
},
|
|
75
|
+
"peerDependenciesMeta": {
|
|
76
|
+
"@fingerprintjs/fingerprintjs-pro": {
|
|
77
|
+
"optional": true
|
|
78
|
+
}
|
|
71
79
|
}
|
|
72
80
|
}
|