@opexa/portal-sdk 0.59.83 → 0.59.85
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/index.cjs +136 -128
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +136 -128
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
package/dist/index.cjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var objectId = require('@opexa/object-id');
|
|
4
|
+
var app = require('@capacitor/app');
|
|
4
5
|
var core = require('@capacitor/core');
|
|
5
6
|
var thumbmarkjs = require('@thumbmarkjs/thumbmarkjs');
|
|
6
7
|
var cookies = require('js-cookie');
|
|
@@ -7216,8 +7217,8 @@ function pollable(func, config) {
|
|
|
7216
7217
|
};
|
|
7217
7218
|
}
|
|
7218
7219
|
|
|
7219
|
-
// src/sdk/session-manager
|
|
7220
|
-
var
|
|
7220
|
+
// src/sdk/session-manager.ts
|
|
7221
|
+
var SessionManager = class {
|
|
7221
7222
|
logger;
|
|
7222
7223
|
storageKey = "session";
|
|
7223
7224
|
platformStorageKey = "session/platform";
|
|
@@ -7231,10 +7232,15 @@ var SessionManagerCookie = class {
|
|
|
7231
7232
|
*/
|
|
7232
7233
|
v4AccessToken = null;
|
|
7233
7234
|
v4AccessTokenExpiresAt = null;
|
|
7235
|
+
v4RefreshPromise = null;
|
|
7234
7236
|
constructor(config) {
|
|
7235
7237
|
this.authService = config.authService;
|
|
7236
7238
|
this.walletService = config.walletService;
|
|
7237
7239
|
this.logger = config.logger;
|
|
7240
|
+
if (config.sessionPrefix) {
|
|
7241
|
+
this.storageKey = `${config.sessionPrefix}/${this.storageKey}`;
|
|
7242
|
+
this.platformStorageKey = `${config.sessionPrefix}/${this.platformStorageKey}`;
|
|
7243
|
+
}
|
|
7238
7244
|
}
|
|
7239
7245
|
get refreshing() {
|
|
7240
7246
|
return this._refreshing;
|
|
@@ -7245,27 +7251,51 @@ var SessionManagerCookie = class {
|
|
|
7245
7251
|
persist(data, version) {
|
|
7246
7252
|
const now = /* @__PURE__ */ new Date();
|
|
7247
7253
|
if (version === 4) {
|
|
7248
|
-
|
|
7254
|
+
if (!data.session || !data.accessToken) {
|
|
7255
|
+
this.logger.error(
|
|
7256
|
+
"Malformed session response: expected 'session' and 'accessToken'."
|
|
7257
|
+
);
|
|
7258
|
+
return false;
|
|
7259
|
+
}
|
|
7260
|
+
this.v4AccessToken = data.accessToken;
|
|
7249
7261
|
this.v4AccessTokenExpiresAt = addMinutes(now, 5).getTime();
|
|
7250
|
-
|
|
7262
|
+
localStorage.setItem(
|
|
7251
7263
|
this.storageKey,
|
|
7252
|
-
JSON.stringify({ version, session: data.session })
|
|
7253
|
-
{ expires: subMinutes(addDays(now, 15), 2).getTime() }
|
|
7264
|
+
JSON.stringify({ version, session: data.session })
|
|
7254
7265
|
);
|
|
7255
|
-
return;
|
|
7266
|
+
return true;
|
|
7256
7267
|
}
|
|
7257
|
-
|
|
7268
|
+
localStorage.setItem(
|
|
7258
7269
|
this.storageKey,
|
|
7259
7270
|
JSON.stringify({
|
|
7260
7271
|
version,
|
|
7261
7272
|
...data,
|
|
7262
7273
|
accessTokenExpiresAt: addMinutes(now, 8).getTime(),
|
|
7263
7274
|
refreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime()
|
|
7264
|
-
})
|
|
7265
|
-
{ expires: subMinutes(addDays(now, 30), 2).getTime() }
|
|
7275
|
+
})
|
|
7266
7276
|
);
|
|
7277
|
+
return true;
|
|
7278
|
+
}
|
|
7279
|
+
malformedResponseError() {
|
|
7280
|
+
return {
|
|
7281
|
+
ok: false,
|
|
7282
|
+
error: {
|
|
7283
|
+
name: "UnknownError",
|
|
7284
|
+
message: "Something went wrong."
|
|
7285
|
+
}
|
|
7286
|
+
};
|
|
7267
7287
|
}
|
|
7268
7288
|
async create(input, version = 1) {
|
|
7289
|
+
if (this.isServer) {
|
|
7290
|
+
this.logger.warn("'localStorage' is not available on the server.");
|
|
7291
|
+
return {
|
|
7292
|
+
ok: false,
|
|
7293
|
+
error: {
|
|
7294
|
+
name: "UnknownError",
|
|
7295
|
+
message: "Server sign in is not supported."
|
|
7296
|
+
}
|
|
7297
|
+
};
|
|
7298
|
+
}
|
|
7269
7299
|
if (input.type === "MAYA") {
|
|
7270
7300
|
localStorage.setItem(this.platformStorageKey, "MAYA");
|
|
7271
7301
|
const f0 = () => this.walletService.mayaSession({ id: input.sessionId });
|
|
@@ -7291,7 +7321,7 @@ var SessionManagerCookie = class {
|
|
|
7291
7321
|
maxAttempt: 5
|
|
7292
7322
|
})();
|
|
7293
7323
|
if (!r1.ok) return r1;
|
|
7294
|
-
this.persist(r1.data, version);
|
|
7324
|
+
if (!this.persist(r1.data, version)) return this.malformedResponseError();
|
|
7295
7325
|
return {
|
|
7296
7326
|
ok: true,
|
|
7297
7327
|
data: null
|
|
@@ -7300,7 +7330,7 @@ var SessionManagerCookie = class {
|
|
|
7300
7330
|
if (input.type === "MOBILE_NUMBER") {
|
|
7301
7331
|
const res2 = await this.authService.createSession(input, version);
|
|
7302
7332
|
if (res2.ok) {
|
|
7303
|
-
this.persist(res2.data, version);
|
|
7333
|
+
if (!this.persist(res2.data, version)) return this.malformedResponseError();
|
|
7304
7334
|
return {
|
|
7305
7335
|
ok: true,
|
|
7306
7336
|
data: null
|
|
@@ -7312,12 +7342,13 @@ var SessionManagerCookie = class {
|
|
|
7312
7342
|
const res2 = await this.authService.createSession(
|
|
7313
7343
|
{
|
|
7314
7344
|
type: "SOCIALS",
|
|
7315
|
-
token: input.token
|
|
7345
|
+
token: input.token,
|
|
7346
|
+
channel: input.channel
|
|
7316
7347
|
},
|
|
7317
7348
|
version
|
|
7318
7349
|
);
|
|
7319
7350
|
if (res2.ok) {
|
|
7320
|
-
this.persist(res2.data, version);
|
|
7351
|
+
if (!this.persist(res2.data, version)) return this.malformedResponseError();
|
|
7321
7352
|
return {
|
|
7322
7353
|
ok: true,
|
|
7323
7354
|
data: null
|
|
@@ -7329,7 +7360,7 @@ var SessionManagerCookie = class {
|
|
|
7329
7360
|
localStorage.setItem(this.platformStorageKey, "CABINET");
|
|
7330
7361
|
const res2 = await this.authService.createSession(input, version);
|
|
7331
7362
|
if (res2.ok) {
|
|
7332
|
-
this.persist(res2.data, version);
|
|
7363
|
+
if (!this.persist(res2.data, version)) return this.malformedResponseError();
|
|
7333
7364
|
return {
|
|
7334
7365
|
ok: true,
|
|
7335
7366
|
data: null
|
|
@@ -7347,7 +7378,7 @@ var SessionManagerCookie = class {
|
|
|
7347
7378
|
}
|
|
7348
7379
|
};
|
|
7349
7380
|
}
|
|
7350
|
-
this.persist(res.data, version);
|
|
7381
|
+
if (!this.persist(res.data, version)) return this.malformedResponseError();
|
|
7351
7382
|
return {
|
|
7352
7383
|
ok: true,
|
|
7353
7384
|
data: null
|
|
@@ -7357,9 +7388,9 @@ var SessionManagerCookie = class {
|
|
|
7357
7388
|
const res = await this.authService.authenticate(input);
|
|
7358
7389
|
if (res.ok) {
|
|
7359
7390
|
if (this.isServer) {
|
|
7360
|
-
this.logger.warn("'
|
|
7361
|
-
} else {
|
|
7362
|
-
this.
|
|
7391
|
+
this.logger.warn("'localStorage' is not available on the server.");
|
|
7392
|
+
} else if (!this.persist(res.data, 1)) {
|
|
7393
|
+
return this.malformedResponseError();
|
|
7363
7394
|
}
|
|
7364
7395
|
return { ok: true };
|
|
7365
7396
|
} else {
|
|
@@ -7368,7 +7399,7 @@ var SessionManagerCookie = class {
|
|
|
7368
7399
|
}
|
|
7369
7400
|
async get() {
|
|
7370
7401
|
if (this.isServer) {
|
|
7371
|
-
this.logger.warn("'
|
|
7402
|
+
this.logger.warn("'localStorage' is not available on the server.");
|
|
7372
7403
|
return {
|
|
7373
7404
|
ok: true,
|
|
7374
7405
|
data: null
|
|
@@ -7378,7 +7409,7 @@ var SessionManagerCookie = class {
|
|
|
7378
7409
|
await sleep(1e3);
|
|
7379
7410
|
return await this.get();
|
|
7380
7411
|
}
|
|
7381
|
-
const val =
|
|
7412
|
+
const val = localStorage.getItem(this.storageKey);
|
|
7382
7413
|
if (!val) {
|
|
7383
7414
|
return {
|
|
7384
7415
|
ok: true,
|
|
@@ -7396,7 +7427,7 @@ var SessionManagerCookie = class {
|
|
|
7396
7427
|
const refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);
|
|
7397
7428
|
if (isAfter(now, refreshTokenExpiresAt)) {
|
|
7398
7429
|
this.logger.warn("Session expired. Logging out..");
|
|
7399
|
-
|
|
7430
|
+
localStorage.removeItem(this.storageKey);
|
|
7400
7431
|
return {
|
|
7401
7432
|
ok: false,
|
|
7402
7433
|
error: {
|
|
@@ -7416,7 +7447,7 @@ var SessionManagerCookie = class {
|
|
|
7416
7447
|
if (!res.ok) {
|
|
7417
7448
|
this.logger.error(`Failed to refresh session: ${res.error.message}`);
|
|
7418
7449
|
if (res.error.name === "InvalidTokenError" || res.error.name === "AccountBlacklistedError" || res.error.name === "VerificationLockedError") {
|
|
7419
|
-
|
|
7450
|
+
localStorage.removeItem(this.storageKey);
|
|
7420
7451
|
return {
|
|
7421
7452
|
ok: false,
|
|
7422
7453
|
error: res.error
|
|
@@ -7438,9 +7469,7 @@ var SessionManagerCookie = class {
|
|
|
7438
7469
|
accessTokenExpiresAt: addMinutes(now, 8).getTime(),
|
|
7439
7470
|
refreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime()
|
|
7440
7471
|
};
|
|
7441
|
-
|
|
7442
|
-
expires: subMinutes(addDays(now, 30), 2).getTime()
|
|
7443
|
-
});
|
|
7472
|
+
localStorage.setItem(this.storageKey, JSON.stringify(obj));
|
|
7444
7473
|
}
|
|
7445
7474
|
return {
|
|
7446
7475
|
ok: true,
|
|
@@ -7458,13 +7487,13 @@ var SessionManagerCookie = class {
|
|
|
7458
7487
|
}
|
|
7459
7488
|
async refresh() {
|
|
7460
7489
|
if (this.isServer) {
|
|
7461
|
-
this.logger.warn("'
|
|
7490
|
+
this.logger.warn("'localStorage' is not available on the server.");
|
|
7462
7491
|
return {
|
|
7463
7492
|
ok: true,
|
|
7464
7493
|
data: null
|
|
7465
7494
|
};
|
|
7466
7495
|
}
|
|
7467
|
-
const val =
|
|
7496
|
+
const val = localStorage.getItem(this.storageKey);
|
|
7468
7497
|
if (!val) {
|
|
7469
7498
|
return {
|
|
7470
7499
|
ok: true,
|
|
@@ -7488,7 +7517,7 @@ var SessionManagerCookie = class {
|
|
|
7488
7517
|
if (!res.ok) {
|
|
7489
7518
|
this.logger.error(`Failed to refresh session: ${res.error.message}`);
|
|
7490
7519
|
if (res.error.name === "InvalidTokenError" || res.error.name === "AccountBlacklistedError" || res.error.name === "VerificationLockedError") {
|
|
7491
|
-
|
|
7520
|
+
localStorage.removeItem(this.storageKey);
|
|
7492
7521
|
return {
|
|
7493
7522
|
ok: false,
|
|
7494
7523
|
error: res.error
|
|
@@ -7510,9 +7539,7 @@ var SessionManagerCookie = class {
|
|
|
7510
7539
|
accessTokenExpiresAt: addMinutes(now, 8).getTime(),
|
|
7511
7540
|
refreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime()
|
|
7512
7541
|
};
|
|
7513
|
-
|
|
7514
|
-
expires: subMinutes(addDays(now, 30), 2).getTime()
|
|
7515
|
-
});
|
|
7542
|
+
localStorage.setItem(this.storageKey, JSON.stringify(obj));
|
|
7516
7543
|
return {
|
|
7517
7544
|
ok: true,
|
|
7518
7545
|
data: obj
|
|
@@ -7542,6 +7569,15 @@ var SessionManagerCookie = class {
|
|
|
7542
7569
|
return await this.refreshV4(session);
|
|
7543
7570
|
}
|
|
7544
7571
|
async refreshV4(session) {
|
|
7572
|
+
if (this.v4RefreshPromise) return await this.v4RefreshPromise;
|
|
7573
|
+
this.v4RefreshPromise = this.requestV4Refresh(session);
|
|
7574
|
+
try {
|
|
7575
|
+
return await this.v4RefreshPromise;
|
|
7576
|
+
} finally {
|
|
7577
|
+
this.v4RefreshPromise = null;
|
|
7578
|
+
}
|
|
7579
|
+
}
|
|
7580
|
+
async requestV4Refresh(session) {
|
|
7545
7581
|
this.logger.info("Refreshing session...");
|
|
7546
7582
|
this.refreshing = true;
|
|
7547
7583
|
const res = await this.authService.refreshSession(void 0, 4);
|
|
@@ -7549,7 +7585,7 @@ var SessionManagerCookie = class {
|
|
|
7549
7585
|
if (!res.ok) {
|
|
7550
7586
|
this.logger.error(`Failed to refresh session: ${res.error.message}`);
|
|
7551
7587
|
if (res.error.name === "InvalidTokenError" || res.error.name === "AccountBlacklistedError" || res.error.name === "VerificationLockedError") {
|
|
7552
|
-
|
|
7588
|
+
localStorage.removeItem(this.storageKey);
|
|
7553
7589
|
this.v4AccessToken = null;
|
|
7554
7590
|
this.v4AccessTokenExpiresAt = null;
|
|
7555
7591
|
}
|
|
@@ -7573,11 +7609,11 @@ var SessionManagerCookie = class {
|
|
|
7573
7609
|
}
|
|
7574
7610
|
async destroy() {
|
|
7575
7611
|
if (this.isServer) {
|
|
7576
|
-
this.logger.warn("'
|
|
7612
|
+
this.logger.warn("'localStorage' is not available on the server.");
|
|
7577
7613
|
return;
|
|
7578
7614
|
}
|
|
7579
7615
|
let version = 1;
|
|
7580
|
-
const val =
|
|
7616
|
+
const val = localStorage.getItem(this.storageKey);
|
|
7581
7617
|
if (val) {
|
|
7582
7618
|
try {
|
|
7583
7619
|
const stored = JSON.parse(val);
|
|
@@ -7591,18 +7627,18 @@ var SessionManagerCookie = class {
|
|
|
7591
7627
|
}
|
|
7592
7628
|
this.v4AccessToken = null;
|
|
7593
7629
|
this.v4AccessTokenExpiresAt = null;
|
|
7594
|
-
|
|
7630
|
+
localStorage.removeItem(this.storageKey);
|
|
7595
7631
|
}
|
|
7596
7632
|
async verify() {
|
|
7597
7633
|
if (this.isServer) {
|
|
7598
|
-
this.logger.warn("'
|
|
7634
|
+
this.logger.warn("'localStorage' is not available on the server.");
|
|
7599
7635
|
return true;
|
|
7600
7636
|
}
|
|
7601
|
-
const val =
|
|
7637
|
+
const val = localStorage.getItem(this.storageKey);
|
|
7602
7638
|
if (val) {
|
|
7603
7639
|
try {
|
|
7604
7640
|
const stored = JSON.parse(val);
|
|
7605
|
-
if (stored.version === 4) return await this.verifyV4();
|
|
7641
|
+
if (stored.version === 4) return await this.verifyV4(stored.session);
|
|
7606
7642
|
} catch {
|
|
7607
7643
|
}
|
|
7608
7644
|
}
|
|
@@ -7613,17 +7649,18 @@ var SessionManagerCookie = class {
|
|
|
7613
7649
|
if (!s.data) return true;
|
|
7614
7650
|
const v = await this.authService.verifySession(s.data.accessToken);
|
|
7615
7651
|
if (!v) {
|
|
7616
|
-
|
|
7652
|
+
localStorage.removeItem(this.storageKey);
|
|
7617
7653
|
}
|
|
7618
7654
|
return v;
|
|
7619
7655
|
}
|
|
7620
|
-
async verifyV4() {
|
|
7656
|
+
async verifyV4(session) {
|
|
7621
7657
|
if (!this.v4AccessToken || !this.v4AccessTokenExpiresAt || isAfter(/* @__PURE__ */ new Date(), new Date(this.v4AccessTokenExpiresAt))) {
|
|
7622
|
-
|
|
7658
|
+
const res = await this.refreshV4(session);
|
|
7659
|
+
return res.ok;
|
|
7623
7660
|
}
|
|
7624
7661
|
const v = await this.authService.verifySession(this.v4AccessToken);
|
|
7625
7662
|
if (!v) {
|
|
7626
|
-
|
|
7663
|
+
localStorage.removeItem(this.storageKey);
|
|
7627
7664
|
this.v4AccessToken = null;
|
|
7628
7665
|
this.v4AccessTokenExpiresAt = null;
|
|
7629
7666
|
}
|
|
@@ -7631,7 +7668,7 @@ var SessionManagerCookie = class {
|
|
|
7631
7668
|
}
|
|
7632
7669
|
get onMaya() {
|
|
7633
7670
|
if (this.isServer) {
|
|
7634
|
-
this.logger.warn("'
|
|
7671
|
+
this.logger.warn("'localStorage' is not available on the server.");
|
|
7635
7672
|
return false;
|
|
7636
7673
|
}
|
|
7637
7674
|
return localStorage.getItem(this.platformStorageKey) === "MAYA";
|
|
@@ -7647,9 +7684,7 @@ var SessionManagerCookie = class {
|
|
|
7647
7684
|
return typeof window === "undefined";
|
|
7648
7685
|
}
|
|
7649
7686
|
};
|
|
7650
|
-
|
|
7651
|
-
// src/sdk/session-manager.ts
|
|
7652
|
-
var SessionManager = class {
|
|
7687
|
+
var SessionManagerCookie = class {
|
|
7653
7688
|
logger;
|
|
7654
7689
|
storageKey = "session";
|
|
7655
7690
|
platformStorageKey = "session/platform";
|
|
@@ -7663,15 +7698,10 @@ var SessionManager = class {
|
|
|
7663
7698
|
*/
|
|
7664
7699
|
v4AccessToken = null;
|
|
7665
7700
|
v4AccessTokenExpiresAt = null;
|
|
7666
|
-
v4RefreshPromise = null;
|
|
7667
7701
|
constructor(config) {
|
|
7668
7702
|
this.authService = config.authService;
|
|
7669
7703
|
this.walletService = config.walletService;
|
|
7670
7704
|
this.logger = config.logger;
|
|
7671
|
-
if (config.sessionPrefix) {
|
|
7672
|
-
this.storageKey = `${config.sessionPrefix}/${this.storageKey}`;
|
|
7673
|
-
this.platformStorageKey = `${config.sessionPrefix}/${this.platformStorageKey}`;
|
|
7674
|
-
}
|
|
7675
7705
|
}
|
|
7676
7706
|
get refreshing() {
|
|
7677
7707
|
return this._refreshing;
|
|
@@ -7682,51 +7712,27 @@ var SessionManager = class {
|
|
|
7682
7712
|
persist(data, version) {
|
|
7683
7713
|
const now = /* @__PURE__ */ new Date();
|
|
7684
7714
|
if (version === 4) {
|
|
7685
|
-
|
|
7686
|
-
this.logger.error(
|
|
7687
|
-
"Malformed session response: expected 'session' and 'accessToken'."
|
|
7688
|
-
);
|
|
7689
|
-
return false;
|
|
7690
|
-
}
|
|
7691
|
-
this.v4AccessToken = data.accessToken;
|
|
7715
|
+
this.v4AccessToken = data.accessToken ?? null;
|
|
7692
7716
|
this.v4AccessTokenExpiresAt = addMinutes(now, 5).getTime();
|
|
7693
|
-
|
|
7717
|
+
cookies__default.default.set(
|
|
7694
7718
|
this.storageKey,
|
|
7695
|
-
JSON.stringify({ version, session: data.session })
|
|
7719
|
+
JSON.stringify({ version, session: data.session }),
|
|
7720
|
+
{ expires: subMinutes(addDays(now, 15), 2).getTime() }
|
|
7696
7721
|
);
|
|
7697
|
-
return
|
|
7722
|
+
return;
|
|
7698
7723
|
}
|
|
7699
|
-
|
|
7724
|
+
cookies__default.default.set(
|
|
7700
7725
|
this.storageKey,
|
|
7701
7726
|
JSON.stringify({
|
|
7702
7727
|
version,
|
|
7703
7728
|
...data,
|
|
7704
7729
|
accessTokenExpiresAt: addMinutes(now, 8).getTime(),
|
|
7705
7730
|
refreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime()
|
|
7706
|
-
})
|
|
7731
|
+
}),
|
|
7732
|
+
{ expires: subMinutes(addDays(now, 30), 2).getTime() }
|
|
7707
7733
|
);
|
|
7708
|
-
return true;
|
|
7709
|
-
}
|
|
7710
|
-
malformedResponseError() {
|
|
7711
|
-
return {
|
|
7712
|
-
ok: false,
|
|
7713
|
-
error: {
|
|
7714
|
-
name: "UnknownError",
|
|
7715
|
-
message: "Something went wrong."
|
|
7716
|
-
}
|
|
7717
|
-
};
|
|
7718
7734
|
}
|
|
7719
7735
|
async create(input, version = 1) {
|
|
7720
|
-
if (this.isServer) {
|
|
7721
|
-
this.logger.warn("'localStorage' is not available on the server.");
|
|
7722
|
-
return {
|
|
7723
|
-
ok: false,
|
|
7724
|
-
error: {
|
|
7725
|
-
name: "UnknownError",
|
|
7726
|
-
message: "Server sign in is not supported."
|
|
7727
|
-
}
|
|
7728
|
-
};
|
|
7729
|
-
}
|
|
7730
7736
|
if (input.type === "MAYA") {
|
|
7731
7737
|
localStorage.setItem(this.platformStorageKey, "MAYA");
|
|
7732
7738
|
const f0 = () => this.walletService.mayaSession({ id: input.sessionId });
|
|
@@ -7752,7 +7758,7 @@ var SessionManager = class {
|
|
|
7752
7758
|
maxAttempt: 5
|
|
7753
7759
|
})();
|
|
7754
7760
|
if (!r1.ok) return r1;
|
|
7755
|
-
|
|
7761
|
+
this.persist(r1.data, version);
|
|
7756
7762
|
return {
|
|
7757
7763
|
ok: true,
|
|
7758
7764
|
data: null
|
|
@@ -7761,7 +7767,7 @@ var SessionManager = class {
|
|
|
7761
7767
|
if (input.type === "MOBILE_NUMBER") {
|
|
7762
7768
|
const res2 = await this.authService.createSession(input, version);
|
|
7763
7769
|
if (res2.ok) {
|
|
7764
|
-
|
|
7770
|
+
this.persist(res2.data, version);
|
|
7765
7771
|
return {
|
|
7766
7772
|
ok: true,
|
|
7767
7773
|
data: null
|
|
@@ -7773,13 +7779,12 @@ var SessionManager = class {
|
|
|
7773
7779
|
const res2 = await this.authService.createSession(
|
|
7774
7780
|
{
|
|
7775
7781
|
type: "SOCIALS",
|
|
7776
|
-
token: input.token
|
|
7777
|
-
channel: input.channel
|
|
7782
|
+
token: input.token
|
|
7778
7783
|
},
|
|
7779
7784
|
version
|
|
7780
7785
|
);
|
|
7781
7786
|
if (res2.ok) {
|
|
7782
|
-
|
|
7787
|
+
this.persist(res2.data, version);
|
|
7783
7788
|
return {
|
|
7784
7789
|
ok: true,
|
|
7785
7790
|
data: null
|
|
@@ -7791,7 +7796,7 @@ var SessionManager = class {
|
|
|
7791
7796
|
localStorage.setItem(this.platformStorageKey, "CABINET");
|
|
7792
7797
|
const res2 = await this.authService.createSession(input, version);
|
|
7793
7798
|
if (res2.ok) {
|
|
7794
|
-
|
|
7799
|
+
this.persist(res2.data, version);
|
|
7795
7800
|
return {
|
|
7796
7801
|
ok: true,
|
|
7797
7802
|
data: null
|
|
@@ -7809,7 +7814,7 @@ var SessionManager = class {
|
|
|
7809
7814
|
}
|
|
7810
7815
|
};
|
|
7811
7816
|
}
|
|
7812
|
-
|
|
7817
|
+
this.persist(res.data, version);
|
|
7813
7818
|
return {
|
|
7814
7819
|
ok: true,
|
|
7815
7820
|
data: null
|
|
@@ -7819,9 +7824,9 @@ var SessionManager = class {
|
|
|
7819
7824
|
const res = await this.authService.authenticate(input);
|
|
7820
7825
|
if (res.ok) {
|
|
7821
7826
|
if (this.isServer) {
|
|
7822
|
-
this.logger.warn("'
|
|
7823
|
-
} else
|
|
7824
|
-
|
|
7827
|
+
this.logger.warn("'client cookies' is not available on the server.");
|
|
7828
|
+
} else {
|
|
7829
|
+
this.persist(res.data, 1);
|
|
7825
7830
|
}
|
|
7826
7831
|
return { ok: true };
|
|
7827
7832
|
} else {
|
|
@@ -7830,7 +7835,7 @@ var SessionManager = class {
|
|
|
7830
7835
|
}
|
|
7831
7836
|
async get() {
|
|
7832
7837
|
if (this.isServer) {
|
|
7833
|
-
this.logger.warn("'
|
|
7838
|
+
this.logger.warn("'client cookies' is not available on the server.");
|
|
7834
7839
|
return {
|
|
7835
7840
|
ok: true,
|
|
7836
7841
|
data: null
|
|
@@ -7840,7 +7845,7 @@ var SessionManager = class {
|
|
|
7840
7845
|
await sleep(1e3);
|
|
7841
7846
|
return await this.get();
|
|
7842
7847
|
}
|
|
7843
|
-
const val =
|
|
7848
|
+
const val = cookies__default.default.get(this.storageKey);
|
|
7844
7849
|
if (!val) {
|
|
7845
7850
|
return {
|
|
7846
7851
|
ok: true,
|
|
@@ -7858,7 +7863,7 @@ var SessionManager = class {
|
|
|
7858
7863
|
const refreshTokenExpiresAt = new Date(obj.refreshTokenExpiresAt);
|
|
7859
7864
|
if (isAfter(now, refreshTokenExpiresAt)) {
|
|
7860
7865
|
this.logger.warn("Session expired. Logging out..");
|
|
7861
|
-
|
|
7866
|
+
cookies__default.default.remove(this.storageKey);
|
|
7862
7867
|
return {
|
|
7863
7868
|
ok: false,
|
|
7864
7869
|
error: {
|
|
@@ -7878,7 +7883,7 @@ var SessionManager = class {
|
|
|
7878
7883
|
if (!res.ok) {
|
|
7879
7884
|
this.logger.error(`Failed to refresh session: ${res.error.message}`);
|
|
7880
7885
|
if (res.error.name === "InvalidTokenError" || res.error.name === "AccountBlacklistedError" || res.error.name === "VerificationLockedError") {
|
|
7881
|
-
|
|
7886
|
+
cookies__default.default.remove(this.storageKey);
|
|
7882
7887
|
return {
|
|
7883
7888
|
ok: false,
|
|
7884
7889
|
error: res.error
|
|
@@ -7900,7 +7905,9 @@ var SessionManager = class {
|
|
|
7900
7905
|
accessTokenExpiresAt: addMinutes(now, 8).getTime(),
|
|
7901
7906
|
refreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime()
|
|
7902
7907
|
};
|
|
7903
|
-
|
|
7908
|
+
cookies__default.default.set(this.storageKey, JSON.stringify(obj), {
|
|
7909
|
+
expires: subMinutes(addDays(now, 30), 2).getTime()
|
|
7910
|
+
});
|
|
7904
7911
|
}
|
|
7905
7912
|
return {
|
|
7906
7913
|
ok: true,
|
|
@@ -7918,13 +7925,13 @@ var SessionManager = class {
|
|
|
7918
7925
|
}
|
|
7919
7926
|
async refresh() {
|
|
7920
7927
|
if (this.isServer) {
|
|
7921
|
-
this.logger.warn("'
|
|
7928
|
+
this.logger.warn("'client cookies' is not available on the server.");
|
|
7922
7929
|
return {
|
|
7923
7930
|
ok: true,
|
|
7924
7931
|
data: null
|
|
7925
7932
|
};
|
|
7926
7933
|
}
|
|
7927
|
-
const val =
|
|
7934
|
+
const val = cookies__default.default.get(this.storageKey);
|
|
7928
7935
|
if (!val) {
|
|
7929
7936
|
return {
|
|
7930
7937
|
ok: true,
|
|
@@ -7948,7 +7955,7 @@ var SessionManager = class {
|
|
|
7948
7955
|
if (!res.ok) {
|
|
7949
7956
|
this.logger.error(`Failed to refresh session: ${res.error.message}`);
|
|
7950
7957
|
if (res.error.name === "InvalidTokenError" || res.error.name === "AccountBlacklistedError" || res.error.name === "VerificationLockedError") {
|
|
7951
|
-
|
|
7958
|
+
cookies__default.default.remove(this.storageKey);
|
|
7952
7959
|
return {
|
|
7953
7960
|
ok: false,
|
|
7954
7961
|
error: res.error
|
|
@@ -7970,7 +7977,9 @@ var SessionManager = class {
|
|
|
7970
7977
|
accessTokenExpiresAt: addMinutes(now, 8).getTime(),
|
|
7971
7978
|
refreshTokenExpiresAt: subMinutes(addDays(now, 30), 2).getTime()
|
|
7972
7979
|
};
|
|
7973
|
-
|
|
7980
|
+
cookies__default.default.set(this.storageKey, JSON.stringify(obj), {
|
|
7981
|
+
expires: subMinutes(addDays(now, 30), 2).getTime()
|
|
7982
|
+
});
|
|
7974
7983
|
return {
|
|
7975
7984
|
ok: true,
|
|
7976
7985
|
data: obj
|
|
@@ -8000,15 +8009,6 @@ var SessionManager = class {
|
|
|
8000
8009
|
return await this.refreshV4(session);
|
|
8001
8010
|
}
|
|
8002
8011
|
async refreshV4(session) {
|
|
8003
|
-
if (this.v4RefreshPromise) return await this.v4RefreshPromise;
|
|
8004
|
-
this.v4RefreshPromise = this.requestV4Refresh(session);
|
|
8005
|
-
try {
|
|
8006
|
-
return await this.v4RefreshPromise;
|
|
8007
|
-
} finally {
|
|
8008
|
-
this.v4RefreshPromise = null;
|
|
8009
|
-
}
|
|
8010
|
-
}
|
|
8011
|
-
async requestV4Refresh(session) {
|
|
8012
8012
|
this.logger.info("Refreshing session...");
|
|
8013
8013
|
this.refreshing = true;
|
|
8014
8014
|
const res = await this.authService.refreshSession(void 0, 4);
|
|
@@ -8016,7 +8016,7 @@ var SessionManager = class {
|
|
|
8016
8016
|
if (!res.ok) {
|
|
8017
8017
|
this.logger.error(`Failed to refresh session: ${res.error.message}`);
|
|
8018
8018
|
if (res.error.name === "InvalidTokenError" || res.error.name === "AccountBlacklistedError" || res.error.name === "VerificationLockedError") {
|
|
8019
|
-
|
|
8019
|
+
cookies__default.default.remove(this.storageKey);
|
|
8020
8020
|
this.v4AccessToken = null;
|
|
8021
8021
|
this.v4AccessTokenExpiresAt = null;
|
|
8022
8022
|
}
|
|
@@ -8040,11 +8040,11 @@ var SessionManager = class {
|
|
|
8040
8040
|
}
|
|
8041
8041
|
async destroy() {
|
|
8042
8042
|
if (this.isServer) {
|
|
8043
|
-
this.logger.warn("'
|
|
8043
|
+
this.logger.warn("'client cookies' is not available on the server.");
|
|
8044
8044
|
return;
|
|
8045
8045
|
}
|
|
8046
8046
|
let version = 1;
|
|
8047
|
-
const val =
|
|
8047
|
+
const val = cookies__default.default.get(this.storageKey);
|
|
8048
8048
|
if (val) {
|
|
8049
8049
|
try {
|
|
8050
8050
|
const stored = JSON.parse(val);
|
|
@@ -8058,18 +8058,18 @@ var SessionManager = class {
|
|
|
8058
8058
|
}
|
|
8059
8059
|
this.v4AccessToken = null;
|
|
8060
8060
|
this.v4AccessTokenExpiresAt = null;
|
|
8061
|
-
|
|
8061
|
+
cookies__default.default.remove(this.storageKey);
|
|
8062
8062
|
}
|
|
8063
8063
|
async verify() {
|
|
8064
8064
|
if (this.isServer) {
|
|
8065
|
-
this.logger.warn("'
|
|
8065
|
+
this.logger.warn("'client cookies' is not available on the server.");
|
|
8066
8066
|
return true;
|
|
8067
8067
|
}
|
|
8068
|
-
const val =
|
|
8068
|
+
const val = cookies__default.default.get(this.storageKey);
|
|
8069
8069
|
if (val) {
|
|
8070
8070
|
try {
|
|
8071
8071
|
const stored = JSON.parse(val);
|
|
8072
|
-
if (stored.version === 4) return await this.verifyV4();
|
|
8072
|
+
if (stored.version === 4) return await this.verifyV4(stored.session);
|
|
8073
8073
|
} catch {
|
|
8074
8074
|
}
|
|
8075
8075
|
}
|
|
@@ -8080,17 +8080,18 @@ var SessionManager = class {
|
|
|
8080
8080
|
if (!s.data) return true;
|
|
8081
8081
|
const v = await this.authService.verifySession(s.data.accessToken);
|
|
8082
8082
|
if (!v) {
|
|
8083
|
-
|
|
8083
|
+
cookies__default.default.remove(this.storageKey);
|
|
8084
8084
|
}
|
|
8085
8085
|
return v;
|
|
8086
8086
|
}
|
|
8087
|
-
async verifyV4() {
|
|
8087
|
+
async verifyV4(session) {
|
|
8088
8088
|
if (!this.v4AccessToken || !this.v4AccessTokenExpiresAt || isAfter(/* @__PURE__ */ new Date(), new Date(this.v4AccessTokenExpiresAt))) {
|
|
8089
|
-
|
|
8089
|
+
const res = await this.refreshV4(session);
|
|
8090
|
+
return res.ok;
|
|
8090
8091
|
}
|
|
8091
8092
|
const v = await this.authService.verifySession(this.v4AccessToken);
|
|
8092
8093
|
if (!v) {
|
|
8093
|
-
|
|
8094
|
+
cookies__default.default.remove(this.storageKey);
|
|
8094
8095
|
this.v4AccessToken = null;
|
|
8095
8096
|
this.v4AccessTokenExpiresAt = null;
|
|
8096
8097
|
}
|
|
@@ -8098,7 +8099,7 @@ var SessionManager = class {
|
|
|
8098
8099
|
}
|
|
8099
8100
|
get onMaya() {
|
|
8100
8101
|
if (this.isServer) {
|
|
8101
|
-
this.logger.warn("'
|
|
8102
|
+
this.logger.warn("'client cookies' is not available on the server.");
|
|
8102
8103
|
return false;
|
|
8103
8104
|
}
|
|
8104
8105
|
return localStorage.getItem(this.platformStorageKey) === "MAYA";
|
|
@@ -10392,13 +10393,19 @@ var Sdk = class {
|
|
|
10392
10393
|
await this.sessionManager.destroy();
|
|
10393
10394
|
}
|
|
10394
10395
|
watchSession(input) {
|
|
10395
|
-
const interval = clamp(input.interval ?? 3e4,
|
|
10396
|
+
const interval = clamp(input.interval ?? 3e4, 5e3, 6e4);
|
|
10396
10397
|
let timeout = null;
|
|
10398
|
+
let isForeground = true;
|
|
10399
|
+
const listener = app.App.addListener("appStateChange", ({ isActive }) => {
|
|
10400
|
+
isForeground = isActive;
|
|
10401
|
+
});
|
|
10397
10402
|
const assignTimeout = () => {
|
|
10398
10403
|
return setTimeout(async () => {
|
|
10399
|
-
|
|
10400
|
-
|
|
10401
|
-
|
|
10404
|
+
if (isForeground) {
|
|
10405
|
+
const v = await this.sessionManager.verify();
|
|
10406
|
+
if (!v) {
|
|
10407
|
+
await input.onInvalid();
|
|
10408
|
+
}
|
|
10402
10409
|
}
|
|
10403
10410
|
timeout = assignTimeout();
|
|
10404
10411
|
}, interval);
|
|
@@ -10408,6 +10415,7 @@ var Sdk = class {
|
|
|
10408
10415
|
if (timeout) {
|
|
10409
10416
|
clearTimeout(timeout);
|
|
10410
10417
|
}
|
|
10418
|
+
listener.then((handle) => handle.remove());
|
|
10411
10419
|
};
|
|
10412
10420
|
}
|
|
10413
10421
|
async session() {
|