@steedos/auth 2.2.52-beta.7 → 2.2.53-beta.3

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/LICENSE.txt CHANGED
@@ -6,14 +6,11 @@ To determine under which license you may use a file from the Steedos source code
6
6
  please resort to the header of that file.
7
7
 
8
8
  If the file has no header, the following rules apply
9
- 1. project templates are licensed under MIT, see License.MIT.txt
10
- 2. enterprise features are licensed under Steedos Enterprise Terms, see License.enterprise.txt
11
- 3. source code that is neither (1) nor (2) is licensed under AGPL, see License.AGPL.txt
9
+ 1. enterprise features are licensed under Steedos Enterprise Terms, see License.enterprise.txt
10
+ 2. source code that is neither (1) is licensed under MIT, see https://opensource.org/licenses/MIT
12
11
 
13
12
  On request, licenses under different terms are available.
14
13
 
15
- Project templates can be found in the folders steedos-projects/
16
-
17
14
  Source code of enterprise features are files that
18
15
  * are in folders named "ee" or start with "ee_", or in subfolders of such folders.
19
16
  * contain the strings "ee_" in its filename name.
package/lib/apikey.js CHANGED
@@ -1,40 +1,108 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ exports.__esModule = true;
3
39
  exports.getAPIKeyAuthHeader = exports.getAPIKey = exports.verifyAPIKey = exports.isAPIKey = void 0;
4
- const objectql_1 = require("@steedos/objectql");
5
- const HEADER_AUTH = 'Authorization';
6
- const AUTH_TYPE = 'Bearer';
40
+ var objectql_1 = require("@steedos/objectql");
41
+ var HEADER_AUTH = 'Authorization';
42
+ var AUTH_TYPE = 'Bearer';
7
43
  function isAPIKey(token) {
8
44
  return token.startsWith('apikey,');
9
45
  }
10
46
  exports.isAPIKey = isAPIKey;
11
- async function verifyAPIKey(token) {
12
- if (isAPIKey(token)) {
13
- const apikey = token.replace('apikey,', '');
14
- const records = await (0, objectql_1.getObject)('api_keys').find({ filters: [['api_key', '=', apikey], ['active', '=', true]] });
15
- if (records.length > 0) {
16
- const record = records[0];
17
- await (0, objectql_1.getObject)('api_keys').update(record._id, { last_use_time: new Date() });
18
- return { userId: record.owner, spaceId: record.space };
19
- }
20
- }
47
+ function verifyAPIKey(token) {
48
+ return __awaiter(this, void 0, void 0, function () {
49
+ var apikey, records, record;
50
+ return __generator(this, function (_a) {
51
+ switch (_a.label) {
52
+ case 0:
53
+ if (!isAPIKey(token)) return [3 /*break*/, 3];
54
+ apikey = token.replace('apikey,', '');
55
+ return [4 /*yield*/, (0, objectql_1.getObject)('api_keys').find({ filters: [['api_key', '=', apikey], ['active', '=', true]] })];
56
+ case 1:
57
+ records = _a.sent();
58
+ if (!(records.length > 0)) return [3 /*break*/, 3];
59
+ record = records[0];
60
+ return [4 /*yield*/, (0, objectql_1.getObject)('api_keys').update(record._id, { last_use_time: new Date() })];
61
+ case 2:
62
+ _a.sent();
63
+ return [2 /*return*/, { userId: record.owner, spaceId: record.space }];
64
+ case 3: return [2 /*return*/];
65
+ }
66
+ });
67
+ });
21
68
  }
22
69
  exports.verifyAPIKey = verifyAPIKey;
23
- async function getAPIKey(spaceId) {
24
- const space = await (0, objectql_1.getObject)('spaces').findOne(spaceId, {});
25
- if (space) {
26
- return space.api_key;
27
- }
70
+ function getAPIKey(spaceId) {
71
+ return __awaiter(this, void 0, void 0, function () {
72
+ var space;
73
+ return __generator(this, function (_a) {
74
+ switch (_a.label) {
75
+ case 0: return [4 /*yield*/, (0, objectql_1.getObject)('spaces').findOne(spaceId, {})];
76
+ case 1:
77
+ space = _a.sent();
78
+ if (space) {
79
+ return [2 /*return*/, space.api_key];
80
+ }
81
+ return [2 /*return*/];
82
+ }
83
+ });
84
+ });
28
85
  }
29
86
  exports.getAPIKey = getAPIKey;
30
- async function getAPIKeyAuthHeader(spaceId) {
31
- const api_key = await getAPIKey(spaceId);
32
- if (!api_key) {
33
- throw new objectql_1.SteedosError('space_apikey_notfind');
34
- }
35
- else {
36
- return { [HEADER_AUTH]: `${AUTH_TYPE} apikey,${api_key}` };
37
- }
87
+ function getAPIKeyAuthHeader(spaceId) {
88
+ return __awaiter(this, void 0, void 0, function () {
89
+ var api_key;
90
+ var _a;
91
+ return __generator(this, function (_b) {
92
+ switch (_b.label) {
93
+ case 0: return [4 /*yield*/, getAPIKey(spaceId)];
94
+ case 1:
95
+ api_key = _b.sent();
96
+ if (!api_key) {
97
+ throw new objectql_1.SteedosError('space_apikey_notfind');
98
+ }
99
+ else {
100
+ return [2 /*return*/, (_a = {}, _a[HEADER_AUTH] = "".concat(AUTH_TYPE, " apikey,").concat(api_key), _a)];
101
+ }
102
+ return [2 /*return*/];
103
+ }
104
+ });
105
+ });
38
106
  }
39
107
  exports.getAPIKeyAuthHeader = getAPIKeyAuthHeader;
40
108
  //# sourceMappingURL=apikey.js.map
package/lib/apikey.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"apikey.js","sourceRoot":"","sources":["../src/apikey.ts"],"names":[],"mappings":";;;AAAA,gDAA4D;AAE5D,MAAM,WAAW,GAAG,eAAe,CAAC;AACpC,MAAM,SAAS,GAAG,QAAQ,CAAC;AAE3B,SAAgB,QAAQ,CAAC,KAAK;IAC1B,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;AACtC,CAAC;AAFD,4BAEC;AAEM,KAAK,UAAU,YAAY,CAAC,KAAK;IACpC,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE;QACjB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAA,oBAAS,EAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;QACjH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,IAAA,oBAAS,EAAC,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;SAC1D;KACJ;AACL,CAAC;AAVD,oCAUC;AAEM,KAAK,UAAU,SAAS,CAAC,OAAO;IACnC,MAAM,KAAK,GAAG,MAAM,IAAA,oBAAS,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC7D,IAAI,KAAK,EAAE;QACP,OAAO,KAAK,CAAC,OAAO,CAAC;KACxB;AACL,CAAC;AALD,8BAKC;AAEM,KAAK,UAAU,mBAAmB,CAAC,OAAO;IAC7C,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,CAAC,OAAO,EAAE;QACV,MAAM,IAAI,uBAAY,CAAC,sBAAsB,CAAC,CAAC;KAClD;SAAI;QACD,OAAO,EAAC,CAAC,WAAW,CAAC,EAAE,GAAG,SAAS,WAAW,OAAO,EAAE,EAAC,CAAC;KAC5D;AACL,CAAC;AAPD,kDAOC"}
1
+ {"version":3,"file":"apikey.js","sourceRoot":"","sources":["../src/apikey.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8CAA4D;AAE5D,IAAM,WAAW,GAAG,eAAe,CAAC;AACpC,IAAM,SAAS,GAAG,QAAQ,CAAC;AAE3B,SAAgB,QAAQ,CAAC,KAAK;IAC1B,OAAO,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;AACtC,CAAC;AAFD,4BAEC;AAED,SAAsB,YAAY,CAAC,KAAK;;;;;;yBAChC,QAAQ,CAAC,KAAK,CAAC,EAAf,wBAAe;oBACT,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;oBAC5B,qBAAM,IAAA,oBAAS,EAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,EAAA;;oBAA1G,OAAO,GAAG,SAAgG;yBAC5G,CAAA,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA,EAAlB,wBAAkB;oBACZ,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC1B,qBAAM,IAAA,oBAAS,EAAC,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,EAAA;;oBAA7E,SAA6E,CAAC;oBAC9E,sBAAO,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,EAAC;;;;;CAGlE;AAVD,oCAUC;AAED,SAAsB,SAAS,CAAC,OAAO;;;;;wBACrB,qBAAM,IAAA,oBAAS,EAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAA;;oBAAtD,KAAK,GAAG,SAA8C;oBAC5D,IAAI,KAAK,EAAE;wBACP,sBAAO,KAAK,CAAC,OAAO,EAAC;qBACxB;;;;;CACJ;AALD,8BAKC;AAED,SAAsB,mBAAmB,CAAC,OAAO;;;;;;wBAC7B,qBAAM,SAAS,CAAC,OAAO,CAAC,EAAA;;oBAAlC,OAAO,GAAG,SAAwB;oBACxC,IAAI,CAAC,OAAO,EAAE;wBACV,MAAM,IAAI,uBAAY,CAAC,sBAAsB,CAAC,CAAC;qBAClD;yBAAI;wBACD,gCAAQ,GAAC,WAAW,IAAG,UAAG,SAAS,qBAAW,OAAO,CAAE,OAAE;qBAC5D;;;;;CACJ;AAPD,kDAOC"}
@@ -1,16 +1,59 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ exports.__esModule = true;
3
39
  exports.requireAuthentication = void 0;
4
- const session_1 = require("./session");
5
- const requireAuthentication = async (req, res, next) => {
6
- await (0, session_1.setRequestUser)(req, res, function () {
7
- if (req.user) {
8
- next();
9
- }
10
- else {
11
- res.status(401).send({ status: 'error', message: 'You must be logged in to do this.' });
40
+ var session_1 = require("./session");
41
+ var requireAuthentication = function (req, res, next) { return __awaiter(void 0, void 0, void 0, function () {
42
+ return __generator(this, function (_a) {
43
+ switch (_a.label) {
44
+ case 0: return [4 /*yield*/, (0, session_1.setRequestUser)(req, res, function () {
45
+ if (req.user) {
46
+ next();
47
+ }
48
+ else {
49
+ res.status(401).send({ status: 'error', message: 'You must be logged in to do this.' });
50
+ }
51
+ })];
52
+ case 1:
53
+ _a.sent();
54
+ return [2 /*return*/];
12
55
  }
13
56
  });
14
- };
57
+ }); };
15
58
  exports.requireAuthentication = requireAuthentication;
16
59
  //# sourceMappingURL=auth-middleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-middleware.js","sourceRoot":"","sources":["../src/auth-middleware.ts"],"names":[],"mappings":";;;AAAA,uCAA2C;AAOpC,MAAM,qBAAqB,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,IAAgB,EAAE,EAAE;IACzF,MAAM,IAAA,wBAAc,EAAC,GAAG,EAAE,GAAG,EAAE;QAC3B,IAAI,GAAG,CAAC,IAAI,EAAE;YACV,IAAI,EAAE,CAAC;SACV;aACI;YACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC;SAC3F;IACL,CAAC,CAAC,CAAC;AAEP,CAAC,CAAA;AAVY,QAAA,qBAAqB,yBAUjC"}
1
+ {"version":3,"file":"auth-middleware.js","sourceRoot":"","sources":["../src/auth-middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qCAA2C;AAOpC,IAAM,qBAAqB,GAAG,UAAO,GAAY,EAAE,GAAa,EAAE,IAAgB;;;oBACrF,qBAAM,IAAA,wBAAc,EAAC,GAAG,EAAE,GAAG,EAAE;oBAC3B,IAAI,GAAG,CAAC,IAAI,EAAE;wBACV,IAAI,EAAE,CAAC;qBACV;yBACI;wBACD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC;qBAC3F;gBACL,CAAC,CAAC,EAAA;;gBAPF,SAOE,CAAC;;;;KAEN,CAAA;AAVY,QAAA,qBAAqB,yBAUjC"}
@@ -1,8 +1,44 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ exports.__esModule = true;
3
39
  exports.jwtSSO = void 0;
4
- const utils_1 = require("../utils");
5
- const objectql_1 = require("@steedos/objectql");
40
+ var utils_1 = require("../utils");
41
+ var objectql_1 = require("@steedos/objectql");
6
42
  // function secretCallback(req, payload, done) {
7
43
  // let issuer = payload.iss
8
44
  // let collection = getSteedosSchema().getObject('OAuth2Clients')
@@ -14,65 +50,90 @@ const objectql_1 = require("@steedos/objectql");
14
50
  // done(reject, '')
15
51
  // })
16
52
  // }
17
- async function getTokenInfo(req) {
18
- let payload = req.user;
19
- let data = { userId: '', authToken: '' };
20
- let userObj = (0, objectql_1.getSteedosSchema)().getObject('users');
21
- let user = (await userObj.find({ filters: `username eq '${payload.username}'`, fields: ['_id'] }))[0];
22
- if (user) {
23
- let userId = user._id;
24
- let authToken = payload.sessionId ? `${payload.iss}-${payload.username}-${payload.sessionId}` : `${payload.iss}-${payload.username}`;
25
- let hashedToken = (0, utils_1.hashLoginToken)(authToken).replace(/\//g, '%2F');
26
- let filters = `(services/resume/loginTokens/hashedToken eq '${hashedToken}')`;
27
- if (await userObj.count({ filters: filters })) {
28
- data = { userId: userId, authToken: authToken };
29
- }
30
- else {
31
- let stampedToken = {
32
- token: authToken,
33
- when: new Date
34
- };
35
- let hashedTokenObj = (0, utils_1.hashStampedToken)(stampedToken);
36
- await (0, utils_1.insertHashedLoginToken)(userId, hashedTokenObj);
37
- data = { userId: userId, authToken: authToken };
38
- }
39
- }
40
- return data;
53
+ function getTokenInfo(req) {
54
+ return __awaiter(this, void 0, void 0, function () {
55
+ var payload, data, userObj, user, userId, authToken, hashedToken, filters, stampedToken, hashedTokenObj;
56
+ return __generator(this, function (_a) {
57
+ switch (_a.label) {
58
+ case 0:
59
+ payload = req.user;
60
+ data = { userId: '', authToken: '' };
61
+ userObj = (0, objectql_1.getSteedosSchema)().getObject('users');
62
+ return [4 /*yield*/, userObj.find({ filters: "username eq '".concat(payload.username, "'"), fields: ['_id'] })];
63
+ case 1:
64
+ user = (_a.sent())[0];
65
+ if (!user) return [3 /*break*/, 5];
66
+ userId = user._id;
67
+ authToken = payload.sessionId ? "".concat(payload.iss, "-").concat(payload.username, "-").concat(payload.sessionId) : "".concat(payload.iss, "-").concat(payload.username);
68
+ hashedToken = (0, utils_1.hashLoginToken)(authToken).replace(/\//g, '%2F');
69
+ filters = "(services/resume/loginTokens/hashedToken eq '".concat(hashedToken, "')");
70
+ return [4 /*yield*/, userObj.count({ filters: filters })];
71
+ case 2:
72
+ if (!_a.sent()) return [3 /*break*/, 3];
73
+ data = { userId: userId, authToken: authToken };
74
+ return [3 /*break*/, 5];
75
+ case 3:
76
+ stampedToken = {
77
+ token: authToken,
78
+ when: new Date
79
+ };
80
+ hashedTokenObj = (0, utils_1.hashStampedToken)(stampedToken);
81
+ return [4 /*yield*/, (0, utils_1.insertHashedLoginToken)(userId, hashedTokenObj)];
82
+ case 4:
83
+ _a.sent();
84
+ data = { userId: userId, authToken: authToken };
85
+ _a.label = 5;
86
+ case 5: return [2 /*return*/, data];
87
+ }
88
+ });
89
+ });
41
90
  }
42
- const jwtSSO = async (req, res) => {
43
- try {
44
- let jwt = require('jsonwebtoken');
45
- let token = req.query.jwt_token;
46
- if (!token) {
47
- throw new Error('jwt_token is needed!');
91
+ var jwtSSO = function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
92
+ var jwt, token, decoded, payload, issuer, collection, clients, clientInfo, secret, spaceId, verifiedPayload, data, redirectUrl, error_1;
93
+ return __generator(this, function (_a) {
94
+ switch (_a.label) {
95
+ case 0:
96
+ _a.trys.push([0, 3, , 4]);
97
+ jwt = require('jsonwebtoken');
98
+ token = req.query.jwt_token;
99
+ if (!token) {
100
+ throw new Error('jwt_token is needed!');
101
+ }
102
+ decoded = jwt.decode(token, { complete: true });
103
+ payload = decoded.payload;
104
+ issuer = payload.iss;
105
+ if (!issuer) {
106
+ throw new Error('issuer is needed!');
107
+ }
108
+ collection = (0, objectql_1.getSteedosSchema)().getObject('OAuth2Clients');
109
+ return [4 /*yield*/, collection.find({ filters: "clientId eq '".concat(issuer, "'") })];
110
+ case 1:
111
+ clients = _a.sent();
112
+ clientInfo = clients[0];
113
+ secret = clientInfo ? clientInfo.clientSecret : '';
114
+ spaceId = clientInfo ? clientInfo.space : '';
115
+ if (!secret) {
116
+ throw new Error('secret is needed!');
117
+ }
118
+ if (!spaceId) {
119
+ throw new Error('spaceId is needed!');
120
+ }
121
+ verifiedPayload = jwt.verify(token, secret);
122
+ return [4 /*yield*/, getTokenInfo({ user: verifiedPayload })];
123
+ case 2:
124
+ data = _a.sent();
125
+ (0, utils_1.setAuthCookies)(req, res, data.userId, data.authToken, spaceId);
126
+ redirectUrl = verifiedPayload.redirect_url;
127
+ res.redirect(302, redirectUrl);
128
+ return [3 /*break*/, 4];
129
+ case 3:
130
+ error_1 = _a.sent();
131
+ console.error(error_1);
132
+ res.status(500).send(error_1.messenger);
133
+ return [3 /*break*/, 4];
134
+ case 4: return [2 /*return*/];
48
135
  }
49
- let decoded = jwt.decode(token, { complete: true });
50
- let payload = decoded.payload;
51
- let issuer = payload.iss;
52
- if (!issuer) {
53
- throw new Error('issuer is needed!');
54
- }
55
- let collection = (0, objectql_1.getSteedosSchema)().getObject('OAuth2Clients');
56
- let clients = await collection.find({ filters: `clientId eq '${issuer}'` });
57
- let clientInfo = clients[0];
58
- let secret = clientInfo ? clientInfo.clientSecret : '';
59
- let spaceId = clientInfo ? clientInfo.space : '';
60
- if (!secret) {
61
- throw new Error('secret is needed!');
62
- }
63
- if (!spaceId) {
64
- throw new Error('spaceId is needed!');
65
- }
66
- let verifiedPayload = jwt.verify(token, secret);
67
- let data = await getTokenInfo({ user: verifiedPayload });
68
- (0, utils_1.setAuthCookies)(req, res, data.userId, data.authToken, spaceId);
69
- let redirectUrl = verifiedPayload.redirect_url;
70
- res.redirect(302, redirectUrl);
71
- }
72
- catch (error) {
73
- console.error(error);
74
- res.status(500).send(error.messenger);
75
- }
76
- };
136
+ });
137
+ }); };
77
138
  exports.jwtSSO = jwtSSO;
78
139
  //# sourceMappingURL=jwt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/endpoints/jwt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../src/endpoints/jwt.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kCAAoG;AACpG,8CAAoD;AAEpD,gDAAgD;AAChD,6BAA6B;AAC7B,mEAAmE;AACnE,sFAAsF;AACtF,kCAAkC;AAClC,mEAAmE;AACnE,+BAA+B;AAC/B,iCAAiC;AACjC,uBAAuB;AACvB,OAAO;AACP,IAAI;AAEJ,SAAe,YAAY,CAAC,GAAG;;;;;;oBACzB,OAAO,GAAG,GAAG,CAAC,IAAI,CAAA;oBAClB,IAAI,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAA;oBACpC,OAAO,GAAG,IAAA,2BAAgB,GAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;oBACvC,qBAAM,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,uBAAgB,OAAO,CAAC,QAAQ,MAAG,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAA;;oBAA7F,IAAI,GAAG,CAAC,SAAqF,CAAC,CAAC,CAAC,CAAC;yBACjG,IAAI,EAAJ,wBAAI;oBACF,MAAM,GAAG,IAAI,CAAC,GAAG,CAAA;oBACjB,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,UAAG,OAAO,CAAC,GAAG,cAAI,OAAO,CAAC,QAAQ,cAAI,OAAO,CAAC,SAAS,CAAE,CAAC,CAAC,CAAC,UAAG,OAAO,CAAC,GAAG,cAAI,OAAO,CAAC,QAAQ,CAAE,CAAA;oBAChI,WAAW,GAAG,IAAA,sBAAc,EAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBAC9D,OAAO,GAAG,uDAAgD,WAAW,OAAI,CAAC;oBAC1E,qBAAM,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAA;;yBAAzC,SAAyC,EAAzC,wBAAyC;oBAC3C,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;;;oBAE3C,YAAY,GAAG;wBACjB,KAAK,EAAE,SAAS;wBAChB,IAAI,EAAE,IAAI,IAAI;qBACf,CAAA;oBACG,cAAc,GAAG,IAAA,wBAAgB,EAAC,YAAY,CAAC,CAAA;oBACnD,qBAAM,IAAA,8BAAsB,EAAC,MAAM,EAAE,cAAc,CAAC,EAAA;;oBAApD,SAAoD,CAAA;oBAEpD,IAAI,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;;wBAInD,sBAAO,IAAI,EAAC;;;;CACb;AAEM,IAAM,MAAM,GAAG,UAAO,GAAG,EAAE,GAAG;;;;;;gBAE7B,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC9B,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;gBAChC,IAAI,CAAC,KAAK,EAAE;oBACV,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;iBACxC;gBACG,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;gBAChD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gBAC1B,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;gBACzB,IAAI,CAAC,MAAM,EAAE;oBACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;iBACrC;gBACG,UAAU,GAAG,IAAA,2BAAgB,GAAE,CAAC,SAAS,CAAC,eAAe,CAAC,CAAA;gBAChD,qBAAM,UAAU,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,uBAAgB,MAAM,MAAG,EAAE,CAAC,EAAA;;gBAAvE,OAAO,GAAG,SAA6D;gBACvE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;gBACvB,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAA;gBAClD,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;gBAChD,IAAI,CAAC,MAAM,EAAE;oBACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;iBACrC;gBACD,IAAI,CAAC,OAAO,EAAE;oBACZ,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;iBACtC;gBACG,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACrC,qBAAM,YAAY,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EAAA;;gBAApD,IAAI,GAAG,SAA6C;gBACxD,IAAA,sBAAc,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;gBAC1D,WAAW,GAAG,eAAe,CAAC,YAAY,CAAC;gBAC/C,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;;;;gBAE/B,OAAO,CAAC,KAAK,CAAC,OAAK,CAAC,CAAC;gBACrB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAK,CAAC,SAAS,CAAC,CAAA;;;;;KAGxC,CAAA;AAlCY,QAAA,MAAM,UAkClB"}
@@ -1,38 +1,86 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.login = void 0;
4
- const SHA256 = require("sha256");
5
- const bcrypt = require('bcryptjs');
6
- const session_1 = require("../session");
7
- const utils_1 = require("../utils");
8
- const login = async (req, res) => {
9
- let username = req.body["username"];
10
- let password = req.body["password"];
11
- let spaceId = req.body["spaceId"]; // 需要登录的工作区Id,如果不传入,自动选中第一个工作区
12
- let bcryptPassword = SHA256(password);
13
- let user = Meteor.users.findOne({
14
- $or: [{ "username": username }, { "emails.address": username }, { "mobile": username }]
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
9
  });
16
- if (!user) {
17
- res.status(401).send();
18
- return;
19
- }
20
- let match = await bcrypt.compare(bcryptPassword, user.services.password.bcrypt);
21
- if (!match) {
22
- res.status(401).send();
23
- return;
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ 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;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
24
36
  }
25
- let authtToken = null;
26
- let stampedAuthToken = (0, utils_1.generateStampedLoginToken)();
27
- authtToken = stampedAuthToken.token;
28
- let hashedToken = (0, utils_1.hashStampedToken)(stampedAuthToken);
29
- await (0, utils_1.insertHashedLoginToken)(user._id, hashedToken);
30
- let userSession = await (0, session_1.getSession)(authtToken, spaceId);
31
- // set cookie to response
32
- // maxAge 3 month
33
- (0, utils_1.setAuthCookies)(req, res, user._id, authtToken, userSession.spaceId);
34
- res.setHeader('X-Space-Token', userSession.spaceId + ',' + authtToken);
35
- return res.send(userSession);
36
37
  };
38
+ exports.__esModule = true;
39
+ exports.login = void 0;
40
+ var SHA256 = require("sha256");
41
+ var bcrypt = require('bcryptjs');
42
+ var session_1 = require("../session");
43
+ var utils_1 = require("../utils");
44
+ var login = function (req, res) { return __awaiter(void 0, void 0, void 0, function () {
45
+ var username, password, spaceId, bcryptPassword, user, match, authtToken, stampedAuthToken, hashedToken, userSession;
46
+ return __generator(this, function (_a) {
47
+ switch (_a.label) {
48
+ case 0:
49
+ username = req.body["username"];
50
+ password = req.body["password"];
51
+ spaceId = req.body["spaceId"];
52
+ bcryptPassword = SHA256(password);
53
+ user = Meteor.users.findOne({
54
+ $or: [{ "username": username }, { "emails.address": username }, { "mobile": username }]
55
+ });
56
+ if (!user) {
57
+ res.status(401).send();
58
+ return [2 /*return*/];
59
+ }
60
+ return [4 /*yield*/, bcrypt.compare(bcryptPassword, user.services.password.bcrypt)];
61
+ case 1:
62
+ match = _a.sent();
63
+ if (!match) {
64
+ res.status(401).send();
65
+ return [2 /*return*/];
66
+ }
67
+ authtToken = null;
68
+ stampedAuthToken = (0, utils_1.generateStampedLoginToken)();
69
+ authtToken = stampedAuthToken.token;
70
+ hashedToken = (0, utils_1.hashStampedToken)(stampedAuthToken);
71
+ return [4 /*yield*/, (0, utils_1.insertHashedLoginToken)(user._id, hashedToken)];
72
+ case 2:
73
+ _a.sent();
74
+ return [4 /*yield*/, (0, session_1.getSession)(authtToken, spaceId)];
75
+ case 3:
76
+ userSession = _a.sent();
77
+ // set cookie to response
78
+ // maxAge 3 month
79
+ (0, utils_1.setAuthCookies)(req, res, user._id, authtToken, userSession.spaceId);
80
+ res.setHeader('X-Space-Token', userSession.spaceId + ',' + authtToken);
81
+ return [2 /*return*/, res.send(userSession)];
82
+ }
83
+ });
84
+ }); };
37
85
  exports.login = login;
38
86
  //# sourceMappingURL=login.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/endpoints/login.ts"],"names":[],"mappings":";;;AAEA,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACnC,wCAAwC;AACxC,oCAA+G;AAIxG,MAAM,KAAK,GAAG,KAAK,EAAE,GAAoB,EAAE,GAAqB,EAAE,EAAE;IACvE,IAAI,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,8BAA8B;IACjE,IAAI,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IACtC,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5B,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;KAC1F,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,EAAE;QACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvB,OAAO;KACV;IACD,IAAI,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChF,IAAI,CAAC,KAAK,EAAE;QACR,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACvB,OAAO;KACV;IACD,IAAI,UAAU,GAAG,IAAI,CAAC;IACtB,IAAI,gBAAgB,GAAG,IAAA,iCAAyB,GAAE,CAAC;IACnD,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC;IACpC,IAAI,WAAW,GAAG,IAAA,wBAAgB,EAAC,gBAAgB,CAAC,CAAC;IACrD,MAAM,IAAA,8BAAsB,EAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACpD,IAAI,WAAW,GAAG,MAAM,IAAA,oBAAU,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACxD,yBAAyB;IACzB,iBAAiB;IACjB,IAAA,sBAAc,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACpE,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,WAAW,CAAC,OAAO,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC;IACvE,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC,CAAA;AA5BY,QAAA,KAAK,SA4BjB"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/endpoints/login.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjC,IAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACnC,sCAAwC;AACxC,kCAA+G;AAKxG,IAAM,KAAK,GAAG,UAAO,GAAY,EAAE,GAAa;;;;;gBAC/C,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAChC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAChC,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9B,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAClC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;oBAC5B,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;iBAC1F,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,EAAE;oBACP,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACvB,sBAAO;iBACV;gBACW,qBAAM,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAA;;gBAA3E,KAAK,GAAG,SAAmE;gBAC/E,IAAI,CAAC,KAAK,EAAE;oBACR,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;oBACvB,sBAAO;iBACV;gBACG,UAAU,GAAG,IAAI,CAAC;gBAClB,gBAAgB,GAAG,IAAA,iCAAyB,GAAE,CAAC;gBACnD,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC;gBAChC,WAAW,GAAG,IAAA,wBAAgB,EAAC,gBAAgB,CAAC,CAAC;gBACrD,qBAAM,IAAA,8BAAsB,EAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,EAAA;;gBAAnD,SAAmD,CAAC;gBAClC,qBAAM,IAAA,oBAAU,EAAC,UAAU,EAAE,OAAO,CAAC,EAAA;;gBAAnD,WAAW,GAAG,SAAqC;gBACvD,yBAAyB;gBACzB,iBAAiB;gBACjB,IAAA,sBAAc,EAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;gBACpE,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,WAAW,CAAC,OAAO,GAAG,GAAG,GAAG,UAAU,CAAC,CAAC;gBACvE,sBAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAC;;;KAChC,CAAA;AA5BY,QAAA,KAAK,SA4BjB"}