@mocanetwork/airkit 0.6.0-beta.0 → 1.1.0-beta.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/dist/airkit.cjs.js +483 -991
- package/dist/airkit.esm.js +472 -991
- package/dist/airkit.umd.js +483 -991
- package/dist/types/airService.d.ts +19 -12
- package/dist/types/airWalletProvider.d.ts +11 -3
- package/dist/types/common/air/error/codes.d.ts +138 -0
- package/dist/types/common/air/{error.d.ts → error/index.d.ts} +3 -2
- package/dist/types/common/air/error/types.d.ts +3 -0
- package/dist/types/common/provider/types.d.ts +6 -1
- package/dist/types/common/realm/messaging/auth.d.ts +40 -40
- package/dist/types/common/realm/messaging/provider.d.ts +21 -3
- package/dist/types/common/realm/messaging/types.d.ts +40 -66
- package/dist/types/common/realm/partner/config.d.ts +6 -12
- package/dist/types/common/realm/user/types.d.ts +9 -6
- package/dist/types/common/realm/wallet/index.d.ts +0 -2
- package/dist/types/common/types.d.ts +3 -0
- package/dist/types/common/utils.d.ts +5 -3
- package/dist/types/error.d.ts +46 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interfaces.d.ts +15 -47
- package/dist/types/messageService.d.ts +13 -15
- package/package.json +1 -2
- package/dist/types/common/provider/error.d.ts +0 -16
- package/dist/types/common/realm/error/auth.d.ts +0 -1
- package/dist/types/common/realm/error/types.d.ts +0 -1
package/dist/airkit.cjs.js
CHANGED
|
@@ -34,117 +34,6 @@ function __extends(d, b) {
|
|
|
34
34
|
}
|
|
35
35
|
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
36
36
|
}
|
|
37
|
-
function __awaiter(thisArg, _arguments, P, generator) {
|
|
38
|
-
function adopt(value) {
|
|
39
|
-
return value instanceof P ? value : new P(function (resolve) {
|
|
40
|
-
resolve(value);
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
44
|
-
function fulfilled(value) {
|
|
45
|
-
try {
|
|
46
|
-
step(generator.next(value));
|
|
47
|
-
} catch (e) {
|
|
48
|
-
reject(e);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
function rejected(value) {
|
|
52
|
-
try {
|
|
53
|
-
step(generator["throw"](value));
|
|
54
|
-
} catch (e) {
|
|
55
|
-
reject(e);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
function step(result) {
|
|
59
|
-
result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
|
|
60
|
-
}
|
|
61
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
function __generator(thisArg, body) {
|
|
65
|
-
var _ = {
|
|
66
|
-
label: 0,
|
|
67
|
-
sent: function () {
|
|
68
|
-
if (t[0] & 1) throw t[1];
|
|
69
|
-
return t[1];
|
|
70
|
-
},
|
|
71
|
-
trys: [],
|
|
72
|
-
ops: []
|
|
73
|
-
},
|
|
74
|
-
f,
|
|
75
|
-
y,
|
|
76
|
-
t,
|
|
77
|
-
g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
78
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function () {
|
|
79
|
-
return this;
|
|
80
|
-
}), g;
|
|
81
|
-
function verb(n) {
|
|
82
|
-
return function (v) {
|
|
83
|
-
return step([n, v]);
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
function step(op) {
|
|
87
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
88
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
89
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
90
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
91
|
-
switch (op[0]) {
|
|
92
|
-
case 0:
|
|
93
|
-
case 1:
|
|
94
|
-
t = op;
|
|
95
|
-
break;
|
|
96
|
-
case 4:
|
|
97
|
-
_.label++;
|
|
98
|
-
return {
|
|
99
|
-
value: op[1],
|
|
100
|
-
done: false
|
|
101
|
-
};
|
|
102
|
-
case 5:
|
|
103
|
-
_.label++;
|
|
104
|
-
y = op[1];
|
|
105
|
-
op = [0];
|
|
106
|
-
continue;
|
|
107
|
-
case 7:
|
|
108
|
-
op = _.ops.pop();
|
|
109
|
-
_.trys.pop();
|
|
110
|
-
continue;
|
|
111
|
-
default:
|
|
112
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
113
|
-
_ = 0;
|
|
114
|
-
continue;
|
|
115
|
-
}
|
|
116
|
-
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
117
|
-
_.label = op[1];
|
|
118
|
-
break;
|
|
119
|
-
}
|
|
120
|
-
if (op[0] === 6 && _.label < t[1]) {
|
|
121
|
-
_.label = t[1];
|
|
122
|
-
t = op;
|
|
123
|
-
break;
|
|
124
|
-
}
|
|
125
|
-
if (t && _.label < t[2]) {
|
|
126
|
-
_.label = t[2];
|
|
127
|
-
_.ops.push(op);
|
|
128
|
-
break;
|
|
129
|
-
}
|
|
130
|
-
if (t[2]) _.ops.pop();
|
|
131
|
-
_.trys.pop();
|
|
132
|
-
continue;
|
|
133
|
-
}
|
|
134
|
-
op = body.call(thisArg, _);
|
|
135
|
-
} catch (e) {
|
|
136
|
-
op = [6, e];
|
|
137
|
-
y = 0;
|
|
138
|
-
} finally {
|
|
139
|
-
f = t = 0;
|
|
140
|
-
}
|
|
141
|
-
if (op[0] & 5) throw op[1];
|
|
142
|
-
return {
|
|
143
|
-
value: op[0] ? op[1] : undefined,
|
|
144
|
-
done: true
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
37
|
function __values(o) {
|
|
149
38
|
var s = typeof Symbol === "function" && Symbol.iterator,
|
|
150
39
|
m = s && o[s],
|
|
@@ -192,75 +81,6 @@ function __spreadArray(to, from, pack) {
|
|
|
192
81
|
}
|
|
193
82
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
194
83
|
}
|
|
195
|
-
function __await(v) {
|
|
196
|
-
return this instanceof __await ? (this.v = v, this) : new __await(v);
|
|
197
|
-
}
|
|
198
|
-
function __asyncGenerator(thisArg, _arguments, generator) {
|
|
199
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
200
|
-
var g = generator.apply(thisArg, _arguments || []),
|
|
201
|
-
i,
|
|
202
|
-
q = [];
|
|
203
|
-
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () {
|
|
204
|
-
return this;
|
|
205
|
-
}, i;
|
|
206
|
-
function awaitReturn(f) {
|
|
207
|
-
return function (v) {
|
|
208
|
-
return Promise.resolve(v).then(f, reject);
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
function verb(n, f) {
|
|
212
|
-
if (g[n]) {
|
|
213
|
-
i[n] = function (v) {
|
|
214
|
-
return new Promise(function (a, b) {
|
|
215
|
-
q.push([n, v, a, b]) > 1 || resume(n, v);
|
|
216
|
-
});
|
|
217
|
-
};
|
|
218
|
-
if (f) i[n] = f(i[n]);
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
function resume(n, v) {
|
|
222
|
-
try {
|
|
223
|
-
step(g[n](v));
|
|
224
|
-
} catch (e) {
|
|
225
|
-
settle(q[0][3], e);
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
function step(r) {
|
|
229
|
-
r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
|
|
230
|
-
}
|
|
231
|
-
function fulfill(value) {
|
|
232
|
-
resume("next", value);
|
|
233
|
-
}
|
|
234
|
-
function reject(value) {
|
|
235
|
-
resume("throw", value);
|
|
236
|
-
}
|
|
237
|
-
function settle(f, v) {
|
|
238
|
-
if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
function __asyncValues(o) {
|
|
242
|
-
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
243
|
-
var m = o[Symbol.asyncIterator],
|
|
244
|
-
i;
|
|
245
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () {
|
|
246
|
-
return this;
|
|
247
|
-
}, i);
|
|
248
|
-
function verb(n) {
|
|
249
|
-
i[n] = o[n] && function (v) {
|
|
250
|
-
return new Promise(function (resolve, reject) {
|
|
251
|
-
v = o[n](v), settle(resolve, reject, v.done, v.value);
|
|
252
|
-
});
|
|
253
|
-
};
|
|
254
|
-
}
|
|
255
|
-
function settle(resolve, reject, d, v) {
|
|
256
|
-
Promise.resolve(v).then(function (v) {
|
|
257
|
-
resolve({
|
|
258
|
-
value: v,
|
|
259
|
-
done: d
|
|
260
|
-
});
|
|
261
|
-
}, reject);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
84
|
function __classPrivateFieldGet(receiver, state, kind, f) {
|
|
265
85
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
266
86
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
@@ -298,8 +118,11 @@ const AirAuthMessageTypes = {
|
|
|
298
118
|
SETUP_WALLET_RESPONSE: "air_auth_setup_wallet_response",
|
|
299
119
|
SIGN_SIWE_MESSAGE_REQUEST: "air_auth_sign_siwe_message_request",
|
|
300
120
|
SIGN_SIWE_MESSAGE_RESPONSE: "air_auth_sign_siwe_message_response",
|
|
121
|
+
CROSS_PARTNER_TOKEN_REQUEST: "air_auth_cross_partner_token_request",
|
|
122
|
+
CROSS_PARTNER_TOKEN_RESPONSE: "air_auth_cross_partner_token_response",
|
|
301
123
|
LOGOUT_REQUEST: "air_auth_logout_request",
|
|
302
|
-
LOGOUT_RESPONSE: "air_auth_logout_response"
|
|
124
|
+
LOGOUT_RESPONSE: "air_auth_logout_response",
|
|
125
|
+
RESET_WALLET_COMMUNICATION: "air_auth_reset_wallet_communication"
|
|
303
126
|
};
|
|
304
127
|
|
|
305
128
|
const AirMessageTypes = {
|
|
@@ -308,10 +131,8 @@ const AirMessageTypes = {
|
|
|
308
131
|
INITIALIZATION_RESPONSE: "air_initialization_response",
|
|
309
132
|
INIT_AUTH_COMMUNICATION: "air_init_auth_communication",
|
|
310
133
|
WALLET_INITIALIZED: "air_wallet_initialized",
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
LOGIN_CLAIM_STATE: "air_login_claim_state",
|
|
314
|
-
CLOSE_MODAL: "air_close_modal",
|
|
134
|
+
CLAIM_ID_REQUEST: "air_claim_id_request",
|
|
135
|
+
CLAIM_ID_RESPONSE: "air_claim_id_response",
|
|
315
136
|
DEPLOY_SMART_ACCOUNT_REQUEST: "air_deploy_smart_account_request",
|
|
316
137
|
DEPLOY_SMART_ACCOUNT_RESPONSE: "air_deploy_smart_account_response",
|
|
317
138
|
GRANT_PERMISSIONS_REQUEST: "air_grant_permissions_request",
|
|
@@ -320,54 +141,159 @@ const AirMessageTypes = {
|
|
|
320
141
|
EXECUTE_ACTION_RESPONSE: "air_execute_action_response",
|
|
321
142
|
REVOKE_PERMISSIONS_REQUEST: "air_revoke_permissions_request",
|
|
322
143
|
REVOKE_PERMISSIONS_RESPONSE: "air_revoke_permissions_response",
|
|
323
|
-
WALLET_IFRAME_VISIBILITY_REQUEST: "air_wallet_iframe_visibility_request"
|
|
144
|
+
WALLET_IFRAME_VISIBILITY_REQUEST: "air_wallet_iframe_visibility_request",
|
|
145
|
+
IS_SMART_ACCOUNT_DEPLOYED_REQUEST: "air_is_smart_account_deployed_request",
|
|
146
|
+
IS_SMART_ACCOUNT_DEPLOYED_RESPONSE: "air_is_smart_account_deployed_response",
|
|
147
|
+
LOGOUT_REQUEST: "air_logout_request",
|
|
148
|
+
LOGOUT_RESPONSE: "air_logout_response",
|
|
149
|
+
SETUP_MFA_REQUEST: "air_setup_mfa_request"
|
|
324
150
|
};
|
|
325
151
|
|
|
326
|
-
|
|
327
|
-
|
|
152
|
+
class BaseError extends Error {
|
|
153
|
+
constructor(name, message, options = {}) {
|
|
154
|
+
const {
|
|
155
|
+
cause,
|
|
156
|
+
context
|
|
157
|
+
} = options;
|
|
158
|
+
super(message || name);
|
|
159
|
+
this.name = name;
|
|
160
|
+
this.stack = cause?.stack;
|
|
161
|
+
this.cause = cause;
|
|
162
|
+
this.context = context;
|
|
163
|
+
}
|
|
164
|
+
toJSON() {
|
|
165
|
+
return {
|
|
166
|
+
name: this.name,
|
|
167
|
+
message: this.message,
|
|
168
|
+
context: this.context,
|
|
169
|
+
cause: this.cause
|
|
170
|
+
};
|
|
171
|
+
}
|
|
328
172
|
}
|
|
329
173
|
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
var length, i, keys;
|
|
343
|
-
if (Array.isArray(a)) {
|
|
344
|
-
length = a.length;
|
|
345
|
-
if (length != b.length) return false;
|
|
346
|
-
for (i = length; i-- !== 0;) if (!equal(a[i], b[i])) return false;
|
|
347
|
-
return true;
|
|
348
|
-
}
|
|
349
|
-
if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
|
|
350
|
-
if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
|
|
351
|
-
if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
|
|
352
|
-
keys = Object.keys(a);
|
|
353
|
-
length = keys.length;
|
|
354
|
-
if (length !== Object.keys(b).length) return false;
|
|
355
|
-
for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
|
|
356
|
-
for (i = length; i-- !== 0;) {
|
|
357
|
-
var key = keys[i];
|
|
358
|
-
if (!equal(a[key], b[key])) return false;
|
|
359
|
-
}
|
|
360
|
-
return true;
|
|
174
|
+
class AirServiceError extends BaseError {
|
|
175
|
+
static from(error) {
|
|
176
|
+
if (error instanceof AirServiceError) {
|
|
177
|
+
return error;
|
|
178
|
+
}
|
|
179
|
+
else if (error instanceof Object && "message" in error) {
|
|
180
|
+
if (error.message === "User cancelled login") {
|
|
181
|
+
return new AirServiceError("USER_CANCELLED", error.message);
|
|
182
|
+
}
|
|
183
|
+
return new AirServiceError("UNKNOWN_ERROR", error.message.toString());
|
|
184
|
+
}
|
|
185
|
+
return new AirServiceError("UNKNOWN_ERROR");
|
|
361
186
|
}
|
|
362
|
-
|
|
363
|
-
// true if both NaN, false otherwise
|
|
364
|
-
return a !== a && b !== b;
|
|
365
|
-
};
|
|
366
|
-
return fastDeepEqual;
|
|
367
187
|
}
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
188
|
+
class ProviderRpcError extends Error {
|
|
189
|
+
constructor(message) {
|
|
190
|
+
super(message);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
class UserRejectedRequestError extends ProviderRpcError {
|
|
194
|
+
constructor() {
|
|
195
|
+
super(...arguments);
|
|
196
|
+
this.code = 4001;
|
|
197
|
+
this.name = "UserRejectedRequestError";
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
class UnauthorizedProviderError extends ProviderRpcError {
|
|
201
|
+
constructor() {
|
|
202
|
+
super(...arguments);
|
|
203
|
+
this.code = 4100;
|
|
204
|
+
this.name = "UnauthorizedProviderError";
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
class UnsupportedProviderMethodError extends ProviderRpcError {
|
|
208
|
+
constructor() {
|
|
209
|
+
super(...arguments);
|
|
210
|
+
this.code = 4200;
|
|
211
|
+
this.name = "UnsupportedProviderMethodError";
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
class ProviderDisconnectedError extends ProviderRpcError {
|
|
215
|
+
constructor() {
|
|
216
|
+
super(...arguments);
|
|
217
|
+
this.code = 4900;
|
|
218
|
+
this.name = "ProviderDisconnectedError";
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
class ChainDisconnectedError extends ProviderRpcError {
|
|
222
|
+
constructor() {
|
|
223
|
+
super(...arguments);
|
|
224
|
+
this.code = 4901;
|
|
225
|
+
this.name = "ChainDisconnectedError";
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
class SwitchChainError extends ProviderRpcError {
|
|
229
|
+
constructor() {
|
|
230
|
+
super(...arguments);
|
|
231
|
+
this.code = 4902;
|
|
232
|
+
this.name = "SwitchChainError";
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
class InvalidRequestRpcError extends ProviderRpcError {
|
|
236
|
+
constructor() {
|
|
237
|
+
super(...arguments);
|
|
238
|
+
this.code = -32600;
|
|
239
|
+
this.name = "InvalidRequestRpcError";
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
class MethodNotFoundRpcError extends ProviderRpcError {
|
|
243
|
+
constructor() {
|
|
244
|
+
super(...arguments);
|
|
245
|
+
this.code = -32601;
|
|
246
|
+
this.name = "MethodNotFoundRpcError";
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
class InvalidParamsRpcError extends ProviderRpcError {
|
|
250
|
+
constructor() {
|
|
251
|
+
super(...arguments);
|
|
252
|
+
this.code = -32602;
|
|
253
|
+
this.name = "InvalidParamsRpcError";
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
class InternalRpcError extends ProviderRpcError {
|
|
257
|
+
constructor() {
|
|
258
|
+
super(...arguments);
|
|
259
|
+
this.code = -32603;
|
|
260
|
+
this.name = "InternalRpcError";
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
function ensureProviderRpcError(value) {
|
|
264
|
+
if (value instanceof ProviderRpcError) {
|
|
265
|
+
return value;
|
|
266
|
+
}
|
|
267
|
+
if (typeof value === "object" &&
|
|
268
|
+
value !== null &&
|
|
269
|
+
"errorCode" in value &&
|
|
270
|
+
"errorMessage" in value) {
|
|
271
|
+
if (typeof value.errorCode === "number" && typeof value.errorMessage === "string") {
|
|
272
|
+
switch (value.errorCode) {
|
|
273
|
+
case 4001:
|
|
274
|
+
return new UserRejectedRequestError(value.errorMessage);
|
|
275
|
+
case 4100:
|
|
276
|
+
return new UnauthorizedProviderError(value.errorMessage);
|
|
277
|
+
case 4200:
|
|
278
|
+
return new UnsupportedProviderMethodError(value.errorMessage);
|
|
279
|
+
case 4900:
|
|
280
|
+
return new ProviderDisconnectedError(value.errorMessage);
|
|
281
|
+
case 4901:
|
|
282
|
+
return new ChainDisconnectedError(value.errorMessage);
|
|
283
|
+
case 4902:
|
|
284
|
+
return new SwitchChainError(value.errorMessage);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
let stringified = "[Unable to stringify the thrown value]";
|
|
289
|
+
try {
|
|
290
|
+
stringified = JSON.stringify(value);
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
// ignoring failed stringify
|
|
294
|
+
}
|
|
295
|
+
return new InternalRpcError(`Invalid value for ProviderRpcError: ${stringified}`);
|
|
296
|
+
}
|
|
371
297
|
|
|
372
298
|
function isFunction(value) {
|
|
373
299
|
return typeof value === 'function';
|
|
@@ -1049,609 +975,58 @@ var AnonymousSubject = function (_super) {
|
|
|
1049
975
|
AnonymousSubject.prototype.error = function (err) {
|
|
1050
976
|
var _a, _b;
|
|
1051
977
|
(_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.error) === null || _b === undefined ? undefined : _b.call(_a, err);
|
|
1052
|
-
};
|
|
1053
|
-
AnonymousSubject.prototype.complete = function () {
|
|
1054
|
-
var _a, _b;
|
|
1055
|
-
(_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.complete) === null || _b === undefined ? undefined : _b.call(_a);
|
|
1056
|
-
};
|
|
1057
|
-
AnonymousSubject.prototype._subscribe = function (subscriber) {
|
|
1058
|
-
var _a, _b;
|
|
1059
|
-
return (_b = (_a = this.source) === null || _a === undefined ? undefined : _a.subscribe(subscriber)) !== null && _b !== undefined ? _b : EMPTY_SUBSCRIPTION;
|
|
1060
|
-
};
|
|
1061
|
-
return AnonymousSubject;
|
|
1062
|
-
}(Subject);
|
|
1063
|
-
|
|
1064
|
-
var EMPTY = new Observable(function (subscriber) {
|
|
1065
|
-
return subscriber.complete();
|
|
1066
|
-
});
|
|
1067
|
-
|
|
1068
|
-
function last$1(arr) {
|
|
1069
|
-
return arr[arr.length - 1];
|
|
1070
|
-
}
|
|
1071
|
-
function popResultSelector(args) {
|
|
1072
|
-
return isFunction(last$1(args)) ? args.pop() : undefined;
|
|
1073
|
-
}
|
|
1074
|
-
|
|
1075
|
-
var isArrayLike = function (x) {
|
|
1076
|
-
return x && typeof x.length === 'number' && typeof x !== 'function';
|
|
1077
|
-
};
|
|
1078
|
-
|
|
1079
|
-
function isPromise(value) {
|
|
1080
|
-
return isFunction(value === null || value === undefined ? undefined : value.then);
|
|
1081
|
-
}
|
|
1082
|
-
|
|
1083
|
-
function isInteropObservable(input) {
|
|
1084
|
-
return isFunction(input[observable]);
|
|
1085
|
-
}
|
|
1086
|
-
|
|
1087
|
-
function isAsyncIterable(obj) {
|
|
1088
|
-
return Symbol.asyncIterator && isFunction(obj === null || obj === undefined ? undefined : obj[Symbol.asyncIterator]);
|
|
1089
|
-
}
|
|
1090
|
-
|
|
1091
|
-
function createInvalidObservableTypeError(input) {
|
|
1092
|
-
return new TypeError("You provided " + (input !== null && typeof input === 'object' ? 'an invalid object' : "'" + input + "'") + " where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.");
|
|
1093
|
-
}
|
|
1094
|
-
|
|
1095
|
-
function getSymbolIterator() {
|
|
1096
|
-
if (typeof Symbol !== 'function' || !Symbol.iterator) {
|
|
1097
|
-
return '@@iterator';
|
|
1098
|
-
}
|
|
1099
|
-
return Symbol.iterator;
|
|
1100
|
-
}
|
|
1101
|
-
var iterator = getSymbolIterator();
|
|
1102
|
-
|
|
1103
|
-
function isIterable(input) {
|
|
1104
|
-
return isFunction(input === null || input === undefined ? undefined : input[iterator]);
|
|
1105
|
-
}
|
|
1106
|
-
|
|
1107
|
-
function readableStreamLikeToAsyncGenerator(readableStream) {
|
|
1108
|
-
return __asyncGenerator(this, arguments, function readableStreamLikeToAsyncGenerator_1() {
|
|
1109
|
-
var reader, _a, value, done;
|
|
1110
|
-
return __generator(this, function (_b) {
|
|
1111
|
-
switch (_b.label) {
|
|
1112
|
-
case 0:
|
|
1113
|
-
reader = readableStream.getReader();
|
|
1114
|
-
_b.label = 1;
|
|
1115
|
-
case 1:
|
|
1116
|
-
_b.trys.push([1,, 9, 10]);
|
|
1117
|
-
_b.label = 2;
|
|
1118
|
-
case 2:
|
|
1119
|
-
return [4, __await(reader.read())];
|
|
1120
|
-
case 3:
|
|
1121
|
-
_a = _b.sent(), value = _a.value, done = _a.done;
|
|
1122
|
-
if (!done) return [3, 5];
|
|
1123
|
-
return [4, __await(undefined)];
|
|
1124
|
-
case 4:
|
|
1125
|
-
return [2, _b.sent()];
|
|
1126
|
-
case 5:
|
|
1127
|
-
return [4, __await(value)];
|
|
1128
|
-
case 6:
|
|
1129
|
-
return [4, _b.sent()];
|
|
1130
|
-
case 7:
|
|
1131
|
-
_b.sent();
|
|
1132
|
-
return [3, 2];
|
|
1133
|
-
case 8:
|
|
1134
|
-
return [3, 10];
|
|
1135
|
-
case 9:
|
|
1136
|
-
reader.releaseLock();
|
|
1137
|
-
return [7];
|
|
1138
|
-
case 10:
|
|
1139
|
-
return [2];
|
|
1140
|
-
}
|
|
1141
|
-
});
|
|
1142
|
-
});
|
|
1143
|
-
}
|
|
1144
|
-
function isReadableStreamLike(obj) {
|
|
1145
|
-
return isFunction(obj === null || obj === undefined ? undefined : obj.getReader);
|
|
1146
|
-
}
|
|
1147
|
-
|
|
1148
|
-
function innerFrom(input) {
|
|
1149
|
-
if (input instanceof Observable) {
|
|
1150
|
-
return input;
|
|
1151
|
-
}
|
|
1152
|
-
if (input != null) {
|
|
1153
|
-
if (isInteropObservable(input)) {
|
|
1154
|
-
return fromInteropObservable(input);
|
|
1155
|
-
}
|
|
1156
|
-
if (isArrayLike(input)) {
|
|
1157
|
-
return fromArrayLike(input);
|
|
1158
|
-
}
|
|
1159
|
-
if (isPromise(input)) {
|
|
1160
|
-
return fromPromise(input);
|
|
1161
|
-
}
|
|
1162
|
-
if (isAsyncIterable(input)) {
|
|
1163
|
-
return fromAsyncIterable(input);
|
|
1164
|
-
}
|
|
1165
|
-
if (isIterable(input)) {
|
|
1166
|
-
return fromIterable(input);
|
|
1167
|
-
}
|
|
1168
|
-
if (isReadableStreamLike(input)) {
|
|
1169
|
-
return fromReadableStreamLike(input);
|
|
1170
|
-
}
|
|
1171
|
-
}
|
|
1172
|
-
throw createInvalidObservableTypeError(input);
|
|
1173
|
-
}
|
|
1174
|
-
function fromInteropObservable(obj) {
|
|
1175
|
-
return new Observable(function (subscriber) {
|
|
1176
|
-
var obs = obj[observable]();
|
|
1177
|
-
if (isFunction(obs.subscribe)) {
|
|
1178
|
-
return obs.subscribe(subscriber);
|
|
1179
|
-
}
|
|
1180
|
-
throw new TypeError('Provided object does not correctly implement Symbol.observable');
|
|
1181
|
-
});
|
|
1182
|
-
}
|
|
1183
|
-
function fromArrayLike(array) {
|
|
1184
|
-
return new Observable(function (subscriber) {
|
|
1185
|
-
for (var i = 0; i < array.length && !subscriber.closed; i++) {
|
|
1186
|
-
subscriber.next(array[i]);
|
|
1187
|
-
}
|
|
1188
|
-
subscriber.complete();
|
|
1189
|
-
});
|
|
1190
|
-
}
|
|
1191
|
-
function fromPromise(promise) {
|
|
1192
|
-
return new Observable(function (subscriber) {
|
|
1193
|
-
promise.then(function (value) {
|
|
1194
|
-
if (!subscriber.closed) {
|
|
1195
|
-
subscriber.next(value);
|
|
1196
|
-
subscriber.complete();
|
|
1197
|
-
}
|
|
1198
|
-
}, function (err) {
|
|
1199
|
-
return subscriber.error(err);
|
|
1200
|
-
}).then(null, reportUnhandledError);
|
|
1201
|
-
});
|
|
1202
|
-
}
|
|
1203
|
-
function fromIterable(iterable) {
|
|
1204
|
-
return new Observable(function (subscriber) {
|
|
1205
|
-
var e_1, _a;
|
|
1206
|
-
try {
|
|
1207
|
-
for (var iterable_1 = __values(iterable), iterable_1_1 = iterable_1.next(); !iterable_1_1.done; iterable_1_1 = iterable_1.next()) {
|
|
1208
|
-
var value = iterable_1_1.value;
|
|
1209
|
-
subscriber.next(value);
|
|
1210
|
-
if (subscriber.closed) {
|
|
1211
|
-
return;
|
|
1212
|
-
}
|
|
1213
|
-
}
|
|
1214
|
-
} catch (e_1_1) {
|
|
1215
|
-
e_1 = {
|
|
1216
|
-
error: e_1_1
|
|
1217
|
-
};
|
|
1218
|
-
} finally {
|
|
1219
|
-
try {
|
|
1220
|
-
if (iterable_1_1 && !iterable_1_1.done && (_a = iterable_1.return)) _a.call(iterable_1);
|
|
1221
|
-
} finally {
|
|
1222
|
-
if (e_1) throw e_1.error;
|
|
1223
|
-
}
|
|
1224
|
-
}
|
|
1225
|
-
subscriber.complete();
|
|
1226
|
-
});
|
|
1227
|
-
}
|
|
1228
|
-
function fromAsyncIterable(asyncIterable) {
|
|
1229
|
-
return new Observable(function (subscriber) {
|
|
1230
|
-
process(asyncIterable, subscriber).catch(function (err) {
|
|
1231
|
-
return subscriber.error(err);
|
|
1232
|
-
});
|
|
1233
|
-
});
|
|
1234
|
-
}
|
|
1235
|
-
function fromReadableStreamLike(readableStream) {
|
|
1236
|
-
return fromAsyncIterable(readableStreamLikeToAsyncGenerator(readableStream));
|
|
1237
|
-
}
|
|
1238
|
-
function process(asyncIterable, subscriber) {
|
|
1239
|
-
var asyncIterable_1, asyncIterable_1_1;
|
|
1240
|
-
var e_2, _a;
|
|
1241
|
-
return __awaiter(this, undefined, undefined, function () {
|
|
1242
|
-
var value, e_2_1;
|
|
1243
|
-
return __generator(this, function (_b) {
|
|
1244
|
-
switch (_b.label) {
|
|
1245
|
-
case 0:
|
|
1246
|
-
_b.trys.push([0, 5, 6, 11]);
|
|
1247
|
-
asyncIterable_1 = __asyncValues(asyncIterable);
|
|
1248
|
-
_b.label = 1;
|
|
1249
|
-
case 1:
|
|
1250
|
-
return [4, asyncIterable_1.next()];
|
|
1251
|
-
case 2:
|
|
1252
|
-
if (!(asyncIterable_1_1 = _b.sent(), !asyncIterable_1_1.done)) return [3, 4];
|
|
1253
|
-
value = asyncIterable_1_1.value;
|
|
1254
|
-
subscriber.next(value);
|
|
1255
|
-
if (subscriber.closed) {
|
|
1256
|
-
return [2];
|
|
1257
|
-
}
|
|
1258
|
-
_b.label = 3;
|
|
1259
|
-
case 3:
|
|
1260
|
-
return [3, 1];
|
|
1261
|
-
case 4:
|
|
1262
|
-
return [3, 11];
|
|
1263
|
-
case 5:
|
|
1264
|
-
e_2_1 = _b.sent();
|
|
1265
|
-
e_2 = {
|
|
1266
|
-
error: e_2_1
|
|
1267
|
-
};
|
|
1268
|
-
return [3, 11];
|
|
1269
|
-
case 6:
|
|
1270
|
-
_b.trys.push([6,, 9, 10]);
|
|
1271
|
-
if (!(asyncIterable_1_1 && !asyncIterable_1_1.done && (_a = asyncIterable_1.return))) return [3, 8];
|
|
1272
|
-
return [4, _a.call(asyncIterable_1)];
|
|
1273
|
-
case 7:
|
|
1274
|
-
_b.sent();
|
|
1275
|
-
_b.label = 8;
|
|
1276
|
-
case 8:
|
|
1277
|
-
return [3, 10];
|
|
1278
|
-
case 9:
|
|
1279
|
-
if (e_2) throw e_2.error;
|
|
1280
|
-
return [7];
|
|
1281
|
-
case 10:
|
|
1282
|
-
return [7];
|
|
1283
|
-
case 11:
|
|
1284
|
-
subscriber.complete();
|
|
1285
|
-
return [2];
|
|
1286
|
-
}
|
|
1287
|
-
});
|
|
1288
|
-
});
|
|
1289
|
-
}
|
|
1290
|
-
|
|
1291
|
-
var EmptyError = createErrorClass(function (_super) {
|
|
1292
|
-
return function EmptyErrorImpl() {
|
|
1293
|
-
_super(this);
|
|
1294
|
-
this.name = 'EmptyError';
|
|
1295
|
-
this.message = 'no elements in sequence';
|
|
1296
|
-
};
|
|
1297
|
-
});
|
|
1298
|
-
|
|
1299
|
-
function lastValueFrom(source, config) {
|
|
1300
|
-
return new Promise(function (resolve, reject) {
|
|
1301
|
-
var _hasValue = false;
|
|
1302
|
-
var _value;
|
|
1303
|
-
source.subscribe({
|
|
1304
|
-
next: function (value) {
|
|
1305
|
-
_value = value;
|
|
1306
|
-
_hasValue = true;
|
|
1307
|
-
},
|
|
1308
|
-
error: reject,
|
|
1309
|
-
complete: function () {
|
|
1310
|
-
if (_hasValue) {
|
|
1311
|
-
resolve(_value);
|
|
1312
|
-
} else {
|
|
1313
|
-
reject(new EmptyError());
|
|
1314
|
-
}
|
|
1315
|
-
}
|
|
1316
|
-
});
|
|
1317
|
-
});
|
|
1318
|
-
}
|
|
1319
|
-
|
|
1320
|
-
function firstValueFrom(source, config) {
|
|
1321
|
-
return new Promise(function (resolve, reject) {
|
|
1322
|
-
var subscriber = new SafeSubscriber({
|
|
1323
|
-
next: function (value) {
|
|
1324
|
-
resolve(value);
|
|
1325
|
-
subscriber.unsubscribe();
|
|
1326
|
-
},
|
|
1327
|
-
error: reject,
|
|
1328
|
-
complete: function () {
|
|
1329
|
-
{
|
|
1330
|
-
reject(new EmptyError());
|
|
1331
|
-
}
|
|
1332
|
-
}
|
|
1333
|
-
});
|
|
1334
|
-
source.subscribe(subscriber);
|
|
1335
|
-
});
|
|
1336
|
-
}
|
|
1337
|
-
|
|
1338
|
-
function map(project, thisArg) {
|
|
1339
|
-
return operate(function (source, subscriber) {
|
|
1340
|
-
var index = 0;
|
|
1341
|
-
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1342
|
-
subscriber.next(project.call(thisArg, value, index++));
|
|
1343
|
-
}));
|
|
1344
|
-
});
|
|
1345
|
-
}
|
|
1346
|
-
|
|
1347
|
-
var isArray$1 = Array.isArray;
|
|
1348
|
-
function callOrApply(fn, args) {
|
|
1349
|
-
return isArray$1(args) ? fn.apply(undefined, __spreadArray([], __read(args))) : fn(args);
|
|
1350
|
-
}
|
|
1351
|
-
function mapOneOrManyArgs(fn) {
|
|
1352
|
-
return map(function (args) {
|
|
1353
|
-
return callOrApply(fn, args);
|
|
1354
|
-
});
|
|
1355
|
-
}
|
|
1356
|
-
|
|
1357
|
-
var isArray = Array.isArray;
|
|
1358
|
-
var getPrototypeOf = Object.getPrototypeOf,
|
|
1359
|
-
objectProto = Object.prototype,
|
|
1360
|
-
getKeys = Object.keys;
|
|
1361
|
-
function argsArgArrayOrObject(args) {
|
|
1362
|
-
if (args.length === 1) {
|
|
1363
|
-
var first_1 = args[0];
|
|
1364
|
-
if (isArray(first_1)) {
|
|
1365
|
-
return {
|
|
1366
|
-
args: first_1,
|
|
1367
|
-
keys: null
|
|
1368
|
-
};
|
|
1369
|
-
}
|
|
1370
|
-
if (isPOJO(first_1)) {
|
|
1371
|
-
var keys = getKeys(first_1);
|
|
1372
|
-
return {
|
|
1373
|
-
args: keys.map(function (key) {
|
|
1374
|
-
return first_1[key];
|
|
1375
|
-
}),
|
|
1376
|
-
keys: keys
|
|
1377
|
-
};
|
|
1378
|
-
}
|
|
1379
|
-
}
|
|
1380
|
-
return {
|
|
1381
|
-
args: args,
|
|
1382
|
-
keys: null
|
|
1383
|
-
};
|
|
1384
|
-
}
|
|
1385
|
-
function isPOJO(obj) {
|
|
1386
|
-
return obj && typeof obj === 'object' && getPrototypeOf(obj) === objectProto;
|
|
1387
|
-
}
|
|
1388
|
-
|
|
1389
|
-
function createObject(keys, values) {
|
|
1390
|
-
return keys.reduce(function (result, key, i) {
|
|
1391
|
-
return result[key] = values[i], result;
|
|
1392
|
-
}, {});
|
|
1393
|
-
}
|
|
1394
|
-
|
|
1395
|
-
function forkJoin() {
|
|
1396
|
-
var args = [];
|
|
1397
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
1398
|
-
args[_i] = arguments[_i];
|
|
1399
|
-
}
|
|
1400
|
-
var resultSelector = popResultSelector(args);
|
|
1401
|
-
var _a = argsArgArrayOrObject(args),
|
|
1402
|
-
sources = _a.args,
|
|
1403
|
-
keys = _a.keys;
|
|
1404
|
-
var result = new Observable(function (subscriber) {
|
|
1405
|
-
var length = sources.length;
|
|
1406
|
-
if (!length) {
|
|
1407
|
-
subscriber.complete();
|
|
1408
|
-
return;
|
|
1409
|
-
}
|
|
1410
|
-
var values = new Array(length);
|
|
1411
|
-
var remainingCompletions = length;
|
|
1412
|
-
var remainingEmissions = length;
|
|
1413
|
-
var _loop_1 = function (sourceIndex) {
|
|
1414
|
-
var hasValue = false;
|
|
1415
|
-
innerFrom(sources[sourceIndex]).subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1416
|
-
if (!hasValue) {
|
|
1417
|
-
hasValue = true;
|
|
1418
|
-
remainingEmissions--;
|
|
1419
|
-
}
|
|
1420
|
-
values[sourceIndex] = value;
|
|
1421
|
-
}, function () {
|
|
1422
|
-
return remainingCompletions--;
|
|
1423
|
-
}, undefined, function () {
|
|
1424
|
-
if (!remainingCompletions || !hasValue) {
|
|
1425
|
-
if (!remainingEmissions) {
|
|
1426
|
-
subscriber.next(keys ? createObject(keys, values) : values);
|
|
1427
|
-
}
|
|
1428
|
-
subscriber.complete();
|
|
1429
|
-
}
|
|
1430
|
-
}));
|
|
1431
|
-
};
|
|
1432
|
-
for (var sourceIndex = 0; sourceIndex < length; sourceIndex++) {
|
|
1433
|
-
_loop_1(sourceIndex);
|
|
1434
|
-
}
|
|
1435
|
-
});
|
|
1436
|
-
return resultSelector ? result.pipe(mapOneOrManyArgs(resultSelector)) : result;
|
|
1437
|
-
}
|
|
1438
|
-
|
|
1439
|
-
function filter(predicate, thisArg) {
|
|
1440
|
-
return operate(function (source, subscriber) {
|
|
1441
|
-
var index = 0;
|
|
1442
|
-
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1443
|
-
return predicate.call(thisArg, value, index++) && subscriber.next(value);
|
|
1444
|
-
}));
|
|
1445
|
-
});
|
|
1446
|
-
}
|
|
1447
|
-
|
|
1448
|
-
function defaultIfEmpty(defaultValue) {
|
|
1449
|
-
return operate(function (source, subscriber) {
|
|
1450
|
-
var hasValue = false;
|
|
1451
|
-
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1452
|
-
hasValue = true;
|
|
1453
|
-
subscriber.next(value);
|
|
1454
|
-
}, function () {
|
|
1455
|
-
if (!hasValue) {
|
|
1456
|
-
subscriber.next(defaultValue);
|
|
1457
|
-
}
|
|
1458
|
-
subscriber.complete();
|
|
1459
|
-
}));
|
|
1460
|
-
});
|
|
1461
|
-
}
|
|
1462
|
-
|
|
1463
|
-
function take(count) {
|
|
1464
|
-
return count <= 0 ? function () {
|
|
1465
|
-
return EMPTY;
|
|
1466
|
-
} : operate(function (source, subscriber) {
|
|
1467
|
-
var seen = 0;
|
|
1468
|
-
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1469
|
-
if (++seen <= count) {
|
|
1470
|
-
subscriber.next(value);
|
|
1471
|
-
if (count <= seen) {
|
|
1472
|
-
subscriber.complete();
|
|
1473
|
-
}
|
|
1474
|
-
}
|
|
1475
|
-
}));
|
|
1476
|
-
});
|
|
1477
|
-
}
|
|
1478
|
-
|
|
1479
|
-
function distinctUntilChanged(comparator, keySelector) {
|
|
1480
|
-
if (keySelector === undefined) {
|
|
1481
|
-
keySelector = identity;
|
|
1482
|
-
}
|
|
1483
|
-
comparator = comparator !== null && comparator !== undefined ? comparator : defaultCompare;
|
|
1484
|
-
return operate(function (source, subscriber) {
|
|
1485
|
-
var previousKey;
|
|
1486
|
-
var first = true;
|
|
1487
|
-
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1488
|
-
var currentKey = keySelector(value);
|
|
1489
|
-
if (first || !comparator(previousKey, currentKey)) {
|
|
1490
|
-
first = false;
|
|
1491
|
-
previousKey = currentKey;
|
|
1492
|
-
subscriber.next(value);
|
|
1493
|
-
}
|
|
1494
|
-
}));
|
|
1495
|
-
});
|
|
1496
|
-
}
|
|
1497
|
-
function defaultCompare(a, b) {
|
|
1498
|
-
return a === b;
|
|
1499
|
-
}
|
|
1500
|
-
|
|
1501
|
-
function throwIfEmpty(errorFactory) {
|
|
1502
|
-
if (errorFactory === undefined) {
|
|
1503
|
-
errorFactory = defaultErrorFactory;
|
|
1504
|
-
}
|
|
1505
|
-
return operate(function (source, subscriber) {
|
|
1506
|
-
var hasValue = false;
|
|
1507
|
-
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1508
|
-
hasValue = true;
|
|
1509
|
-
subscriber.next(value);
|
|
1510
|
-
}, function () {
|
|
1511
|
-
return hasValue ? subscriber.complete() : subscriber.error(errorFactory());
|
|
1512
|
-
}));
|
|
1513
|
-
});
|
|
1514
|
-
}
|
|
1515
|
-
function defaultErrorFactory() {
|
|
1516
|
-
return new EmptyError();
|
|
1517
|
-
}
|
|
978
|
+
};
|
|
979
|
+
AnonymousSubject.prototype.complete = function () {
|
|
980
|
+
var _a, _b;
|
|
981
|
+
(_b = (_a = this.destination) === null || _a === undefined ? undefined : _a.complete) === null || _b === undefined ? undefined : _b.call(_a);
|
|
982
|
+
};
|
|
983
|
+
AnonymousSubject.prototype._subscribe = function (subscriber) {
|
|
984
|
+
var _a, _b;
|
|
985
|
+
return (_b = (_a = this.source) === null || _a === undefined ? undefined : _a.subscribe(subscriber)) !== null && _b !== undefined ? _b : EMPTY_SUBSCRIPTION;
|
|
986
|
+
};
|
|
987
|
+
return AnonymousSubject;
|
|
988
|
+
}(Subject);
|
|
1518
989
|
|
|
1519
|
-
function
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
}));
|
|
990
|
+
var EmptyError = createErrorClass(function (_super) {
|
|
991
|
+
return function EmptyErrorImpl() {
|
|
992
|
+
_super(this);
|
|
993
|
+
this.name = 'EmptyError';
|
|
994
|
+
this.message = 'no elements in sequence';
|
|
1525
995
|
};
|
|
1526
|
-
}
|
|
996
|
+
});
|
|
1527
997
|
|
|
1528
|
-
function
|
|
1529
|
-
return
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
for (var buffer_1 = __values(buffer), buffer_1_1 = buffer_1.next(); !buffer_1_1.done; buffer_1_1 = buffer_1.next()) {
|
|
1540
|
-
var value = buffer_1_1.value;
|
|
1541
|
-
subscriber.next(value);
|
|
1542
|
-
}
|
|
1543
|
-
} catch (e_1_1) {
|
|
1544
|
-
e_1 = {
|
|
1545
|
-
error: e_1_1
|
|
1546
|
-
};
|
|
1547
|
-
} finally {
|
|
1548
|
-
try {
|
|
1549
|
-
if (buffer_1_1 && !buffer_1_1.done && (_a = buffer_1.return)) _a.call(buffer_1);
|
|
1550
|
-
} finally {
|
|
1551
|
-
if (e_1) throw e_1.error;
|
|
998
|
+
function firstValueFrom(source, config) {
|
|
999
|
+
return new Promise(function (resolve, reject) {
|
|
1000
|
+
var subscriber = new SafeSubscriber({
|
|
1001
|
+
next: function (value) {
|
|
1002
|
+
resolve(value);
|
|
1003
|
+
subscriber.unsubscribe();
|
|
1004
|
+
},
|
|
1005
|
+
error: reject,
|
|
1006
|
+
complete: function () {
|
|
1007
|
+
{
|
|
1008
|
+
reject(new EmptyError());
|
|
1552
1009
|
}
|
|
1553
1010
|
}
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
buffer = null;
|
|
1557
|
-
}));
|
|
1011
|
+
});
|
|
1012
|
+
source.subscribe(subscriber);
|
|
1558
1013
|
});
|
|
1559
1014
|
}
|
|
1560
1015
|
|
|
1561
|
-
function
|
|
1562
|
-
var hasDefaultValue = arguments.length >= 2;
|
|
1563
|
-
return function (source) {
|
|
1564
|
-
return source.pipe(identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () {
|
|
1565
|
-
return new EmptyError();
|
|
1566
|
-
}));
|
|
1567
|
-
};
|
|
1568
|
-
}
|
|
1569
|
-
|
|
1570
|
-
function takeWhile(predicate, inclusive) {
|
|
1016
|
+
function filter(predicate, thisArg) {
|
|
1571
1017
|
return operate(function (source, subscriber) {
|
|
1572
1018
|
var index = 0;
|
|
1573
1019
|
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1574
|
-
|
|
1575
|
-
(result || inclusive) && subscriber.next(value);
|
|
1576
|
-
!result && subscriber.complete();
|
|
1020
|
+
return predicate.call(thisArg, value, index++) && subscriber.next(value);
|
|
1577
1021
|
}));
|
|
1578
1022
|
});
|
|
1579
1023
|
}
|
|
1580
1024
|
|
|
1581
|
-
function
|
|
1582
|
-
|
|
1583
|
-
next: observerOrNext,
|
|
1584
|
-
error: error,
|
|
1585
|
-
complete: complete
|
|
1586
|
-
} : observerOrNext;
|
|
1587
|
-
return tapObserver ? operate(function (source, subscriber) {
|
|
1588
|
-
var _a;
|
|
1589
|
-
(_a = tapObserver.subscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);
|
|
1590
|
-
var isUnsub = true;
|
|
1591
|
-
source.subscribe(createOperatorSubscriber(subscriber, function (value) {
|
|
1592
|
-
var _a;
|
|
1593
|
-
(_a = tapObserver.next) === null || _a === void 0 ? void 0 : _a.call(tapObserver, value);
|
|
1594
|
-
subscriber.next(value);
|
|
1595
|
-
}, function () {
|
|
1596
|
-
var _a;
|
|
1597
|
-
isUnsub = false;
|
|
1598
|
-
(_a = tapObserver.complete) === null || _a === void 0 ? void 0 : _a.call(tapObserver);
|
|
1599
|
-
subscriber.complete();
|
|
1600
|
-
}, function (err) {
|
|
1601
|
-
var _a;
|
|
1602
|
-
isUnsub = false;
|
|
1603
|
-
(_a = tapObserver.error) === null || _a === void 0 ? void 0 : _a.call(tapObserver, err);
|
|
1604
|
-
subscriber.error(err);
|
|
1605
|
-
}, function () {
|
|
1606
|
-
var _a, _b;
|
|
1607
|
-
if (isUnsub) {
|
|
1608
|
-
(_a = tapObserver.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(tapObserver);
|
|
1609
|
-
}
|
|
1610
|
-
(_b = tapObserver.finalize) === null || _b === void 0 ? void 0 : _b.call(tapObserver);
|
|
1611
|
-
}));
|
|
1612
|
-
}) : identity;
|
|
1613
|
-
}
|
|
1614
|
-
|
|
1615
|
-
class BaseError extends Error {
|
|
1616
|
-
constructor(name, message, options = {}) {
|
|
1617
|
-
const {
|
|
1618
|
-
cause,
|
|
1619
|
-
context
|
|
1620
|
-
} = options;
|
|
1621
|
-
super(message || name);
|
|
1622
|
-
this.name = name;
|
|
1623
|
-
this.stack = cause?.stack;
|
|
1624
|
-
this.cause = cause;
|
|
1625
|
-
this.context = context;
|
|
1626
|
-
}
|
|
1627
|
-
toJSON() {
|
|
1628
|
-
return {
|
|
1629
|
-
name: this.name,
|
|
1630
|
-
message: this.message,
|
|
1631
|
-
context: this.context,
|
|
1632
|
-
cause: this.cause
|
|
1633
|
-
};
|
|
1634
|
-
}
|
|
1635
|
-
}
|
|
1636
|
-
|
|
1637
|
-
class AirServiceError extends BaseError {
|
|
1638
|
-
static from(error) {
|
|
1639
|
-
if (error instanceof AirServiceError) {
|
|
1640
|
-
return error;
|
|
1641
|
-
}
|
|
1642
|
-
else if (error instanceof Object && "message" in error) {
|
|
1643
|
-
if (error.message === "User cancelled login") {
|
|
1644
|
-
return new AirServiceError("USER_CANCELLED", error.message);
|
|
1645
|
-
}
|
|
1646
|
-
return new AirServiceError("UNKNOWN_ERROR", error.message.toString());
|
|
1647
|
-
}
|
|
1648
|
-
return new AirServiceError("UNKNOWN_ERROR");
|
|
1649
|
-
}
|
|
1650
|
-
}
|
|
1651
|
-
class RealmEmbedError extends AirServiceError {
|
|
1025
|
+
function getDefaultExportFromCjs (x) {
|
|
1026
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
1652
1027
|
}
|
|
1653
1028
|
|
|
1654
|
-
var loglevel$
|
|
1029
|
+
var loglevel$1 = {exports: {}};
|
|
1655
1030
|
|
|
1656
1031
|
/*
|
|
1657
1032
|
* loglevel - https://github.com/pimterry/loglevel
|
|
@@ -1659,10 +1034,10 @@ var loglevel$2 = {exports: {}};
|
|
|
1659
1034
|
* Copyright (c) 2013 Tim Perry
|
|
1660
1035
|
* Licensed under the MIT license.
|
|
1661
1036
|
*/
|
|
1662
|
-
var loglevel
|
|
1037
|
+
var loglevel = loglevel$1.exports;
|
|
1663
1038
|
var hasRequiredLoglevel;
|
|
1664
1039
|
function requireLoglevel() {
|
|
1665
|
-
if (hasRequiredLoglevel) return loglevel$
|
|
1040
|
+
if (hasRequiredLoglevel) return loglevel$1.exports;
|
|
1666
1041
|
hasRequiredLoglevel = 1;
|
|
1667
1042
|
(function (module) {
|
|
1668
1043
|
(function (root, definition) {
|
|
@@ -1672,7 +1047,7 @@ function requireLoglevel() {
|
|
|
1672
1047
|
} else {
|
|
1673
1048
|
root.log = definition();
|
|
1674
1049
|
}
|
|
1675
|
-
})(loglevel
|
|
1050
|
+
})(loglevel, function () {
|
|
1676
1051
|
|
|
1677
1052
|
// Slightly dubious tricks to cut down minimized file size
|
|
1678
1053
|
var noop = function () {};
|
|
@@ -1971,42 +1346,44 @@ function requireLoglevel() {
|
|
|
1971
1346
|
defaultLogger['default'] = defaultLogger;
|
|
1972
1347
|
return defaultLogger;
|
|
1973
1348
|
});
|
|
1974
|
-
})(loglevel$
|
|
1975
|
-
return loglevel$
|
|
1349
|
+
})(loglevel$1);
|
|
1350
|
+
return loglevel$1.exports;
|
|
1976
1351
|
}
|
|
1977
1352
|
|
|
1978
1353
|
var loglevelExports = requireLoglevel();
|
|
1979
|
-
var
|
|
1354
|
+
var log$1 = /*@__PURE__*/getDefaultExportFromCjs(loglevelExports);
|
|
1980
1355
|
|
|
1981
|
-
var log =
|
|
1356
|
+
var log = log$1.getLogger("airkit");
|
|
1982
1357
|
|
|
1983
1358
|
var AirWalletProviderMessageTypes;
|
|
1984
1359
|
(function (AirWalletProviderMessageTypes) {
|
|
1985
1360
|
AirWalletProviderMessageTypes["REQUEST"] = "JRPC_REQUEST";
|
|
1986
1361
|
AirWalletProviderMessageTypes["RESPONSE"] = "JRPC_RESPONSE";
|
|
1362
|
+
AirWalletProviderMessageTypes["EVENT"] = "JRPC_EVENT";
|
|
1987
1363
|
})(AirWalletProviderMessageTypes || (AirWalletProviderMessageTypes = {}));
|
|
1988
1364
|
|
|
1989
1365
|
const ACCOUNT_MESSAGES = [
|
|
1990
1366
|
AirMessageTypes.INITIALIZATION_RESPONSE,
|
|
1991
1367
|
AirMessageTypes.WALLET_INITIALIZED,
|
|
1992
|
-
AirMessageTypes.
|
|
1993
|
-
AirMessageTypes.
|
|
1368
|
+
AirMessageTypes.CLAIM_ID_RESPONSE,
|
|
1369
|
+
AirMessageTypes.IS_SMART_ACCOUNT_DEPLOYED_RESPONSE,
|
|
1994
1370
|
AirMessageTypes.DEPLOY_SMART_ACCOUNT_RESPONSE,
|
|
1995
1371
|
AirMessageTypes.EXECUTE_ACTION_RESPONSE,
|
|
1996
1372
|
AirMessageTypes.REVOKE_PERMISSIONS_RESPONSE,
|
|
1997
1373
|
AirMessageTypes.GRANT_PERMISSIONS_RESPONSE,
|
|
1998
1374
|
AirMessageTypes.WALLET_INITIALIZED,
|
|
1999
|
-
AirMessageTypes.WALLET_IFRAME_VISIBILITY_REQUEST
|
|
1375
|
+
AirMessageTypes.WALLET_IFRAME_VISIBILITY_REQUEST,
|
|
1376
|
+
AirMessageTypes.LOGOUT_RESPONSE,
|
|
2000
1377
|
];
|
|
2001
1378
|
const AUTH_MESSAGES = [
|
|
1379
|
+
AirAuthMessageTypes.INITIALIZATION_RESPONSE,
|
|
2002
1380
|
AirAuthMessageTypes.LOGIN_RESPONSE,
|
|
2003
|
-
AirAuthMessageTypes.USER_INFO_RESPONSE,
|
|
2004
|
-
AirAuthMessageTypes.PARTNER_USER_INFO_RESPONSE,
|
|
2005
1381
|
AirAuthMessageTypes.REFRESH_TOKEN_RESPONSE,
|
|
2006
|
-
AirAuthMessageTypes.
|
|
1382
|
+
AirAuthMessageTypes.SETUP_WALLET_REQUEST,
|
|
2007
1383
|
AirAuthMessageTypes.LOGOUT_RESPONSE,
|
|
1384
|
+
AirAuthMessageTypes.PARTNER_USER_INFO_RESPONSE,
|
|
1385
|
+
AirAuthMessageTypes.CROSS_PARTNER_TOKEN_RESPONSE,
|
|
2008
1386
|
AirAuthMessageTypes.IFRAME_VISIBILITY_REQUEST,
|
|
2009
|
-
AirAuthMessageTypes.SETUP_WALLET_REQUEST,
|
|
2010
1387
|
];
|
|
2011
1388
|
class AirMessageService {
|
|
2012
1389
|
constructor() {
|
|
@@ -2023,15 +1400,15 @@ class AirMessageService {
|
|
|
2023
1400
|
get messages$() {
|
|
2024
1401
|
return this.airMessages$.asObservable();
|
|
2025
1402
|
}
|
|
2026
|
-
get loginState$() {
|
|
2027
|
-
return this._loginState$;
|
|
2028
|
-
}
|
|
2029
1403
|
get authMessage$() {
|
|
2030
1404
|
return this._authMessage$.asObservable();
|
|
2031
1405
|
}
|
|
2032
1406
|
get providerMessage$() {
|
|
2033
1407
|
return this._providerMessage$.asObservable();
|
|
2034
1408
|
}
|
|
1409
|
+
get providerEvent$() {
|
|
1410
|
+
return this._providerEvent$.asObservable();
|
|
1411
|
+
}
|
|
2035
1412
|
async openAuthObservables({ authIframeOrigin }) {
|
|
2036
1413
|
this.closeAuthObservables();
|
|
2037
1414
|
this.setupAuthObservables();
|
|
@@ -2054,11 +1431,7 @@ class AirMessageService {
|
|
|
2054
1431
|
const handleMessage = async (ev) => {
|
|
2055
1432
|
if (ev.origin !== walletIframeOrigin || !ev.data || !(ev.data instanceof Object))
|
|
2056
1433
|
return;
|
|
2057
|
-
|
|
2058
|
-
if ("target" in ev.data &&
|
|
2059
|
-
(ev.data.target === "embed_torus" || ev.data.target === "embed_communication"))
|
|
2060
|
-
return;
|
|
2061
|
-
log.debug("Embed message received from wallet", ev.data);
|
|
1434
|
+
log.debug("Account messages received from wallet frontend", ev.data);
|
|
2062
1435
|
if (ACCOUNT_MESSAGES.includes(ev.data.type)) {
|
|
2063
1436
|
this.airMessages$.next(ev.data);
|
|
2064
1437
|
}
|
|
@@ -2072,16 +1445,20 @@ class AirMessageService {
|
|
|
2072
1445
|
const handleWalletMessage = async (ev) => {
|
|
2073
1446
|
if (ev.origin !== walletIframeOrigin || !ev.data || !(ev.data instanceof Object))
|
|
2074
1447
|
return;
|
|
2075
|
-
log.debug("
|
|
2076
|
-
if (ev.data.type === AirWalletProviderMessageTypes.RESPONSE)
|
|
1448
|
+
log.debug("Wallet provider messages received from wallet frontend", ev.data);
|
|
1449
|
+
if (ev.data.type === AirWalletProviderMessageTypes.RESPONSE) {
|
|
2077
1450
|
this._providerMessage$.next(ev.data);
|
|
1451
|
+
}
|
|
1452
|
+
if (ev.data.type === AirWalletProviderMessageTypes.EVENT) {
|
|
1453
|
+
this._providerEvent$.next(ev.data);
|
|
1454
|
+
}
|
|
2078
1455
|
};
|
|
2079
1456
|
window.addEventListener("message", handleWalletMessage);
|
|
2080
1457
|
this.closeWalletMessageListeners = () => {
|
|
2081
1458
|
window.removeEventListener("message", handleWalletMessage);
|
|
2082
1459
|
};
|
|
2083
1460
|
}
|
|
2084
|
-
setupIframeCommunication(authIframe, walletIframe) {
|
|
1461
|
+
setupIframeCommunication(authIframe, walletIframe, skipWalletLogin) {
|
|
2085
1462
|
const channel = new MessageChannel();
|
|
2086
1463
|
const authOrigin = new URL(authIframe.src).origin;
|
|
2087
1464
|
authIframe.contentWindow.postMessage({
|
|
@@ -2090,42 +1467,10 @@ class AirMessageService {
|
|
|
2090
1467
|
const walletOrigin = new URL(walletIframe.src).origin;
|
|
2091
1468
|
walletIframe.contentWindow.postMessage({
|
|
2092
1469
|
type: AirMessageTypes.INIT_AUTH_COMMUNICATION,
|
|
2093
|
-
}, walletOrigin, [channel.port2]);
|
|
2094
|
-
}
|
|
2095
|
-
sendLoginRequest(walletIframe, payload) {
|
|
2096
|
-
const response = lastValueFrom(this.loginState$.pipe(takeWhile((msg) => (!payload.skipClaimFlow || msg.payload.state !== "connected") &&
|
|
2097
|
-
msg.payload.state !== "logged_in" &&
|
|
2098
|
-
msg.payload.state !== "claim_flow_cancelled", true), tap((msg) => {
|
|
2099
|
-
switch (msg.payload.state) {
|
|
2100
|
-
case "claim_flow_cancelled":
|
|
2101
|
-
throw new RealmEmbedError(msg.payload.errorName, msg.payload.errorMessage);
|
|
2102
|
-
}
|
|
2103
|
-
})));
|
|
2104
|
-
const { origin } = new URL(walletIframe.src);
|
|
2105
|
-
walletIframe.contentWindow.postMessage({
|
|
2106
|
-
type: AirMessageTypes.LOGIN_REQUEST,
|
|
2107
|
-
payload,
|
|
2108
|
-
}, origin);
|
|
2109
|
-
return response;
|
|
2110
|
-
}
|
|
2111
|
-
sendClaimRequest(walletIframe, options) {
|
|
2112
|
-
const response = lastValueFrom(forkJoin([
|
|
2113
|
-
this.loginState$.pipe(takeWhile((msg) => !["logged_in", "claim_flow_cancelled"].includes(msg.payload.state), true), tap((msg) => {
|
|
2114
|
-
if (msg.payload.state === "claim_flow_cancelled") {
|
|
2115
|
-
throw new RealmEmbedError(msg.payload.errorName, msg.payload.errorMessage);
|
|
2116
|
-
}
|
|
2117
|
-
}), last()),
|
|
2118
|
-
this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.CLOSE_MODAL), first()),
|
|
2119
|
-
]));
|
|
2120
|
-
const { origin } = new URL(walletIframe.src);
|
|
2121
|
-
walletIframe.contentWindow.postMessage({
|
|
2122
|
-
type: AirMessageTypes.CLAIM_REQUEST,
|
|
2123
1470
|
payload: {
|
|
2124
|
-
|
|
2125
|
-
claimInBackground: options?.background,
|
|
1471
|
+
skipWalletLogin,
|
|
2126
1472
|
},
|
|
2127
|
-
},
|
|
2128
|
-
return response;
|
|
1473
|
+
}, walletOrigin, [channel.port2]);
|
|
2129
1474
|
}
|
|
2130
1475
|
async sendGrantPermissionRequest(walletIframe, policies) {
|
|
2131
1476
|
const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.GRANT_PERMISSIONS_RESPONSE)));
|
|
@@ -2138,7 +1483,7 @@ class AirMessageService {
|
|
|
2138
1483
|
}, origin);
|
|
2139
1484
|
const result = await response;
|
|
2140
1485
|
if (result.payload.success === false) {
|
|
2141
|
-
throw new
|
|
1486
|
+
throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
|
|
2142
1487
|
}
|
|
2143
1488
|
return result.payload.sessionData;
|
|
2144
1489
|
}
|
|
@@ -2159,7 +1504,7 @@ class AirMessageService {
|
|
|
2159
1504
|
}, origin);
|
|
2160
1505
|
const result = await response;
|
|
2161
1506
|
if (result.payload.success === false) {
|
|
2162
|
-
throw new
|
|
1507
|
+
throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
|
|
2163
1508
|
}
|
|
2164
1509
|
return result.payload.txHash;
|
|
2165
1510
|
}
|
|
@@ -2174,7 +1519,7 @@ class AirMessageService {
|
|
|
2174
1519
|
}, origin);
|
|
2175
1520
|
const result = await response;
|
|
2176
1521
|
if (result.payload.success === false) {
|
|
2177
|
-
throw new
|
|
1522
|
+
throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
|
|
2178
1523
|
}
|
|
2179
1524
|
return result.payload.txHash;
|
|
2180
1525
|
}
|
|
@@ -2186,10 +1531,12 @@ class AirMessageService {
|
|
|
2186
1531
|
}, origin);
|
|
2187
1532
|
return response;
|
|
2188
1533
|
}
|
|
2189
|
-
async
|
|
2190
|
-
const response = firstValueFrom(this.
|
|
2191
|
-
const { origin } = new URL(
|
|
2192
|
-
|
|
1534
|
+
async sendIsSmartAccountDeployedRequest(walletIframe) {
|
|
1535
|
+
const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.IS_SMART_ACCOUNT_DEPLOYED_RESPONSE)));
|
|
1536
|
+
const { origin } = new URL(walletIframe.src);
|
|
1537
|
+
walletIframe.contentWindow.postMessage({
|
|
1538
|
+
type: AirMessageTypes.IS_SMART_ACCOUNT_DEPLOYED_REQUEST,
|
|
1539
|
+
}, origin);
|
|
2193
1540
|
return response;
|
|
2194
1541
|
}
|
|
2195
1542
|
async sendPartnerUserInfoRequest(authIframe) {
|
|
@@ -2210,6 +1557,16 @@ class AirMessageService {
|
|
|
2210
1557
|
authIframe.contentWindow.postMessage({ type: AirAuthMessageTypes.LOGOUT_REQUEST }, origin);
|
|
2211
1558
|
return response;
|
|
2212
1559
|
}
|
|
1560
|
+
async logoutWallet(walletIframe) {
|
|
1561
|
+
const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.LOGOUT_RESPONSE)));
|
|
1562
|
+
const { origin } = new URL(walletIframe.src);
|
|
1563
|
+
walletIframe.contentWindow.postMessage({ type: AirMessageTypes.LOGOUT_REQUEST }, origin);
|
|
1564
|
+
return response;
|
|
1565
|
+
}
|
|
1566
|
+
sendResetAuthServiceWalletCommunication(authIframe) {
|
|
1567
|
+
const { origin: authOrigin } = new URL(authIframe.src);
|
|
1568
|
+
authIframe.contentWindow.postMessage({ type: AirAuthMessageTypes.RESET_WALLET_COMMUNICATION }, authOrigin);
|
|
1569
|
+
}
|
|
2213
1570
|
async sendAuthInitializationRequest(authIframe, payload) {
|
|
2214
1571
|
const response = firstValueFrom(this._authMessage$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.INITIALIZATION_RESPONSE)));
|
|
2215
1572
|
const { origin } = new URL(authIframe.src);
|
|
@@ -2222,6 +1579,17 @@ class AirMessageService {
|
|
|
2222
1579
|
walletIframe.contentWindow.postMessage({ type: AirMessageTypes.INITIALIZATION_REQUEST, payload }, origin);
|
|
2223
1580
|
return response;
|
|
2224
1581
|
}
|
|
1582
|
+
async sendCrossPartnerTokenRequest(authIframe, targetPartnerUrl) {
|
|
1583
|
+
const response = firstValueFrom(this.authMessage$.pipe(filter((msg) => msg.type === AirAuthMessageTypes.CROSS_PARTNER_TOKEN_RESPONSE)));
|
|
1584
|
+
const { origin } = new URL(authIframe.src);
|
|
1585
|
+
authIframe.contentWindow.postMessage({
|
|
1586
|
+
type: AirAuthMessageTypes.CROSS_PARTNER_TOKEN_REQUEST,
|
|
1587
|
+
payload: {
|
|
1588
|
+
targetPartnerUrl,
|
|
1589
|
+
},
|
|
1590
|
+
}, origin);
|
|
1591
|
+
return response;
|
|
1592
|
+
}
|
|
2225
1593
|
async sendGrantPermissionsRequest(walletIframe, payload) {
|
|
2226
1594
|
const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.GRANT_PERMISSIONS_RESPONSE)));
|
|
2227
1595
|
const { origin } = new URL(walletIframe.src);
|
|
@@ -2231,6 +1599,12 @@ class AirMessageService {
|
|
|
2231
1599
|
onWalletInitialized() {
|
|
2232
1600
|
return firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.WALLET_INITIALIZED)));
|
|
2233
1601
|
}
|
|
1602
|
+
async sendClaimIdRequest(walletIframe, payload) {
|
|
1603
|
+
const response = firstValueFrom(this.messages$.pipe(filter((msg) => msg.type === AirMessageTypes.CLAIM_ID_RESPONSE)));
|
|
1604
|
+
const { origin } = new URL(walletIframe.src);
|
|
1605
|
+
walletIframe.contentWindow.postMessage({ type: AirMessageTypes.CLAIM_ID_REQUEST, payload }, origin);
|
|
1606
|
+
return response;
|
|
1607
|
+
}
|
|
2234
1608
|
async sendWalletProviderRequest(walletIframe, payload) {
|
|
2235
1609
|
const response = firstValueFrom(this.providerMessage$.pipe(filter((msg) => msg.type === AirWalletProviderMessageTypes.RESPONSE &&
|
|
2236
1610
|
msg.payload.requestId === payload.requestId)));
|
|
@@ -2256,6 +1630,8 @@ class AirMessageService {
|
|
|
2256
1630
|
closeWalletObservables() {
|
|
2257
1631
|
if (this._providerMessage$ && !this._providerMessage$.closed)
|
|
2258
1632
|
this._providerMessage$.complete();
|
|
1633
|
+
if (this._providerEvent$ && !this._providerEvent$.closed)
|
|
1634
|
+
this._providerEvent$.complete();
|
|
2259
1635
|
if (this.closeWalletMessageListeners)
|
|
2260
1636
|
this.closeWalletMessageListeners();
|
|
2261
1637
|
}
|
|
@@ -2264,42 +1640,14 @@ class AirMessageService {
|
|
|
2264
1640
|
}
|
|
2265
1641
|
setupAirObservables() {
|
|
2266
1642
|
this.airMessages$ = new Subject();
|
|
2267
|
-
this._loginState$ = this.airMessages$.pipe(filter((msg) => msg.type === AirMessageTypes.LOGIN_CLAIM_STATE), distinctUntilChanged(equal));
|
|
2268
1643
|
}
|
|
2269
1644
|
setupWalletObservables() {
|
|
2270
1645
|
this._providerMessage$ = new Subject();
|
|
1646
|
+
this._providerEvent$ = new Subject();
|
|
2271
1647
|
}
|
|
2272
1648
|
}
|
|
2273
1649
|
var AirMessageService$1 = AirMessageService.instance;
|
|
2274
1650
|
|
|
2275
|
-
class ProviderRpcError extends Error {
|
|
2276
|
-
constructor(message, code, data) {
|
|
2277
|
-
super(message);
|
|
2278
|
-
this.code = code;
|
|
2279
|
-
this.data = data;
|
|
2280
|
-
}
|
|
2281
|
-
}
|
|
2282
|
-
new ProviderRpcError("Invalid JSON", -32700);
|
|
2283
|
-
const ProviderRpcInvalidRequestError = new ProviderRpcError("Invalid request", -32600);
|
|
2284
|
-
const ProviderRpcMethodNotFoundError = new ProviderRpcError("Method not found", -32601);
|
|
2285
|
-
const ProviderRpcInvalidParamsError = new ProviderRpcError("Invalid params", -32602);
|
|
2286
|
-
new ProviderRpcError("Internal error", -32603);
|
|
2287
|
-
new ProviderRpcError("User rejected request", 4001);
|
|
2288
|
-
new ProviderRpcError("Unauthorized", 4100);
|
|
2289
|
-
new ProviderRpcError("Unsupported method", 4200);
|
|
2290
|
-
new ProviderRpcError("Disconnected", 4900);
|
|
2291
|
-
new ProviderRpcError("Chain Disconnected", 4901);
|
|
2292
|
-
function ensureProviderRpcError(value) {
|
|
2293
|
-
if (value instanceof ProviderRpcError) return value;
|
|
2294
|
-
let stringified = "[Unable to stringify the thrown value]";
|
|
2295
|
-
try {
|
|
2296
|
-
stringified = JSON.stringify(value);
|
|
2297
|
-
} catch {
|
|
2298
|
-
// ignoring failed stringify
|
|
2299
|
-
}
|
|
2300
|
-
return new ProviderRpcError(`This value was not thrown as type ProviderRpcError: ${stringified}`, -32603);
|
|
2301
|
-
}
|
|
2302
|
-
|
|
2303
1651
|
const BUILD_ENV = {
|
|
2304
1652
|
PRODUCTION: "production",
|
|
2305
1653
|
STAGING: "staging",
|
|
@@ -2310,66 +1658,113 @@ const AIR_URLS = {
|
|
|
2310
1658
|
[BUILD_ENV.DEVELOPMENT]: {
|
|
2311
1659
|
authUrl: "http://localhost:8100",
|
|
2312
1660
|
walletUrl: "http://localhost:8200",
|
|
2313
|
-
legacyWalletUrl: "https://localhost:4050",
|
|
2314
1661
|
logLevel: "debug",
|
|
2315
1662
|
},
|
|
2316
1663
|
[BUILD_ENV.STAGING]: {
|
|
2317
1664
|
authUrl: "https://auth.staging.air3.com",
|
|
2318
1665
|
walletUrl: "https://account.staging.air3.com",
|
|
2319
|
-
legacyWalletUrl: "https://account.staging.realmnetwork.io",
|
|
2320
1666
|
logLevel: "info",
|
|
2321
1667
|
},
|
|
2322
1668
|
[BUILD_ENV.PRODUCTION]: {
|
|
2323
1669
|
authUrl: "https://auth.air3.com",
|
|
2324
1670
|
walletUrl: "https://account.air3.com",
|
|
2325
|
-
legacyWalletUrl: "https://account.realmnetwork.io",
|
|
2326
1671
|
logLevel: "error",
|
|
2327
1672
|
},
|
|
2328
1673
|
};
|
|
2329
1674
|
const isElement = (element) => element instanceof Element || element instanceof Document;
|
|
2330
1675
|
const randomId = () => Math.random().toString(36).slice(2);
|
|
2331
1676
|
|
|
2332
|
-
var
|
|
1677
|
+
var _AirWalletProvider_instances, _AirWalletProvider_isLoggedIn, _AirWalletProvider_ensureWallet, _AirWalletProvider_getWalletIframeController, _AirWalletProvider_eventListeners, _AirWalletProvider_emit;
|
|
2333
1678
|
class AirWalletProvider {
|
|
2334
|
-
constructor(
|
|
2335
|
-
|
|
2336
|
-
|
|
1679
|
+
constructor({ isLoggedIn, ensureWallet, getWalletIframeController, }) {
|
|
1680
|
+
_AirWalletProvider_instances.add(this);
|
|
1681
|
+
_AirWalletProvider_isLoggedIn.set(this, undefined);
|
|
1682
|
+
_AirWalletProvider_ensureWallet.set(this, undefined);
|
|
1683
|
+
_AirWalletProvider_getWalletIframeController.set(this, undefined);
|
|
1684
|
+
_AirWalletProvider_eventListeners.set(this, undefined);
|
|
1685
|
+
this.listenProviderEventMessage = () => {
|
|
1686
|
+
AirMessageService$1.providerEvent$.subscribe((message) => {
|
|
1687
|
+
__classPrivateFieldGet(this, _AirWalletProvider_instances, "m", _AirWalletProvider_emit).call(this, message.payload.event, ...[message.payload.data]);
|
|
1688
|
+
});
|
|
1689
|
+
};
|
|
1690
|
+
__classPrivateFieldSet(this, _AirWalletProvider_isLoggedIn, isLoggedIn, "f");
|
|
1691
|
+
__classPrivateFieldSet(this, _AirWalletProvider_ensureWallet, ensureWallet, "f");
|
|
1692
|
+
__classPrivateFieldSet(this, _AirWalletProvider_getWalletIframeController, getWalletIframeController, "f");
|
|
1693
|
+
__classPrivateFieldSet(this, _AirWalletProvider_eventListeners, {
|
|
1694
|
+
connect: [],
|
|
1695
|
+
disconnect: [],
|
|
1696
|
+
accountsChanged: [],
|
|
1697
|
+
chainChanged: [],
|
|
1698
|
+
message: [],
|
|
1699
|
+
}, "f");
|
|
2337
1700
|
}
|
|
2338
1701
|
async request(request) {
|
|
2339
1702
|
// Check if the request is valid
|
|
2340
1703
|
if (!request || typeof request !== "object" || Array.isArray(request)) {
|
|
2341
|
-
throw
|
|
1704
|
+
throw new InvalidRequestRpcError("Invalid request");
|
|
2342
1705
|
}
|
|
2343
1706
|
const { method, params } = request;
|
|
2344
1707
|
// Check if the method is valid
|
|
2345
1708
|
if (typeof method !== "string" || method.length === 0) {
|
|
2346
|
-
throw
|
|
1709
|
+
throw new MethodNotFoundRpcError("Invalid method");
|
|
2347
1710
|
}
|
|
2348
1711
|
// Check if the params are valid
|
|
2349
1712
|
if (params !== undefined &&
|
|
2350
1713
|
!Array.isArray(params) &&
|
|
2351
1714
|
(typeof params !== "object" || params === null)) {
|
|
2352
|
-
throw
|
|
1715
|
+
throw new InvalidParamsRpcError("Invalid params");
|
|
1716
|
+
}
|
|
1717
|
+
// Check if the user is logged in
|
|
1718
|
+
if (!__classPrivateFieldGet(this, _AirWalletProvider_isLoggedIn, "f").call(this)) {
|
|
1719
|
+
throw new UnauthorizedProviderError("User is not logged in");
|
|
1720
|
+
}
|
|
1721
|
+
try {
|
|
1722
|
+
await __classPrivateFieldGet(this, _AirWalletProvider_ensureWallet, "f").call(this);
|
|
1723
|
+
}
|
|
1724
|
+
catch (error) {
|
|
1725
|
+
throw ensureProviderRpcError(error);
|
|
2353
1726
|
}
|
|
2354
1727
|
const requestId = randomId();
|
|
2355
|
-
const response = await AirMessageService$1.sendWalletProviderRequest(__classPrivateFieldGet(this,
|
|
1728
|
+
const response = await AirMessageService$1.sendWalletProviderRequest(__classPrivateFieldGet(this, _AirWalletProvider_getWalletIframeController, "f").call(this).iframeElement, {
|
|
2356
1729
|
requestId,
|
|
2357
1730
|
...request,
|
|
2358
1731
|
});
|
|
2359
1732
|
if (!response.success) {
|
|
2360
|
-
|
|
2361
|
-
throw error;
|
|
1733
|
+
throw ensureProviderRpcError(response.payload);
|
|
2362
1734
|
}
|
|
2363
1735
|
return response.payload.response;
|
|
2364
1736
|
}
|
|
2365
1737
|
on(eventName, listener) {
|
|
2366
|
-
|
|
1738
|
+
__classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName] = __classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName] || [];
|
|
1739
|
+
__classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName].push(listener);
|
|
2367
1740
|
}
|
|
2368
1741
|
removeListener(eventName, listener) {
|
|
2369
|
-
|
|
1742
|
+
__classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName] = __classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName] || [];
|
|
1743
|
+
const index = __classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName].indexOf(listener);
|
|
1744
|
+
if (index >= 0) {
|
|
1745
|
+
__classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName].splice(index, 1);
|
|
1746
|
+
}
|
|
1747
|
+
}
|
|
1748
|
+
removeAllListeners() {
|
|
1749
|
+
__classPrivateFieldSet(this, _AirWalletProvider_eventListeners, {
|
|
1750
|
+
connect: [],
|
|
1751
|
+
disconnect: [],
|
|
1752
|
+
accountsChanged: [],
|
|
1753
|
+
chainChanged: [],
|
|
1754
|
+
message: [],
|
|
1755
|
+
}, "f");
|
|
2370
1756
|
}
|
|
2371
1757
|
}
|
|
2372
|
-
|
|
1758
|
+
_AirWalletProvider_isLoggedIn = new WeakMap(), _AirWalletProvider_ensureWallet = new WeakMap(), _AirWalletProvider_getWalletIframeController = new WeakMap(), _AirWalletProvider_eventListeners = new WeakMap(), _AirWalletProvider_instances = new WeakSet(), _AirWalletProvider_emit = function _AirWalletProvider_emit(eventName, ...args) {
|
|
1759
|
+
(__classPrivateFieldGet(this, _AirWalletProvider_eventListeners, "f")[eventName] || []).forEach((listener) => {
|
|
1760
|
+
try {
|
|
1761
|
+
return listener(...args);
|
|
1762
|
+
}
|
|
1763
|
+
catch (error) {
|
|
1764
|
+
log$1.error(error);
|
|
1765
|
+
}
|
|
1766
|
+
});
|
|
1767
|
+
};
|
|
2373
1768
|
|
|
2374
1769
|
class IframeController {
|
|
2375
1770
|
constructor(iframeUrl, iframeId, state) {
|
|
@@ -2434,9 +1829,8 @@ IframeController.defaultState = {
|
|
|
2434
1829
|
isVisible: false,
|
|
2435
1830
|
};
|
|
2436
1831
|
|
|
2437
|
-
var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airAuthListener, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_isWalletInitialized, _AirService_airWalletProvider, _AirService_ensureWallet, _AirService_initializeWallet, _AirService_triggerEventListeners, _AirService_triggerAirAuthInitialized, _AirService_triggerAirAuthLoggedIn, _AirService_triggerAirAuthLoggedOut, _AirService_triggerWalletInitialized, _AirService_createLoginResult, _AirService_cleanUpAuth, _AirService_cleanUpWallet;
|
|
1832
|
+
var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airAuthListener, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_isWalletInitialized, _AirService_walletLoggedInResult, _AirService_airWalletProvider, _AirService_ensureWallet, _AirService_initializeWallet, _AirService_triggerEventListeners, _AirService_triggerAirAuthInitialized, _AirService_triggerAirAuthLoggedIn, _AirService_triggerAirAuthLoggedOut, _AirService_triggerWalletInitialized, _AirService_createLoginResult, _AirService_createWalletInitializedResult, _AirService_cleanUpAuth, _AirService_cleanUpWallet, _AirService_cleanUpAuthWalletCommunication;
|
|
2438
1833
|
class AirService {
|
|
2439
|
-
// #walletRehydrationState: AirRehydrationResult;
|
|
2440
1834
|
constructor({ partnerId }) {
|
|
2441
1835
|
_AirService_instances.add(this);
|
|
2442
1836
|
_AirService_loginResult.set(this, undefined);
|
|
@@ -2450,8 +1844,14 @@ class AirService {
|
|
|
2450
1844
|
_AirService_walletIframeController.set(this, undefined);
|
|
2451
1845
|
_AirService_walletInitialization.set(this, undefined);
|
|
2452
1846
|
_AirService_isWalletInitialized.set(this, false);
|
|
1847
|
+
_AirService_walletLoggedInResult.set(this, undefined);
|
|
2453
1848
|
_AirService_airWalletProvider.set(this, undefined);
|
|
2454
1849
|
__classPrivateFieldSet(this, _AirService_partnerId, partnerId, "f");
|
|
1850
|
+
__classPrivateFieldSet(this, _AirService_airWalletProvider, new AirWalletProvider({
|
|
1851
|
+
isLoggedIn: () => this.isLoggedIn,
|
|
1852
|
+
ensureWallet: __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).bind(this),
|
|
1853
|
+
getWalletIframeController: () => __classPrivateFieldGet(this, _AirService_walletIframeController, "f"),
|
|
1854
|
+
}), "f");
|
|
2455
1855
|
// this.#modalZIndex = modalZIndex ?? 99999;
|
|
2456
1856
|
}
|
|
2457
1857
|
get buildEnv() {
|
|
@@ -2463,8 +1863,16 @@ class AirService {
|
|
|
2463
1863
|
get isLoggedIn() {
|
|
2464
1864
|
return !!__classPrivateFieldGet(this, _AirService_loginResult, "f");
|
|
2465
1865
|
}
|
|
2466
|
-
get
|
|
2467
|
-
return __classPrivateFieldGet(this,
|
|
1866
|
+
get isWalletInitialized() {
|
|
1867
|
+
return !!__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f");
|
|
1868
|
+
}
|
|
1869
|
+
get provider() {
|
|
1870
|
+
const provider = __classPrivateFieldGet(this, _AirService_airWalletProvider, "f");
|
|
1871
|
+
return {
|
|
1872
|
+
request: provider.request.bind(provider),
|
|
1873
|
+
on: provider.on.bind(provider),
|
|
1874
|
+
removeListener: provider.removeListener.bind(provider),
|
|
1875
|
+
};
|
|
2468
1876
|
}
|
|
2469
1877
|
async init({ buildEnv = BUILD_ENV.PRODUCTION, enableLogging = false, skipRehydration = false, }) {
|
|
2470
1878
|
if (!__classPrivateFieldGet(this, _AirService_partnerId, "f"))
|
|
@@ -2492,7 +1900,7 @@ class AirService {
|
|
|
2492
1900
|
}
|
|
2493
1901
|
case AirAuthMessageTypes.SETUP_WALLET_REQUEST: {
|
|
2494
1902
|
try {
|
|
2495
|
-
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
|
|
1903
|
+
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this, { skipWalletLogin: true });
|
|
2496
1904
|
__classPrivateFieldGet(this, _AirService_authIframeController, "f").postMessage({
|
|
2497
1905
|
type: AirAuthMessageTypes.SETUP_WALLET_RESPONSE,
|
|
2498
1906
|
payload: {
|
|
@@ -2527,6 +1935,7 @@ class AirService {
|
|
|
2527
1935
|
const { payload } = await AirMessageService$1.sendAuthInitializationRequest(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement, {
|
|
2528
1936
|
partnerId: __classPrivateFieldGet(this, _AirService_partnerId, "f"),
|
|
2529
1937
|
skipRehydration,
|
|
1938
|
+
partnerDAppUrl: window.location.href,
|
|
2530
1939
|
});
|
|
2531
1940
|
if (payload.success === true) {
|
|
2532
1941
|
resolve(payload);
|
|
@@ -2554,11 +1963,6 @@ class AirService {
|
|
|
2554
1963
|
}
|
|
2555
1964
|
return null;
|
|
2556
1965
|
}
|
|
2557
|
-
async cleanUp() {
|
|
2558
|
-
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this);
|
|
2559
|
-
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpAuth).call(this);
|
|
2560
|
-
this.clearEventListeners();
|
|
2561
|
-
}
|
|
2562
1966
|
async login(options) {
|
|
2563
1967
|
if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
|
|
2564
1968
|
throw new Error("Service is not initialized");
|
|
@@ -2584,7 +1988,11 @@ class AirService {
|
|
|
2584
1988
|
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
|
|
2585
1989
|
try {
|
|
2586
1990
|
log.info("deploySmartAccount");
|
|
2587
|
-
await AirMessageService$1.sendDeploySmartAccountRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
|
|
1991
|
+
const { payload } = await AirMessageService$1.sendDeploySmartAccountRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
|
|
1992
|
+
if (payload.success === false) {
|
|
1993
|
+
throw new AirServiceError(payload.errorName, payload.errorMessage);
|
|
1994
|
+
}
|
|
1995
|
+
return { txHash: payload.txHash };
|
|
2588
1996
|
}
|
|
2589
1997
|
catch (error) {
|
|
2590
1998
|
throw AirServiceError.from(error);
|
|
@@ -2618,7 +2026,8 @@ class AirService {
|
|
|
2618
2026
|
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
|
|
2619
2027
|
try {
|
|
2620
2028
|
log.info("executeAction", params);
|
|
2621
|
-
await AirMessageService$1.sendExecuteActionRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, params);
|
|
2029
|
+
const txHash = await AirMessageService$1.sendExecuteActionRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, params);
|
|
2030
|
+
return txHash;
|
|
2622
2031
|
}
|
|
2623
2032
|
catch (error) {
|
|
2624
2033
|
throw AirServiceError.from(error);
|
|
@@ -2633,65 +2042,95 @@ class AirService {
|
|
|
2633
2042
|
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
|
|
2634
2043
|
try {
|
|
2635
2044
|
log.info("revokePermission", permissionId);
|
|
2636
|
-
await AirMessageService$1.sendRevokePermissionsRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, permissionId);
|
|
2045
|
+
const txHash = await AirMessageService$1.sendRevokePermissionsRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, permissionId);
|
|
2046
|
+
return txHash;
|
|
2637
2047
|
}
|
|
2638
2048
|
catch (error) {
|
|
2639
2049
|
throw AirServiceError.from(error);
|
|
2640
2050
|
}
|
|
2641
2051
|
}
|
|
2642
|
-
|
|
2052
|
+
/**
|
|
2053
|
+
* @experimental This method is experimental and will change in the future.
|
|
2054
|
+
*/
|
|
2055
|
+
async isSmartAccountDeployed() {
|
|
2643
2056
|
if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
|
|
2644
2057
|
throw new Error("Service is not initialized");
|
|
2645
|
-
if (!this.isLoggedIn)
|
|
2646
|
-
throw new Error("No active session to logout");
|
|
2647
|
-
// Clear up wallet
|
|
2648
|
-
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this);
|
|
2649
|
-
await AirMessageService$1.logoutAuth(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement);
|
|
2650
|
-
__classPrivateFieldSet(this, _AirService_loginResult, undefined, "f");
|
|
2651
|
-
__classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerAirAuthLoggedOut).call(this);
|
|
2652
|
-
}
|
|
2653
|
-
async getProvider() {
|
|
2654
|
-
if (!this.isLoggedIn)
|
|
2655
|
-
return null;
|
|
2656
2058
|
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
|
|
2657
|
-
|
|
2059
|
+
try {
|
|
2060
|
+
const { payload } = await AirMessageService$1.sendIsSmartAccountDeployedRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
|
|
2061
|
+
if (payload.success === false) {
|
|
2062
|
+
throw new AirServiceError(payload.errorName, payload.errorMessage);
|
|
2063
|
+
}
|
|
2064
|
+
return payload.isDeployed;
|
|
2065
|
+
}
|
|
2066
|
+
catch (error) {
|
|
2067
|
+
throw AirServiceError.from(error);
|
|
2068
|
+
}
|
|
2069
|
+
}
|
|
2070
|
+
getProvider() {
|
|
2071
|
+
return this.provider;
|
|
2658
2072
|
}
|
|
2659
2073
|
async preloadWallet() {
|
|
2660
|
-
|
|
2074
|
+
if (__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"))
|
|
2075
|
+
return __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f");
|
|
2076
|
+
return await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
|
|
2661
2077
|
}
|
|
2662
2078
|
async claimAirId(options) {
|
|
2663
2079
|
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_ensureWallet).call(this);
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2080
|
+
const result = await AirMessageService$1.sendClaimIdRequest(__classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, options ?? {});
|
|
2081
|
+
if (result.payload.success === true) {
|
|
2082
|
+
return { airId: result.payload.airId };
|
|
2083
|
+
}
|
|
2084
|
+
throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
|
|
2667
2085
|
}
|
|
2668
2086
|
async getUserInfo() {
|
|
2669
2087
|
if (!this.isLoggedIn)
|
|
2670
2088
|
throw new Error("User not logged in");
|
|
2671
|
-
const info = await AirMessageService$1.
|
|
2089
|
+
const info = await AirMessageService$1.sendPartnerUserInfoRequest(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement);
|
|
2672
2090
|
if (info.payload.success === false) {
|
|
2673
2091
|
throw new AirServiceError(info.payload.errorName, info.payload.errorMessage);
|
|
2674
2092
|
}
|
|
2675
2093
|
return {
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2094
|
+
partnerId: info.payload.partnerId,
|
|
2095
|
+
partnerUserId: info.payload.partnerUserId,
|
|
2096
|
+
airId: info.payload.airId,
|
|
2097
|
+
user: {
|
|
2098
|
+
id: info.payload.user.id,
|
|
2099
|
+
abstractAccountAddress: info.payload.user.abstractAccountAddress,
|
|
2100
|
+
email: info.payload.user.email,
|
|
2101
|
+
isMFASetup: info.payload.user.isMFASetup,
|
|
2102
|
+
},
|
|
2680
2103
|
};
|
|
2681
2104
|
}
|
|
2682
|
-
async
|
|
2105
|
+
async goToPartner(partnerUrl) {
|
|
2106
|
+
if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
|
|
2107
|
+
throw new Error("Service is not initialized");
|
|
2683
2108
|
if (!this.isLoggedIn)
|
|
2684
|
-
throw new Error("
|
|
2685
|
-
const
|
|
2686
|
-
if (
|
|
2687
|
-
throw new AirServiceError(
|
|
2109
|
+
throw new Error("No active session to generate token");
|
|
2110
|
+
const result = await AirMessageService$1.sendCrossPartnerTokenRequest(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement, partnerUrl);
|
|
2111
|
+
if (result.payload.success === false) {
|
|
2112
|
+
throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
|
|
2688
2113
|
}
|
|
2689
2114
|
return {
|
|
2690
|
-
|
|
2691
|
-
partnerUserId: info.payload.partnerUserId,
|
|
2692
|
-
airId: info.payload.airId,
|
|
2115
|
+
urlWithToken: result.payload.urlWithToken,
|
|
2693
2116
|
};
|
|
2694
2117
|
}
|
|
2118
|
+
async logout() {
|
|
2119
|
+
if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
|
|
2120
|
+
throw new Error("Service is not initialized");
|
|
2121
|
+
if (!this.isLoggedIn)
|
|
2122
|
+
throw new Error("No active session to logout");
|
|
2123
|
+
// Clear up wallet
|
|
2124
|
+
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this);
|
|
2125
|
+
await AirMessageService$1.logoutAuth(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement);
|
|
2126
|
+
__classPrivateFieldSet(this, _AirService_loginResult, undefined, "f");
|
|
2127
|
+
__classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerAirAuthLoggedOut).call(this);
|
|
2128
|
+
}
|
|
2129
|
+
async cleanUp() {
|
|
2130
|
+
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this);
|
|
2131
|
+
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpAuth).call(this);
|
|
2132
|
+
this.clearEventListeners();
|
|
2133
|
+
}
|
|
2695
2134
|
on(listener) {
|
|
2696
2135
|
if (__classPrivateFieldGet(this, _AirService_airAuthListener, "f").indexOf(listener) < 0)
|
|
2697
2136
|
__classPrivateFieldGet(this, _AirService_airAuthListener, "f").push(listener);
|
|
@@ -2712,24 +2151,39 @@ class AirService {
|
|
|
2712
2151
|
return null;
|
|
2713
2152
|
}
|
|
2714
2153
|
}
|
|
2715
|
-
_AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _AirService_enableLogging = new WeakMap(), _AirService_partnerId = new WeakMap(), _AirService_authIframeController = new WeakMap(), _AirService_isAuthInitialized = new WeakMap(), _AirService_airAuthListener = new WeakMap(), _AirService_walletIframeController = new WeakMap(), _AirService_walletInitialization = new WeakMap(), _AirService_isWalletInitialized = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_ensureWallet =
|
|
2154
|
+
_AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _AirService_enableLogging = new WeakMap(), _AirService_partnerId = new WeakMap(), _AirService_authIframeController = new WeakMap(), _AirService_isAuthInitialized = new WeakMap(), _AirService_airAuthListener = new WeakMap(), _AirService_walletIframeController = new WeakMap(), _AirService_walletInitialization = new WeakMap(), _AirService_isWalletInitialized = new WeakMap(), _AirService_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_ensureWallet =
|
|
2155
|
+
// Result of this.#walletInitialization:
|
|
2156
|
+
// - If skipWalletLogin is true, it returns the result of empty abstractAccountAddress
|
|
2157
|
+
// - If skipWalletLogin is false, it returns the result of abstractAccountAddress from wallet initialization
|
|
2158
|
+
// - If #ensureWallet is called again, it returns the result of abstractAccountAddress from the second
|
|
2159
|
+
// wallet initialization if this first wallet initialization doesn't have abstractAccountAddress
|
|
2160
|
+
async function _AirService_ensureWallet(option) {
|
|
2716
2161
|
if (!this.isInitialized)
|
|
2717
2162
|
throw new Error("Service not initialized");
|
|
2718
|
-
if (!
|
|
2719
|
-
|
|
2720
|
-
|
|
2721
|
-
|
|
2163
|
+
if (!this.isLoggedIn && !option?.skipWalletLogin)
|
|
2164
|
+
throw new Error("User not logged in");
|
|
2165
|
+
if (!__classPrivateFieldGet(this, _AirService_walletInitialization, "f"))
|
|
2166
|
+
__classPrivateFieldSet(this, _AirService_walletInitialization, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_initializeWallet).call(this, option), "f");
|
|
2167
|
+
try {
|
|
2168
|
+
const result = await __classPrivateFieldGet(this, _AirService_walletInitialization, "f");
|
|
2169
|
+
// Note: Checking for abstractAccountAddress from the result and this.#walletLoggedInResult to avoid race condition
|
|
2170
|
+
if (option?.skipWalletLogin ||
|
|
2171
|
+
result?.abstractAccountAddress ||
|
|
2172
|
+
__classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f")?.abstractAccountAddress) {
|
|
2173
|
+
return result || __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f");
|
|
2722
2174
|
}
|
|
2723
|
-
|
|
2724
|
-
|
|
2725
|
-
|
|
2726
|
-
throw error;
|
|
2175
|
+
const walletInitResult = await AirMessageService$1.onWalletInitialized();
|
|
2176
|
+
if (walletInitResult.payload.success !== true) {
|
|
2177
|
+
throw new AirServiceError(walletInitResult.payload.errorName, walletInitResult.payload.errorMessage);
|
|
2727
2178
|
}
|
|
2179
|
+
return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, walletInitResult.payload);
|
|
2728
2180
|
}
|
|
2729
|
-
|
|
2730
|
-
|
|
2181
|
+
catch (error) {
|
|
2182
|
+
__classPrivateFieldSet(this, _AirService_walletInitialization, null, "f");
|
|
2183
|
+
log.error("Error initializing wallet", error);
|
|
2184
|
+
throw error;
|
|
2731
2185
|
}
|
|
2732
|
-
}, _AirService_initializeWallet = async function _AirService_initializeWallet() {
|
|
2186
|
+
}, _AirService_initializeWallet = async function _AirService_initializeWallet(option) {
|
|
2733
2187
|
if (__classPrivateFieldGet(this, _AirService_isWalletInitialized, "f"))
|
|
2734
2188
|
throw new AirServiceError("ALREADY_INITIALISED", "Already initialized");
|
|
2735
2189
|
const { walletUrl } = AIR_URLS[__classPrivateFieldGet(this, _AirService_buildEnv, "f")];
|
|
@@ -2747,6 +2201,23 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
|
|
|
2747
2201
|
walletIframeController.updateIframeState();
|
|
2748
2202
|
break;
|
|
2749
2203
|
}
|
|
2204
|
+
case AirMessageTypes.WALLET_INITIALIZED: {
|
|
2205
|
+
if (msg.payload.success === true && msg.payload.addresses?.aa) {
|
|
2206
|
+
__classPrivateFieldSet(this, _AirService_walletLoggedInResult, __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, msg.payload), "f");
|
|
2207
|
+
__classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerWalletInitialized).call(this, __classPrivateFieldGet(this, _AirService_walletLoggedInResult, "f"));
|
|
2208
|
+
}
|
|
2209
|
+
if (msg.payload.success === false) {
|
|
2210
|
+
if (!__classPrivateFieldGet(this, _AirService_isWalletInitialized, "f")) {
|
|
2211
|
+
// MFA fail case, also reset wallet port
|
|
2212
|
+
__classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpAuthWalletCommunication).call(this);
|
|
2213
|
+
}
|
|
2214
|
+
else {
|
|
2215
|
+
// Logout wallet and destroy the wallet iframe
|
|
2216
|
+
await __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_cleanUpWallet).call(this);
|
|
2217
|
+
}
|
|
2218
|
+
}
|
|
2219
|
+
break;
|
|
2220
|
+
}
|
|
2750
2221
|
}
|
|
2751
2222
|
});
|
|
2752
2223
|
await new Promise((resolve, reject) => {
|
|
@@ -2769,18 +2240,15 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
|
|
|
2769
2240
|
};
|
|
2770
2241
|
window.addEventListener("message", handleAuthMessage);
|
|
2771
2242
|
});
|
|
2243
|
+
__classPrivateFieldGet(this, _AirService_airWalletProvider, "f").listenProviderEventMessage();
|
|
2772
2244
|
const walletInitPromise = AirMessageService$1.onWalletInitialized();
|
|
2773
|
-
AirMessageService$1.setupIframeCommunication(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement, __classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement);
|
|
2245
|
+
AirMessageService$1.setupIframeCommunication(__classPrivateFieldGet(this, _AirService_authIframeController, "f").iframeElement, __classPrivateFieldGet(this, _AirService_walletIframeController, "f").iframeElement, option?.skipWalletLogin ?? false);
|
|
2774
2246
|
const walletInitResult = await walletInitPromise;
|
|
2775
2247
|
if (walletInitResult.payload.success !== true) {
|
|
2776
2248
|
throw new AirServiceError(walletInitResult.payload.errorName, walletInitResult.payload.errorMessage);
|
|
2777
2249
|
}
|
|
2778
|
-
__classPrivateFieldSet(this,
|
|
2779
|
-
|
|
2780
|
-
abstractAccountAddress: walletInitResult.payload.addresses.aa,
|
|
2781
|
-
};
|
|
2782
|
-
__classPrivateFieldGet(this, _AirService_instances, "m", _AirService_triggerWalletInitialized).call(this, result);
|
|
2783
|
-
return result;
|
|
2250
|
+
__classPrivateFieldSet(this, _AirService_isWalletInitialized, true, "f");
|
|
2251
|
+
return __classPrivateFieldGet(this, _AirService_instances, "m", _AirService_createWalletInitializedResult).call(this, walletInitResult.payload);
|
|
2784
2252
|
}
|
|
2785
2253
|
catch (error) {
|
|
2786
2254
|
log.error("Error initializing wallet", error);
|
|
@@ -2811,6 +2279,12 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
|
|
|
2811
2279
|
id: payload.id,
|
|
2812
2280
|
abstractAccountAddress: payload.abstractAccountAddress,
|
|
2813
2281
|
token: payload.partnerAccessToken,
|
|
2282
|
+
isMFASetup: payload.isMFASetup,
|
|
2283
|
+
};
|
|
2284
|
+
}, _AirService_createWalletInitializedResult = function _AirService_createWalletInitializedResult(payload) {
|
|
2285
|
+
return {
|
|
2286
|
+
abstractAccountAddress: payload.addresses?.aa ?? null,
|
|
2287
|
+
isMFASetup: payload.isMFASetup,
|
|
2814
2288
|
};
|
|
2815
2289
|
}, _AirService_cleanUpAuth = async function _AirService_cleanUpAuth() {
|
|
2816
2290
|
// Logout auth session
|
|
@@ -2827,20 +2301,38 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
|
|
|
2827
2301
|
}, _AirService_cleanUpWallet = async function _AirService_cleanUpWallet() {
|
|
2828
2302
|
if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
|
|
2829
2303
|
return;
|
|
2830
|
-
// Logout wallet
|
|
2831
|
-
// TODO need to tell wallet to clear preferences?
|
|
2832
|
-
// Destroy the wallet iframe
|
|
2304
|
+
// Logout wallet and destroy the wallet iframe
|
|
2833
2305
|
const walletIframeElement = __classPrivateFieldGet(this, _AirService_walletIframeController, "f")?.iframeElement;
|
|
2834
2306
|
if (isElement(walletIframeElement) && window.document.body.contains(walletIframeElement)) {
|
|
2307
|
+
await AirMessageService$1.logoutWallet(walletIframeElement);
|
|
2835
2308
|
__classPrivateFieldGet(this, _AirService_walletIframeController, "f").destroy();
|
|
2836
2309
|
__classPrivateFieldSet(this, _AirService_walletIframeController, undefined, "f");
|
|
2837
2310
|
}
|
|
2838
2311
|
// Close the message service
|
|
2839
2312
|
AirMessageService$1.closeAirObservables();
|
|
2840
|
-
__classPrivateFieldSet(this,
|
|
2313
|
+
__classPrivateFieldSet(this, _AirService_walletLoggedInResult, undefined, "f");
|
|
2314
|
+
__classPrivateFieldSet(this, _AirService_walletInitialization, undefined, "f");
|
|
2841
2315
|
__classPrivateFieldSet(this, _AirService_isWalletInitialized, false, "f");
|
|
2316
|
+
}, _AirService_cleanUpAuthWalletCommunication = function _AirService_cleanUpAuthWalletCommunication() {
|
|
2317
|
+
if (!__classPrivateFieldGet(this, _AirService_isAuthInitialized, "f"))
|
|
2318
|
+
return;
|
|
2319
|
+
const authIframeElement = __classPrivateFieldGet(this, _AirService_authIframeController, "f")?.iframeElement;
|
|
2320
|
+
if (isElement(authIframeElement) && window.document.body.contains(authIframeElement)) {
|
|
2321
|
+
AirMessageService$1.sendResetAuthServiceWalletCommunication(authIframeElement);
|
|
2322
|
+
}
|
|
2842
2323
|
};
|
|
2843
2324
|
|
|
2844
2325
|
exports.AirService = AirService;
|
|
2845
|
-
exports.
|
|
2326
|
+
exports.AirServiceError = AirServiceError;
|
|
2846
2327
|
exports.BUILD_ENV = BUILD_ENV;
|
|
2328
|
+
exports.ChainDisconnectedError = ChainDisconnectedError;
|
|
2329
|
+
exports.InternalRpcError = InternalRpcError;
|
|
2330
|
+
exports.InvalidParamsRpcError = InvalidParamsRpcError;
|
|
2331
|
+
exports.InvalidRequestRpcError = InvalidRequestRpcError;
|
|
2332
|
+
exports.MethodNotFoundRpcError = MethodNotFoundRpcError;
|
|
2333
|
+
exports.ProviderDisconnectedError = ProviderDisconnectedError;
|
|
2334
|
+
exports.SwitchChainError = SwitchChainError;
|
|
2335
|
+
exports.UnauthorizedProviderError = UnauthorizedProviderError;
|
|
2336
|
+
exports.UnsupportedProviderMethodError = UnsupportedProviderMethodError;
|
|
2337
|
+
exports.UserRejectedRequestError = UserRejectedRequestError;
|
|
2338
|
+
exports.ensureProviderRpcError = ensureProviderRpcError;
|