@scrypted/server 0.52.0 → 0.54.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.
Potentially problematic release.
This version of @scrypted/server might be problematic. Click here for more details.
- package/dist/scrypted-server-main.js +16 -12
- package/dist/scrypted-server-main.js.map +1 -1
- package/dist/services/addresses.d.ts +5 -0
- package/dist/services/addresses.js +7 -0
- package/dist/services/addresses.js.map +1 -1
- package/package.json +1 -1
- package/src/scrypted-server-main.ts +17 -13
- package/src/services/addresses.ts +12 -0
@@ -429,20 +429,23 @@ async function start(mainFilename, options) {
|
|
429
429
|
res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With');
|
430
430
|
res.send(200);
|
431
431
|
});
|
432
|
-
const
|
432
|
+
const getAlternateAddresses = async () => {
|
433
433
|
const addresses = ((await scrypted.addressSettings.getLocalAddresses()) || (0, server_settings_1.getHostAddresses)(true, true))
|
434
434
|
.map(address => {
|
435
435
|
if (ip_1.default.isV6Format(address) && !(0, ip_1.isV4Format)(address))
|
436
436
|
address = `[${address}]`;
|
437
437
|
return `https://${address}:${server_settings_1.SCRYPTED_SECURE_PORT}`;
|
438
438
|
});
|
439
|
-
return
|
439
|
+
return {
|
440
|
+
externalAddresses: [...new Set(Object.values(scrypted.addressSettings.externalAddresses).flat())],
|
441
|
+
addresses,
|
442
|
+
};
|
440
443
|
};
|
441
444
|
app.post('/login', async (req, res) => {
|
442
445
|
const { username, password, change_password, maxAge: maxAgeRequested } = req.body;
|
443
446
|
const timestamp = Date.now();
|
444
447
|
const maxAge = parseInt(maxAgeRequested) || usertoken_1.ONE_DAY_MILLISECONDS;
|
445
|
-
const
|
448
|
+
const alternateAddresses = await getAlternateAddresses();
|
446
449
|
if (hasLogin) {
|
447
450
|
const user = await db.tryGet(db_types_1.ScryptedUser, username);
|
448
451
|
if (!user) {
|
@@ -479,7 +482,7 @@ async function start(mainFilename, options) {
|
|
479
482
|
...createTokens(userToken),
|
480
483
|
username,
|
481
484
|
expiration: maxAge,
|
482
|
-
|
485
|
+
...alternateAddresses,
|
483
486
|
});
|
484
487
|
return;
|
485
488
|
}
|
@@ -505,7 +508,7 @@ async function start(mainFilename, options) {
|
|
505
508
|
username,
|
506
509
|
token: user.token,
|
507
510
|
expiration: maxAge,
|
508
|
-
|
511
|
+
...alternateAddresses,
|
509
512
|
});
|
510
513
|
});
|
511
514
|
const resetLogin = path_1.default.join((0, plugin_volume_1.getScryptedVolume)(), 'reset-login');
|
@@ -523,7 +526,7 @@ async function start(mainFilename, options) {
|
|
523
526
|
app.get('/login', async (req, res) => {
|
524
527
|
await checkResetLogin();
|
525
528
|
const hostname = os_1.default.hostname()?.split('.')?.[0];
|
526
|
-
const
|
529
|
+
const alternateAddresses = await getAlternateAddresses();
|
527
530
|
// env/header based admin login
|
528
531
|
if (res.locals.username) {
|
529
532
|
const user = scrypted.usersService.users.get(res.locals.username);
|
@@ -532,8 +535,9 @@ async function start(mainFilename, options) {
|
|
532
535
|
...createTokens(userToken),
|
533
536
|
expiration: usertoken_1.ONE_DAY_MILLISECONDS,
|
534
537
|
username: res.locals.username,
|
538
|
+
// TODO: do not return the token from a short term auth mechanism?
|
535
539
|
token: user?.token,
|
536
|
-
|
540
|
+
...alternateAddresses,
|
537
541
|
hostname,
|
538
542
|
});
|
539
543
|
return;
|
@@ -543,7 +547,7 @@ async function start(mainFilename, options) {
|
|
543
547
|
res.send({
|
544
548
|
expiration: usertoken_1.ONE_DAY_MILLISECONDS,
|
545
549
|
username: 'anonymous',
|
546
|
-
|
550
|
+
...alternateAddresses,
|
547
551
|
hostname,
|
548
552
|
});
|
549
553
|
return;
|
@@ -562,12 +566,12 @@ async function start(mainFilename, options) {
|
|
562
566
|
user.token = crypto_1.default.randomBytes(16).toString('hex');
|
563
567
|
await db.upsert(user);
|
564
568
|
}
|
565
|
-
const userToken = new usertoken_1.UserToken(
|
569
|
+
const userToken = new usertoken_1.UserToken(user._id, user.aclId, Date.now());
|
566
570
|
res.send({
|
567
571
|
...createTokens(userToken),
|
568
572
|
username,
|
569
573
|
token: user.token,
|
570
|
-
|
574
|
+
...alternateAddresses,
|
571
575
|
hostname,
|
572
576
|
});
|
573
577
|
return;
|
@@ -581,7 +585,7 @@ async function start(mainFilename, options) {
|
|
581
585
|
...createTokens(userToken),
|
582
586
|
expiration: (userToken.timestamp + userToken.duration) - Date.now(),
|
583
587
|
username: userToken.username,
|
584
|
-
|
588
|
+
...alternateAddresses,
|
585
589
|
hostname,
|
586
590
|
});
|
587
591
|
}
|
@@ -589,7 +593,7 @@ async function start(mainFilename, options) {
|
|
589
593
|
res.send({
|
590
594
|
error: e?.message || 'Unknown Error.',
|
591
595
|
hasLogin,
|
592
|
-
|
596
|
+
...alternateAddresses,
|
593
597
|
hostname,
|
594
598
|
});
|
595
599
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"scrypted-server-main.js","sourceRoot":"","sources":["../src/scrypted-server-main.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"scrypted-server-main.js","sourceRoot":"","sources":["../src/scrypted-server-main.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAoC;AACpC,8DAAqC;AACrC,kEAAyC;AACzC,oDAA4B;AAC5B,sDAA2C;AAC3C,4CAAoB;AACpB,gDAAwB;AACxB,0DAAiC;AACjC,kDAA0B;AAC1B,8CAAsB;AACtB,4CAAoB;AACpB,gDAAwB;AACxB,sDAA8B;AAC9B,oDAA4B;AAC5B,2DAAwE;AACxE,iCAA8F;AAC9F,yCAA4D;AAC5D,oDAA4B;AAC5B,wDAAoD;AACpD,0DAA2D;AAC3D,+BAAuC;AACvC,uCAA4C;AAC5C,uDAAwH;AAExH,4CAA2D;AAC3D,mCAAgC;AAChC,2CAA8D;AAC9D,mCAA8B;AAE9B,mDAAoD;AAIpD,IAAI,CAAC,gBAAM,CAAC,GAAG,CAAC,iBAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;IACxC,MAAM,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAA;CACtF;AAED,iBAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,KAAK,CAAC,EAAE;IACrC,IAAI,KAAK,EAAE,WAAW,KAAK,oBAAc,IAAI,KAAK,EAAE,WAAW,KAAK,0BAAW,EAAE;QAC7E,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACtC,MAAM,KAAK,CAAC;KACf;IACD,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC;AAEH,KAAK,UAAU,gBAAgB,CAAC,GAAW,EAAE,IAAY,EAAE,MAAW;IAClE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpB,IAAI;QACA,MAAM,IAAA,aAAI,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;KACnC;IACD,OAAO,CAAC,EAAE;QACN,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,qBAAqB,CAAC,CAAC;QACrE,OAAO,CAAC,KAAK,CAAC,gCAAgC,GAAG,sBAAsB,CAAC,CAAC;QACzE,MAAM,CAAC,CAAC;KACX;AACL,CAAC;AAED,IAAA,4BAAuB,EAAC;IACpB,WAAW,EAAE,MAAM;CACtB,CAAC,CAAC;AAEH,IAAI,iBAAiB,GAAW,SAAS,CAAC;AAE1C,KAAK,UAAU,SAAS;IACpB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,MAAM,MAAM,GAAG,aAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;AACN,CAAC;AAED,MAAM,WAAW,GAAG,aAAG,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;IAClD,IAAI,CAAC,iBAAiB,EAAE;QACpB,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO;KACV;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;QACzB,IAAI;YACA,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;YACjC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,GAAG,EAAE;gBACjB,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjB,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,CAAC,CAAA;YACD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5B,OAAO;SACV;QACD,OAAO,CAAC,EAAE;YACN,MAAM,IAAA,aAAK,EAAC,GAAG,CAAC,CAAC;SACpB;KACJ;IACD,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC3C,MAAM,CAAC,OAAO,EAAE,CAAC;AACrB,CAAC,CAAC,CAAA;AACF,gBAAgB,CAAC,qBAAqB,EAAE,qCAAmB,EAAE,WAAW,CAAC;KACpE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAEtB,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;AAEtB,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;AAEnC,0CAA0C;AAC1C,GAAG,CAAC,GAAG,CAAC,qBAAU,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAQ,CAAC,CAAA;AAE1D,yBAAyB;AACzB,GAAG,CAAC,GAAG,CAAC,qBAAU,CAAC,IAAI,EAAE,CAAC,CAAA;AAE1B,wCAAwC;AACxC,GAAG,CAAC,GAAG,CAAC,qBAAU,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,CAAQ,CAAC,CAAA;AAE7E,KAAK,UAAU,KAAK,CAAC,YAAoB,EAAE,OAE1C;IACG,MAAM,SAAS,GAAG,IAAA,iCAAiB,GAAE,CAAC;IACtC,MAAM,YAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE;QAC/B,SAAS,EAAE,IAAI;KAClB,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,IAAI,eAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAEhB,IAAI,WAAW,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,mBAAQ,EAAE,aAAa,CAAa,CAAC;IAEvE,IAAI,WAAW,EAAE,KAAK,EAAE,OAAO,KAAK,8CAAuC,EAAE;QACzE,MAAM,IAAI,GAAG,IAAA,kCAA2B,GAAE,CAAC;QAE3C,WAAW,GAAG,IAAI,mBAAQ,EAAE,CAAC;QAC7B,WAAW,CAAC,GAAG,GAAG,aAAa,CAAC;QAChC,WAAW,CAAC,KAAK,GAAG,IAAI,CAAC;QACzB,WAAW,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;KAC9C;IAED,MAAM,SAAS,GAAG,mBAAQ,CAAC,KAAK,CAAC;QAC7B,KAAK,EAAE,UAAU;KACpB,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;QACtC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,uBAAY,EAAE,QAAQ,CAAC,CAAC;QAErD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QACpC,MAAM,IAAI,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAE1C,QAAQ,CAAC,GAAG,KAAK,IAAI,CAAC,YAAY,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC;IAE/B,MAAM,kBAAkB,GAAG,iBAAO,CAAC,GAAG,CAAC,2BAA2B;QAC9D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,iBAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjF,CAAC,CAAC,EAAE,CAAC;IAET,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC;QAC3C,GAAG,EAAE,IAAI,CAAC,UAAU;QACpB,IAAI,EAAE,IAAI,CAAC,WAAW;KACzB,EAAE,kBAAkB,CAAC,CAAC;IACvB,MAAM,MAAM,GAAG,eAAK,CAAC,YAAY,CAAC,wBAAwB,EAAE,GAAG,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,cAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAExC,sDAAsD;IACtD,GAAG,CAAC,GAAG,CAAC,IAAA,uBAAY,EAAC,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjH,sCAAsC;IACtC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACvB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO;YACpB,QAAQ,CAAC,uBAAuB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/C,IAAI,EAAE,CAAC;IACX,CAAC,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,YAAY,GAAG,CAAC,SAAoB,EAAE,EAAE;QAC1C,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,gBAAgB,GAAG,QAAQ,CAAC;QAC3C,MAAM,IAAI,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,UAAU,GAAG,GAAG,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAChD,OAAO;YACH,aAAa,EAAE,UAAU,UAAU,EAAE;YACrC,uFAAuF;YACvF,oCAAoC;YACpC,UAAU,EAAE;gBACR,aAAa,EAAE,UAAU;aAC5B;SACJ,CAAC;IACN,CAAC,CAAA;IAED,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC7B,IAAI,iBAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,MAAM,EAAE;YACxD,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC;YAClC,IAAI,EAAE,CAAC;YACP,OAAO;SACV;QAED,gEAAgE;QAChE,0BAA0B;QAC1B,IAAI,iBAAO,CAAC,GAAG,CAAC,uBAAuB;eAChC,iBAAO,CAAC,GAAG,CAAC,sBAAsB;eAClC,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,QAAQ,CAAC,iBAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE;YAC3E,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,iBAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;YAC1D,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;YAC7B,IAAI,EAAE,CAAC;YACP,OAAO;SACV;QAED,+BAA+B;QAC/B,0EAA0E;QAC1E,kCAAkC;QAElC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAE,EAAE;YACjC,IAAI,iBAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,KAAK,EAAE;gBAC5C,IAAI,QAAQ,GAAG,iBAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC;gBACnD,IAAI,CAAC,QAAQ,EAAE;oBACX,MAAM,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBACjF,QAAQ,GAAG,UAAU,EAAE,GAAG,CAAC;iBAC9B;gBACD,IAAI,QAAQ,EAAE;oBACV,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAC/B,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC;oBAC7B,OAAO;iBACV;aACJ;YAED,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE;gBACrD,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;oBACtB,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;oBAC/B,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;oBAC9B,MAAM;iBACT;aACJ;YAED,MAAM,CAAC,SAAS,EAAE,GAAG,UAAU,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,SAAS,IAAI,SAAS,EAAE;gBACxB,MAAM,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;gBACpC,MAAM,IAAI,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gBACpB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAE1C,IAAI,SAAS,KAAK,GAAG,EAAE;oBACnB,MAAM,SAAS,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;oBACjD,IAAI,SAAS,EAAE;wBACX,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;wBACzC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;qBACtC;iBACJ;aACJ;QACL,CAAC,CAAA;QAED,MAAM,SAAS,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;QAC/C,IAAI,SAAS,EAAE;YACX,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;YAEtC,yEAAyE;YACzE,oEAAoE;YACpE,+DAA+D;YAC/D,kCAAkC;YAElC,wDAAwD;YACxD,eAAe;YACf,uCAAuC;YACvC,qBAAqB;YACrB,IAAI;YAEJ,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC/B,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;SAC5B;aACI,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE;YACvD,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;SACrE;aACI,IAAI,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;YACjC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;SAClD;QACD,IAAI,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,qCAAqC;IACrC,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3C,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;YAC3H,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACzC,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;gBAC9B,GAAW,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;gBACjC,IAAI,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;YAEH,2CAA2C;YAC3C,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACvB,OAAO;SACV;QACD,IAAI,EAAE,CAAC;IACX,CAAC,CAAC,CAAA;IAEF,qDAAqD;IACrD,GAAG,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC3C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE;YAC1C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC3B,OAAO;SACV;QACD,IAAI,EAAE,CAAC;IACX,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,IAAI,yBAAe,CAAC,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9E,MAAM,OAAO,EAAE,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;IAEvB,MAAM,gBAAgB,CAAC,sBAAsB,EAAE,sCAAoB,EAAE,MAAM,CAAC,CAAC;IAC7E,MAAM,gBAAgB,CAAC,wBAAwB,EAAE,wCAAsB,EAAE,QAAQ,CAAC,CAAC;IAEnF,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,+BAA+B,SAAS,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,iDAAiD,sCAAoB,GAAG,CAAC,CAAC;IACtF,KAAK,MAAM,OAAO,IAAI,IAAA,kCAAgB,EAAC,IAAI,EAAE,IAAI,CAAC,EAAE;QAChD,OAAO,CAAC,GAAG,CAAC,uCAAuC,OAAO,IAAI,sCAAoB,GAAG,CAAC,CAAC;KAC1F;IACD,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,wCAAsB,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAA;IAC/D,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;IAC3C,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;IAC7C,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAA;IACjF,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAC;IACtF,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAA;IAC5E,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IAEvE,GAAG,CAAC,GAAG,CAAC,CAAC,gCAAgC,EAAE,wCAAwC,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrG,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAClC,IAAI,QAAQ,GAAG,GAAG,CAAC;QACnB,IAAI,KAAK;YACL,QAAQ,GAAG,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;QACvC,IAAI;YACA,MAAM,IAAI,GAAG,MAAM,IAAA,iCAAiB,EAAC,QAAQ,CAAC,CAAC;YAC/C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;QACD,OAAO,CAAC,EAAE;YACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,GAAG,CAAC,GAAG,EAAE,CAAC;SACb;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,CAAC,oCAAoC,EAAE,4CAA4C,EAAE,iDAAiD,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjK,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACvC,IAAI,QAAQ,GAAG,GAAG,CAAC;QACnB,IAAI,KAAK;YACL,QAAQ,GAAG,IAAI,KAAK,IAAI,QAAQ,EAAE,CAAC;QACvC,IAAI;YACA,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YACxD,GAAG,CAAC,IAAI,CAAC;gBACL,EAAE,EAAE,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG;aACrD,CAAC,CAAC;SACN;QACD,OAAO,CAAC,EAAE;YACN,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,CAAC,CAAC,CAAC;YAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,GAAG,CAAC,GAAG,EAAE,CAAC;SACb;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,UAAoB,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,iBAAM,EAAE,UAAU,CAAC,IAAI,IAAI,iBAAM,EAAE,CAAC;QAEnE,MAAM,CAAC,GAAG,GAAG,UAAU,CAAC;QACxB,MAAM,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC;QAE9B,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAExB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACxD,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,UAAoB,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,iBAAM,EAAE,UAAU,CAAC,CAAC;QAEnD,IAAI,CAAC,MAAM,EAAE;YACT,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,eAAe,UAAU,YAAY,CAAC,CAAC;YAChD,OAAO;SACV;QAED,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAExB,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,SAAS,CAAC;QACtD,IAAI,CAAC,QAAQ;YACT,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEzC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,6BAA6B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACvD,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,UAAoB,CAAC;QAClD,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,iBAAM,EAAE,UAAU,CAAC,CAAC;QAEnD,IAAI,CAAC,MAAM,EAAE;YACT,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,eAAe,UAAU,YAAY,CAAC,CAAC;YAChD,OAAO;SACV;QAED,MAAM,SAAS,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpD,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAClF,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;QAC9D,IAAI;YACA,MAAM,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE;gBACjC,SAAS;gBACT,WAAW,EAAE,iBAAiB;aACjC,CAAC,CAAC;SACN;QACD,OAAO,CAAC,EAAE;YACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvB,OAAM;SACT;QAED,GAAG,CAAC,IAAI,CAAC;YACL,iBAAiB;SACpB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,CAAC,GAAoB,EAAE,EAAE;QAC/C,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,2BAA2B,CAAC;IACzE,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAC,KAAa,EAAE,EAAE;QAC1C,IAAI,CAAC,KAAK;YACN,OAAO;QACX,IAAI;YACA,MAAM,SAAS,GAAG,qBAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACjD,IAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC;gBACnD,OAAO,SAAS,CAAC;SACxB;QACD,OAAO,CAAC,EAAE;YACN,4CAA4C;SAC/C;IACL,CAAC,CAAA;IAED,MAAM,uBAAuB,GAAG,CAAC,GAAiB,EAAE,EAAE;QAClD,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAW,CAAC;QAClE,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC,CAAC;IAEF,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC5B,GAAG,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;QACxC,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,kBAAkB,CAAC,EAAE;YACvD,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAChB;aACI;YACD,GAAG,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC;SACrD;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAY,CAAC,GAAG,CAAC,CAAC;IAEnD,IAAI,iBAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE;QACrC,IAAI,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,uBAAY,EAAE,iBAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QAC9E,IAAI,CAAC,IAAI,EAAE;YACP,IAAI,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC,iBAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,gBAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;YAC1I,QAAQ,GAAG,IAAI,CAAC;SACnB;KACJ;IAED,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC/B,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC;QACpE,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,+DAA+D,CAAC,CAAC;QAC/G,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,qBAAqB,GAAG,KAAK,IAAI,EAAE;QACrC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,QAAQ,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC,IAAI,IAAA,kCAAgB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACnG,GAAG,CAAC,OAAO,CAAC,EAAE;YACX,IAAI,YAAE,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,IAAA,eAAU,EAAC,OAAO,CAAC;gBAC9C,OAAO,GAAG,IAAI,OAAO,GAAG,CAAC;YAC7B,OAAO,WAAW,OAAO,IAAI,sCAAoB,EAAE,CAAA;QACvD,CAAC,CAAC,CAAC;QACP,OAAO;YACH,iBAAiB,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACjG,SAAS;SACZ,CAAC;IACN,CAAC,CAAA;IAED,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QAClF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,CAAC,IAAI,gCAAoB,CAAC;QACjE,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,EAAE,CAAC;QAEzD,IAAI,QAAQ,EAAE;YACV,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,uBAAY,EAAE,QAAQ,CAAC,CAAC;YACrD,IAAI,CAAC,IAAI,EAAE;gBACP,GAAG,CAAC,IAAI,CAAC;oBACL,KAAK,EAAE,sBAAsB;oBAC7B,QAAQ;iBACX,CAAC,CAAA;gBACF,OAAO;aACV;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;YACpC,MAAM,IAAI,GAAG,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,IAAI,CAAC,YAAY,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;gBACtD,GAAG,CAAC,IAAI,CAAC;oBACL,KAAK,EAAE,qBAAqB;oBAC5B,QAAQ;iBACX,CAAC,CAAA;gBACF,OAAO;aACV;YAED,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YACzE,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC9C,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE;gBACjD,MAAM;gBACN,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,IAAI;aACjB,CAAC,CAAC;YAEH,IAAI,eAAe,EAAE;gBACjB,IAAA,+BAAuB,EAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;gBAC1D,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACzB;YAED,GAAG,CAAC,IAAI,CAAC;gBACL,GAAG,YAAY,CAAC,SAAS,CAAC;gBAC1B,QAAQ;gBACR,UAAU,EAAE,MAAM;gBAClB,GAAG,kBAAkB;aACxB,CAAC,CAAC;YAEH,OAAO;SACV;QAED,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE;YACxB,GAAG,CAAC,IAAI,CAAC;gBACL,KAAK,EAAE,0CAA0C;gBACjD,QAAQ;aACX,CAAC,CAAC;YACH,OAAO;SACV;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACxF,QAAQ,GAAG,IAAI,CAAC;QAEhB,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjE,MAAM,gBAAgB,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC9C,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE;YACjD,MAAM;YACN,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,IAAI;SACjB,CAAC,CAAC;QAEH,GAAG,CAAC,IAAI,CAAC;YACL,GAAG,YAAY,CAAC,SAAS,CAAC;YAC1B,QAAQ;YACR,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU,EAAE,MAAM;YAClB,GAAG,kBAAkB;SACxB,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,IAAA,iCAAiB,GAAE,EAAE,aAAa,CAAC,CAAC;IACjE,KAAK,UAAU,eAAe;QAC1B,IAAI;YACA,IAAI,YAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;gBAC3B,YAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACtB,MAAM,EAAE,CAAC,SAAS,CAAC,uBAAY,CAAC,CAAC;gBACjC,QAAQ,GAAG,KAAK,CAAC;aACpB;SACJ;QACD,OAAO,CAAC,EAAE;SACT;IACL,CAAC;IAED,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjC,MAAM,eAAe,EAAE,CAAC;QAExB,MAAM,QAAQ,GAAG,YAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,EAAE,CAAC;QAEzD,+BAA+B;QAC/B,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE;YACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAClE,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAEnF,GAAG,CAAC,IAAI,CAAC;gBACL,GAAG,YAAY,CAAC,SAAS,CAAC;gBAC1B,UAAU,EAAE,gCAAoB;gBAChC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ;gBAC7B,kEAAkE;gBAClE,KAAK,EAAE,IAAI,EAAE,KAAK;gBAClB,GAAG,kBAAkB;gBACrB,QAAQ;aACX,CAAC,CAAC;YACH,OAAO;SACV;QAED,6BAA6B;QAC7B,IAAI,iBAAO,CAAC,GAAG,CAAC,+BAA+B,KAAK,MAAM,EAAE;YACxD,GAAG,CAAC,IAAI,CAAC;gBACL,UAAU,EAAE,gCAAoB;gBAChC,QAAQ,EAAE,WAAW;gBACrB,GAAG,kBAAkB;gBACrB,QAAQ;aACX,CAAC,CAAA;YACF,OAAO;SACV;QAED,aAAa;QACb,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE;YACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE;gBACzC,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC,CAAC,CAAC;gBAEH,2CAA2C;gBAC3C,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,MAAM,CAAC,uBAAY,EAAE,QAAQ,CAAiB,CAAC;YACrE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;gBACb,IAAI,CAAC,KAAK,GAAG,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;gBACpD,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACzB;YAED,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAElE,GAAG,CAAC,IAAI,CAAC;gBACL,GAAG,YAAY,CAAC,SAAS,CAAC;gBAC1B,QAAQ;gBACR,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,GAAG,kBAAkB;gBACrB,QAAQ;aACX,CAAC,CAAC;YACH,OAAO;SACV;QAED,cAAc;QACd,IAAI;YACA,MAAM,SAAS,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS;gBACV,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAEtC,GAAG,CAAC,IAAI,CAAC;gBACL,GAAG,YAAY,CAAC,SAAS,CAAC;gBAC1B,UAAU,EAAE,CAAC,SAAS,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE;gBACnE,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,GAAG,kBAAkB;gBACrB,QAAQ;aACX,CAAC,CAAA;SACL;QACD,OAAO,CAAC,EAAE;YACN,GAAG,CAAC,IAAI,CAAC;gBACL,KAAK,EAAE,CAAC,EAAE,OAAO,IAAI,gBAAgB;gBACrC,QAAQ;gBACR,GAAG,kBAAkB;gBACrB,QAAQ;aACX,CAAC,CAAA;SACL;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAC,CAAC;IAE/E,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,kBAAe,KAAK,CAAC"}
|
@@ -1,7 +1,12 @@
|
|
1
1
|
import { ScryptedRuntime } from "../runtime";
|
2
2
|
export declare class AddressSettings {
|
3
3
|
scrypted: ScryptedRuntime;
|
4
|
+
externalAddresses: {
|
5
|
+
[id: string]: string[];
|
6
|
+
};
|
4
7
|
constructor(scrypted: ScryptedRuntime);
|
8
|
+
getExternalAddresses(id: string): Promise<string[]>;
|
9
|
+
setExternalAddresses(id: string, addresses: string[]): Promise<void>;
|
5
10
|
setLocalAddresses(addresses: string[]): Promise<void>;
|
6
11
|
getLocalAddresses(raw?: boolean): Promise<string[]>;
|
7
12
|
}
|
@@ -8,9 +8,16 @@ const db_types_1 = require("../db-types");
|
|
8
8
|
const os_1 = __importDefault(require("os"));
|
9
9
|
class AddressSettings {
|
10
10
|
scrypted;
|
11
|
+
externalAddresses = {};
|
11
12
|
constructor(scrypted) {
|
12
13
|
this.scrypted = scrypted;
|
13
14
|
}
|
15
|
+
async getExternalAddresses(id) {
|
16
|
+
return this.externalAddresses[id] || [];
|
17
|
+
}
|
18
|
+
async setExternalAddresses(id, addresses) {
|
19
|
+
this.externalAddresses[id] = addresses;
|
20
|
+
}
|
14
21
|
async setLocalAddresses(addresses) {
|
15
22
|
const localAddresses = new db_types_1.Settings();
|
16
23
|
localAddresses._id = 'localAddresses';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../src/services/addresses.ts"],"names":[],"mappings":";;;;;;AAAA,0CAAuC;AAEvC,4CAAoB;AAEpB,MAAa,eAAe;
|
1
|
+
{"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../src/services/addresses.ts"],"names":[],"mappings":";;;;;;AAAA,0CAAuC;AAEvC,4CAAoB;AAEpB,MAAa,eAAe;IAKL;IAJnB,iBAAiB,GAEb,EAAE,CAAC;IAEP,YAAmB,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAC5C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,EAAU;QACjC,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,EAAU,EAAE,SAAmB;QACtD,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,SAAmB;QACvC,MAAM,cAAc,GAAG,IAAI,mBAAQ,EAAE,CAAC;QACtC,cAAc,CAAC,GAAG,GAAG,gBAAgB,CAAC;QACtC,cAAc,CAAC,KAAK,GAAG,SAAS,CAAC;QACjC,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,GAAa;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,mBAAQ,EAAE,gBAAgB,CAAC,CAAC;QAElF,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACrB,OAAO;QAEX,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,MAAM,iBAAiB,GAAG,YAAE,CAAC,iBAAiB,EAAE,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;aACxD,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QACnC,KAAK,MAAM,kBAAkB,IAAI,QAAQ,CAAC,KAAK,EAAE;YAC7C,MAAM,GAAG,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;YAClD,IAAI,GAAG,EAAE;gBACL,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;aAChC;iBACI;gBACD,IAAI,GAAG,EAAE;oBACL,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE;wBACpB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;4BACtG,SAAS;wBACb,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBAC1B;iBACJ;qBACI;oBACD,IAAI,YAAY,CAAC,GAAG,CAAC,kBAAkB,CAAC;wBACpC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;;wBAE7B,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,kBAAkB,CAAC,CAAA;iBAChE;aACJ;SACJ;QACD,OAAO,GAAG,CAAC;IACf,CAAC;CACJ;AAxDD,0CAwDC"}
|
package/package.json
CHANGED
@@ -474,21 +474,24 @@ async function start(mainFilename: string, options?: {
|
|
474
474
|
res.send(200);
|
475
475
|
});
|
476
476
|
|
477
|
-
const
|
477
|
+
const getAlternateAddresses = async () => {
|
478
478
|
const addresses = ((await scrypted.addressSettings.getLocalAddresses()) || getHostAddresses(true, true))
|
479
479
|
.map(address => {
|
480
480
|
if (ip.isV6Format(address) && !isV4Format(address))
|
481
481
|
address = `[${address}]`;
|
482
482
|
return `https://${address}:${SCRYPTED_SECURE_PORT}`
|
483
483
|
});
|
484
|
-
return
|
484
|
+
return {
|
485
|
+
externalAddresses: [...new Set(Object.values(scrypted.addressSettings.externalAddresses).flat())],
|
486
|
+
addresses,
|
487
|
+
};
|
485
488
|
}
|
486
489
|
|
487
490
|
app.post('/login', async (req, res) => {
|
488
491
|
const { username, password, change_password, maxAge: maxAgeRequested } = req.body;
|
489
492
|
const timestamp = Date.now();
|
490
493
|
const maxAge = parseInt(maxAgeRequested) || ONE_DAY_MILLISECONDS;
|
491
|
-
const
|
494
|
+
const alternateAddresses = await getAlternateAddresses();
|
492
495
|
|
493
496
|
if (hasLogin) {
|
494
497
|
const user = await db.tryGet(ScryptedUser, username);
|
@@ -530,7 +533,7 @@ async function start(mainFilename: string, options?: {
|
|
530
533
|
...createTokens(userToken),
|
531
534
|
username,
|
532
535
|
expiration: maxAge,
|
533
|
-
|
536
|
+
...alternateAddresses,
|
534
537
|
});
|
535
538
|
|
536
539
|
return;
|
@@ -561,7 +564,7 @@ async function start(mainFilename: string, options?: {
|
|
561
564
|
username,
|
562
565
|
token: user.token,
|
563
566
|
expiration: maxAge,
|
564
|
-
|
567
|
+
...alternateAddresses,
|
565
568
|
});
|
566
569
|
});
|
567
570
|
|
@@ -582,7 +585,7 @@ async function start(mainFilename: string, options?: {
|
|
582
585
|
await checkResetLogin();
|
583
586
|
|
584
587
|
const hostname = os.hostname()?.split('.')?.[0];
|
585
|
-
const
|
588
|
+
const alternateAddresses = await getAlternateAddresses();
|
586
589
|
|
587
590
|
// env/header based admin login
|
588
591
|
if (res.locals.username) {
|
@@ -593,8 +596,9 @@ async function start(mainFilename: string, options?: {
|
|
593
596
|
...createTokens(userToken),
|
594
597
|
expiration: ONE_DAY_MILLISECONDS,
|
595
598
|
username: res.locals.username,
|
599
|
+
// TODO: do not return the token from a short term auth mechanism?
|
596
600
|
token: user?.token,
|
597
|
-
|
601
|
+
...alternateAddresses,
|
598
602
|
hostname,
|
599
603
|
});
|
600
604
|
return;
|
@@ -605,7 +609,7 @@ async function start(mainFilename: string, options?: {
|
|
605
609
|
res.send({
|
606
610
|
expiration: ONE_DAY_MILLISECONDS,
|
607
611
|
username: 'anonymous',
|
608
|
-
|
612
|
+
...alternateAddresses,
|
609
613
|
hostname,
|
610
614
|
})
|
611
615
|
return;
|
@@ -622,19 +626,19 @@ async function start(mainFilename: string, options?: {
|
|
622
626
|
basicChecker(req, res);
|
623
627
|
});
|
624
628
|
|
625
|
-
const user = await db.tryGet(ScryptedUser, username);
|
629
|
+
const user = await db.tryGet(ScryptedUser, username) as ScryptedUser;
|
626
630
|
if (!user.token) {
|
627
631
|
user.token = crypto.randomBytes(16).toString('hex');
|
628
632
|
await db.upsert(user);
|
629
633
|
}
|
630
634
|
|
631
|
-
const userToken = new UserToken(
|
635
|
+
const userToken = new UserToken(user._id, user.aclId, Date.now());
|
632
636
|
|
633
637
|
res.send({
|
634
638
|
...createTokens(userToken),
|
635
639
|
username,
|
636
640
|
token: user.token,
|
637
|
-
|
641
|
+
...alternateAddresses,
|
638
642
|
hostname,
|
639
643
|
});
|
640
644
|
return;
|
@@ -650,7 +654,7 @@ async function start(mainFilename: string, options?: {
|
|
650
654
|
...createTokens(userToken),
|
651
655
|
expiration: (userToken.timestamp + userToken.duration) - Date.now(),
|
652
656
|
username: userToken.username,
|
653
|
-
|
657
|
+
...alternateAddresses,
|
654
658
|
hostname,
|
655
659
|
})
|
656
660
|
}
|
@@ -658,7 +662,7 @@ async function start(mainFilename: string, options?: {
|
|
658
662
|
res.send({
|
659
663
|
error: e?.message || 'Unknown Error.',
|
660
664
|
hasLogin,
|
661
|
-
|
665
|
+
...alternateAddresses,
|
662
666
|
hostname,
|
663
667
|
})
|
664
668
|
}
|
@@ -3,9 +3,21 @@ import { ScryptedRuntime } from "../runtime";
|
|
3
3
|
import os from 'os';
|
4
4
|
|
5
5
|
export class AddressSettings {
|
6
|
+
externalAddresses: {
|
7
|
+
[id: string]: string[],
|
8
|
+
} = {};
|
9
|
+
|
6
10
|
constructor(public scrypted: ScryptedRuntime) {
|
7
11
|
}
|
8
12
|
|
13
|
+
async getExternalAddresses(id: string): Promise<string[]> {
|
14
|
+
return this.externalAddresses[id] || [];
|
15
|
+
}
|
16
|
+
|
17
|
+
async setExternalAddresses(id: string, addresses: string[]) {
|
18
|
+
this.externalAddresses[id] = addresses;
|
19
|
+
}
|
20
|
+
|
9
21
|
async setLocalAddresses(addresses: string[]) {
|
10
22
|
const localAddresses = new Settings();
|
11
23
|
localAddresses._id = 'localAddresses';
|