@mocanetwork/airkit 1.5.1 → 1.6.0-beta.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/dist/airkit.cjs.js +250 -229
- package/dist/airkit.esm.js +250 -229
- package/dist/airkit.umd.js +250 -229
- package/dist/types/airService.d.ts +13 -3
- package/dist/types/authMessageService.d.ts +1 -0
- package/dist/types/common/air/messaging/credential.d.ts +23 -31
- package/dist/types/common/const.d.ts +4 -4
- package/dist/types/credentialMessageService.d.ts +9 -34
- package/dist/types/interfaces.d.ts +4 -25
- package/package.json +4 -12
package/dist/airkit.cjs.js
CHANGED
|
@@ -97,7 +97,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
97
97
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
98
98
|
};
|
|
99
99
|
|
|
100
|
-
var version = "1.
|
|
100
|
+
var version = "1.6.0-beta.1";
|
|
101
101
|
var airkitPackage = {
|
|
102
102
|
version: version};
|
|
103
103
|
|
|
@@ -142,6 +142,25 @@ const AirAuthMessageTypes = {
|
|
|
142
142
|
EXPIRED_LOGOUT_REQUEST: "air_auth_expired_logout_request"
|
|
143
143
|
};
|
|
144
144
|
|
|
145
|
+
const AirCredentialMessageTypes = {
|
|
146
|
+
SERVICE_STARTED: "air_credential_service_started",
|
|
147
|
+
INITIALIZATION_REQUEST: "air_credential_initialization_request",
|
|
148
|
+
INITIALIZATION_RESPONSE: "air_credential_initialization_response",
|
|
149
|
+
INIT_AUTH_COMMUNICATION: "air_credential_init_auth_communication",
|
|
150
|
+
CREDENTIAL_AUTH_INITIALIZED: "air_credential_auth_initialized",
|
|
151
|
+
INIT_WALLET_COMMUNICATION: "air_credential_init_wallet_communication",
|
|
152
|
+
CREDENTIAL_WALLET_INITIALIZED: "air_credential_wallet_initialized",
|
|
153
|
+
CREDENTIAL_IFRAME_VISIBILITY_REQUEST: "air_credential_iframe_visibility_request",
|
|
154
|
+
LOGOUT_REQUEST: "air_credential_logout_request",
|
|
155
|
+
LOGOUT_RESPONSE: "air_credential_logout_response",
|
|
156
|
+
// New credential operation message types
|
|
157
|
+
ISSUE_CREDENTIAL_REQUEST: "air_credential_issue_request",
|
|
158
|
+
VERIFY_CREDENTIAL_REQUEST: "air_credential_verify_request",
|
|
159
|
+
// Event messages for communication with parent
|
|
160
|
+
ISSUE_CREDENTIAL_RESPONSE: "air_credential_issue_response",
|
|
161
|
+
VERIFY_CREDENTIAL_RESPONSE: "air_credential_verify_response"
|
|
162
|
+
};
|
|
163
|
+
|
|
145
164
|
const AirRecoveryMessageTypes = {
|
|
146
165
|
SERVICE_STARTED: "air_recovery_service_started",
|
|
147
166
|
INITIALIZATION_REQUEST: "air_recovery_initialization_request",
|
|
@@ -587,9 +606,9 @@ const BUILD_ENV = {
|
|
|
587
606
|
};
|
|
588
607
|
const IFRAME_NAME_PREFIX_SET = [
|
|
589
608
|
"air-wallet",
|
|
590
|
-
"air-recovery",
|
|
591
609
|
"air-credential",
|
|
592
610
|
"air-auth",
|
|
611
|
+
"air-recovery",
|
|
593
612
|
]; // order defines the z-index from highest to lowest
|
|
594
613
|
|
|
595
614
|
const AIR_URLS = {
|
|
@@ -1781,17 +1800,17 @@ var AirWalletProviderMessageTypes;
|
|
|
1781
1800
|
AirWalletProviderMessageTypes["EVENT"] = "JRPC_EVENT";
|
|
1782
1801
|
})(AirWalletProviderMessageTypes || (AirWalletProviderMessageTypes = {}));
|
|
1783
1802
|
|
|
1784
|
-
var _a$
|
|
1803
|
+
var _a$4, _ProviderMessageService_instance;
|
|
1785
1804
|
const ALLOWED_PROVIDER_MESSAGES = [
|
|
1786
1805
|
AirWalletProviderMessageTypes.RESPONSE,
|
|
1787
1806
|
AirWalletProviderMessageTypes.EVENT,
|
|
1788
1807
|
];
|
|
1789
1808
|
class ProviderMessageService extends MessageServiceBase {
|
|
1790
1809
|
static create() {
|
|
1791
|
-
if (!__classPrivateFieldGet(this, _a$
|
|
1792
|
-
__classPrivateFieldSet(this, _a$
|
|
1810
|
+
if (!__classPrivateFieldGet(this, _a$4, "f", _ProviderMessageService_instance)) {
|
|
1811
|
+
__classPrivateFieldSet(this, _a$4, new _a$4("Embed Service: Provider Channel", ALLOWED_PROVIDER_MESSAGES), "f", _ProviderMessageService_instance);
|
|
1793
1812
|
}
|
|
1794
|
-
return __classPrivateFieldGet(this, _a$
|
|
1813
|
+
return __classPrivateFieldGet(this, _a$4, "f", _ProviderMessageService_instance);
|
|
1795
1814
|
}
|
|
1796
1815
|
async open(walletIframe) {
|
|
1797
1816
|
const origin = new URL(walletIframe.src).origin;
|
|
@@ -1807,7 +1826,7 @@ class ProviderMessageService extends MessageServiceBase {
|
|
|
1807
1826
|
return response;
|
|
1808
1827
|
}
|
|
1809
1828
|
}
|
|
1810
|
-
_a$
|
|
1829
|
+
_a$4 = ProviderMessageService;
|
|
1811
1830
|
_ProviderMessageService_instance = { value: void 0 };
|
|
1812
1831
|
|
|
1813
1832
|
var _AirWalletProvider_instances, _AirWalletProvider_providerMessageService, _AirWalletProvider_isWalletInitialized, _AirWalletProvider_getLoginResult, _AirWalletProvider_ensureWallet, _AirWalletProvider_eventListeners, _AirWalletProvider_emit;
|
|
@@ -1918,7 +1937,7 @@ _AirWalletProvider_providerMessageService = new WeakMap(), _AirWalletProvider_is
|
|
|
1918
1937
|
});
|
|
1919
1938
|
};
|
|
1920
1939
|
|
|
1921
|
-
var _a$
|
|
1940
|
+
var _a$3, _AuthMessageService_instance;
|
|
1922
1941
|
const ALLOWED_AUTH_MESSAGES = [
|
|
1923
1942
|
AirAuthMessageTypes.INITIALIZATION_RESPONSE,
|
|
1924
1943
|
AirAuthMessageTypes.LOGIN_RESPONSE,
|
|
@@ -1936,10 +1955,10 @@ const ALLOWED_AUTH_MESSAGES = [
|
|
|
1936
1955
|
];
|
|
1937
1956
|
class AuthMessageService extends MessageServiceBase {
|
|
1938
1957
|
static create() {
|
|
1939
|
-
if (!__classPrivateFieldGet(this, _a$
|
|
1940
|
-
__classPrivateFieldSet(this, _a$
|
|
1958
|
+
if (!__classPrivateFieldGet(this, _a$3, "f", _AuthMessageService_instance)) {
|
|
1959
|
+
__classPrivateFieldSet(this, _a$3, new _a$3("Embed Service: Auth Channel", ALLOWED_AUTH_MESSAGES), "f", _AuthMessageService_instance);
|
|
1941
1960
|
}
|
|
1942
|
-
return __classPrivateFieldGet(this, _a$
|
|
1961
|
+
return __classPrivateFieldGet(this, _a$3, "f", _AuthMessageService_instance);
|
|
1943
1962
|
}
|
|
1944
1963
|
async open(authIframe) {
|
|
1945
1964
|
const origin = new URL(authIframe.src).origin;
|
|
@@ -1964,6 +1983,9 @@ class AuthMessageService extends MessageServiceBase {
|
|
|
1964
1983
|
await this.sendMessage({ type: AirAuthMessageTypes.LOGIN_REQUEST, payload });
|
|
1965
1984
|
return response;
|
|
1966
1985
|
}
|
|
1986
|
+
onLoggedIn() {
|
|
1987
|
+
return firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.LOGIN_RESPONSE && msg.payload?.success === true)));
|
|
1988
|
+
}
|
|
1967
1989
|
async logout() {
|
|
1968
1990
|
const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.LOGOUT_RESPONSE)));
|
|
1969
1991
|
await this.sendMessage({ type: AirAuthMessageTypes.LOGOUT_REQUEST });
|
|
@@ -2048,9 +2070,84 @@ class AuthMessageService extends MessageServiceBase {
|
|
|
2048
2070
|
});
|
|
2049
2071
|
}
|
|
2050
2072
|
}
|
|
2051
|
-
_a$
|
|
2073
|
+
_a$3 = AuthMessageService;
|
|
2052
2074
|
_AuthMessageService_instance = { value: void 0 };
|
|
2053
2075
|
|
|
2076
|
+
var _a$2, _CredentialMessageService_instance;
|
|
2077
|
+
const ALLOWED_CREDENTIAL_MESSAGES = [
|
|
2078
|
+
AirCredentialMessageTypes.INITIALIZATION_RESPONSE,
|
|
2079
|
+
AirCredentialMessageTypes.CREDENTIAL_IFRAME_VISIBILITY_REQUEST,
|
|
2080
|
+
AirCredentialMessageTypes.CREDENTIAL_AUTH_INITIALIZED,
|
|
2081
|
+
AirCredentialMessageTypes.CREDENTIAL_WALLET_INITIALIZED,
|
|
2082
|
+
AirCredentialMessageTypes.LOGOUT_RESPONSE,
|
|
2083
|
+
AirCredentialMessageTypes.ISSUE_CREDENTIAL_RESPONSE,
|
|
2084
|
+
AirCredentialMessageTypes.VERIFY_CREDENTIAL_RESPONSE,
|
|
2085
|
+
];
|
|
2086
|
+
class CredentialMessageService extends MessageServiceBase {
|
|
2087
|
+
static create() {
|
|
2088
|
+
if (!__classPrivateFieldGet(this, _a$2, "f", _CredentialMessageService_instance)) {
|
|
2089
|
+
__classPrivateFieldSet(this, _a$2, new _a$2("Embed Service: Credential Channel", ALLOWED_CREDENTIAL_MESSAGES), "f", _CredentialMessageService_instance);
|
|
2090
|
+
}
|
|
2091
|
+
return __classPrivateFieldGet(this, _a$2, "f", _CredentialMessageService_instance);
|
|
2092
|
+
}
|
|
2093
|
+
async open(iframeElement) {
|
|
2094
|
+
await this._open({
|
|
2095
|
+
window: iframeElement.contentWindow,
|
|
2096
|
+
origin: new URL(iframeElement.src).origin,
|
|
2097
|
+
});
|
|
2098
|
+
}
|
|
2099
|
+
async sendInitializationRequest(payload) {
|
|
2100
|
+
const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirCredentialMessageTypes.INITIALIZATION_RESPONSE)));
|
|
2101
|
+
await this.sendMessage({
|
|
2102
|
+
type: AirCredentialMessageTypes.INITIALIZATION_REQUEST,
|
|
2103
|
+
payload,
|
|
2104
|
+
});
|
|
2105
|
+
return response;
|
|
2106
|
+
}
|
|
2107
|
+
async initAuthCommunication() {
|
|
2108
|
+
const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirCredentialMessageTypes.CREDENTIAL_AUTH_INITIALIZED)));
|
|
2109
|
+
await this.sendMessage({
|
|
2110
|
+
type: AirCredentialMessageTypes.INIT_AUTH_COMMUNICATION,
|
|
2111
|
+
});
|
|
2112
|
+
return response;
|
|
2113
|
+
}
|
|
2114
|
+
async initWalletCommunication() {
|
|
2115
|
+
const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirCredentialMessageTypes.CREDENTIAL_WALLET_INITIALIZED)));
|
|
2116
|
+
await this.sendMessage({
|
|
2117
|
+
type: AirCredentialMessageTypes.INIT_WALLET_COMMUNICATION,
|
|
2118
|
+
});
|
|
2119
|
+
return response;
|
|
2120
|
+
}
|
|
2121
|
+
async logout() {
|
|
2122
|
+
const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirCredentialMessageTypes.LOGOUT_RESPONSE)));
|
|
2123
|
+
await this.sendMessage({
|
|
2124
|
+
type: AirCredentialMessageTypes.LOGOUT_REQUEST,
|
|
2125
|
+
});
|
|
2126
|
+
return response;
|
|
2127
|
+
}
|
|
2128
|
+
async sendIssueCredentialRequest(payload) {
|
|
2129
|
+
const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirCredentialMessageTypes.ISSUE_CREDENTIAL_RESPONSE)));
|
|
2130
|
+
await this.sendMessage({
|
|
2131
|
+
type: AirCredentialMessageTypes.ISSUE_CREDENTIAL_REQUEST,
|
|
2132
|
+
payload,
|
|
2133
|
+
});
|
|
2134
|
+
return response;
|
|
2135
|
+
}
|
|
2136
|
+
async sendVerifyCredentialRequest(payload) {
|
|
2137
|
+
const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirCredentialMessageTypes.VERIFY_CREDENTIAL_RESPONSE)));
|
|
2138
|
+
await this.sendMessage({
|
|
2139
|
+
type: AirCredentialMessageTypes.VERIFY_CREDENTIAL_REQUEST,
|
|
2140
|
+
payload,
|
|
2141
|
+
});
|
|
2142
|
+
return response;
|
|
2143
|
+
}
|
|
2144
|
+
async close() {
|
|
2145
|
+
await super.close();
|
|
2146
|
+
}
|
|
2147
|
+
}
|
|
2148
|
+
_a$2 = CredentialMessageService;
|
|
2149
|
+
_CredentialMessageService_instance = { value: void 0 };
|
|
2150
|
+
|
|
2054
2151
|
class IframeController {
|
|
2055
2152
|
getZIndex() {
|
|
2056
2153
|
for (let i = 0; i < IFRAME_NAME_PREFIX_SET.length; i++) {
|
|
@@ -2501,12 +2598,9 @@ class WindowService {
|
|
|
2501
2598
|
}
|
|
2502
2599
|
var WindowService$1 = WindowService.instance;
|
|
2503
2600
|
|
|
2504
|
-
var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_authMessagingService, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airAuthListener, _AirService_walletMessagingService, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_walletLoggedInResult, _AirService_airWalletProvider, _AirService_recoveryInitialization, _AirService_recoveryMessagingService, _AirService_recoveryIframeController, _AirService_ensureWallet, _AirService_initializeWallet, _AirService_subscribeToWalletEvents, _AirService_triggerEventListeners, _AirService_triggerAirAuthInitialized, _AirService_triggerAirAuthLoggedIn, _AirService_triggerAirAuthLoggedOut, _AirService_triggerWalletInitialized, _AirService_createLoginResult, _AirService_createWalletInitializedResult, _AirService_cleanUpAuth, _AirService_cleanUpWallet, _AirService_ensureRecovery, _AirService_initializeRecovery, _AirService_subscribeToRecoveryEvents, _AirService_cleanUpRecovery;
|
|
2601
|
+
var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_authMessagingService, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airAuthListener, _AirService_walletMessagingService, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_walletLoggedInResult, _AirService_airWalletProvider, _AirService_recoveryInitialization, _AirService_recoveryMessagingService, _AirService_recoveryIframeController, _AirService_credentialsInitialization, _AirService_credentialMessagingService, _AirService_credentialIframeController, _AirService_ensureCredential, _AirService_initializeCredentials, _AirService_subscribeToCredentialEvents, _AirService_cleanUpCredential, _AirService_ensureWallet, _AirService_initializeWallet, _AirService_subscribeToWalletEvents, _AirService_triggerEventListeners, _AirService_triggerAirAuthInitialized, _AirService_triggerAirAuthLoggedIn, _AirService_triggerAirAuthLoggedOut, _AirService_triggerWalletInitialized, _AirService_createLoginResult, _AirService_createWalletInitializedResult, _AirService_cleanUpAuth, _AirService_cleanUpWallet, _AirService_ensureRecovery, _AirService_initializeRecovery, _AirService_subscribeToRecoveryEvents, _AirService_cleanUpRecovery;
|
|
2505
2602
|
const airKitVersion = airkitPackage.version;
|
|
2506
2603
|
class AirService {
|
|
2507
|
-
// #credentialsInitialization?: Promise<void>;
|
|
2508
|
-
// #credentialMessagingService: CredentialMessageService;
|
|
2509
|
-
// #credentialIframeController: IframeController;
|
|
2510
2604
|
constructor({ partnerId }) {
|
|
2511
2605
|
_AirService_instances.add(this);
|
|
2512
2606
|
_AirService_loginResult.set(this, void 0);
|
|
@@ -2526,11 +2620,14 @@ class AirService {
|
|
|
2526
2620
|
_AirService_recoveryInitialization.set(this, void 0);
|
|
2527
2621
|
_AirService_recoveryMessagingService.set(this, void 0);
|
|
2528
2622
|
_AirService_recoveryIframeController.set(this, void 0);
|
|
2623
|
+
_AirService_credentialsInitialization.set(this, void 0);
|
|
2624
|
+
_AirService_credentialMessagingService.set(this, void 0);
|
|
2625
|
+
_AirService_credentialIframeController.set(this, void 0);
|
|
2529
2626
|
__classPrivateFieldSet(this, _AirService_partnerId, partnerId, "f");
|
|
2530
2627
|
__classPrivateFieldSet(this, _AirService_authMessagingService, AuthMessageService.create(), "f");
|
|
2531
2628
|
__classPrivateFieldSet(this, _AirService_walletMessagingService, WalletMessageService.create(), "f");
|
|
2532
2629
|
__classPrivateFieldSet(this, _AirService_recoveryMessagingService, RecoveryMessageService.create(), "f");
|
|
2533
|
-
|
|
2630
|
+
__classPrivateFieldSet(this, _AirService_credentialMessagingService, CredentialMessageService.create(), "f");
|
|
2534
2631
|
__classPrivateFieldSet(this, _AirService_airWalletProvider, new AirWalletProvider({
|
|
2535
2632
|
isWalletInitialized: () => this.isWalletInitialized,
|
|
2536
2633
|
ensureWallet: __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).bind(this),
|
|
@@ -2642,7 +2739,7 @@ class AirService {
|
|
|
2642
2739
|
__classPrivateFieldSet(this, _AirService_isAuthInitialized, true, "f");
|
|
2643
2740
|
__classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerAirAuthInitialized).call(this, { rehydrated: result.rehydrated });
|
|
2644
2741
|
if (result.preloadWallet)
|
|
2645
|
-
this.preloadWallet();
|
|
2742
|
+
void this.preloadWallet();
|
|
2646
2743
|
// rehydrated auth session
|
|
2647
2744
|
if (result.rehydrated) {
|
|
2648
2745
|
__classPrivateFieldSet(this, _AirService_loginResult, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createLoginResult).call(this, result), "f");
|
|
@@ -2821,7 +2918,7 @@ class AirService {
|
|
|
2821
2918
|
if (!this.isLoggedIn)
|
|
2822
2919
|
throw new Error("No active session to logout");
|
|
2823
2920
|
// Clear up credentials first to avoid issues with wallet and auth messaging services
|
|
2824
|
-
|
|
2921
|
+
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpCredential).call(this);
|
|
2825
2922
|
await Promise.all([
|
|
2826
2923
|
__classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this),
|
|
2827
2924
|
__classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpRecovery).call(this),
|
|
@@ -2834,7 +2931,7 @@ class AirService {
|
|
|
2834
2931
|
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this);
|
|
2835
2932
|
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpAuth).call(this);
|
|
2836
2933
|
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpRecovery).call(this);
|
|
2837
|
-
|
|
2934
|
+
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpCredential).call(this);
|
|
2838
2935
|
this.clearEventListeners();
|
|
2839
2936
|
}
|
|
2840
2937
|
/**
|
|
@@ -2845,8 +2942,6 @@ class AirService {
|
|
|
2845
2942
|
* - "logged_in": User successfully logged in
|
|
2846
2943
|
* - "logged_out": User logged out
|
|
2847
2944
|
* - "wallet_initialized": Wallet initialization completed
|
|
2848
|
-
* - "credential_issuance_finished": Credential issuance finished (success or failure)
|
|
2849
|
-
* - "credential_verification_finished": Credential verification finished (success or failure)
|
|
2850
2945
|
*
|
|
2851
2946
|
* @param listener The event listener function
|
|
2852
2947
|
*/
|
|
@@ -2861,216 +2956,139 @@ class AirService {
|
|
|
2861
2956
|
clearEventListeners() {
|
|
2862
2957
|
__classPrivateFieldSet(this, _AirService_airAuthListener, [], "f");
|
|
2863
2958
|
}
|
|
2959
|
+
async preloadCredential() {
|
|
2960
|
+
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureCredential).call(this);
|
|
2961
|
+
}
|
|
2962
|
+
async issueCredential({ authToken, issuerDid, credentialId, credentialSubject, }) {
|
|
2963
|
+
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureCredential).call(this);
|
|
2964
|
+
const { payload } = await __classPrivateFieldGet(this, _AirService_credentialMessagingService, "f").sendIssueCredentialRequest({
|
|
2965
|
+
partnerToken: authToken,
|
|
2966
|
+
issuerDid,
|
|
2967
|
+
credentialId,
|
|
2968
|
+
credentialSubject,
|
|
2969
|
+
});
|
|
2970
|
+
if (payload.closeDApp) {
|
|
2971
|
+
window.close();
|
|
2972
|
+
}
|
|
2973
|
+
if (payload.success === false) {
|
|
2974
|
+
throw new AirServiceError(payload.errorName, payload.errorMessage);
|
|
2975
|
+
}
|
|
2976
|
+
}
|
|
2977
|
+
async verifyCredential({ authToken, programId, redirectUrl, }) {
|
|
2978
|
+
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureCredential).call(this);
|
|
2979
|
+
const { payload } = await __classPrivateFieldGet(this, _AirService_credentialMessagingService, "f").sendVerifyCredentialRequest({
|
|
2980
|
+
partnerToken: authToken,
|
|
2981
|
+
programId,
|
|
2982
|
+
redirectUrl,
|
|
2983
|
+
});
|
|
2984
|
+
if (payload.success === false) {
|
|
2985
|
+
throw new AirServiceError(payload.errorName, payload.errorMessage);
|
|
2986
|
+
}
|
|
2987
|
+
return payload.verificationResult;
|
|
2988
|
+
}
|
|
2864
2989
|
}
|
|
2865
|
-
_AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _AirService_enableLogging = new WeakMap(), _AirService_partnerId = new WeakMap(), _AirService_authMessagingService = new WeakMap(), _AirService_authIframeController = new WeakMap(), _AirService_isAuthInitialized = new WeakMap(), _AirService_airAuthListener = new WeakMap(), _AirService_walletMessagingService = new WeakMap(), _AirService_walletIframeController = new WeakMap(), _AirService_walletInitialization = new WeakMap(), _AirService_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_recoveryInitialization = new WeakMap(), _AirService_recoveryMessagingService = new WeakMap(), _AirService_recoveryIframeController = new WeakMap(), _AirService_instances = new WeakSet(),
|
|
2866
|
-
|
|
2867
|
-
|
|
2868
|
-
|
|
2869
|
-
|
|
2870
|
-
|
|
2871
|
-
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2879
|
-
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
|
|
2884
|
-
|
|
2885
|
-
|
|
2886
|
-
|
|
2887
|
-
|
|
2888
|
-
|
|
2889
|
-
|
|
2890
|
-
|
|
2891
|
-
|
|
2892
|
-
|
|
2893
|
-
|
|
2894
|
-
|
|
2895
|
-
|
|
2896
|
-
|
|
2897
|
-
|
|
2898
|
-
|
|
2899
|
-
|
|
2900
|
-
|
|
2901
|
-
|
|
2902
|
-
|
|
2903
|
-
|
|
2904
|
-
|
|
2905
|
-
|
|
2906
|
-
|
|
2907
|
-
|
|
2908
|
-
|
|
2909
|
-
|
|
2910
|
-
|
|
2911
|
-
|
|
2912
|
-
|
|
2913
|
-
|
|
2914
|
-
|
|
2915
|
-
|
|
2916
|
-
|
|
2917
|
-
|
|
2918
|
-
|
|
2919
|
-
|
|
2920
|
-
|
|
2921
|
-
|
|
2922
|
-
|
|
2923
|
-
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
|
|
2927
|
-
|
|
2928
|
-
|
|
2929
|
-
|
|
2930
|
-
|
|
2931
|
-
|
|
2932
|
-
|
|
2933
|
-
|
|
2934
|
-
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
|
|
2938
|
-
|
|
2939
|
-
|
|
2940
|
-
|
|
2941
|
-
|
|
2942
|
-
|
|
2943
|
-
|
|
2944
|
-
|
|
2945
|
-
|
|
2946
|
-
|
|
2947
|
-
|
|
2948
|
-
|
|
2949
|
-
|
|
2950
|
-
|
|
2951
|
-
|
|
2952
|
-
|
|
2953
|
-
|
|
2954
|
-
|
|
2955
|
-
|
|
2956
|
-
|
|
2957
|
-
|
|
2958
|
-
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2962
|
-
|
|
2963
|
-
|
|
2964
|
-
|
|
2965
|
-
// const credentailIframeOrigin = new URL(credentialUrl).origin;
|
|
2966
|
-
// try {
|
|
2967
|
-
// const credentialInitRequestPromise = new Promise<void>((resolve, reject) => {
|
|
2968
|
-
// const handleCredentialMessage = async (ev: MessageEvent) => {
|
|
2969
|
-
// if (ev.origin !== credentailIframeOrigin) return;
|
|
2970
|
-
// if (ev.data === AirCredentialMessageTypes.SERVICE_STARTED) {
|
|
2971
|
-
// window.removeEventListener("message", handleCredentialMessage);
|
|
2972
|
-
// const { payload } = await this.#credentialMessagingService.sendInitializationRequest({
|
|
2973
|
-
// partnerId: this.#partnerId,
|
|
2974
|
-
// enableLogging: this.#enableLogging,
|
|
2975
|
-
// sdkVersion: airKitVersion,
|
|
2976
|
-
// enableAutomation: this.shouldEnableAutomation(),
|
|
2977
|
-
// });
|
|
2978
|
-
// if (payload.success === true) {
|
|
2979
|
-
// resolve();
|
|
2980
|
-
// } else {
|
|
2981
|
-
// reject(new AirServiceError(payload.errorName, payload.errorMessage));
|
|
2982
|
-
// }
|
|
2983
|
-
// }
|
|
2984
|
-
// };
|
|
2985
|
-
// window.addEventListener("message", handleCredentialMessage);
|
|
2986
|
-
// });
|
|
2987
|
-
// this.#credentialIframeController = new IframeController("air-credential", credentialUrl);
|
|
2988
|
-
// this.#credentialIframeController.createIframe();
|
|
2989
|
-
// log.info(credentialUrl, "url loaded");
|
|
2990
|
-
//
|
|
2991
|
-
// await this.#credentialMessagingService.open(this.#credentialIframeController.iframeElement);
|
|
2992
|
-
// this.#subscribeToCredentialEvents();
|
|
2993
|
-
// await credentialInitRequestPromise;
|
|
2994
|
-
//
|
|
2995
|
-
// await this.#authMessagingService.initCredentialCommunication();
|
|
2996
|
-
// await this.#credentialMessagingService.initAuthCommunication();
|
|
2997
|
-
// log.info("[Embed] Credential auth channel initialized");
|
|
2998
|
-
//
|
|
2999
|
-
// await this.#ensureWallet();
|
|
3000
|
-
// await this.#walletMessagingService.initCredentialCommunication();
|
|
3001
|
-
// await this.#credentialMessagingService.initWalletCommunication();
|
|
3002
|
-
// log.info("[Embed] Credential wallet channel initialized");
|
|
3003
|
-
//
|
|
3004
|
-
// log.info("Credential service initialized successfully");
|
|
3005
|
-
// } catch (error) {
|
|
3006
|
-
// log.error("Error initializing credentials", error);
|
|
3007
|
-
// await this.#cleanUpCredential();
|
|
3008
|
-
// throw error;
|
|
3009
|
-
// }
|
|
3010
|
-
// }
|
|
3011
|
-
// #subscribeToCredentialEvents() {
|
|
3012
|
-
// this.#credentialMessagingService.messages$.subscribe(async (message: AirCredentialMessage) => {
|
|
3013
|
-
// switch (message.type) {
|
|
3014
|
-
// case AirCredentialMessageTypes.CREDENTIAL_IFRAME_VISIBILITY_REQUEST: {
|
|
3015
|
-
// this.#credentialIframeController.setIframeVisibility(message.payload.visible);
|
|
3016
|
-
// this.#credentialIframeController.updateIframeState();
|
|
3017
|
-
// break;
|
|
3018
|
-
// }
|
|
3019
|
-
// case AirCredentialMessageTypes.ISSUE_CREDENTIAL_RESPONSE: {
|
|
3020
|
-
// // Trigger general event for issue credential completion
|
|
3021
|
-
// this.#triggerEventListeners({
|
|
3022
|
-
// event: "credential_issuance_finished",
|
|
3023
|
-
// data: {
|
|
3024
|
-
// success: true,
|
|
3025
|
-
// },
|
|
3026
|
-
// });
|
|
3027
|
-
// break;
|
|
3028
|
-
// }
|
|
3029
|
-
// case AirCredentialMessageTypes.VERIFY_CREDENTIAL_RESPONSE: {
|
|
3030
|
-
// // Trigger general event for verify credential completion
|
|
3031
|
-
// this.#triggerEventListeners({
|
|
3032
|
-
// event: "credential_verification_finished",
|
|
3033
|
-
// data: {
|
|
3034
|
-
// success: true,
|
|
3035
|
-
// verificationResults: message.payload.verificationResults,
|
|
3036
|
-
// },
|
|
3037
|
-
// });
|
|
3038
|
-
// break;
|
|
3039
|
-
// }
|
|
3040
|
-
// }
|
|
3041
|
-
// });
|
|
3042
|
-
// }
|
|
3043
|
-
// async #cleanUpCredential(): Promise<void> {
|
|
3044
|
-
// if (!this.#isAuthInitialized) return;
|
|
3045
|
-
//
|
|
3046
|
-
// const credentialIframeElement = this.#credentialIframeController?.iframeElement;
|
|
3047
|
-
// if (
|
|
3048
|
-
// isElement(credentialIframeElement) &&
|
|
3049
|
-
// window.document.body.contains(credentialIframeElement)
|
|
3050
|
-
// ) {
|
|
3051
|
-
// await this.#credentialMessagingService.logout();
|
|
3052
|
-
// this.#credentialIframeController.destroy();
|
|
3053
|
-
// this.#credentialIframeController = undefined;
|
|
3054
|
-
// }
|
|
3055
|
-
//
|
|
3056
|
-
// const walletIframeElement = this.#walletIframeController?.iframeElement;
|
|
3057
|
-
// if (isElement(walletIframeElement) && window.document.body.contains(walletIframeElement)) {
|
|
3058
|
-
// await this.#walletMessagingService.resetCredentialCommunication();
|
|
3059
|
-
// }
|
|
3060
|
-
//
|
|
3061
|
-
// const authIframeElement = this.#authIframeController?.iframeElement;
|
|
3062
|
-
// if (isElement(authIframeElement) && window.document.body.contains(authIframeElement)) {
|
|
3063
|
-
// await this.#authMessagingService.resetCredentialCommunication();
|
|
3064
|
-
// }
|
|
3065
|
-
//
|
|
3066
|
-
// await this.#credentialMessagingService.close();
|
|
3067
|
-
// this.#credentialsInitialization = undefined;
|
|
3068
|
-
// }
|
|
3069
|
-
async function _AirService_ensureWallet(option) {
|
|
2990
|
+
_AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _AirService_enableLogging = new WeakMap(), _AirService_partnerId = new WeakMap(), _AirService_authMessagingService = new WeakMap(), _AirService_authIframeController = new WeakMap(), _AirService_isAuthInitialized = new WeakMap(), _AirService_airAuthListener = new WeakMap(), _AirService_walletMessagingService = new WeakMap(), _AirService_walletIframeController = new WeakMap(), _AirService_walletInitialization = new WeakMap(), _AirService_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_recoveryInitialization = new WeakMap(), _AirService_recoveryMessagingService = new WeakMap(), _AirService_recoveryIframeController = new WeakMap(), _AirService_credentialsInitialization = new WeakMap(), _AirService_credentialMessagingService = new WeakMap(), _AirService_credentialIframeController = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_ensureCredential = async function _AirService_ensureCredential() {
|
|
2991
|
+
if (!this.isInitialized)
|
|
2992
|
+
throw new Error("Service not initialized");
|
|
2993
|
+
void __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
|
|
2994
|
+
try {
|
|
2995
|
+
if (!__classPrivateFieldGet(this, _AirService_credentialsInitialization, "f"))
|
|
2996
|
+
__classPrivateFieldSet(this, _AirService_credentialsInitialization, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_initializeCredentials).call(this), "f");
|
|
2997
|
+
await __classPrivateFieldGet(this, _AirService_credentialsInitialization, "f");
|
|
2998
|
+
}
|
|
2999
|
+
catch (error) {
|
|
3000
|
+
__classPrivateFieldSet(this, _AirService_credentialsInitialization, null, "f");
|
|
3001
|
+
log.error("Error ensuring credentials", error);
|
|
3002
|
+
throw error;
|
|
3003
|
+
}
|
|
3004
|
+
}, _AirService_initializeCredentials = async function _AirService_initializeCredentials() {
|
|
3005
|
+
if (__classPrivateFieldGet(this, _AirService_credentialsInitialization, "f")) {
|
|
3006
|
+
throw new Error("Already initializing credentials");
|
|
3007
|
+
}
|
|
3008
|
+
const { credentialUrl } = AIR_URLS[__classPrivateFieldGet(this, _AirService_buildEnv, "f")];
|
|
3009
|
+
const credentialIframeOrigin = new URL(credentialUrl).origin;
|
|
3010
|
+
let closeDApp = false;
|
|
3011
|
+
try {
|
|
3012
|
+
const credentialInitRequestPromise = new Promise((resolve, reject) => {
|
|
3013
|
+
const handleCredentialMessage = async (ev) => {
|
|
3014
|
+
if (ev.origin !== credentialIframeOrigin)
|
|
3015
|
+
return;
|
|
3016
|
+
if (ev.data === AirCredentialMessageTypes.SERVICE_STARTED) {
|
|
3017
|
+
window.removeEventListener("message", handleCredentialMessage);
|
|
3018
|
+
const { payload } = await __classPrivateFieldGet(this, _AirService_credentialMessagingService, "f").sendInitializationRequest({
|
|
3019
|
+
partnerId: __classPrivateFieldGet(this, _AirService_partnerId, "f"),
|
|
3020
|
+
enableLogging: __classPrivateFieldGet(this, _AirService_enableLogging, "f"),
|
|
3021
|
+
sdkVersion: airKitVersion,
|
|
3022
|
+
partnerDAppUrl: window.location.href,
|
|
3023
|
+
enableAutomation: this.shouldEnableAutomation(),
|
|
3024
|
+
});
|
|
3025
|
+
if (payload.success === true) {
|
|
3026
|
+
resolve();
|
|
3027
|
+
}
|
|
3028
|
+
else {
|
|
3029
|
+
closeDApp = !!payload.closeDApp;
|
|
3030
|
+
reject(new AirServiceError(payload.errorName, payload.errorMessage));
|
|
3031
|
+
}
|
|
3032
|
+
}
|
|
3033
|
+
};
|
|
3034
|
+
window.addEventListener("message", handleCredentialMessage);
|
|
3035
|
+
});
|
|
3036
|
+
__classPrivateFieldSet(this, _AirService_credentialIframeController, new IframeController("air-credential", credentialUrl), "f");
|
|
3037
|
+
__classPrivateFieldGet(this, _AirService_credentialIframeController, "f").createIframe();
|
|
3038
|
+
log.info(credentialUrl, "url loaded");
|
|
3039
|
+
await __classPrivateFieldGet(this, _AirService_credentialMessagingService, "f").open(__classPrivateFieldGet(this, _AirService_credentialIframeController, "f").iframeElement);
|
|
3040
|
+
__classPrivateFieldGet(this, _AirService_instances, "m", _AirService_subscribeToCredentialEvents).call(this);
|
|
3041
|
+
await credentialInitRequestPromise;
|
|
3042
|
+
await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").initCredentialCommunication();
|
|
3043
|
+
await __classPrivateFieldGet(this, _AirService_credentialMessagingService, "f").initAuthCommunication();
|
|
3044
|
+
log.info("[Embed] Credential auth channel initialized");
|
|
3045
|
+
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
|
|
3046
|
+
await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").initCredentialCommunication();
|
|
3047
|
+
await __classPrivateFieldGet(this, _AirService_credentialMessagingService, "f").initWalletCommunication();
|
|
3048
|
+
log.info("[Embed] Credential wallet channel initialized");
|
|
3049
|
+
log.info("Credential service initialized successfully");
|
|
3050
|
+
}
|
|
3051
|
+
catch (error) {
|
|
3052
|
+
log.error("Error initializing credentials", error);
|
|
3053
|
+
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpCredential).call(this);
|
|
3054
|
+
if (closeDApp) {
|
|
3055
|
+
window.close();
|
|
3056
|
+
}
|
|
3057
|
+
throw error;
|
|
3058
|
+
}
|
|
3059
|
+
}, _AirService_subscribeToCredentialEvents = function _AirService_subscribeToCredentialEvents() {
|
|
3060
|
+
__classPrivateFieldGet(this, _AirService_credentialMessagingService, "f").messages$.subscribe(async (message) => {
|
|
3061
|
+
switch (message.type) {
|
|
3062
|
+
case AirCredentialMessageTypes.CREDENTIAL_IFRAME_VISIBILITY_REQUEST: {
|
|
3063
|
+
__classPrivateFieldGet(this, _AirService_credentialIframeController, "f").setIframeVisibility(message.payload.visible);
|
|
3064
|
+
__classPrivateFieldGet(this, _AirService_credentialIframeController, "f").updateIframeState();
|
|
3065
|
+
break;
|
|
3066
|
+
}
|
|
3067
|
+
}
|
|
3068
|
+
});
|
|
3069
|
+
}, _AirService_cleanUpCredential = async function _AirService_cleanUpCredential() {
|
|
3070
|
+
if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
|
|
3071
|
+
return;
|
|
3072
|
+
const credentialIframeElement = __classPrivateFieldGet(this, _AirService_credentialIframeController, "f")?.iframeElement;
|
|
3073
|
+
if (isElement(credentialIframeElement) &&
|
|
3074
|
+
window.document.body.contains(credentialIframeElement)) {
|
|
3075
|
+
await __classPrivateFieldGet(this, _AirService_credentialMessagingService, "f").logout();
|
|
3076
|
+
__classPrivateFieldGet(this, _AirService_credentialIframeController, "f").destroy();
|
|
3077
|
+
__classPrivateFieldSet(this, _AirService_credentialIframeController, undefined, "f");
|
|
3078
|
+
}
|
|
3079
|
+
const walletIframeElement = __classPrivateFieldGet(this, _AirService_walletIframeController, "f")?.iframeElement;
|
|
3080
|
+
if (isElement(walletIframeElement) && window.document.body.contains(walletIframeElement)) {
|
|
3081
|
+
await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").resetCredentialCommunication();
|
|
3082
|
+
}
|
|
3083
|
+
const authIframeElement = __classPrivateFieldGet(this, _AirService_authIframeController, "f")?.iframeElement;
|
|
3084
|
+
if (isElement(authIframeElement) && window.document.body.contains(authIframeElement)) {
|
|
3085
|
+
await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").resetCredentialCommunication();
|
|
3086
|
+
}
|
|
3087
|
+
await __classPrivateFieldGet(this, _AirService_credentialMessagingService, "f").close();
|
|
3088
|
+
__classPrivateFieldSet(this, _AirService_credentialsInitialization, undefined, "f");
|
|
3089
|
+
}, _AirService_ensureWallet = async function _AirService_ensureWallet(option) {
|
|
3070
3090
|
if (!this.isInitialized)
|
|
3071
3091
|
throw new Error("Service not initialized");
|
|
3072
|
-
if (!this.isLoggedIn && !option?.skipWalletLogin)
|
|
3073
|
-
throw new Error("User not logged in");
|
|
3074
3092
|
if (!__classPrivateFieldGet(this, _AirService_walletInitialization, "f"))
|
|
3075
3093
|
__classPrivateFieldSet(this, _AirService_walletInitialization, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_initializeWallet).call(this, option), "f");
|
|
3076
3094
|
if (__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"))
|
|
@@ -3129,6 +3147,9 @@ async function _AirService_ensureWallet(option) {
|
|
|
3129
3147
|
await __classPrivateFieldGet(this, _AirService_airWalletProvider, "f").startEventMessageListening(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
|
|
3130
3148
|
const walletInitPromise = __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").onInitialized();
|
|
3131
3149
|
await walletInitRequestPromise;
|
|
3150
|
+
if (!this.isLoggedIn && !option?.skipWalletLogin) {
|
|
3151
|
+
await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").onLoggedIn();
|
|
3152
|
+
}
|
|
3132
3153
|
await __classPrivateFieldGet(this, _AirService_authMessagingService, "f").initWalletCommunication();
|
|
3133
3154
|
await __classPrivateFieldGet(this, _AirService_walletMessagingService, "f").initAuthCommunication(option?.skipWalletLogin ?? false);
|
|
3134
3155
|
const walletInitResult = await walletInitPromise;
|