@smg-automotive/auth 1.2.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -7
- package/dist/cjs/index.js +22 -16
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types/helpers/index.d.ts +5 -2
- package/dist/esm/index.js +22 -16
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/helpers/index.d.ts +5 -2
- package/dist/index.d.ts +6 -3
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -4,12 +4,21 @@
|
|
|
4
4
|
[](https://github.com/semantic-release/semantic-release)
|
|
5
5
|
|
|
6
6
|
## Usage
|
|
7
|
+
|
|
7
8
|
```
|
|
8
9
|
npm install @smg-automotive/auth
|
|
9
10
|
```
|
|
10
11
|
|
|
11
12
|
The goal of this package is to support current auth implementation. It reads access and refresh tokens form cookies by domain.
|
|
12
13
|
|
|
14
|
+
### Accessing user data and access tokens on the server
|
|
15
|
+
|
|
16
|
+
When accessing the user data and accessToken from the server, make sure to use the `deriveUserAndTokenFromRequest`
|
|
17
|
+
helper to derive the data from the cookies.
|
|
18
|
+
The values normally originate form the request cookies unless they have been added or updated within the current request.
|
|
19
|
+
In that case the correct data may only be present as a set cookie header and needs to be parsed form there in order to
|
|
20
|
+
avoid accessing outdate or missing information.
|
|
21
|
+
|
|
13
22
|
### Middleware
|
|
14
23
|
|
|
15
24
|
Call `ensureTokenFreshness` on middleware return. Pass to it Next.js `request`, `response` and specific auth config.
|
|
@@ -35,8 +44,7 @@ const authConfig = {
|
|
|
35
44
|
- `cookieDomain` - domain for cookies
|
|
36
45
|
- `errorHandler` - error handler method to handle errors
|
|
37
46
|
|
|
38
|
-
|
|
39
|
-
````tsx
|
|
47
|
+
```tsx
|
|
40
48
|
import { ensureTokenFreshness } from '@smg-automotive/auth-pkg';
|
|
41
49
|
|
|
42
50
|
export function middleware(request: NextRequest, _event: NextFetchEvent) {
|
|
@@ -45,7 +53,7 @@ export function middleware(request: NextRequest, _event: NextFetchEvent) {
|
|
|
45
53
|
const response = NextResponse.next();
|
|
46
54
|
return ensureTokenFreshness(request, response, authConfig);
|
|
47
55
|
}
|
|
48
|
-
|
|
56
|
+
```
|
|
49
57
|
|
|
50
58
|
### AuthProvider
|
|
51
59
|
|
|
@@ -68,16 +76,16 @@ const authConfig = {
|
|
|
68
76
|
|
|
69
77
|
It contains of special `triggerRefreshTokenApiUrl` property.
|
|
70
78
|
|
|
71
|
-
It is internal api url in your application (as like: `/api/live`), which will be called in AuthProvider by interval in order to trigger middleware
|
|
79
|
+
It is internal api url in your application (as like: `/api/live`), which will be called in AuthProvider by interval in order to trigger middleware
|
|
72
80
|
to ensure access token freshness on client side.
|
|
73
81
|
|
|
74
|
-
|
|
82
|
+
```tsx
|
|
75
83
|
import { AuthProvider } from '@smg-automotive/auth-pkg';
|
|
76
84
|
|
|
77
85
|
<AuthProvider authConfig={authConfig}>
|
|
78
86
|
<div>app code...</div>
|
|
79
|
-
</AuthProvider
|
|
80
|
-
|
|
87
|
+
</AuthProvider>;
|
|
88
|
+
```
|
|
81
89
|
|
|
82
90
|
#### AuthConfig
|
|
83
91
|
|
|
@@ -91,6 +99,7 @@ Auth config contains of:
|
|
|
91
99
|
## Development
|
|
92
100
|
|
|
93
101
|
You can link your local npm package to integrate it with any local project:
|
|
102
|
+
|
|
94
103
|
```
|
|
95
104
|
cd smg-automotive-auth-pkg
|
|
96
105
|
npm run build
|
package/dist/cjs/index.js
CHANGED
|
@@ -262,32 +262,38 @@ var getUserDataAsObject = function (_a) {
|
|
|
262
262
|
? JSON.parse(userDataCookie)
|
|
263
263
|
: { userName: null, userType: null };
|
|
264
264
|
};
|
|
265
|
-
var
|
|
265
|
+
var deriveUserAndTokenFromRequest = function (_a) {
|
|
266
266
|
var request = _a.request, authConfig = _a.authConfig;
|
|
267
|
-
if (!request || !request.headers.cookie)
|
|
268
|
-
return null;
|
|
267
|
+
if (!request || !request.headers.cookie) {
|
|
268
|
+
return { accessToken: null, user: null };
|
|
269
|
+
}
|
|
269
270
|
var cookies = parse_1(request.headers.cookie);
|
|
270
271
|
var setCookieHeader = request.headers['set-cookie'];
|
|
271
272
|
if (setCookieHeader) {
|
|
272
|
-
var
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
273
|
+
var cookiesFromSetCookieHeader = setCookieHeader.reduce(function (acc, current) {
|
|
274
|
+
var parsedCookie = parse_1(current);
|
|
275
|
+
if (Object.hasOwn(parsedCookie, authConfig.userDataCookieName)) {
|
|
276
|
+
acc.userDataCookie = parsedCookie[authConfig.userDataCookieName];
|
|
277
|
+
}
|
|
278
|
+
if (Object.hasOwn(parsedCookie, authConfig.tokenNames.access)) {
|
|
279
|
+
acc.accessTokenCookie = parsedCookie[authConfig.tokenNames.access];
|
|
278
280
|
}
|
|
279
281
|
return acc;
|
|
280
|
-
},
|
|
281
|
-
if (
|
|
282
|
+
}, { userDataCookie: '', accessTokenCookie: '' });
|
|
283
|
+
if (cookiesFromSetCookieHeader.userDataCookie) {
|
|
282
284
|
cookies[authConfig.userDataCookieName] =
|
|
283
|
-
|
|
285
|
+
cookiesFromSetCookieHeader.userDataCookie;
|
|
286
|
+
}
|
|
287
|
+
if (cookiesFromSetCookieHeader.accessTokenCookie) {
|
|
288
|
+
cookies[authConfig.tokenNames.access] =
|
|
289
|
+
cookiesFromSetCookieHeader.accessTokenCookie;
|
|
284
290
|
}
|
|
285
291
|
}
|
|
286
|
-
var
|
|
292
|
+
var _b = getUserDataAndTokensFromCookies({
|
|
287
293
|
cookies: cookies,
|
|
288
294
|
authConfig: authConfig
|
|
289
|
-
}).user;
|
|
290
|
-
return user;
|
|
295
|
+
}), user = _b.user, accessToken = _b.accessToken;
|
|
296
|
+
return { accessToken: accessToken, user: user };
|
|
291
297
|
};
|
|
292
298
|
|
|
293
299
|
var ensureTokenFreshness = function (_a) {
|
|
@@ -1084,7 +1090,7 @@ var AuthProvider = function (_a) {
|
|
|
1084
1090
|
exports.AuthContext = AuthContext;
|
|
1085
1091
|
exports.AuthProvider = AuthProvider;
|
|
1086
1092
|
exports.decodeJWT = decodeJWT;
|
|
1087
|
-
exports.
|
|
1093
|
+
exports.deriveUserAndTokenFromRequest = deriveUserAndTokenFromRequest;
|
|
1088
1094
|
exports.ensureTokenFreshness = ensureTokenFreshness;
|
|
1089
1095
|
exports.getAccessTokenExpirationTime = getAccessTokenExpirationTime;
|
|
1090
1096
|
exports.getUntilRefreshTokenTime = getUntilRefreshTokenTime;
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../node_modules/tslib/tslib.es6.js","../../node_modules/cookie/index.js","../../src/helpers/index.ts","../../src/middleware/ensureTokenFreshness.ts","../../node_modules/nookies/node_modules/cookie/index.js","../../node_modules/set-cookie-parser/lib/set-cookie.js","../../node_modules/nookies/dist/utils.js","../../node_modules/nookies/dist/index.js","../../src/context/Auth.tsx"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar __toString = Object.prototype.toString\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var dec = opt.decode || decode;\n\n var index = 0\n while (index < str.length) {\n var eqIdx = str.indexOf('=', index)\n\n // no more cookie pairs\n if (eqIdx === -1) {\n break\n }\n\n var endIdx = str.indexOf(';', index)\n\n if (endIdx === -1) {\n endIdx = str.length\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(';', eqIdx - 1) + 1\n continue\n }\n\n var key = str.slice(index, eqIdx).trim()\n\n // only assign once\n if (undefined === obj[key]) {\n var val = str.slice(eqIdx + 1, endIdx).trim()\n\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n\n index = endIdx + 1\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n var expires = opt.expires\n\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + expires.toUTCString()\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.priority) {\n var priority = typeof opt.priority === 'string'\n ? opt.priority.toLowerCase()\n : opt.priority\n\n switch (priority) {\n case 'low':\n str += '; Priority=Low'\n break\n case 'medium':\n str += '; Priority=Medium'\n break\n case 'high':\n str += '; Priority=High'\n break\n default:\n throw new TypeError('option priority is invalid')\n }\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction decode (str) {\n return str.indexOf('%') !== -1\n ? decodeURIComponent(str)\n : str\n}\n\n/**\n * URL-encode value.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction encode (val) {\n return encodeURIComponent(val)\n}\n\n/**\n * Determine if value is a Date.\n *\n * @param {*} val\n * @private\n */\n\nfunction isDate (val) {\n return __toString.call(val) === '[object Date]' ||\n val instanceof Date\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","import { __assign } from \"tslib\";\nimport { parse } from 'cookie';\nexport var MappedUserType;\n(function (MappedUserType) {\n MappedUserType[\"Private\"] = \"private\";\n MappedUserType[\"Professional\"] = \"professional\";\n})(MappedUserType || (MappedUserType = {}));\nexport var UserType;\n(function (UserType) {\n UserType[\"Dealer\"] = \"Dealer\";\n UserType[\"Private\"] = \"Private\";\n UserType[\"Agent\"] = \"Agent\";\n})(UserType || (UserType = {}));\n// Default time to refresh token before expiration\nvar DefaultSubMinutesFromExpirationTime = 300000;\nexport var decodeJWT = function (token) {\n if (token === null || token === undefined)\n return null;\n var base64String = token.split('.')[1];\n if (!base64String)\n return null;\n var decodedData;\n try {\n decodedData = JSON.parse(atob(base64String));\n }\n catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error decoding JWT:', error);\n return null;\n }\n /* eslint-disable @typescript-eslint/naming-convention */\n var id = decodedData.id, legacy_user_id = decodedData.legacy_user_id, account_id = decodedData.account_id, name = decodedData.name, username = decodedData.username, user_type = decodedData.user_type, exp = decodedData.exp, email = decodedData.email;\n /* eslint-enable @typescript-eslint/naming-convention */\n return {\n id: id || legacy_user_id,\n username: name || username,\n account_id: account_id,\n user_type: user_type,\n email: email,\n exp: exp\n };\n};\nexport var getAccessTokenExpirationTime = function (accessToken) {\n var user = accessToken ? decodeJWT(accessToken) : null;\n return user ? user.exp * 1000 : Date.now();\n};\nexport var isAccessTokenExpired = function (accessToken, subMinutesFromExpirationTime) {\n if (subMinutesFromExpirationTime === void 0) { subMinutesFromExpirationTime = DefaultSubMinutesFromExpirationTime; }\n var accessTokenExpirationTime = getAccessTokenExpirationTime(accessToken);\n return accessTokenExpirationTime - subMinutesFromExpirationTime < Date.now();\n};\nexport var getUntilRefreshTokenTime = function (accessToken, subMinutesFromExpirationTime) {\n if (subMinutesFromExpirationTime === void 0) { subMinutesFromExpirationTime = DefaultSubMinutesFromExpirationTime; }\n var accessTokenExpirationTime = getAccessTokenExpirationTime(accessToken);\n return accessTokenExpirationTime - Date.now() - subMinutesFromExpirationTime;\n};\nexport var mapLegacyUserType = function (userType) {\n switch (userType) {\n case UserType.Agent:\n return MappedUserType.Professional;\n case UserType.Dealer:\n return MappedUserType.Professional;\n case UserType.Private:\n return MappedUserType.Private;\n }\n};\nexport var getUserDataAndTokensFromCookies = function (_a) {\n var cookies = _a.cookies, authConfig = _a.authConfig;\n var userDataCookieName = authConfig.userDataCookieName, _b = authConfig.tokenNames, accessTokenName = _b.access, refreshTokenName = _b.refresh;\n var accessToken = cookies[accessTokenName];\n var refreshToken = cookies[refreshTokenName];\n var userDataCookie = cookies[userDataCookieName];\n var userDataCookieObject = userDataCookie\n ? JSON.parse(userDataCookie)\n : null;\n var user = decodeJWT(accessToken);\n return {\n user: user\n ? __assign({ id: user.id, account_id: user.account_id, email: user.email, exp: user.exp }, userDataCookieObject) : null,\n accessToken: accessToken,\n refreshToken: refreshToken\n };\n};\nexport var getUserDataAsObject = function (_a) {\n var _b;\n var request = _a.request, userDataCookieName = _a.userDataCookieName;\n var userDataCookie = (_b = request.cookies.get(userDataCookieName)) === null || _b === void 0 ? void 0 : _b.value;\n return userDataCookie\n ? JSON.parse(userDataCookie)\n : { userName: null, userType: null };\n};\nexport var deriveUserForAppContext = function (_a) {\n var request = _a.request, authConfig = _a.authConfig;\n if (!request || !request.headers.cookie)\n return null;\n var cookies = parse(request.headers.cookie);\n var setCookieHeader = request.headers['set-cookie'];\n if (setCookieHeader) {\n var userDataCookieFromHeaders = setCookieHeader.reduce(function (acc, current) {\n if (!acc) {\n var parsedCookie = parse(current);\n if (Object.hasOwn(parsedCookie, authConfig.userDataCookieName)) {\n return parsedCookie;\n }\n }\n return acc;\n }, null);\n if (userDataCookieFromHeaders) {\n cookies[authConfig.userDataCookieName] =\n userDataCookieFromHeaders[authConfig.userDataCookieName];\n }\n }\n var user = getUserDataAndTokensFromCookies({\n cookies: cookies,\n authConfig: authConfig\n }).user;\n return user;\n};\n//# sourceMappingURL=index.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { decodeJWT, getUserDataAsObject, isAccessTokenExpired, } from '../helpers';\nexport var ensureTokenFreshness = function (_a) {\n var req = _a.req, res = _a.res, authConfig = _a.authConfig, userData = _a.userData;\n return __awaiter(void 0, void 0, void 0, function () {\n var tokenNames, userDataCookieName, refreshTokenApiUrl, subMinutesFromExpirationTime, cookieDomain, errorHandler, accessToken, refreshToken, userDataCookieObject, response, refreshedTokensData, updatedAccessToken, updatedRefreshToken, updatedUser, error_1;\n var _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n tokenNames = authConfig.tokenNames, userDataCookieName = authConfig.userDataCookieName, refreshTokenApiUrl = authConfig.refreshTokenApiUrl, subMinutesFromExpirationTime = authConfig.subMinutesFromExpirationTime, cookieDomain = authConfig.cookieDomain, errorHandler = authConfig.errorHandler;\n accessToken = (_b = req.cookies.get(tokenNames.access)) === null || _b === void 0 ? void 0 : _b.value;\n refreshToken = (_c = req.cookies.get(tokenNames.refresh)) === null || _c === void 0 ? void 0 : _c.value;\n userDataCookieObject = getUserDataAsObject({\n request: req,\n userDataCookieName: userDataCookieName\n });\n if (accessToken &&\n (!(userDataCookieObject === null || userDataCookieObject === void 0 ? void 0 : userDataCookieObject.userType) || !(userDataCookieObject === null || userDataCookieObject === void 0 ? void 0 : userDataCookieObject.userName))) {\n res.cookies.set(userDataCookieName, JSON.stringify(userData), {\n domain: cookieDomain\n });\n }\n if (!refreshToken ||\n !userData.userName ||\n !isAccessTokenExpired(accessToken, subMinutesFromExpirationTime)) {\n return [2 /*return*/, res];\n }\n _d.label = 1;\n case 1:\n _d.trys.push([1, 4, , 5]);\n return [4 /*yield*/, fetch(refreshTokenApiUrl, {\n method: 'POST',\n headers: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n token: refreshToken,\n username: userData.userName\n })\n })];\n case 2:\n response = _d.sent();\n if (!response.ok || response.status !== 200) {\n res.cookies[\"delete\"](tokenNames.access);\n res.cookies[\"delete\"](tokenNames.refresh);\n res.cookies[\"delete\"](userDataCookieName);\n errorHandler &&\n errorHandler(new Error('Failed to refresh token'), {\n extra: { response: response }\n });\n return [2 /*return*/, res];\n }\n return [4 /*yield*/, response.json()];\n case 3:\n refreshedTokensData = _d.sent();\n updatedAccessToken = refreshedTokensData === null || refreshedTokensData === void 0 ? void 0 : refreshedTokensData.access;\n updatedRefreshToken = refreshedTokensData === null || refreshedTokensData === void 0 ? void 0 : refreshedTokensData.refresh;\n if (!updatedAccessToken) {\n return [2 /*return*/, res];\n }\n res.cookies.set(tokenNames.access, updatedAccessToken.value, {\n maxAge: updatedAccessToken.ttl,\n domain: cookieDomain\n });\n updatedUser = decodeJWT(updatedAccessToken.value);\n if ((updatedUser === null || updatedUser === void 0 ? void 0 : updatedUser.username) && (updatedUser === null || updatedUser === void 0 ? void 0 : updatedUser.username) !== userData.userName) {\n userData.userName = updatedUser.username;\n res.cookies.set(userDataCookieName, JSON.stringify(userData), {\n domain: cookieDomain\n });\n }\n if (updatedRefreshToken.value) {\n res.cookies.set(tokenNames.refresh, updatedRefreshToken.value, {\n maxAge: updatedRefreshToken.ttl,\n domain: cookieDomain\n });\n }\n return [2 /*return*/, res];\n case 4:\n error_1 = _d.sent();\n errorHandler && errorHandler(error_1);\n return [3 /*break*/, 5];\n case 5:\n res.cookies[\"delete\"](userDataCookieName);\n res.cookies[\"delete\"](tokenNames.access);\n res.cookies[\"delete\"](tokenNames.refresh);\n return [2 /*return*/, res];\n }\n });\n });\n};\n//# sourceMappingURL=ensureTokenFreshness.js.map","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","\"use strict\";\n\nvar defaultParseOptions = {\n decodeValues: true,\n map: false,\n silent: false,\n};\n\nfunction isNonEmptyString(str) {\n return typeof str === \"string\" && !!str.trim();\n}\n\nfunction parseString(setCookieValue, options) {\n var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n\n var nameValuePairStr = parts.shift();\n var parsed = parseNameValuePair(nameValuePairStr);\n var name = parsed.name;\n var value = parsed.value;\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n try {\n value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value\n } catch (e) {\n console.error(\n \"set-cookie-parser encountered an error while decoding a cookie with value '\" +\n value +\n \"'. Set options.decodeValues to false to disable this feature.\",\n e\n );\n }\n\n var cookie = {\n name: name,\n value: value,\n };\n\n parts.forEach(function (part) {\n var sides = part.split(\"=\");\n var key = sides.shift().trimLeft().toLowerCase();\n var value = sides.join(\"=\");\n if (key === \"expires\") {\n cookie.expires = new Date(value);\n } else if (key === \"max-age\") {\n cookie.maxAge = parseInt(value, 10);\n } else if (key === \"secure\") {\n cookie.secure = true;\n } else if (key === \"httponly\") {\n cookie.httpOnly = true;\n } else if (key === \"samesite\") {\n cookie.sameSite = value;\n } else {\n cookie[key] = value;\n }\n });\n\n return cookie;\n}\n\nfunction parseNameValuePair(nameValuePairStr) {\n // Parses name-value-pair according to rfc6265bis draft\n\n var name = \"\";\n var value = \"\";\n var nameValueArr = nameValuePairStr.split(\"=\");\n if (nameValueArr.length > 1) {\n name = nameValueArr.shift();\n value = nameValueArr.join(\"=\"); // everything after the first =, joined by a \"=\" if there was more than one part\n } else {\n value = nameValuePairStr;\n }\n\n return { name: name, value: value };\n}\n\nfunction parse(input, options) {\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!input) {\n if (!options.map) {\n return [];\n } else {\n return {};\n }\n }\n\n if (input.headers && input.headers[\"set-cookie\"]) {\n // fast-path for node.js (which automatically normalizes header names to lower-case\n input = input.headers[\"set-cookie\"];\n } else if (input.headers) {\n // slow-path for other environments - see #25\n var sch =\n input.headers[\n Object.keys(input.headers).find(function (key) {\n return key.toLowerCase() === \"set-cookie\";\n })\n ];\n // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36\n if (!sch && input.headers.cookie && !options.silent) {\n console.warn(\n \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n );\n }\n input = sch;\n }\n if (!Array.isArray(input)) {\n input = [input];\n }\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!options.map) {\n return input.filter(isNonEmptyString).map(function (str) {\n return parseString(str, options);\n });\n } else {\n var cookies = {};\n return input.filter(isNonEmptyString).reduce(function (cookies, str) {\n var cookie = parseString(str, options);\n cookies[cookie.name] = cookie;\n return cookies;\n }, cookies);\n }\n}\n\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n\n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/\nfunction splitCookiesString(cookiesString) {\n if (Array.isArray(cookiesString)) {\n return cookiesString;\n }\n if (typeof cookiesString !== \"string\") {\n return [];\n }\n\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n\n skipWhitespace();\n nextStart = pos;\n\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n\n return cookiesStrings;\n}\n\nmodule.exports = parse;\nmodule.exports.parse = parse;\nmodule.exports.parseString = parseString;\nmodule.exports.splitCookiesString = splitCookiesString;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.areCookiesEqual = exports.hasSameProperties = exports.createCookie = exports.isBrowser = void 0;\n/**\n * Tells whether we are in a browser or server.\n */\nfunction isBrowser() {\n return typeof window !== 'undefined';\n}\nexports.isBrowser = isBrowser;\n/**\n * Create an instance of the Cookie interface\n */\nfunction createCookie(name, value, options) {\n var sameSite = options.sameSite;\n if (sameSite === true) {\n sameSite = 'strict';\n }\n if (sameSite === undefined || sameSite === false) {\n sameSite = 'lax';\n }\n var cookieToSet = __assign(__assign({}, options), { sameSite: sameSite });\n delete cookieToSet.encode;\n return __assign({ name: name, value: value }, cookieToSet);\n}\nexports.createCookie = createCookie;\n/**\n * Tells whether given objects have the same properties.\n */\nfunction hasSameProperties(a, b) {\n var aProps = Object.getOwnPropertyNames(a);\n var bProps = Object.getOwnPropertyNames(b);\n if (aProps.length !== bProps.length) {\n return false;\n }\n for (var i = 0; i < aProps.length; i++) {\n var propName = aProps[i];\n if (a[propName] !== b[propName]) {\n return false;\n }\n }\n return true;\n}\nexports.hasSameProperties = hasSameProperties;\n/**\n * Compare the cookie and return true if the cookies have equivalent\n * options and the cookies would be overwritten in the browser storage.\n *\n * @param a first Cookie for comparison\n * @param b second Cookie for comparison\n */\nfunction areCookiesEqual(a, b) {\n var sameSiteSame = a.sameSite === b.sameSite;\n if (typeof a.sameSite === 'string' && typeof b.sameSite === 'string') {\n sameSiteSame = a.sameSite.toLowerCase() === b.sameSite.toLowerCase();\n }\n return (hasSameProperties(__assign(__assign({}, a), { sameSite: undefined }), __assign(__assign({}, b), { sameSite: undefined })) && sameSiteSame);\n}\nexports.areCookiesEqual = areCookiesEqual;\n/* Functions */\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.destroyCookie = exports.setCookie = exports.parseCookies = void 0;\nvar cookie = require(\"cookie\");\nvar setCookieParser = require(\"set-cookie-parser\");\nvar utils_1 = require(\"./utils\");\n/**\n * Parses cookies.\n *\n * @param ctx NextJS page or API context, express context, null or undefined.\n * @param options Options that we pass down to `cookie` library.\n */\nfunction parseCookies(ctx, options) {\n var _a, _b;\n if ((_b = (_a = ctx === null || ctx === void 0 ? void 0 : ctx.req) === null || _a === void 0 ? void 0 : _a.headers) === null || _b === void 0 ? void 0 : _b.cookie) {\n return cookie.parse(ctx.req.headers.cookie, options);\n }\n if (utils_1.isBrowser()) {\n return cookie.parse(document.cookie, options);\n }\n return {};\n}\nexports.parseCookies = parseCookies;\n/**\n * Sets a cookie.\n *\n * @param ctx NextJS page or API context, express context, null or undefined.\n * @param name The name of your cookie.\n * @param value The value of your cookie.\n * @param options Options that we pass down to `cookie` library.\n */\nfunction setCookie(ctx, name, value, options) {\n var _a, _b;\n if (options === void 0) { options = {}; }\n // SSR\n if (((_a = ctx === null || ctx === void 0 ? void 0 : ctx.res) === null || _a === void 0 ? void 0 : _a.getHeader) && ctx.res.setHeader) {\n // Check if response has finished and warn about it.\n if ((_b = ctx === null || ctx === void 0 ? void 0 : ctx.res) === null || _b === void 0 ? void 0 : _b.finished) {\n console.warn(\"Not setting \\\"\" + name + \"\\\" cookie. Response has finished.\");\n console.warn(\"You should set cookie before res.send()\");\n return {};\n }\n /**\n * Load existing cookies from the header and parse them.\n */\n var cookies = ctx.res.getHeader('Set-Cookie') || [];\n if (typeof cookies === 'string')\n cookies = [cookies];\n if (typeof cookies === 'number')\n cookies = [];\n /**\n * Parse cookies but ignore values - we've already encoded\n * them in the previous call.\n */\n var parsedCookies = setCookieParser.parse(cookies, {\n decodeValues: false,\n });\n /**\n * We create the new cookie and make sure that none of\n * the existing cookies match it.\n */\n var newCookie_1 = utils_1.createCookie(name, value, options);\n var cookiesToSet_1 = [];\n parsedCookies.forEach(function (parsedCookie) {\n if (!utils_1.areCookiesEqual(parsedCookie, newCookie_1)) {\n /**\n * We serialize the cookie back to the original format\n * if it isn't the same as the new one.\n */\n var serializedCookie = cookie.serialize(parsedCookie.name, parsedCookie.value, __assign({ \n // we prevent reencoding by default, but you might override it\n encode: function (val) { return val; } }, parsedCookie));\n cookiesToSet_1.push(serializedCookie);\n }\n });\n cookiesToSet_1.push(cookie.serialize(name, value, options));\n // Update the header.\n ctx.res.setHeader('Set-Cookie', cookiesToSet_1);\n }\n // Browser\n if (utils_1.isBrowser()) {\n if (options && options.httpOnly) {\n throw new Error('Can not set a httpOnly cookie in the browser.');\n }\n document.cookie = cookie.serialize(name, value, options);\n }\n return {};\n}\nexports.setCookie = setCookie;\n/**\n * Destroys a cookie with a particular name.\n *\n * @param ctx NextJS page or API context, express context, null or undefined.\n * @param name Cookie name.\n * @param options Options that we pass down to `cookie` library.\n */\nfunction destroyCookie(ctx, name, options) {\n /**\n * We forward the request destroy to setCookie function\n * as it is the same function with modified maxAge value.\n */\n return setCookie(ctx, name, '', __assign(__assign({}, (options || {})), { maxAge: -1 }));\n}\nexports.destroyCookie = destroyCookie;\n/* Utility Exports */\nexports.default = {\n set: setCookie,\n get: parseCookies,\n destroy: destroyCookie,\n};\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport React, { createContext, useContext, useEffect, useMemo, useState, } from 'react';\nimport { parseCookies } from 'nookies';\nimport { getUntilRefreshTokenTime, getUserDataAndTokensFromCookies, } from '../helpers';\nvar AuthContext = createContext({\n user: null,\n accessToken: undefined\n});\nvar useAuthContext = function () { return useContext(AuthContext); };\nvar AuthProvider = function (_a) {\n var passedUser = _a.user, authConfig = _a.authConfig, children = _a.children;\n // persists the data initialized server-side on the client\n var memoizedAuthConfig = useMemo(function () {\n return {\n tokenNames: authConfig.tokenNames,\n triggerRefreshTokenApiUrl: authConfig.triggerRefreshTokenApiUrl,\n subMinutesFromExpirationTime: authConfig.subMinutesFromExpirationTime,\n userDataCookieName: authConfig.userDataCookieName\n };\n }, []);\n var triggerRefreshTokenApiUrl = memoizedAuthConfig.triggerRefreshTokenApiUrl, subMinutesFromExpirationTime = memoizedAuthConfig.subMinutesFromExpirationTime;\n var errorHandler = authConfig.errorHandler;\n var cookies = parseCookies();\n var _b = getUserDataAndTokensFromCookies({\n cookies: cookies,\n authConfig: __assign(__assign({}, memoizedAuthConfig), { errorHandler: errorHandler })\n }), cookieUser = _b.user, refreshToken = _b.refreshToken, cookieAccessToken = _b.accessToken;\n var memoizedUser = useMemo(function () {\n if (!passedUser) {\n return cookieUser;\n }\n return passedUser;\n }, [passedUser, cookieUser]);\n var _c = useState(memoizedUser), user = _c[0], setUser = _c[1];\n var _d = useState(cookieAccessToken), accessToken = _d[0], setAccessToken = _d[1];\n useEffect(function () {\n var untilRefreshTokenTime = getUntilRefreshTokenTime(accessToken, subMinutesFromExpirationTime);\n if (!refreshToken) {\n return;\n }\n if (untilRefreshTokenTime > 0) {\n // Call the API by interval in order to trigger middleware to ensure token freshness on client side\n var interval_1 = setInterval(function () { return __awaiter(void 0, void 0, void 0, function () {\n var response, updatedCookies, _a, refreshedUser, refreshedAccessToken, error_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n return [4 /*yield*/, fetch(triggerRefreshTokenApiUrl)];\n case 1:\n response = _b.sent();\n if (!response.ok) {\n errorHandler &&\n errorHandler(new Error('Failed to trigger refresh token api'), {\n extra: { response: response }\n });\n }\n updatedCookies = parseCookies();\n _a = getUserDataAndTokensFromCookies({\n cookies: updatedCookies,\n authConfig: __assign(__assign({}, memoizedAuthConfig), { errorHandler: errorHandler })\n }), refreshedUser = _a.user, refreshedAccessToken = _a.accessToken;\n setUser(refreshedUser);\n setAccessToken(refreshedAccessToken);\n return [3 /*break*/, 3];\n case 2:\n error_1 = _b.sent();\n errorHandler && errorHandler(error_1);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n }); }, untilRefreshTokenTime);\n return function () { return clearInterval(interval_1); };\n }\n }, [refreshToken, accessToken, setUser, setAccessToken]);\n return (React.createElement(AuthContext.Provider, { value: {\n user: user,\n accessToken: accessToken\n } }, children));\n};\nexport { AuthContext, AuthProvider, useAuthContext };\n//# sourceMappingURL=Auth.js.map"],"names":["__assign","parse","decode","tryDecode","MappedUserType","UserType","cookie","setCookieModule","this","require$$0","require$$1","require$$2","createContext","useContext","useMemo","parseCookies","useState","useEffect"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAaA;AACO,IAAIA,UAAQ,GAAG,WAAW;AACjC,IAAIA,UAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC;AACjB,MAAK;AACL,IAAI,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3C,EAAC;AA4BD;AACO,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;AAC7D,IAAI,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAChH,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;AACtH,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9E,KAAK,CAAC,CAAC;AACP,CAAC;AACD;AACO,SAAS,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;AAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACrH,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7J,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACtE,IAAI,SAAS,IAAI,CAAC,EAAE,EAAE;AACtB,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;AACtE,QAAQ,OAAO,CAAC,EAAE,IAAI;AACtB,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACzK,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AACpD,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;AACzB,gBAAgB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM;AAC9C,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACxE,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;AACjE,gBAAgB,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;AACjE,gBAAgB;AAChB,oBAAoB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;AAChI,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC1G,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;AACzF,oBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;AACvF,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC1C,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;AAC3C,aAAa;AACb,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACvC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAClE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACzF,KAAK;AACL;;;;;;;;;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA,IAAa,OAAA,GAAGC,OAAK,CAAC;AAmBtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,OAAK,CAAC,GAAG,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,IAAI,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;AACzD,GAAG;AACH;AACA,EAAE,IAAI,GAAG,GAAG,GAAE;AACd,EAAE,IAAI,GAAG,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,IAAIC,QAAM,CAAC;AACjC;AACA,EAAE,IAAI,KAAK,GAAG,EAAC;AACf,EAAE,OAAO,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE;AAC7B,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAC;AACvC;AACA;AACA,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AACtB,MAAM,KAAK;AACX,KAAK;AACL;AACA,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAC;AACxC;AACA,IAAI,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE;AACvB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAM;AACzB,KAAK,MAAM,IAAI,MAAM,GAAG,KAAK,EAAE;AAC/B;AACA,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,EAAC;AACjD,MAAM,QAAQ;AACd,KAAK;AACL;AACA,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,GAAE;AAC5C;AACA;AACA,IAAI,IAAI,SAAS,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE;AAChC,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,GAAE;AACnD;AACA;AACA,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACtC,QAAQ,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC;AAC9B,OAAO;AACP;AACA,MAAM,GAAG,CAAC,GAAG,CAAC,GAAGC,WAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACrC,KAAK;AACL;AACA,IAAI,KAAK,GAAG,MAAM,GAAG,EAAC;AACtB,GAAG;AACH;AACA,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AA8HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASD,QAAM,EAAE,GAAG,EAAE;AACtB,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC,MAAM,kBAAkB,CAAC,GAAG,CAAC;AAC7B,MAAM,GAAG;AACT,CAAC;AAwBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,WAAS,CAAC,GAAG,EAAE,MAAM,EAAE;AAChC,EAAE,IAAI;AACN,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACvB,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH;;AC3QWC,gCAAe;AAC1B,CAAC,UAAU,cAAc,EAAE;AAC3B,IAAI,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;AAC1C,IAAI,cAAc,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;AACpD,CAAC,EAAEA,sBAAc,KAAKA,sBAAc,GAAG,EAAE,CAAC,CAAC,CAAC;AACjCC,0BAAS;AACpB,CAAC,UAAU,QAAQ,EAAE;AACrB,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AAClC,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;AACpC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAChC,CAAC,EAAEA,gBAAQ,KAAKA,gBAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;AAChC;AACA,IAAI,mCAAmC,GAAG,MAAM,CAAC;AACvC,IAAC,SAAS,GAAG,UAAU,KAAK,EAAE;AACxC,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;AAC7C,QAAQ,OAAO,IAAI,CAAC;AACpB,IAAI,IAAI,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,YAAY;AACrB,QAAQ,OAAO,IAAI,CAAC;AACpB,IAAI,IAAI,WAAW,CAAC;AACpB,IAAI,IAAI;AACR,QAAQ,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,OAAO,KAAK,EAAE;AAClB;AACA,QAAQ,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;AACpD,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA,IAAI,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,cAAc,GAAG,WAAW,CAAC,cAAc,EAAE,UAAU,GAAG,WAAW,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AAC7P;AACA,IAAI,OAAO;AACX,QAAQ,EAAE,EAAE,EAAE,IAAI,cAAc;AAChC,QAAQ,QAAQ,EAAE,IAAI,IAAI,QAAQ;AAClC,QAAQ,UAAU,EAAE,UAAU;AAC9B,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAG,EAAE,GAAG;AAChB,KAAK,CAAC;AACN,EAAE;AACQ,IAAC,4BAA4B,GAAG,UAAU,WAAW,EAAE;AACjE,IAAI,IAAI,IAAI,GAAG,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;AAC3D,IAAI,OAAO,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC/C,EAAE;AACQ,IAAC,oBAAoB,GAAG,UAAU,WAAW,EAAE,4BAA4B,EAAE;AACvF,IAAI,IAAI,4BAA4B,KAAK,KAAK,CAAC,EAAE,EAAE,4BAA4B,GAAG,mCAAmC,CAAC,EAAE;AACxH,IAAI,IAAI,yBAAyB,GAAG,4BAA4B,CAAC,WAAW,CAAC,CAAC;AAC9E,IAAI,OAAO,yBAAyB,GAAG,4BAA4B,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACjF,EAAE;AACQ,IAAC,wBAAwB,GAAG,UAAU,WAAW,EAAE,4BAA4B,EAAE;AAC3F,IAAI,IAAI,4BAA4B,KAAK,KAAK,CAAC,EAAE,EAAE,4BAA4B,GAAG,mCAAmC,CAAC,EAAE;AACxH,IAAI,IAAI,yBAAyB,GAAG,4BAA4B,CAAC,WAAW,CAAC,CAAC;AAC9E,IAAI,OAAO,yBAAyB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,4BAA4B,CAAC;AACjF,EAAE;AACQ,IAAC,iBAAiB,GAAG,UAAU,QAAQ,EAAE;AACnD,IAAI,QAAQ,QAAQ;AACpB,QAAQ,KAAKA,gBAAQ,CAAC,KAAK;AAC3B,YAAY,OAAOD,sBAAc,CAAC,YAAY,CAAC;AAC/C,QAAQ,KAAKC,gBAAQ,CAAC,MAAM;AAC5B,YAAY,OAAOD,sBAAc,CAAC,YAAY,CAAC;AAC/C,QAAQ,KAAKC,gBAAQ,CAAC,OAAO;AAC7B,YAAY,OAAOD,sBAAc,CAAC,OAAO,CAAC;AAC1C,KAAK;AACL,EAAE;AACQ,IAAC,+BAA+B,GAAG,UAAU,EAAE,EAAE;AAC3D,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;AACzD,IAAI,IAAI,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,EAAE,EAAE,GAAG,UAAU,CAAC,UAAU,EAAE,eAAe,GAAG,EAAE,CAAC,MAAM,EAAE,gBAAgB,GAAG,EAAE,CAAC,OAAO,CAAC;AACnJ,IAAI,IAAI,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAC/C,IAAI,IAAI,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACjD,IAAI,IAAI,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AACrD,IAAI,IAAI,oBAAoB,GAAG,cAAc;AAC7C,UAAU,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;AACpC,UAAU,IAAI,CAAC;AACf,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AACtC,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,IAAI;AAClB,cAAcJ,UAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,GAAG,IAAI;AACnI,QAAQ,WAAW,EAAE,WAAW;AAChC,QAAQ,YAAY,EAAE,YAAY;AAClC,KAAK,CAAC;AACN,EAAE;AACQ,IAAC,mBAAmB,GAAG,UAAU,EAAE,EAAE;AAC/C,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,kBAAkB,GAAG,EAAE,CAAC,kBAAkB,CAAC;AACzE,IAAI,IAAI,cAAc,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;AACtH,IAAI,OAAO,cAAc;AACzB,UAAU,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;AACpC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC7C,EAAE;AACQ,IAAC,uBAAuB,GAAG,UAAU,EAAE,EAAE;AACnD,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;AACzD,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM;AAC3C,QAAQ,OAAO,IAAI,CAAC;AACpB,IAAI,IAAI,OAAO,GAAGC,OAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAChD,IAAI,IAAI,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACxD,IAAI,IAAI,eAAe,EAAE;AACzB,QAAQ,IAAI,yBAAyB,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,OAAO,EAAE;AACvF,YAAY,IAAI,CAAC,GAAG,EAAE;AACtB,gBAAgB,IAAI,YAAY,GAAGA,OAAK,CAAC,OAAO,CAAC,CAAC;AAClD,gBAAgB,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,kBAAkB,CAAC,EAAE;AAChF,oBAAoB,OAAO,YAAY,CAAC;AACxC,iBAAiB;AACjB,aAAa;AACb,YAAY,OAAO,GAAG,CAAC;AACvB,SAAS,EAAE,IAAI,CAAC,CAAC;AACjB,QAAQ,IAAI,yBAAyB,EAAE;AACvC,YAAY,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC;AAClD,gBAAgB,yBAAyB,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACzE,SAAS;AACT,KAAK;AACL,IAAI,IAAI,IAAI,GAAG,+BAA+B,CAAC;AAC/C,QAAQ,OAAO,EAAE,OAAO;AACxB,QAAQ,UAAU,EAAE,UAAU;AAC9B,KAAK,CAAC,CAAC,IAAI,CAAC;AACZ,IAAI,OAAO,IAAI,CAAC;AAChB;;ACnHU,IAAC,oBAAoB,GAAG,UAAU,EAAE,EAAE;AAChD,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;AACvF,IAAI,OAAO,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,YAAY;AACzD,QAAQ,IAAI,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,EAAE,OAAO,CAAC;AACxQ,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC;AACnB,QAAQ,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;AAC/C,YAAY,QAAQ,EAAE,CAAC,KAAK;AAC5B,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,UAAU,GAAG,UAAU,CAAC,UAAU,EAAE,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,EAAE,4BAA4B,GAAG,UAAU,CAAC,4BAA4B,EAAE,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;AACvT,oBAAoB,WAAW,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;AAC1H,oBAAoB,YAAY,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;AAC5H,oBAAoB,oBAAoB,GAAG,mBAAmB,CAAC;AAC/D,wBAAwB,OAAO,EAAE,GAAG;AACpC,wBAAwB,kBAAkB,EAAE,kBAAkB;AAC9D,qBAAqB,CAAC,CAAC;AACvB,oBAAoB,IAAI,WAAW;AACnC,yBAAyB,EAAE,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE;AACxP,wBAAwB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;AACtF,4BAA4B,MAAM,EAAE,YAAY;AAChD,yBAAyB,CAAC,CAAC;AAC3B,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,YAAY;AACrC,wBAAwB,CAAC,QAAQ,CAAC,QAAQ;AAC1C,wBAAwB,CAAC,oBAAoB,CAAC,WAAW,EAAE,4BAA4B,CAAC,EAAE;AAC1F,wBAAwB,OAAO,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACnD,qBAAqB;AACrB,oBAAoB,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;AACjC,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9C,oBAAoB,OAAO,CAAC,CAAC,YAAY,KAAK,CAAC,kBAAkB,EAAE;AACnE,4BAA4B,MAAM,EAAE,MAAM;AAC1C,4BAA4B,OAAO,EAAE;AACrC;AACA,gCAAgC,cAAc,EAAE,kBAAkB;AAClE,6BAA6B;AAC7B,4BAA4B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;AACjD,gCAAgC,KAAK,EAAE,YAAY;AACnD,gCAAgC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;AAC3D,6BAA6B,CAAC;AAC9B,yBAAyB,CAAC,CAAC,CAAC;AAC5B,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,QAAQ,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AACzC,oBAAoB,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;AACjE,wBAAwB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACjE,wBAAwB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAClE,wBAAwB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAClE,wBAAwB,YAAY;AACpC,4BAA4B,YAAY,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,EAAE;AAC/E,gCAAgC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC7D,6BAA6B,CAAC,CAAC;AAC/B,wBAAwB,OAAO,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACnD,qBAAqB;AACrB,oBAAoB,OAAO,CAAC,CAAC,YAAY,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1D,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,mBAAmB,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AACpD,oBAAoB,kBAAkB,GAAG,mBAAmB,KAAK,IAAI,IAAI,mBAAmB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC;AAC9I,oBAAoB,mBAAmB,GAAG,mBAAmB,KAAK,IAAI,IAAI,mBAAmB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC;AAChJ,oBAAoB,IAAI,CAAC,kBAAkB,EAAE;AAC7C,wBAAwB,OAAO,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACnD,qBAAqB;AACrB,oBAAoB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,kBAAkB,CAAC,KAAK,EAAE;AACjF,wBAAwB,MAAM,EAAE,kBAAkB,CAAC,GAAG;AACtD,wBAAwB,MAAM,EAAE,YAAY;AAC5C,qBAAqB,CAAC,CAAC;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACtE,oBAAoB,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,QAAQ,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,QAAQ,MAAM,QAAQ,CAAC,QAAQ,EAAE;AACpN,wBAAwB,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;AACjE,wBAAwB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;AACtF,4BAA4B,MAAM,EAAE,YAAY;AAChD,yBAAyB,CAAC,CAAC;AAC3B,qBAAqB;AACrB,oBAAoB,IAAI,mBAAmB,CAAC,KAAK,EAAE;AACnD,wBAAwB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,mBAAmB,CAAC,KAAK,EAAE;AACvF,4BAA4B,MAAM,EAAE,mBAAmB,CAAC,GAAG;AAC3D,4BAA4B,MAAM,EAAE,YAAY;AAChD,yBAAyB,CAAC,CAAC;AAC3B,qBAAqB;AACrB,oBAAoB,OAAO,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AAC/C,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AACxC,oBAAoB,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;AAC1D,oBAAoB,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5C,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC9D,oBAAoB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC7D,oBAAoB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC9D,oBAAoB,OAAO,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AAC/C,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK,CAAC,CAAC;AACP;;;;;;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACaK,QAAA,CAAA,KAAA,GAAGL,QAAM;AACLK,QAAA,CAAA,SAAA,GAAG,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,kBAAkB,CAAC;AAChC,IAAI,MAAM,GAAG,kBAAkB,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,GAAG,uCAAuC,CAAC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASL,OAAK,CAAC,GAAG,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,IAAI,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;AACzD,GAAG;AACH;AACA,EAAE,IAAI,GAAG,GAAG,GAAE;AACd,EAAE,IAAI,GAAG,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAC;AAC5B,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC;AACjC;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAC;AACjC;AACA;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;AACnB,MAAM,SAAS;AACf,KAAK;AACL;AACA,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAE;AAC7C;AACA;AACA,IAAI,IAAI,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;AAC/B,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,GAAE;AAC7D;AACA;AACA,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC1B,QAAQ,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC;AAC9B,OAAO;AACP;AACA,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACrC,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE;AACvC,EAAE,IAAI,GAAG,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC;AACjC;AACA,EAAE,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;AACjC,IAAI,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;AACpD,GAAG;AACH;AACA,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACtC,IAAI,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;AACpD,GAAG;AACH;AACA,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACvB;AACA,EAAE,IAAI,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAChD,IAAI,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;AACnD,GAAG;AACH;AACA,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;AAC/B;AACA,EAAE,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE;AAC1B,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC;AACA,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC5C,MAAM,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC;AACrD,KAAK;AACL;AACA,IAAI,GAAG,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC7C,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE;AAClB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AAC9C,MAAM,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;AACtD,KAAK;AACL;AACA,IAAI,GAAG,IAAI,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;AACpC,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE;AAChB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC5C,MAAM,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAC;AACpD,KAAK;AACL;AACA,IAAI,GAAG,IAAI,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;AAChC,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE;AACnB,IAAI,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE;AACvD,MAAM,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAC;AACvD,KAAK;AACL;AACA,IAAI,GAAG,IAAI,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AACpD,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE;AACpB,IAAI,GAAG,IAAI,YAAY,CAAC;AACxB,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE;AAClB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE;AACpB,IAAI,IAAI,QAAQ,GAAG,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ;AACnD,QAAQ,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC;AAClD;AACA,IAAI,QAAQ,QAAQ;AACpB,MAAM,KAAK,IAAI;AACf,QAAQ,GAAG,IAAI,mBAAmB,CAAC;AACnC,QAAQ,MAAM;AACd,MAAM,KAAK,KAAK;AAChB,QAAQ,GAAG,IAAI,gBAAgB,CAAC;AAChC,QAAQ,MAAM;AACd,MAAM,KAAK,QAAQ;AACnB,QAAQ,GAAG,IAAI,mBAAmB,CAAC;AACnC,QAAQ,MAAM;AACd,MAAM,KAAK,MAAM;AACjB,QAAQ,GAAG,IAAI,iBAAiB,CAAC;AACjC,QAAQ,MAAM;AACd,MAAM;AACN,QAAQ,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;AAC1D,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE;AAChC,EAAE,IAAI;AACN,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACvB,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH;;;;ACvMA,IAAI,mBAAmB,GAAG;AAC1B,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,KAAK;AACZ,EAAE,MAAM,EAAE,KAAK;AACf,CAAC,CAAC;AACF;AACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,EAAE,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACjD,CAAC;AACD;AACA,SAAS,WAAW,CAAC,cAAc,EAAE,OAAO,EAAE;AAC9C,EAAE,IAAI,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACjE;AACA,EAAE,IAAI,gBAAgB,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AACvC,EAAE,IAAI,MAAM,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AACpD,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC3B;AACA,EAAE,OAAO,GAAG,OAAO;AACnB,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC;AACrD,MAAM,mBAAmB,CAAC;AAC1B;AACA,EAAE,IAAI;AACN,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AACrE,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,CAAC,KAAK;AACjB,MAAM,6EAA6E;AACnF,QAAQ,KAAK;AACb,QAAQ,+DAA+D;AACvE,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,KAAK,EAAE,KAAK;AAChB,GAAG,CAAC;AACJ;AACA,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAChC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;AACrD,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;AAC3B,MAAM,MAAM,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,KAAK,MAAM,IAAI,GAAG,KAAK,SAAS,EAAE;AAClC,MAAM,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC1C,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,EAAE;AACjC,MAAM,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,KAAK,MAAM,IAAI,GAAG,KAAK,UAAU,EAAE;AACnC,MAAM,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,KAAK,MAAM,IAAI,GAAG,KAAK,UAAU,EAAE;AACnC,MAAM,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC1B,KAAK;AACL,GAAG,CAAC,CAAC;AACL;AACA,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,gBAAgB,EAAE;AAC9C;AACA;AACA,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;AACjB,EAAE,IAAI,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACjD,EAAE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,IAAI,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;AAChC,IAAI,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,KAAK,GAAG,gBAAgB,CAAC;AAC7B,GAAG;AACH;AACA,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACtC,CAAC;AACD;AACA,SAAS,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE;AAC/B,EAAE,OAAO,GAAG,OAAO;AACnB,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC;AACrD,MAAM,mBAAmB,CAAC;AAC1B;AACA,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACtB,MAAM,OAAO,EAAE,CAAC;AAChB,KAAK,MAAM;AACX,MAAM,OAAO,EAAE,CAAC;AAChB,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACpD;AACA,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACxC,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;AAC5B;AACA,IAAI,IAAI,GAAG;AACX,MAAM,KAAK,CAAC,OAAO;AACnB,QAAQ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE;AACvD,UAAU,OAAO,GAAG,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC;AACpD,SAAS,CAAC;AACV,OAAO,CAAC;AACR;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACzD,MAAM,OAAO,CAAC,IAAI;AAClB,QAAQ,kOAAkO;AAC1O,OAAO,CAAC;AACR,KAAK;AACL,IAAI,KAAK,GAAG,GAAG,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC7B,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AACpB,GAAG;AACH;AACA,EAAE,OAAO,GAAG,OAAO;AACnB,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC;AACrD,MAAM,mBAAmB,CAAC;AAC1B;AACA,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACpB,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE;AAC7D,MAAM,OAAO,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACvC,KAAK,CAAC,CAAC;AACP,GAAG,MAAM;AACT,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;AACrB,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,UAAU,OAAO,EAAE,GAAG,EAAE;AACzE,MAAM,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC7C,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpC,MAAM,OAAO,OAAO,CAAC;AACrB,KAAK,EAAE,OAAO,CAAC,CAAC;AAChB,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,aAAa,EAAE;AAC3C,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AACpC,IAAI,OAAO,aAAa,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;AACzC,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH;AACA,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;AACd,EAAE,IAAI,KAAK,CAAC;AACZ,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,IAAI,SAAS,CAAC;AAChB,EAAE,IAAI,SAAS,CAAC;AAChB,EAAE,IAAI,qBAAqB,CAAC;AAC5B;AACA,EAAE,SAAS,cAAc,GAAG;AAC5B,IAAI,OAAO,GAAG,GAAG,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AAC/E,MAAM,GAAG,IAAI,CAAC,CAAC;AACf,KAAK;AACL,IAAI,OAAO,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC;AACtC,GAAG;AACH;AACA,EAAE,SAAS,cAAc,GAAG;AAC5B,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACnC;AACA,IAAI,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC;AAClD,GAAG;AACH;AACA,EAAE,OAAO,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE;AACrC,IAAI,KAAK,GAAG,GAAG,CAAC;AAChB,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAClC;AACA,IAAI,OAAO,cAAc,EAAE,EAAE;AAC7B,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrC,MAAM,IAAI,EAAE,KAAK,GAAG,EAAE;AACtB;AACA,QAAQ,SAAS,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,IAAI,CAAC,CAAC;AACjB;AACA,QAAQ,cAAc,EAAE,CAAC;AACzB,QAAQ,SAAS,GAAG,GAAG,CAAC;AACxB;AACA,QAAQ,OAAO,GAAG,GAAG,aAAa,CAAC,MAAM,IAAI,cAAc,EAAE,EAAE;AAC/D,UAAU,GAAG,IAAI,CAAC,CAAC;AACnB,SAAS;AACT;AACA;AACA,QAAQ,IAAI,GAAG,GAAG,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AAC7E;AACA,UAAU,qBAAqB,GAAG,IAAI,CAAC;AACvC;AACA,UAAU,GAAG,GAAG,SAAS,CAAC;AAC1B,UAAU,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AACzE,UAAU,KAAK,GAAG,GAAG,CAAC;AACtB,SAAS,MAAM;AACf;AACA;AACA,UAAU,GAAG,GAAG,SAAS,GAAG,CAAC,CAAC;AAC9B,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,CAAC,CAAC;AACjB,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,CAAC,qBAAqB,IAAI,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE;AAC/D,MAAM,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AAChF,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,cAAc,CAAC;AACxB,CAAC;AACD;AACAM,WAAc,CAAA,OAAA,GAAG,KAAK,CAAC;AACHA,WAAA,CAAA,OAAA,CAAA,KAAA,GAAG,MAAM;AACHA,WAAA,CAAA,OAAA,CAAA,WAAA,GAAG,YAAY;AACzCA,WAAA,CAAA,OAAA,CAAA,kBAAiC,GAAG,mBAAkB;;;;;;AC1NtD,IAAIP,UAAQ,GAAG,CAACQ,cAAI,IAAIA,cAAI,CAAC,QAAQ,KAAK,YAAY;AACtD,IAAIR,UAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;AAC5C,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3E,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC;AACjB,KAAK,CAAC;AACN,IAAI,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACvC,KAAA,CAAA,eAAA,0BAA4B,GAAG,KAAA,CAAA,YAAoB,GAAoB,KAAA,CAAA,SAAA,GAAG,KAAK,EAAE;AACxG;AACA;AACA;AACA,SAAS,SAAS,GAAG;AACrB,IAAI,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC;AACzC,CAAC;AACgB,KAAA,CAAA,SAAA,GAAG,UAAU;AAC9B;AACA;AACA;AACA,SAAS,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;AAC5C,IAAI,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AACpC,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC3B,QAAQ,QAAQ,GAAG,QAAQ,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,KAAK,EAAE;AACtD,QAAQ,QAAQ,GAAG,KAAK,CAAC;AACzB,KAAK;AACL,IAAI,IAAI,WAAW,GAAGA,UAAQ,CAACA,UAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9E,IAAI,OAAO,WAAW,CAAC,MAAM,CAAC;AAC9B,IAAI,OAAOA,UAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,CAAC;AAC/D,CAAC;AACmB,KAAA,CAAA,YAAA,GAAG,aAAa;AACpC;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AACjC,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;AACzC,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,QAAQ,IAAI,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACjC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE;AACzC,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACwB,KAAA,CAAA,iBAAA,GAAG,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;AAC/B,IAAI,IAAI,YAAY,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC;AACjD,IAAI,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC1E,QAAQ,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC7E,KAAK;AACL,IAAI,QAAQ,iBAAiB,CAACA,UAAQ,CAACA,UAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAEA,UAAQ,CAACA,UAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,YAAY,EAAE;AACvJ,CAAC;AACsB,KAAA,CAAA,eAAA,GAAG,eAAe;;ACpEzC,IAAI,QAAQ,GAAG,CAACQ,cAAI,IAAIA,cAAI,CAAC,QAAQ,KAAK,YAAY;AACtD,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;AAC5C,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3E,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC;AACjB,KAAK,CAAC;AACN,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,IAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,IAAA,CAAA,aAAqB,GAAoB,IAAA,CAAA,SAAA,GAAG,kCAAoB,GAAG,KAAK,EAAE;AAC1E,IAAI,MAAM,GAAGC,QAAiB,CAAC;AAC/B,IAAI,eAAe,GAAGC,gBAA4B,CAAC;AACnD,IAAI,OAAO,GAAGC,KAAkB,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE;AACpC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACf,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE;AACxK,QAAQ,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,EAAE;AAC7B,QAAQ,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACtD,KAAK;AACL,IAAI,OAAO,EAAE,CAAC;AACd,CAAC;AACD,IAAoB,cAAA,GAAA,IAAA,CAAA,YAAA,GAAG,YAAY,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;AAC9C,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACf,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,EAAE;AAC7C;AACA,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE;AAC3I;AACA,QAAQ,IAAI,CAAC,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;AACvH,YAAY,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,mCAAmC,CAAC,CAAC;AACxF,YAAY,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;AACpE,YAAY,OAAO,EAAE,CAAC;AACtB,SAAS;AACT;AACA;AACA;AACA,QAAQ,IAAI,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC5D,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ;AACvC,YAAY,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AAChC,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ;AACvC,YAAY,OAAO,GAAG,EAAE,CAAC;AACzB;AACA;AACA;AACA;AACA,QAAQ,IAAI,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE;AAC3D,YAAY,YAAY,EAAE,KAAK;AAC/B,SAAS,CAAC,CAAC;AACX;AACA;AACA;AACA;AACA,QAAQ,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACrE,QAAQ,IAAI,cAAc,GAAG,EAAE,CAAC;AAChC,QAAQ,aAAa,CAAC,OAAO,CAAC,UAAU,YAAY,EAAE;AACtD,YAAY,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE;AACrE;AACA;AACA;AACA;AACA,gBAAgB,IAAI,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;AACxG;AACA,oBAAoB,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;AAC7E,gBAAgB,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACtD,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACpE;AACA,QAAQ,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AACxD,KAAK;AACL;AACA,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,EAAE;AAC7B,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;AACzC,YAAY,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AAC7E,SAAS;AACT,QAAQ,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,OAAO,EAAE,CAAC;AACd,CAAC;AACgB,IAAA,CAAA,SAAA,GAAG,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3C;AACA;AACA;AACA;AACA,IAAI,OAAO,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7F,CAAC;AACoB,IAAA,CAAA,aAAA,GAAG,aAAa,CAAC;AACtC;AACA,IAAA,CAAA,OAAe,GAAG;AAClB,IAAI,GAAG,EAAE,SAAS;AAClB,IAAI,GAAG,EAAE,YAAY;AACrB,IAAI,OAAO,EAAE,aAAa;AAC1B;;ACpHG,IAAC,WAAW,GAAGC,mBAAa,CAAC;AAChC,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,WAAW,EAAE,SAAS;AAC1B,CAAC,EAAE;AACA,IAAC,cAAc,GAAG,YAAY,EAAE,OAAOC,gBAAU,CAAC,WAAW,CAAC,CAAC,GAAG;AAClE,IAAC,YAAY,GAAG,UAAU,EAAE,EAAE;AACjC,IAAI,IAAI,UAAU,GAAG,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;AACjF;AACA,IAAI,IAAI,kBAAkB,GAAGC,aAAO,CAAC,YAAY;AACjD,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,UAAU,CAAC,UAAU;AAC7C,YAAY,yBAAyB,EAAE,UAAU,CAAC,yBAAyB;AAC3E,YAAY,4BAA4B,EAAE,UAAU,CAAC,4BAA4B;AACjF,YAAY,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;AAC7D,SAAS,CAAC;AACV,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,IAAI,IAAI,yBAAyB,GAAG,kBAAkB,CAAC,yBAAyB,EAAE,4BAA4B,GAAG,kBAAkB,CAAC,4BAA4B,CAAC;AACjK,IAAI,IAAI,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;AAC/C,IAAI,IAAI,OAAO,GAAGC,cAAY,EAAE,CAAC;AACjC,IAAI,IAAI,EAAE,GAAG,+BAA+B,CAAC;AAC7C,QAAQ,OAAO,EAAE,OAAO;AACxB,QAAQ,UAAU,EAAEf,UAAQ,CAACA,UAAQ,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAC9F,KAAK,CAAC,EAAE,UAAU,GAAG,EAAE,CAAC,IAAI,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,iBAAiB,GAAG,EAAE,CAAC,WAAW,CAAC;AACjG,IAAI,IAAI,YAAY,GAAGc,aAAO,CAAC,YAAY;AAC3C,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,YAAY,OAAO,UAAU,CAAC;AAC9B,SAAS;AACT,QAAQ,OAAO,UAAU,CAAC;AAC1B,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AACjC,IAAI,IAAI,EAAE,GAAGE,cAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,IAAI,IAAI,EAAE,GAAGA,cAAQ,CAAC,iBAAiB,CAAC,EAAE,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACtF,IAAIC,eAAS,CAAC,YAAY;AAC1B,QAAQ,IAAI,qBAAqB,GAAG,wBAAwB,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAAC;AACxG,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,qBAAqB,GAAG,CAAC,EAAE;AACvC;AACA,YAAY,IAAI,UAAU,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,YAAY;AAC5G,gBAAgB,IAAI,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,oBAAoB,EAAE,OAAO,CAAC;AAC/F,gBAAgB,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;AACvD,oBAAoB,QAAQ,EAAE,CAAC,KAAK;AACpC,wBAAwB,KAAK,CAAC;AAC9B,4BAA4B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtD,4BAA4B,OAAO,CAAC,CAAC,YAAY,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;AACnF,wBAAwB,KAAK,CAAC;AAC9B,4BAA4B,QAAQ,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AACjD,4BAA4B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAC9C,gCAAgC,YAAY;AAC5C,oCAAoC,YAAY,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,EAAE;AACnG,wCAAwC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACrE,qCAAqC,CAAC,CAAC;AACvC,6BAA6B;AAC7B,4BAA4B,cAAc,GAAGF,cAAY,EAAE,CAAC;AAC5D,4BAA4B,EAAE,GAAG,+BAA+B,CAAC;AACjE,gCAAgC,OAAO,EAAE,cAAc;AACvD,gCAAgC,UAAU,EAAEf,UAAQ,CAACA,UAAQ,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AACtH,6BAA6B,CAAC,EAAE,aAAa,GAAG,EAAE,CAAC,IAAI,EAAE,oBAAoB,GAAG,EAAE,CAAC,WAAW,CAAC;AAC/F,4BAA4B,OAAO,CAAC,aAAa,CAAC,CAAC;AACnD,4BAA4B,cAAc,CAAC,oBAAoB,CAAC,CAAC;AACjE,4BAA4B,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AACpD,wBAAwB,KAAK,CAAC;AAC9B,4BAA4B,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AAChD,4BAA4B,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;AAClE,4BAA4B,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AACpD,wBAAwB,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC;AACtD,qBAAqB;AACrB,iBAAiB,CAAC,CAAC;AACnB,aAAa,CAAC,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;AAC1C,YAAY,OAAO,YAAY,EAAE,OAAO,aAAa,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;AACrE,SAAS;AACT,KAAK,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;AAC7D,IAAI,QAAQ,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE;AAC/D,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,WAAW,EAAE,WAAW;AACpC,SAAS,EAAE,EAAE,QAAQ,CAAC,EAAE;AACxB;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1,4,5,6,7]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../node_modules/tslib/tslib.es6.js","../../node_modules/cookie/index.js","../../src/helpers/index.ts","../../src/middleware/ensureTokenFreshness.ts","../../node_modules/nookies/node_modules/cookie/index.js","../../node_modules/set-cookie-parser/lib/set-cookie.js","../../node_modules/nookies/dist/utils.js","../../node_modules/nookies/dist/index.js","../../src/context/Auth.tsx"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar __toString = Object.prototype.toString\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var dec = opt.decode || decode;\n\n var index = 0\n while (index < str.length) {\n var eqIdx = str.indexOf('=', index)\n\n // no more cookie pairs\n if (eqIdx === -1) {\n break\n }\n\n var endIdx = str.indexOf(';', index)\n\n if (endIdx === -1) {\n endIdx = str.length\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(';', eqIdx - 1) + 1\n continue\n }\n\n var key = str.slice(index, eqIdx).trim()\n\n // only assign once\n if (undefined === obj[key]) {\n var val = str.slice(eqIdx + 1, endIdx).trim()\n\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n\n index = endIdx + 1\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n var expires = opt.expires\n\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + expires.toUTCString()\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.priority) {\n var priority = typeof opt.priority === 'string'\n ? opt.priority.toLowerCase()\n : opt.priority\n\n switch (priority) {\n case 'low':\n str += '; Priority=Low'\n break\n case 'medium':\n str += '; Priority=Medium'\n break\n case 'high':\n str += '; Priority=High'\n break\n default:\n throw new TypeError('option priority is invalid')\n }\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction decode (str) {\n return str.indexOf('%') !== -1\n ? decodeURIComponent(str)\n : str\n}\n\n/**\n * URL-encode value.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction encode (val) {\n return encodeURIComponent(val)\n}\n\n/**\n * Determine if value is a Date.\n *\n * @param {*} val\n * @private\n */\n\nfunction isDate (val) {\n return __toString.call(val) === '[object Date]' ||\n val instanceof Date\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","import { __assign } from \"tslib\";\nimport { parse } from 'cookie';\nexport var MappedUserType;\n(function (MappedUserType) {\n MappedUserType[\"Private\"] = \"private\";\n MappedUserType[\"Professional\"] = \"professional\";\n})(MappedUserType || (MappedUserType = {}));\nexport var UserType;\n(function (UserType) {\n UserType[\"Dealer\"] = \"Dealer\";\n UserType[\"Private\"] = \"Private\";\n UserType[\"Agent\"] = \"Agent\";\n})(UserType || (UserType = {}));\n// Default time to refresh token before expiration\nvar DefaultSubMinutesFromExpirationTime = 300000;\nexport var decodeJWT = function (token) {\n if (token === null || token === undefined)\n return null;\n var base64String = token.split('.')[1];\n if (!base64String)\n return null;\n var decodedData;\n try {\n decodedData = JSON.parse(atob(base64String));\n }\n catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error decoding JWT:', error);\n return null;\n }\n /* eslint-disable @typescript-eslint/naming-convention */\n var id = decodedData.id, legacy_user_id = decodedData.legacy_user_id, account_id = decodedData.account_id, name = decodedData.name, username = decodedData.username, user_type = decodedData.user_type, exp = decodedData.exp, email = decodedData.email;\n /* eslint-enable @typescript-eslint/naming-convention */\n return {\n id: id || legacy_user_id,\n username: name || username,\n account_id: account_id,\n user_type: user_type,\n email: email,\n exp: exp\n };\n};\nexport var getAccessTokenExpirationTime = function (accessToken) {\n var user = accessToken ? decodeJWT(accessToken) : null;\n return user ? user.exp * 1000 : Date.now();\n};\nexport var isAccessTokenExpired = function (accessToken, subMinutesFromExpirationTime) {\n if (subMinutesFromExpirationTime === void 0) { subMinutesFromExpirationTime = DefaultSubMinutesFromExpirationTime; }\n var accessTokenExpirationTime = getAccessTokenExpirationTime(accessToken);\n return accessTokenExpirationTime - subMinutesFromExpirationTime < Date.now();\n};\nexport var getUntilRefreshTokenTime = function (accessToken, subMinutesFromExpirationTime) {\n if (subMinutesFromExpirationTime === void 0) { subMinutesFromExpirationTime = DefaultSubMinutesFromExpirationTime; }\n var accessTokenExpirationTime = getAccessTokenExpirationTime(accessToken);\n return accessTokenExpirationTime - Date.now() - subMinutesFromExpirationTime;\n};\nexport var mapLegacyUserType = function (userType) {\n switch (userType) {\n case UserType.Agent:\n return MappedUserType.Professional;\n case UserType.Dealer:\n return MappedUserType.Professional;\n case UserType.Private:\n return MappedUserType.Private;\n }\n};\nexport var getUserDataAndTokensFromCookies = function (_a) {\n var cookies = _a.cookies, authConfig = _a.authConfig;\n var userDataCookieName = authConfig.userDataCookieName, _b = authConfig.tokenNames, accessTokenName = _b.access, refreshTokenName = _b.refresh;\n var accessToken = cookies[accessTokenName];\n var refreshToken = cookies[refreshTokenName];\n var userDataCookie = cookies[userDataCookieName];\n var userDataCookieObject = userDataCookie\n ? JSON.parse(userDataCookie)\n : null;\n var user = decodeJWT(accessToken);\n return {\n user: user\n ? __assign({ id: user.id, account_id: user.account_id, email: user.email, exp: user.exp }, userDataCookieObject) : null,\n accessToken: accessToken,\n refreshToken: refreshToken\n };\n};\nexport var getUserDataAsObject = function (_a) {\n var _b;\n var request = _a.request, userDataCookieName = _a.userDataCookieName;\n var userDataCookie = (_b = request.cookies.get(userDataCookieName)) === null || _b === void 0 ? void 0 : _b.value;\n return userDataCookie\n ? JSON.parse(userDataCookie)\n : { userName: null, userType: null };\n};\nexport var deriveUserAndTokenFromRequest = function (_a) {\n var request = _a.request, authConfig = _a.authConfig;\n if (!request || !request.headers.cookie) {\n return { accessToken: null, user: null };\n }\n var cookies = parse(request.headers.cookie);\n var setCookieHeader = request.headers['set-cookie'];\n if (setCookieHeader) {\n var cookiesFromSetCookieHeader = setCookieHeader.reduce(function (acc, current) {\n var parsedCookie = parse(current);\n if (Object.hasOwn(parsedCookie, authConfig.userDataCookieName)) {\n acc.userDataCookie = parsedCookie[authConfig.userDataCookieName];\n }\n if (Object.hasOwn(parsedCookie, authConfig.tokenNames.access)) {\n acc.accessTokenCookie = parsedCookie[authConfig.tokenNames.access];\n }\n return acc;\n }, { userDataCookie: '', accessTokenCookie: '' });\n if (cookiesFromSetCookieHeader.userDataCookie) {\n cookies[authConfig.userDataCookieName] =\n cookiesFromSetCookieHeader.userDataCookie;\n }\n if (cookiesFromSetCookieHeader.accessTokenCookie) {\n cookies[authConfig.tokenNames.access] =\n cookiesFromSetCookieHeader.accessTokenCookie;\n }\n }\n var _b = getUserDataAndTokensFromCookies({\n cookies: cookies,\n authConfig: authConfig\n }), user = _b.user, accessToken = _b.accessToken;\n return { accessToken: accessToken, user: user };\n};\n//# sourceMappingURL=index.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { decodeJWT, getUserDataAsObject, isAccessTokenExpired, } from '../helpers';\nexport var ensureTokenFreshness = function (_a) {\n var req = _a.req, res = _a.res, authConfig = _a.authConfig, userData = _a.userData;\n return __awaiter(void 0, void 0, void 0, function () {\n var tokenNames, userDataCookieName, refreshTokenApiUrl, subMinutesFromExpirationTime, cookieDomain, errorHandler, accessToken, refreshToken, userDataCookieObject, response, refreshedTokensData, updatedAccessToken, updatedRefreshToken, updatedUser, error_1;\n var _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n tokenNames = authConfig.tokenNames, userDataCookieName = authConfig.userDataCookieName, refreshTokenApiUrl = authConfig.refreshTokenApiUrl, subMinutesFromExpirationTime = authConfig.subMinutesFromExpirationTime, cookieDomain = authConfig.cookieDomain, errorHandler = authConfig.errorHandler;\n accessToken = (_b = req.cookies.get(tokenNames.access)) === null || _b === void 0 ? void 0 : _b.value;\n refreshToken = (_c = req.cookies.get(tokenNames.refresh)) === null || _c === void 0 ? void 0 : _c.value;\n userDataCookieObject = getUserDataAsObject({\n request: req,\n userDataCookieName: userDataCookieName\n });\n if (accessToken &&\n (!(userDataCookieObject === null || userDataCookieObject === void 0 ? void 0 : userDataCookieObject.userType) || !(userDataCookieObject === null || userDataCookieObject === void 0 ? void 0 : userDataCookieObject.userName))) {\n res.cookies.set(userDataCookieName, JSON.stringify(userData), {\n domain: cookieDomain\n });\n }\n if (!refreshToken ||\n !userData.userName ||\n !isAccessTokenExpired(accessToken, subMinutesFromExpirationTime)) {\n return [2 /*return*/, res];\n }\n _d.label = 1;\n case 1:\n _d.trys.push([1, 4, , 5]);\n return [4 /*yield*/, fetch(refreshTokenApiUrl, {\n method: 'POST',\n headers: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n token: refreshToken,\n username: userData.userName\n })\n })];\n case 2:\n response = _d.sent();\n if (!response.ok || response.status !== 200) {\n res.cookies[\"delete\"](tokenNames.access);\n res.cookies[\"delete\"](tokenNames.refresh);\n res.cookies[\"delete\"](userDataCookieName);\n errorHandler &&\n errorHandler(new Error('Failed to refresh token'), {\n extra: { response: response }\n });\n return [2 /*return*/, res];\n }\n return [4 /*yield*/, response.json()];\n case 3:\n refreshedTokensData = _d.sent();\n updatedAccessToken = refreshedTokensData === null || refreshedTokensData === void 0 ? void 0 : refreshedTokensData.access;\n updatedRefreshToken = refreshedTokensData === null || refreshedTokensData === void 0 ? void 0 : refreshedTokensData.refresh;\n if (!updatedAccessToken) {\n return [2 /*return*/, res];\n }\n res.cookies.set(tokenNames.access, updatedAccessToken.value, {\n maxAge: updatedAccessToken.ttl,\n domain: cookieDomain\n });\n updatedUser = decodeJWT(updatedAccessToken.value);\n if ((updatedUser === null || updatedUser === void 0 ? void 0 : updatedUser.username) && (updatedUser === null || updatedUser === void 0 ? void 0 : updatedUser.username) !== userData.userName) {\n userData.userName = updatedUser.username;\n res.cookies.set(userDataCookieName, JSON.stringify(userData), {\n domain: cookieDomain\n });\n }\n if (updatedRefreshToken.value) {\n res.cookies.set(tokenNames.refresh, updatedRefreshToken.value, {\n maxAge: updatedRefreshToken.ttl,\n domain: cookieDomain\n });\n }\n return [2 /*return*/, res];\n case 4:\n error_1 = _d.sent();\n errorHandler && errorHandler(error_1);\n return [3 /*break*/, 5];\n case 5:\n res.cookies[\"delete\"](userDataCookieName);\n res.cookies[\"delete\"](tokenNames.access);\n res.cookies[\"delete\"](tokenNames.refresh);\n return [2 /*return*/, res];\n }\n });\n });\n};\n//# sourceMappingURL=ensureTokenFreshness.js.map","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","\"use strict\";\n\nvar defaultParseOptions = {\n decodeValues: true,\n map: false,\n silent: false,\n};\n\nfunction isNonEmptyString(str) {\n return typeof str === \"string\" && !!str.trim();\n}\n\nfunction parseString(setCookieValue, options) {\n var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n\n var nameValuePairStr = parts.shift();\n var parsed = parseNameValuePair(nameValuePairStr);\n var name = parsed.name;\n var value = parsed.value;\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n try {\n value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value\n } catch (e) {\n console.error(\n \"set-cookie-parser encountered an error while decoding a cookie with value '\" +\n value +\n \"'. Set options.decodeValues to false to disable this feature.\",\n e\n );\n }\n\n var cookie = {\n name: name,\n value: value,\n };\n\n parts.forEach(function (part) {\n var sides = part.split(\"=\");\n var key = sides.shift().trimLeft().toLowerCase();\n var value = sides.join(\"=\");\n if (key === \"expires\") {\n cookie.expires = new Date(value);\n } else if (key === \"max-age\") {\n cookie.maxAge = parseInt(value, 10);\n } else if (key === \"secure\") {\n cookie.secure = true;\n } else if (key === \"httponly\") {\n cookie.httpOnly = true;\n } else if (key === \"samesite\") {\n cookie.sameSite = value;\n } else {\n cookie[key] = value;\n }\n });\n\n return cookie;\n}\n\nfunction parseNameValuePair(nameValuePairStr) {\n // Parses name-value-pair according to rfc6265bis draft\n\n var name = \"\";\n var value = \"\";\n var nameValueArr = nameValuePairStr.split(\"=\");\n if (nameValueArr.length > 1) {\n name = nameValueArr.shift();\n value = nameValueArr.join(\"=\"); // everything after the first =, joined by a \"=\" if there was more than one part\n } else {\n value = nameValuePairStr;\n }\n\n return { name: name, value: value };\n}\n\nfunction parse(input, options) {\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!input) {\n if (!options.map) {\n return [];\n } else {\n return {};\n }\n }\n\n if (input.headers && input.headers[\"set-cookie\"]) {\n // fast-path for node.js (which automatically normalizes header names to lower-case\n input = input.headers[\"set-cookie\"];\n } else if (input.headers) {\n // slow-path for other environments - see #25\n var sch =\n input.headers[\n Object.keys(input.headers).find(function (key) {\n return key.toLowerCase() === \"set-cookie\";\n })\n ];\n // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36\n if (!sch && input.headers.cookie && !options.silent) {\n console.warn(\n \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n );\n }\n input = sch;\n }\n if (!Array.isArray(input)) {\n input = [input];\n }\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!options.map) {\n return input.filter(isNonEmptyString).map(function (str) {\n return parseString(str, options);\n });\n } else {\n var cookies = {};\n return input.filter(isNonEmptyString).reduce(function (cookies, str) {\n var cookie = parseString(str, options);\n cookies[cookie.name] = cookie;\n return cookies;\n }, cookies);\n }\n}\n\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n\n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/\nfunction splitCookiesString(cookiesString) {\n if (Array.isArray(cookiesString)) {\n return cookiesString;\n }\n if (typeof cookiesString !== \"string\") {\n return [];\n }\n\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n\n skipWhitespace();\n nextStart = pos;\n\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n\n return cookiesStrings;\n}\n\nmodule.exports = parse;\nmodule.exports.parse = parse;\nmodule.exports.parseString = parseString;\nmodule.exports.splitCookiesString = splitCookiesString;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.areCookiesEqual = exports.hasSameProperties = exports.createCookie = exports.isBrowser = void 0;\n/**\n * Tells whether we are in a browser or server.\n */\nfunction isBrowser() {\n return typeof window !== 'undefined';\n}\nexports.isBrowser = isBrowser;\n/**\n * Create an instance of the Cookie interface\n */\nfunction createCookie(name, value, options) {\n var sameSite = options.sameSite;\n if (sameSite === true) {\n sameSite = 'strict';\n }\n if (sameSite === undefined || sameSite === false) {\n sameSite = 'lax';\n }\n var cookieToSet = __assign(__assign({}, options), { sameSite: sameSite });\n delete cookieToSet.encode;\n return __assign({ name: name, value: value }, cookieToSet);\n}\nexports.createCookie = createCookie;\n/**\n * Tells whether given objects have the same properties.\n */\nfunction hasSameProperties(a, b) {\n var aProps = Object.getOwnPropertyNames(a);\n var bProps = Object.getOwnPropertyNames(b);\n if (aProps.length !== bProps.length) {\n return false;\n }\n for (var i = 0; i < aProps.length; i++) {\n var propName = aProps[i];\n if (a[propName] !== b[propName]) {\n return false;\n }\n }\n return true;\n}\nexports.hasSameProperties = hasSameProperties;\n/**\n * Compare the cookie and return true if the cookies have equivalent\n * options and the cookies would be overwritten in the browser storage.\n *\n * @param a first Cookie for comparison\n * @param b second Cookie for comparison\n */\nfunction areCookiesEqual(a, b) {\n var sameSiteSame = a.sameSite === b.sameSite;\n if (typeof a.sameSite === 'string' && typeof b.sameSite === 'string') {\n sameSiteSame = a.sameSite.toLowerCase() === b.sameSite.toLowerCase();\n }\n return (hasSameProperties(__assign(__assign({}, a), { sameSite: undefined }), __assign(__assign({}, b), { sameSite: undefined })) && sameSiteSame);\n}\nexports.areCookiesEqual = areCookiesEqual;\n/* Functions */\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.destroyCookie = exports.setCookie = exports.parseCookies = void 0;\nvar cookie = require(\"cookie\");\nvar setCookieParser = require(\"set-cookie-parser\");\nvar utils_1 = require(\"./utils\");\n/**\n * Parses cookies.\n *\n * @param ctx NextJS page or API context, express context, null or undefined.\n * @param options Options that we pass down to `cookie` library.\n */\nfunction parseCookies(ctx, options) {\n var _a, _b;\n if ((_b = (_a = ctx === null || ctx === void 0 ? void 0 : ctx.req) === null || _a === void 0 ? void 0 : _a.headers) === null || _b === void 0 ? void 0 : _b.cookie) {\n return cookie.parse(ctx.req.headers.cookie, options);\n }\n if (utils_1.isBrowser()) {\n return cookie.parse(document.cookie, options);\n }\n return {};\n}\nexports.parseCookies = parseCookies;\n/**\n * Sets a cookie.\n *\n * @param ctx NextJS page or API context, express context, null or undefined.\n * @param name The name of your cookie.\n * @param value The value of your cookie.\n * @param options Options that we pass down to `cookie` library.\n */\nfunction setCookie(ctx, name, value, options) {\n var _a, _b;\n if (options === void 0) { options = {}; }\n // SSR\n if (((_a = ctx === null || ctx === void 0 ? void 0 : ctx.res) === null || _a === void 0 ? void 0 : _a.getHeader) && ctx.res.setHeader) {\n // Check if response has finished and warn about it.\n if ((_b = ctx === null || ctx === void 0 ? void 0 : ctx.res) === null || _b === void 0 ? void 0 : _b.finished) {\n console.warn(\"Not setting \\\"\" + name + \"\\\" cookie. Response has finished.\");\n console.warn(\"You should set cookie before res.send()\");\n return {};\n }\n /**\n * Load existing cookies from the header and parse them.\n */\n var cookies = ctx.res.getHeader('Set-Cookie') || [];\n if (typeof cookies === 'string')\n cookies = [cookies];\n if (typeof cookies === 'number')\n cookies = [];\n /**\n * Parse cookies but ignore values - we've already encoded\n * them in the previous call.\n */\n var parsedCookies = setCookieParser.parse(cookies, {\n decodeValues: false,\n });\n /**\n * We create the new cookie and make sure that none of\n * the existing cookies match it.\n */\n var newCookie_1 = utils_1.createCookie(name, value, options);\n var cookiesToSet_1 = [];\n parsedCookies.forEach(function (parsedCookie) {\n if (!utils_1.areCookiesEqual(parsedCookie, newCookie_1)) {\n /**\n * We serialize the cookie back to the original format\n * if it isn't the same as the new one.\n */\n var serializedCookie = cookie.serialize(parsedCookie.name, parsedCookie.value, __assign({ \n // we prevent reencoding by default, but you might override it\n encode: function (val) { return val; } }, parsedCookie));\n cookiesToSet_1.push(serializedCookie);\n }\n });\n cookiesToSet_1.push(cookie.serialize(name, value, options));\n // Update the header.\n ctx.res.setHeader('Set-Cookie', cookiesToSet_1);\n }\n // Browser\n if (utils_1.isBrowser()) {\n if (options && options.httpOnly) {\n throw new Error('Can not set a httpOnly cookie in the browser.');\n }\n document.cookie = cookie.serialize(name, value, options);\n }\n return {};\n}\nexports.setCookie = setCookie;\n/**\n * Destroys a cookie with a particular name.\n *\n * @param ctx NextJS page or API context, express context, null or undefined.\n * @param name Cookie name.\n * @param options Options that we pass down to `cookie` library.\n */\nfunction destroyCookie(ctx, name, options) {\n /**\n * We forward the request destroy to setCookie function\n * as it is the same function with modified maxAge value.\n */\n return setCookie(ctx, name, '', __assign(__assign({}, (options || {})), { maxAge: -1 }));\n}\nexports.destroyCookie = destroyCookie;\n/* Utility Exports */\nexports.default = {\n set: setCookie,\n get: parseCookies,\n destroy: destroyCookie,\n};\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport React, { createContext, useContext, useEffect, useMemo, useState, } from 'react';\nimport { parseCookies } from 'nookies';\nimport { getUntilRefreshTokenTime, getUserDataAndTokensFromCookies, } from '../helpers';\nvar AuthContext = createContext({\n user: null,\n accessToken: undefined\n});\nvar useAuthContext = function () { return useContext(AuthContext); };\nvar AuthProvider = function (_a) {\n var passedUser = _a.user, authConfig = _a.authConfig, children = _a.children;\n // persists the data initialized server-side on the client\n var memoizedAuthConfig = useMemo(function () {\n return {\n tokenNames: authConfig.tokenNames,\n triggerRefreshTokenApiUrl: authConfig.triggerRefreshTokenApiUrl,\n subMinutesFromExpirationTime: authConfig.subMinutesFromExpirationTime,\n userDataCookieName: authConfig.userDataCookieName\n };\n }, []);\n var triggerRefreshTokenApiUrl = memoizedAuthConfig.triggerRefreshTokenApiUrl, subMinutesFromExpirationTime = memoizedAuthConfig.subMinutesFromExpirationTime;\n var errorHandler = authConfig.errorHandler;\n var cookies = parseCookies();\n var _b = getUserDataAndTokensFromCookies({\n cookies: cookies,\n authConfig: __assign(__assign({}, memoizedAuthConfig), { errorHandler: errorHandler })\n }), cookieUser = _b.user, refreshToken = _b.refreshToken, cookieAccessToken = _b.accessToken;\n var memoizedUser = useMemo(function () {\n if (!passedUser) {\n return cookieUser;\n }\n return passedUser;\n }, [passedUser, cookieUser]);\n var _c = useState(memoizedUser), user = _c[0], setUser = _c[1];\n var _d = useState(cookieAccessToken), accessToken = _d[0], setAccessToken = _d[1];\n useEffect(function () {\n var untilRefreshTokenTime = getUntilRefreshTokenTime(accessToken, subMinutesFromExpirationTime);\n if (!refreshToken) {\n return;\n }\n if (untilRefreshTokenTime > 0) {\n // Call the API by interval in order to trigger middleware to ensure token freshness on client side\n var interval_1 = setInterval(function () { return __awaiter(void 0, void 0, void 0, function () {\n var response, updatedCookies, _a, refreshedUser, refreshedAccessToken, error_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n return [4 /*yield*/, fetch(triggerRefreshTokenApiUrl)];\n case 1:\n response = _b.sent();\n if (!response.ok) {\n errorHandler &&\n errorHandler(new Error('Failed to trigger refresh token api'), {\n extra: { response: response }\n });\n }\n updatedCookies = parseCookies();\n _a = getUserDataAndTokensFromCookies({\n cookies: updatedCookies,\n authConfig: __assign(__assign({}, memoizedAuthConfig), { errorHandler: errorHandler })\n }), refreshedUser = _a.user, refreshedAccessToken = _a.accessToken;\n setUser(refreshedUser);\n setAccessToken(refreshedAccessToken);\n return [3 /*break*/, 3];\n case 2:\n error_1 = _b.sent();\n errorHandler && errorHandler(error_1);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n }); }, untilRefreshTokenTime);\n return function () { return clearInterval(interval_1); };\n }\n }, [refreshToken, accessToken, setUser, setAccessToken]);\n return (React.createElement(AuthContext.Provider, { value: {\n user: user,\n accessToken: accessToken\n } }, children));\n};\nexport { AuthContext, AuthProvider, useAuthContext };\n//# sourceMappingURL=Auth.js.map"],"names":["__assign","parse","decode","tryDecode","MappedUserType","UserType","cookie","setCookieModule","this","require$$0","require$$1","require$$2","createContext","useContext","useMemo","parseCookies","useState","useEffect"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAaA;AACO,IAAIA,UAAQ,GAAG,WAAW;AACjC,IAAIA,UAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;AACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC;AACjB,MAAK;AACL,IAAI,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3C,EAAC;AA4BD;AACO,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;AAC7D,IAAI,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;AAChH,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;AAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;AACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;AACtH,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9E,KAAK,CAAC,CAAC;AACP,CAAC;AACD;AACO,SAAS,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;AAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACrH,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7J,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;AACtE,IAAI,SAAS,IAAI,CAAC,EAAE,EAAE;AACtB,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;AACtE,QAAQ,OAAO,CAAC,EAAE,IAAI;AACtB,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACzK,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;AACpD,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;AACzB,gBAAgB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM;AAC9C,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACxE,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;AACjE,gBAAgB,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;AACjE,gBAAgB;AAChB,oBAAoB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;AAChI,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;AAC1G,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;AACzF,oBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;AACvF,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAC1C,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;AAC3C,aAAa;AACb,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AACvC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAClE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACzF,KAAK;AACL;;;;;;;;;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA,IAAa,OAAA,GAAGC,OAAK,CAAC;AAmBtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,OAAK,CAAC,GAAG,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,IAAI,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;AACzD,GAAG;AACH;AACA,EAAE,IAAI,GAAG,GAAG,GAAE;AACd,EAAE,IAAI,GAAG,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,IAAIC,QAAM,CAAC;AACjC;AACA,EAAE,IAAI,KAAK,GAAG,EAAC;AACf,EAAE,OAAO,KAAK,GAAG,GAAG,CAAC,MAAM,EAAE;AAC7B,IAAI,IAAI,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAC;AACvC;AACA;AACA,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AACtB,MAAM,KAAK;AACX,KAAK;AACL;AACA,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAC;AACxC;AACA,IAAI,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE;AACvB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAM;AACzB,KAAK,MAAM,IAAI,MAAM,GAAG,KAAK,EAAE;AAC/B;AACA,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,EAAC;AACjD,MAAM,QAAQ;AACd,KAAK;AACL;AACA,IAAI,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,IAAI,GAAE;AAC5C;AACA;AACA,IAAI,IAAI,SAAS,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE;AAChC,MAAM,IAAI,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,GAAE;AACnD;AACA;AACA,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACtC,QAAQ,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC;AAC9B,OAAO;AACP;AACA,MAAM,GAAG,CAAC,GAAG,CAAC,GAAGC,WAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACrC,KAAK;AACL;AACA,IAAI,KAAK,GAAG,MAAM,GAAG,EAAC;AACtB,GAAG;AACH;AACA,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AA8HD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASD,QAAM,EAAE,GAAG,EAAE;AACtB,EAAE,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC,MAAM,kBAAkB,CAAC,GAAG,CAAC;AAC7B,MAAM,GAAG;AACT,CAAC;AAwBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,WAAS,CAAC,GAAG,EAAE,MAAM,EAAE;AAChC,EAAE,IAAI;AACN,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACvB,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH;;AC3QWC,gCAAe;AAC1B,CAAC,UAAU,cAAc,EAAE;AAC3B,IAAI,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;AAC1C,IAAI,cAAc,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;AACpD,CAAC,EAAEA,sBAAc,KAAKA,sBAAc,GAAG,EAAE,CAAC,CAAC,CAAC;AACjCC,0BAAS;AACpB,CAAC,UAAU,QAAQ,EAAE;AACrB,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AAClC,IAAI,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;AACpC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;AAChC,CAAC,EAAEA,gBAAQ,KAAKA,gBAAQ,GAAG,EAAE,CAAC,CAAC,CAAC;AAChC;AACA,IAAI,mCAAmC,GAAG,MAAM,CAAC;AACvC,IAAC,SAAS,GAAG,UAAU,KAAK,EAAE;AACxC,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;AAC7C,QAAQ,OAAO,IAAI,CAAC;AACpB,IAAI,IAAI,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3C,IAAI,IAAI,CAAC,YAAY;AACrB,QAAQ,OAAO,IAAI,CAAC;AACpB,IAAI,IAAI,WAAW,CAAC;AACpB,IAAI,IAAI;AACR,QAAQ,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AACrD,KAAK;AACL,IAAI,OAAO,KAAK,EAAE;AAClB;AACA,QAAQ,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;AACpD,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL;AACA,IAAI,IAAI,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,cAAc,GAAG,WAAW,CAAC,cAAc,EAAE,UAAU,GAAG,WAAW,CAAC,UAAU,EAAE,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC,QAAQ,EAAE,SAAS,GAAG,WAAW,CAAC,SAAS,EAAE,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;AAC7P;AACA,IAAI,OAAO;AACX,QAAQ,EAAE,EAAE,EAAE,IAAI,cAAc;AAChC,QAAQ,QAAQ,EAAE,IAAI,IAAI,QAAQ;AAClC,QAAQ,UAAU,EAAE,UAAU;AAC9B,QAAQ,SAAS,EAAE,SAAS;AAC5B,QAAQ,KAAK,EAAE,KAAK;AACpB,QAAQ,GAAG,EAAE,GAAG;AAChB,KAAK,CAAC;AACN,EAAE;AACQ,IAAC,4BAA4B,GAAG,UAAU,WAAW,EAAE;AACjE,IAAI,IAAI,IAAI,GAAG,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;AAC3D,IAAI,OAAO,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC/C,EAAE;AACQ,IAAC,oBAAoB,GAAG,UAAU,WAAW,EAAE,4BAA4B,EAAE;AACvF,IAAI,IAAI,4BAA4B,KAAK,KAAK,CAAC,EAAE,EAAE,4BAA4B,GAAG,mCAAmC,CAAC,EAAE;AACxH,IAAI,IAAI,yBAAyB,GAAG,4BAA4B,CAAC,WAAW,CAAC,CAAC;AAC9E,IAAI,OAAO,yBAAyB,GAAG,4BAA4B,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACjF,EAAE;AACQ,IAAC,wBAAwB,GAAG,UAAU,WAAW,EAAE,4BAA4B,EAAE;AAC3F,IAAI,IAAI,4BAA4B,KAAK,KAAK,CAAC,EAAE,EAAE,4BAA4B,GAAG,mCAAmC,CAAC,EAAE;AACxH,IAAI,IAAI,yBAAyB,GAAG,4BAA4B,CAAC,WAAW,CAAC,CAAC;AAC9E,IAAI,OAAO,yBAAyB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,4BAA4B,CAAC;AACjF,EAAE;AACQ,IAAC,iBAAiB,GAAG,UAAU,QAAQ,EAAE;AACnD,IAAI,QAAQ,QAAQ;AACpB,QAAQ,KAAKA,gBAAQ,CAAC,KAAK;AAC3B,YAAY,OAAOD,sBAAc,CAAC,YAAY,CAAC;AAC/C,QAAQ,KAAKC,gBAAQ,CAAC,MAAM;AAC5B,YAAY,OAAOD,sBAAc,CAAC,YAAY,CAAC;AAC/C,QAAQ,KAAKC,gBAAQ,CAAC,OAAO;AAC7B,YAAY,OAAOD,sBAAc,CAAC,OAAO,CAAC;AAC1C,KAAK;AACL,EAAE;AACQ,IAAC,+BAA+B,GAAG,UAAU,EAAE,EAAE;AAC3D,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;AACzD,IAAI,IAAI,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,EAAE,EAAE,GAAG,UAAU,CAAC,UAAU,EAAE,eAAe,GAAG,EAAE,CAAC,MAAM,EAAE,gBAAgB,GAAG,EAAE,CAAC,OAAO,CAAC;AACnJ,IAAI,IAAI,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAC/C,IAAI,IAAI,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACjD,IAAI,IAAI,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;AACrD,IAAI,IAAI,oBAAoB,GAAG,cAAc;AAC7C,UAAU,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;AACpC,UAAU,IAAI,CAAC;AACf,IAAI,IAAI,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;AACtC,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,IAAI;AAClB,cAAcJ,UAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,GAAG,IAAI;AACnI,QAAQ,WAAW,EAAE,WAAW;AAChC,QAAQ,YAAY,EAAE,YAAY;AAClC,KAAK,CAAC;AACN,EAAE;AACQ,IAAC,mBAAmB,GAAG,UAAU,EAAE,EAAE;AAC/C,IAAI,IAAI,EAAE,CAAC;AACX,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,kBAAkB,GAAG,EAAE,CAAC,kBAAkB,CAAC;AACzE,IAAI,IAAI,cAAc,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;AACtH,IAAI,OAAO,cAAc;AACzB,UAAU,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;AACpC,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC7C,EAAE;AACQ,IAAC,6BAA6B,GAAG,UAAU,EAAE,EAAE;AACzD,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC;AACzD,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE;AAC7C,QAAQ,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACjD,KAAK;AACL,IAAI,IAAI,OAAO,GAAGC,OAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAChD,IAAI,IAAI,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACxD,IAAI,IAAI,eAAe,EAAE;AACzB,QAAQ,IAAI,0BAA0B,GAAG,eAAe,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,OAAO,EAAE;AACxF,YAAY,IAAI,YAAY,GAAGA,OAAK,CAAC,OAAO,CAAC,CAAC;AAC9C,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,kBAAkB,CAAC,EAAE;AAC5E,gBAAgB,GAAG,CAAC,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACjF,aAAa;AACb,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC3E,gBAAgB,GAAG,CAAC,iBAAiB,GAAG,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACnF,aAAa;AACb,YAAY,OAAO,GAAG,CAAC;AACvB,SAAS,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1D,QAAQ,IAAI,0BAA0B,CAAC,cAAc,EAAE;AACvD,YAAY,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC;AAClD,gBAAgB,0BAA0B,CAAC,cAAc,CAAC;AAC1D,SAAS;AACT,QAAQ,IAAI,0BAA0B,CAAC,iBAAiB,EAAE;AAC1D,YAAY,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;AACjD,gBAAgB,0BAA0B,CAAC,iBAAiB,CAAC;AAC7D,SAAS;AACT,KAAK;AACL,IAAI,IAAI,EAAE,GAAG,+BAA+B,CAAC;AAC7C,QAAQ,OAAO,EAAE,OAAO;AACxB,QAAQ,UAAU,EAAE,UAAU;AAC9B,KAAK,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,WAAW,GAAG,EAAE,CAAC,WAAW,CAAC;AACrD,IAAI,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACpD;;ACzHU,IAAC,oBAAoB,GAAG,UAAU,EAAE,EAAE;AAChD,IAAI,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;AACvF,IAAI,OAAO,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,YAAY;AACzD,QAAQ,IAAI,UAAU,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,4BAA4B,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,oBAAoB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,WAAW,EAAE,OAAO,CAAC;AACxQ,QAAQ,IAAI,EAAE,EAAE,EAAE,CAAC;AACnB,QAAQ,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;AAC/C,YAAY,QAAQ,EAAE,CAAC,KAAK;AAC5B,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,UAAU,GAAG,UAAU,CAAC,UAAU,EAAE,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,UAAU,CAAC,kBAAkB,EAAE,4BAA4B,GAAG,UAAU,CAAC,4BAA4B,EAAE,YAAY,GAAG,UAAU,CAAC,YAAY,EAAE,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;AACvT,oBAAoB,WAAW,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;AAC1H,oBAAoB,YAAY,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;AAC5H,oBAAoB,oBAAoB,GAAG,mBAAmB,CAAC;AAC/D,wBAAwB,OAAO,EAAE,GAAG;AACpC,wBAAwB,kBAAkB,EAAE,kBAAkB;AAC9D,qBAAqB,CAAC,CAAC;AACvB,oBAAoB,IAAI,WAAW;AACnC,yBAAyB,EAAE,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC,EAAE;AACxP,wBAAwB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;AACtF,4BAA4B,MAAM,EAAE,YAAY;AAChD,yBAAyB,CAAC,CAAC;AAC3B,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,YAAY;AACrC,wBAAwB,CAAC,QAAQ,CAAC,QAAQ;AAC1C,wBAAwB,CAAC,oBAAoB,CAAC,WAAW,EAAE,4BAA4B,CAAC,EAAE;AAC1F,wBAAwB,OAAO,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACnD,qBAAqB;AACrB,oBAAoB,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;AACjC,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC9C,oBAAoB,OAAO,CAAC,CAAC,YAAY,KAAK,CAAC,kBAAkB,EAAE;AACnE,4BAA4B,MAAM,EAAE,MAAM;AAC1C,4BAA4B,OAAO,EAAE;AACrC;AACA,gCAAgC,cAAc,EAAE,kBAAkB;AAClE,6BAA6B;AAC7B,4BAA4B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;AACjD,gCAAgC,KAAK,EAAE,YAAY;AACnD,gCAAgC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;AAC3D,6BAA6B,CAAC;AAC9B,yBAAyB,CAAC,CAAC,CAAC;AAC5B,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,QAAQ,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AACzC,oBAAoB,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE;AACjE,wBAAwB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACjE,wBAAwB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAClE,wBAAwB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAClE,wBAAwB,YAAY;AACpC,4BAA4B,YAAY,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,EAAE;AAC/E,gCAAgC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;AAC7D,6BAA6B,CAAC,CAAC;AAC/B,wBAAwB,OAAO,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACnD,qBAAqB;AACrB,oBAAoB,OAAO,CAAC,CAAC,YAAY,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;AAC1D,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,mBAAmB,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AACpD,oBAAoB,kBAAkB,GAAG,mBAAmB,KAAK,IAAI,IAAI,mBAAmB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,mBAAmB,CAAC,MAAM,CAAC;AAC9I,oBAAoB,mBAAmB,GAAG,mBAAmB,KAAK,IAAI,IAAI,mBAAmB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,mBAAmB,CAAC,OAAO,CAAC;AAChJ,oBAAoB,IAAI,CAAC,kBAAkB,EAAE;AAC7C,wBAAwB,OAAO,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACnD,qBAAqB;AACrB,oBAAoB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,kBAAkB,CAAC,KAAK,EAAE;AACjF,wBAAwB,MAAM,EAAE,kBAAkB,CAAC,GAAG;AACtD,wBAAwB,MAAM,EAAE,YAAY;AAC5C,qBAAqB,CAAC,CAAC;AACvB,oBAAoB,WAAW,GAAG,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACtE,oBAAoB,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,QAAQ,KAAK,CAAC,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,WAAW,CAAC,QAAQ,MAAM,QAAQ,CAAC,QAAQ,EAAE;AACpN,wBAAwB,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;AACjE,wBAAwB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;AACtF,4BAA4B,MAAM,EAAE,YAAY;AAChD,yBAAyB,CAAC,CAAC;AAC3B,qBAAqB;AACrB,oBAAoB,IAAI,mBAAmB,CAAC,KAAK,EAAE;AACnD,wBAAwB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,mBAAmB,CAAC,KAAK,EAAE;AACvF,4BAA4B,MAAM,EAAE,mBAAmB,CAAC,GAAG;AAC3D,4BAA4B,MAAM,EAAE,YAAY;AAChD,yBAAyB,CAAC,CAAC;AAC3B,qBAAqB;AACrB,oBAAoB,OAAO,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AAC/C,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AACxC,oBAAoB,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;AAC1D,oBAAoB,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5C,gBAAgB,KAAK,CAAC;AACtB,oBAAoB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC;AAC9D,oBAAoB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC7D,oBAAoB,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC9D,oBAAoB,OAAO,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AAC/C,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK,CAAC,CAAC;AACP;;;;;;;;;;;;ACpFA;AACA;AACA;AACA;AACA;AACA;AACaK,QAAA,CAAA,KAAA,GAAGL,QAAM;AACLK,QAAA,CAAA,SAAA,GAAG,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,GAAG,kBAAkB,CAAC;AAChC,IAAI,MAAM,GAAG,kBAAkB,CAAC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB,GAAG,uCAAuC,CAAC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASL,OAAK,CAAC,GAAG,EAAE,OAAO,EAAE;AAC7B,EAAE,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC/B,IAAI,MAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;AACzD,GAAG;AACH;AACA,EAAE,IAAI,GAAG,GAAG,GAAE;AACd,EAAE,IAAI,GAAG,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,EAAC;AAC5B,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC;AACjC;AACA,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,IAAI,IAAI,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAC;AACjC;AACA;AACA,IAAI,IAAI,KAAK,GAAG,CAAC,EAAE;AACnB,MAAM,SAAS;AACf,KAAK;AACL;AACA,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,GAAE;AAC7C;AACA;AACA,IAAI,IAAI,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE;AAC/B,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,GAAE;AAC7D;AACA;AACA,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC1B,QAAQ,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC;AAC9B,OAAO;AACP;AACA,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACrC,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE;AACvC,EAAE,IAAI,GAAG,GAAG,OAAO,IAAI,EAAE,CAAC;AAC1B,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC;AACjC;AACA,EAAE,IAAI,OAAO,GAAG,KAAK,UAAU,EAAE;AACjC,IAAI,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;AACpD,GAAG;AACH;AACA,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACtC,IAAI,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;AACpD,GAAG;AACH;AACA,EAAE,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AACvB;AACA,EAAE,IAAI,KAAK,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAChD,IAAI,MAAM,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;AACnD,GAAG;AACH;AACA,EAAE,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC;AAC/B;AACA,EAAE,IAAI,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE;AAC1B,IAAI,IAAI,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC;AACA,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC5C,MAAM,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC;AACrD,KAAK;AACL;AACA,IAAI,GAAG,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC7C,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE;AAClB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;AAC9C,MAAM,MAAM,IAAI,SAAS,CAAC,0BAA0B,CAAC,CAAC;AACtD,KAAK;AACL;AACA,IAAI,GAAG,IAAI,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;AACpC,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,IAAI,EAAE;AAChB,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC5C,MAAM,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAC;AACpD,KAAK;AACL;AACA,IAAI,GAAG,IAAI,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC;AAChC,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE;AACnB,IAAI,IAAI,OAAO,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE;AACvD,MAAM,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAC;AACvD,KAAK;AACL;AACA,IAAI,GAAG,IAAI,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AACpD,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE;AACpB,IAAI,GAAG,IAAI,YAAY,CAAC;AACxB,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,MAAM,EAAE;AAClB,IAAI,GAAG,IAAI,UAAU,CAAC;AACtB,GAAG;AACH;AACA,EAAE,IAAI,GAAG,CAAC,QAAQ,EAAE;AACpB,IAAI,IAAI,QAAQ,GAAG,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ;AACnD,QAAQ,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC;AAClD;AACA,IAAI,QAAQ,QAAQ;AACpB,MAAM,KAAK,IAAI;AACf,QAAQ,GAAG,IAAI,mBAAmB,CAAC;AACnC,QAAQ,MAAM;AACd,MAAM,KAAK,KAAK;AAChB,QAAQ,GAAG,IAAI,gBAAgB,CAAC;AAChC,QAAQ,MAAM;AACd,MAAM,KAAK,QAAQ;AACnB,QAAQ,GAAG,IAAI,mBAAmB,CAAC;AACnC,QAAQ,MAAM;AACd,MAAM,KAAK,MAAM;AACjB,QAAQ,GAAG,IAAI,iBAAiB,CAAC;AACjC,QAAQ,MAAM;AACd,MAAM;AACN,QAAQ,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;AAC1D,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE;AAChC,EAAE,IAAI;AACN,IAAI,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACvB,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,GAAG,CAAC;AACf,GAAG;AACH;;;;ACvMA,IAAI,mBAAmB,GAAG;AAC1B,EAAE,YAAY,EAAE,IAAI;AACpB,EAAE,GAAG,EAAE,KAAK;AACZ,EAAE,MAAM,EAAE,KAAK;AACf,CAAC,CAAC;AACF;AACA,SAAS,gBAAgB,CAAC,GAAG,EAAE;AAC/B,EAAE,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACjD,CAAC;AACD;AACA,SAAS,WAAW,CAAC,cAAc,EAAE,OAAO,EAAE;AAC9C,EAAE,IAAI,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACjE;AACA,EAAE,IAAI,gBAAgB,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;AACvC,EAAE,IAAI,MAAM,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;AACpD,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,EAAE,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AAC3B;AACA,EAAE,OAAO,GAAG,OAAO;AACnB,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC;AACrD,MAAM,mBAAmB,CAAC;AAC1B;AACA,EAAE,IAAI;AACN,IAAI,KAAK,GAAG,OAAO,CAAC,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;AACrE,GAAG,CAAC,OAAO,CAAC,EAAE;AACd,IAAI,OAAO,CAAC,KAAK;AACjB,MAAM,6EAA6E;AACnF,QAAQ,KAAK;AACb,QAAQ,+DAA+D;AACvE,MAAM,CAAC;AACP,KAAK,CAAC;AACN,GAAG;AACH;AACA,EAAE,IAAI,MAAM,GAAG;AACf,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,KAAK,EAAE,KAAK;AAChB,GAAG,CAAC;AACJ;AACA,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE;AAChC,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,CAAC;AACrD,IAAI,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChC,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE;AAC3B,MAAM,MAAM,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,KAAK,MAAM,IAAI,GAAG,KAAK,SAAS,EAAE;AAClC,MAAM,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC1C,KAAK,MAAM,IAAI,GAAG,KAAK,QAAQ,EAAE;AACjC,MAAM,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC;AAC3B,KAAK,MAAM,IAAI,GAAG,KAAK,UAAU,EAAE;AACnC,MAAM,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;AAC7B,KAAK,MAAM,IAAI,GAAG,KAAK,UAAU,EAAE;AACnC,MAAM,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,KAAK,MAAM;AACX,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC1B,KAAK;AACL,GAAG,CAAC,CAAC;AACL;AACA,EAAE,OAAO,MAAM,CAAC;AAChB,CAAC;AACD;AACA,SAAS,kBAAkB,CAAC,gBAAgB,EAAE;AAC9C;AACA;AACA,EAAE,IAAI,IAAI,GAAG,EAAE,CAAC;AAChB,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;AACjB,EAAE,IAAI,YAAY,GAAG,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACjD,EAAE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,IAAI,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;AAChC,IAAI,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACnC,GAAG,MAAM;AACT,IAAI,KAAK,GAAG,gBAAgB,CAAC;AAC7B,GAAG;AACH;AACA,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACtC,CAAC;AACD;AACA,SAAS,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE;AAC/B,EAAE,OAAO,GAAG,OAAO;AACnB,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC;AACrD,MAAM,mBAAmB,CAAC;AAC1B;AACA,EAAE,IAAI,CAAC,KAAK,EAAE;AACd,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACtB,MAAM,OAAO,EAAE,CAAC;AAChB,KAAK,MAAM;AACX,MAAM,OAAO,EAAE,CAAC;AAChB,KAAK;AACL,GAAG;AACH;AACA,EAAE,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACpD;AACA,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACxC,GAAG,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE;AAC5B;AACA,IAAI,IAAI,GAAG;AACX,MAAM,KAAK,CAAC,OAAO;AACnB,QAAQ,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,UAAU,GAAG,EAAE;AACvD,UAAU,OAAO,GAAG,CAAC,WAAW,EAAE,KAAK,YAAY,CAAC;AACpD,SAAS,CAAC;AACV,OAAO,CAAC;AACR;AACA,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;AACzD,MAAM,OAAO,CAAC,IAAI;AAClB,QAAQ,kOAAkO;AAC1O,OAAO,CAAC;AACR,KAAK;AACL,IAAI,KAAK,GAAG,GAAG,CAAC;AAChB,GAAG;AACH,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC7B,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;AACpB,GAAG;AACH;AACA,EAAE,OAAO,GAAG,OAAO;AACnB,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,mBAAmB,EAAE,OAAO,CAAC;AACrD,MAAM,mBAAmB,CAAC;AAC1B;AACA,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AACpB,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,UAAU,GAAG,EAAE;AAC7D,MAAM,OAAO,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACvC,KAAK,CAAC,CAAC;AACP,GAAG,MAAM;AACT,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;AACrB,IAAI,OAAO,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,UAAU,OAAO,EAAE,GAAG,EAAE;AACzE,MAAM,IAAI,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC7C,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACpC,MAAM,OAAO,OAAO,CAAC;AACrB,KAAK,EAAE,OAAO,CAAC,CAAC;AAChB,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,aAAa,EAAE;AAC3C,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE;AACpC,IAAI,OAAO,aAAa,CAAC;AACzB,GAAG;AACH,EAAE,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;AACzC,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH;AACA,EAAE,IAAI,cAAc,GAAG,EAAE,CAAC;AAC1B,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC;AACd,EAAE,IAAI,KAAK,CAAC;AACZ,EAAE,IAAI,EAAE,CAAC;AACT,EAAE,IAAI,SAAS,CAAC;AAChB,EAAE,IAAI,SAAS,CAAC;AAChB,EAAE,IAAI,qBAAqB,CAAC;AAC5B;AACA,EAAE,SAAS,cAAc,GAAG;AAC5B,IAAI,OAAO,GAAG,GAAG,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AAC/E,MAAM,GAAG,IAAI,CAAC,CAAC;AACf,KAAK;AACL,IAAI,OAAO,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC;AACtC,GAAG;AACH;AACA,EAAE,SAAS,cAAc,GAAG;AAC5B,IAAI,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACnC;AACA,IAAI,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC;AAClD,GAAG;AACH;AACA,EAAE,OAAO,GAAG,GAAG,aAAa,CAAC,MAAM,EAAE;AACrC,IAAI,KAAK,GAAG,GAAG,CAAC;AAChB,IAAI,qBAAqB,GAAG,KAAK,CAAC;AAClC;AACA,IAAI,OAAO,cAAc,EAAE,EAAE;AAC7B,MAAM,EAAE,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACrC,MAAM,IAAI,EAAE,KAAK,GAAG,EAAE;AACtB;AACA,QAAQ,SAAS,GAAG,GAAG,CAAC;AACxB,QAAQ,GAAG,IAAI,CAAC,CAAC;AACjB;AACA,QAAQ,cAAc,EAAE,CAAC;AACzB,QAAQ,SAAS,GAAG,GAAG,CAAC;AACxB;AACA,QAAQ,OAAO,GAAG,GAAG,aAAa,CAAC,MAAM,IAAI,cAAc,EAAE,EAAE;AAC/D,UAAU,GAAG,IAAI,CAAC,CAAC;AACnB,SAAS;AACT;AACA;AACA,QAAQ,IAAI,GAAG,GAAG,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AAC7E;AACA,UAAU,qBAAqB,GAAG,IAAI,CAAC;AACvC;AACA,UAAU,GAAG,GAAG,SAAS,CAAC;AAC1B,UAAU,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;AACzE,UAAU,KAAK,GAAG,GAAG,CAAC;AACtB,SAAS,MAAM;AACf;AACA;AACA,UAAU,GAAG,GAAG,SAAS,GAAG,CAAC,CAAC;AAC9B,SAAS;AACT,OAAO,MAAM;AACb,QAAQ,GAAG,IAAI,CAAC,CAAC;AACjB,OAAO;AACP,KAAK;AACL;AACA,IAAI,IAAI,CAAC,qBAAqB,IAAI,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE;AAC/D,MAAM,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;AAChF,KAAK;AACL,GAAG;AACH;AACA,EAAE,OAAO,cAAc,CAAC;AACxB,CAAC;AACD;AACAM,WAAc,CAAA,OAAA,GAAG,KAAK,CAAC;AACHA,WAAA,CAAA,OAAA,CAAA,KAAA,GAAG,MAAM;AACHA,WAAA,CAAA,OAAA,CAAA,WAAA,GAAG,YAAY;AACzCA,WAAA,CAAA,OAAA,CAAA,kBAAiC,GAAG,mBAAkB;;;;;;AC1NtD,IAAIP,UAAQ,GAAG,CAACQ,cAAI,IAAIA,cAAI,CAAC,QAAQ,KAAK,YAAY;AACtD,IAAIR,UAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;AAC5C,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3E,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC;AACjB,KAAK,CAAC;AACN,IAAI,OAAOA,UAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,KAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACvC,KAAA,CAAA,eAAA,0BAA4B,GAAG,KAAA,CAAA,YAAoB,GAAoB,KAAA,CAAA,SAAA,GAAG,KAAK,EAAE;AACxG;AACA;AACA;AACA,SAAS,SAAS,GAAG;AACrB,IAAI,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC;AACzC,CAAC;AACgB,KAAA,CAAA,SAAA,GAAG,UAAU;AAC9B;AACA;AACA;AACA,SAAS,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;AAC5C,IAAI,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;AACpC,IAAI,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC3B,QAAQ,QAAQ,GAAG,QAAQ,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,KAAK,EAAE;AACtD,QAAQ,QAAQ,GAAG,KAAK,CAAC;AACzB,KAAK;AACL,IAAI,IAAI,WAAW,GAAGA,UAAQ,CAACA,UAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9E,IAAI,OAAO,WAAW,CAAC,MAAM,CAAC;AAC9B,IAAI,OAAOA,UAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,CAAC;AAC/D,CAAC;AACmB,KAAA,CAAA,YAAA,GAAG,aAAa;AACpC;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE;AACjC,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI,IAAI,MAAM,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAC/C,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE;AACzC,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,QAAQ,IAAI,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACjC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE;AACzC,YAAY,OAAO,KAAK,CAAC;AACzB,SAAS;AACT,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC;AACwB,KAAA,CAAA,iBAAA,GAAG,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE;AAC/B,IAAI,IAAI,YAAY,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ,CAAC;AACjD,IAAI,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;AAC1E,QAAQ,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC7E,KAAK;AACL,IAAI,QAAQ,iBAAiB,CAACA,UAAQ,CAACA,UAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAAEA,UAAQ,CAACA,UAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC,IAAI,YAAY,EAAE;AACvJ,CAAC;AACsB,KAAA,CAAA,eAAA,GAAG,eAAe;;ACpEzC,IAAI,QAAQ,GAAG,CAACQ,cAAI,IAAIA,cAAI,CAAC,QAAQ,KAAK,YAAY;AACtD,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,CAAC,EAAE;AAC5C,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC3E,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5B,SAAS;AACT,QAAQ,OAAO,CAAC,CAAC;AACjB,KAAK,CAAC;AACN,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC3C,CAAC,CAAC;AACF,MAAM,CAAC,cAAc,CAAC,IAAO,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,IAAA,CAAA,aAAqB,GAAoB,IAAA,CAAA,SAAA,GAAG,kCAAoB,GAAG,KAAK,EAAE;AAC1E,IAAI,MAAM,GAAGC,QAAiB,CAAC;AAC/B,IAAI,eAAe,GAAGC,gBAA4B,CAAC;AACnD,IAAI,OAAO,GAAGC,KAAkB,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE;AACpC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACf,IAAI,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE;AACxK,QAAQ,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7D,KAAK;AACL,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,EAAE;AAC7B,QAAQ,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AACtD,KAAK;AACL,IAAI,OAAO,EAAE,CAAC;AACd,CAAC;AACD,IAAoB,cAAA,GAAA,IAAA,CAAA,YAAA,GAAG,YAAY,CAAC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;AAC9C,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACf,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,EAAE;AAC7C;AACA,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,KAAK,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE;AAC3I;AACA,QAAQ,IAAI,CAAC,EAAE,GAAG,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;AACvH,YAAY,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,GAAG,mCAAmC,CAAC,CAAC;AACxF,YAAY,OAAO,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;AACpE,YAAY,OAAO,EAAE,CAAC;AACtB,SAAS;AACT;AACA;AACA;AACA,QAAQ,IAAI,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAC5D,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ;AACvC,YAAY,OAAO,GAAG,CAAC,OAAO,CAAC,CAAC;AAChC,QAAQ,IAAI,OAAO,OAAO,KAAK,QAAQ;AACvC,YAAY,OAAO,GAAG,EAAE,CAAC;AACzB;AACA;AACA;AACA;AACA,QAAQ,IAAI,aAAa,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE;AAC3D,YAAY,YAAY,EAAE,KAAK;AAC/B,SAAS,CAAC,CAAC;AACX;AACA;AACA;AACA;AACA,QAAQ,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACrE,QAAQ,IAAI,cAAc,GAAG,EAAE,CAAC;AAChC,QAAQ,aAAa,CAAC,OAAO,CAAC,UAAU,YAAY,EAAE;AACtD,YAAY,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE;AACrE;AACA;AACA;AACA;AACA,gBAAgB,IAAI,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;AACxG;AACA,oBAAoB,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC;AAC7E,gBAAgB,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACtD,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;AACpE;AACA,QAAQ,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AACxD,KAAK;AACL;AACA,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,EAAE;AAC7B,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE;AACzC,YAAY,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;AAC7E,SAAS;AACT,QAAQ,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACjE,KAAK;AACL,IAAI,OAAO,EAAE,CAAC;AACd,CAAC;AACgB,IAAA,CAAA,SAAA,GAAG,UAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE;AAC3C;AACA;AACA;AACA;AACA,IAAI,OAAO,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,OAAO,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7F,CAAC;AACoB,IAAA,CAAA,aAAA,GAAG,aAAa,CAAC;AACtC;AACA,IAAA,CAAA,OAAe,GAAG;AAClB,IAAI,GAAG,EAAE,SAAS;AAClB,IAAI,GAAG,EAAE,YAAY;AACrB,IAAI,OAAO,EAAE,aAAa;AAC1B;;ACpHG,IAAC,WAAW,GAAGC,mBAAa,CAAC;AAChC,IAAI,IAAI,EAAE,IAAI;AACd,IAAI,WAAW,EAAE,SAAS;AAC1B,CAAC,EAAE;AACA,IAAC,cAAc,GAAG,YAAY,EAAE,OAAOC,gBAAU,CAAC,WAAW,CAAC,CAAC,GAAG;AAClE,IAAC,YAAY,GAAG,UAAU,EAAE,EAAE;AACjC,IAAI,IAAI,UAAU,GAAG,EAAE,CAAC,IAAI,EAAE,UAAU,GAAG,EAAE,CAAC,UAAU,EAAE,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC;AACjF;AACA,IAAI,IAAI,kBAAkB,GAAGC,aAAO,CAAC,YAAY;AACjD,QAAQ,OAAO;AACf,YAAY,UAAU,EAAE,UAAU,CAAC,UAAU;AAC7C,YAAY,yBAAyB,EAAE,UAAU,CAAC,yBAAyB;AAC3E,YAAY,4BAA4B,EAAE,UAAU,CAAC,4BAA4B;AACjF,YAAY,kBAAkB,EAAE,UAAU,CAAC,kBAAkB;AAC7D,SAAS,CAAC;AACV,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,IAAI,IAAI,yBAAyB,GAAG,kBAAkB,CAAC,yBAAyB,EAAE,4BAA4B,GAAG,kBAAkB,CAAC,4BAA4B,CAAC;AACjK,IAAI,IAAI,YAAY,GAAG,UAAU,CAAC,YAAY,CAAC;AAC/C,IAAI,IAAI,OAAO,GAAGC,cAAY,EAAE,CAAC;AACjC,IAAI,IAAI,EAAE,GAAG,+BAA+B,CAAC;AAC7C,QAAQ,OAAO,EAAE,OAAO;AACxB,QAAQ,UAAU,EAAEf,UAAQ,CAACA,UAAQ,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AAC9F,KAAK,CAAC,EAAE,UAAU,GAAG,EAAE,CAAC,IAAI,EAAE,YAAY,GAAG,EAAE,CAAC,YAAY,EAAE,iBAAiB,GAAG,EAAE,CAAC,WAAW,CAAC;AACjG,IAAI,IAAI,YAAY,GAAGc,aAAO,CAAC,YAAY;AAC3C,QAAQ,IAAI,CAAC,UAAU,EAAE;AACzB,YAAY,OAAO,UAAU,CAAC;AAC9B,SAAS;AACT,QAAQ,OAAO,UAAU,CAAC;AAC1B,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;AACjC,IAAI,IAAI,EAAE,GAAGE,cAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACnE,IAAI,IAAI,EAAE,GAAGA,cAAQ,CAAC,iBAAiB,CAAC,EAAE,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACtF,IAAIC,eAAS,CAAC,YAAY;AAC1B,QAAQ,IAAI,qBAAqB,GAAG,wBAAwB,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAAC;AACxG,QAAQ,IAAI,CAAC,YAAY,EAAE;AAC3B,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,qBAAqB,GAAG,CAAC,EAAE;AACvC;AACA,YAAY,IAAI,UAAU,GAAG,WAAW,CAAC,YAAY,EAAE,OAAO,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,EAAE,YAAY;AAC5G,gBAAgB,IAAI,QAAQ,EAAE,cAAc,EAAE,EAAE,EAAE,aAAa,EAAE,oBAAoB,EAAE,OAAO,CAAC;AAC/F,gBAAgB,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE;AACvD,oBAAoB,QAAQ,EAAE,CAAC,KAAK;AACpC,wBAAwB,KAAK,CAAC;AAC9B,4BAA4B,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtD,4BAA4B,OAAO,CAAC,CAAC,YAAY,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;AACnF,wBAAwB,KAAK,CAAC;AAC9B,4BAA4B,QAAQ,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AACjD,4BAA4B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAC9C,gCAAgC,YAAY;AAC5C,oCAAoC,YAAY,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,EAAE;AACnG,wCAAwC,KAAK,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACrE,qCAAqC,CAAC,CAAC;AACvC,6BAA6B;AAC7B,4BAA4B,cAAc,GAAGF,cAAY,EAAE,CAAC;AAC5D,4BAA4B,EAAE,GAAG,+BAA+B,CAAC;AACjE,gCAAgC,OAAO,EAAE,cAAc;AACvD,gCAAgC,UAAU,EAAEf,UAAQ,CAACA,UAAQ,CAAC,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC;AACtH,6BAA6B,CAAC,EAAE,aAAa,GAAG,EAAE,CAAC,IAAI,EAAE,oBAAoB,GAAG,EAAE,CAAC,WAAW,CAAC;AAC/F,4BAA4B,OAAO,CAAC,aAAa,CAAC,CAAC;AACnD,4BAA4B,cAAc,CAAC,oBAAoB,CAAC,CAAC;AACjE,4BAA4B,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AACpD,wBAAwB,KAAK,CAAC;AAC9B,4BAA4B,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;AAChD,4BAA4B,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;AAClE,4BAA4B,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;AACpD,wBAAwB,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,YAAY,CAAC;AACtD,qBAAqB;AACrB,iBAAiB,CAAC,CAAC;AACnB,aAAa,CAAC,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;AAC1C,YAAY,OAAO,YAAY,EAAE,OAAO,aAAa,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;AACrE,SAAS;AACT,KAAK,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;AAC7D,IAAI,QAAQ,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE;AAC/D,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,WAAW,EAAE,WAAW;AACpC,SAAS,EAAE,EAAE,QAAQ,CAAC,EAAE;AACxB;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1,4,5,6,7]}
|
|
@@ -61,7 +61,10 @@ export declare const getUserDataAsObject: ({ request, userDataCookieName, }: {
|
|
|
61
61
|
request: NextRequest;
|
|
62
62
|
userDataCookieName: string;
|
|
63
63
|
}) => any;
|
|
64
|
-
export declare const
|
|
64
|
+
export declare const deriveUserAndTokenFromRequest: ({ request, authConfig, }: {
|
|
65
65
|
request: NextApiRequest | http.IncomingMessage;
|
|
66
66
|
authConfig: AuthConfig;
|
|
67
|
-
}) =>
|
|
67
|
+
}) => {
|
|
68
|
+
user: MergedUser | null;
|
|
69
|
+
accessToken: string | undefined | null;
|
|
70
|
+
};
|
package/dist/esm/index.js
CHANGED
|
@@ -260,32 +260,38 @@ var getUserDataAsObject = function (_a) {
|
|
|
260
260
|
? JSON.parse(userDataCookie)
|
|
261
261
|
: { userName: null, userType: null };
|
|
262
262
|
};
|
|
263
|
-
var
|
|
263
|
+
var deriveUserAndTokenFromRequest = function (_a) {
|
|
264
264
|
var request = _a.request, authConfig = _a.authConfig;
|
|
265
|
-
if (!request || !request.headers.cookie)
|
|
266
|
-
return null;
|
|
265
|
+
if (!request || !request.headers.cookie) {
|
|
266
|
+
return { accessToken: null, user: null };
|
|
267
|
+
}
|
|
267
268
|
var cookies = parse_1(request.headers.cookie);
|
|
268
269
|
var setCookieHeader = request.headers['set-cookie'];
|
|
269
270
|
if (setCookieHeader) {
|
|
270
|
-
var
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
271
|
+
var cookiesFromSetCookieHeader = setCookieHeader.reduce(function (acc, current) {
|
|
272
|
+
var parsedCookie = parse_1(current);
|
|
273
|
+
if (Object.hasOwn(parsedCookie, authConfig.userDataCookieName)) {
|
|
274
|
+
acc.userDataCookie = parsedCookie[authConfig.userDataCookieName];
|
|
275
|
+
}
|
|
276
|
+
if (Object.hasOwn(parsedCookie, authConfig.tokenNames.access)) {
|
|
277
|
+
acc.accessTokenCookie = parsedCookie[authConfig.tokenNames.access];
|
|
276
278
|
}
|
|
277
279
|
return acc;
|
|
278
|
-
},
|
|
279
|
-
if (
|
|
280
|
+
}, { userDataCookie: '', accessTokenCookie: '' });
|
|
281
|
+
if (cookiesFromSetCookieHeader.userDataCookie) {
|
|
280
282
|
cookies[authConfig.userDataCookieName] =
|
|
281
|
-
|
|
283
|
+
cookiesFromSetCookieHeader.userDataCookie;
|
|
284
|
+
}
|
|
285
|
+
if (cookiesFromSetCookieHeader.accessTokenCookie) {
|
|
286
|
+
cookies[authConfig.tokenNames.access] =
|
|
287
|
+
cookiesFromSetCookieHeader.accessTokenCookie;
|
|
282
288
|
}
|
|
283
289
|
}
|
|
284
|
-
var
|
|
290
|
+
var _b = getUserDataAndTokensFromCookies({
|
|
285
291
|
cookies: cookies,
|
|
286
292
|
authConfig: authConfig
|
|
287
|
-
}).user;
|
|
288
|
-
return user;
|
|
293
|
+
}), user = _b.user, accessToken = _b.accessToken;
|
|
294
|
+
return { accessToken: accessToken, user: user };
|
|
289
295
|
};
|
|
290
296
|
|
|
291
297
|
var ensureTokenFreshness = function (_a) {
|
|
@@ -1079,5 +1085,5 @@ var AuthProvider = function (_a) {
|
|
|
1079
1085
|
} }, children));
|
|
1080
1086
|
};
|
|
1081
1087
|
|
|
1082
|
-
export { AuthContext, AuthProvider, MappedUserType, UserType, decodeJWT,
|
|
1088
|
+
export { AuthContext, AuthProvider, MappedUserType, UserType, decodeJWT, deriveUserAndTokenFromRequest, ensureTokenFreshness, getAccessTokenExpirationTime, getUntilRefreshTokenTime, getUserDataAndTokensFromCookies, getUserDataAsObject, isAccessTokenExpired, mapLegacyUserType, useAuthContext };
|
|
1083
1089
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../node_modules/tslib/tslib.es6.js","../../node_modules/cookie/index.js","../../src/helpers/index.ts","../../src/middleware/ensureTokenFreshness.ts","../../node_modules/nookies/node_modules/cookie/index.js","../../node_modules/set-cookie-parser/lib/set-cookie.js","../../node_modules/nookies/dist/utils.js","../../node_modules/nookies/dist/index.js","../../src/context/Auth.tsx"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar __toString = Object.prototype.toString\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var dec = opt.decode || decode;\n\n var index = 0\n while (index < str.length) {\n var eqIdx = str.indexOf('=', index)\n\n // no more cookie pairs\n if (eqIdx === -1) {\n break\n }\n\n var endIdx = str.indexOf(';', index)\n\n if (endIdx === -1) {\n endIdx = str.length\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(';', eqIdx - 1) + 1\n continue\n }\n\n var key = str.slice(index, eqIdx).trim()\n\n // only assign once\n if (undefined === obj[key]) {\n var val = str.slice(eqIdx + 1, endIdx).trim()\n\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n\n index = endIdx + 1\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n var expires = opt.expires\n\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + expires.toUTCString()\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.priority) {\n var priority = typeof opt.priority === 'string'\n ? opt.priority.toLowerCase()\n : opt.priority\n\n switch (priority) {\n case 'low':\n str += '; Priority=Low'\n break\n case 'medium':\n str += '; Priority=Medium'\n break\n case 'high':\n str += '; Priority=High'\n break\n default:\n throw new TypeError('option priority is invalid')\n }\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction decode (str) {\n return str.indexOf('%') !== -1\n ? decodeURIComponent(str)\n : str\n}\n\n/**\n * URL-encode value.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction encode (val) {\n return encodeURIComponent(val)\n}\n\n/**\n * Determine if value is a Date.\n *\n * @param {*} val\n * @private\n */\n\nfunction isDate (val) {\n return __toString.call(val) === '[object Date]' ||\n val instanceof Date\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","import { __assign } from \"tslib\";\nimport { parse } from 'cookie';\nexport var MappedUserType;\n(function (MappedUserType) {\n MappedUserType[\"Private\"] = \"private\";\n MappedUserType[\"Professional\"] = \"professional\";\n})(MappedUserType || (MappedUserType = {}));\nexport var UserType;\n(function (UserType) {\n UserType[\"Dealer\"] = \"Dealer\";\n UserType[\"Private\"] = \"Private\";\n UserType[\"Agent\"] = \"Agent\";\n})(UserType || (UserType = {}));\n// Default time to refresh token before expiration\nvar DefaultSubMinutesFromExpirationTime = 300000;\nexport var decodeJWT = function (token) {\n if (token === null || token === undefined)\n return null;\n var base64String = token.split('.')[1];\n if (!base64String)\n return null;\n var decodedData;\n try {\n decodedData = JSON.parse(atob(base64String));\n }\n catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error decoding JWT:', error);\n return null;\n }\n /* eslint-disable @typescript-eslint/naming-convention */\n var id = decodedData.id, legacy_user_id = decodedData.legacy_user_id, account_id = decodedData.account_id, name = decodedData.name, username = decodedData.username, user_type = decodedData.user_type, exp = decodedData.exp, email = decodedData.email;\n /* eslint-enable @typescript-eslint/naming-convention */\n return {\n id: id || legacy_user_id,\n username: name || username,\n account_id: account_id,\n user_type: user_type,\n email: email,\n exp: exp\n };\n};\nexport var getAccessTokenExpirationTime = function (accessToken) {\n var user = accessToken ? decodeJWT(accessToken) : null;\n return user ? user.exp * 1000 : Date.now();\n};\nexport var isAccessTokenExpired = function (accessToken, subMinutesFromExpirationTime) {\n if (subMinutesFromExpirationTime === void 0) { subMinutesFromExpirationTime = DefaultSubMinutesFromExpirationTime; }\n var accessTokenExpirationTime = getAccessTokenExpirationTime(accessToken);\n return accessTokenExpirationTime - subMinutesFromExpirationTime < Date.now();\n};\nexport var getUntilRefreshTokenTime = function (accessToken, subMinutesFromExpirationTime) {\n if (subMinutesFromExpirationTime === void 0) { subMinutesFromExpirationTime = DefaultSubMinutesFromExpirationTime; }\n var accessTokenExpirationTime = getAccessTokenExpirationTime(accessToken);\n return accessTokenExpirationTime - Date.now() - subMinutesFromExpirationTime;\n};\nexport var mapLegacyUserType = function (userType) {\n switch (userType) {\n case UserType.Agent:\n return MappedUserType.Professional;\n case UserType.Dealer:\n return MappedUserType.Professional;\n case UserType.Private:\n return MappedUserType.Private;\n }\n};\nexport var getUserDataAndTokensFromCookies = function (_a) {\n var cookies = _a.cookies, authConfig = _a.authConfig;\n var userDataCookieName = authConfig.userDataCookieName, _b = authConfig.tokenNames, accessTokenName = _b.access, refreshTokenName = _b.refresh;\n var accessToken = cookies[accessTokenName];\n var refreshToken = cookies[refreshTokenName];\n var userDataCookie = cookies[userDataCookieName];\n var userDataCookieObject = userDataCookie\n ? JSON.parse(userDataCookie)\n : null;\n var user = decodeJWT(accessToken);\n return {\n user: user\n ? __assign({ id: user.id, account_id: user.account_id, email: user.email, exp: user.exp }, userDataCookieObject) : null,\n accessToken: accessToken,\n refreshToken: refreshToken\n };\n};\nexport var getUserDataAsObject = function (_a) {\n var _b;\n var request = _a.request, userDataCookieName = _a.userDataCookieName;\n var userDataCookie = (_b = request.cookies.get(userDataCookieName)) === null || _b === void 0 ? void 0 : _b.value;\n return userDataCookie\n ? JSON.parse(userDataCookie)\n : { userName: null, userType: null };\n};\nexport var deriveUserForAppContext = function (_a) {\n var request = _a.request, authConfig = _a.authConfig;\n if (!request || !request.headers.cookie)\n return null;\n var cookies = parse(request.headers.cookie);\n var setCookieHeader = request.headers['set-cookie'];\n if (setCookieHeader) {\n var userDataCookieFromHeaders = setCookieHeader.reduce(function (acc, current) {\n if (!acc) {\n var parsedCookie = parse(current);\n if (Object.hasOwn(parsedCookie, authConfig.userDataCookieName)) {\n return parsedCookie;\n }\n }\n return acc;\n }, null);\n if (userDataCookieFromHeaders) {\n cookies[authConfig.userDataCookieName] =\n userDataCookieFromHeaders[authConfig.userDataCookieName];\n }\n }\n var user = getUserDataAndTokensFromCookies({\n cookies: cookies,\n authConfig: authConfig\n }).user;\n return user;\n};\n//# sourceMappingURL=index.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { decodeJWT, getUserDataAsObject, isAccessTokenExpired, } from '../helpers';\nexport var ensureTokenFreshness = function (_a) {\n var req = _a.req, res = _a.res, authConfig = _a.authConfig, userData = _a.userData;\n return __awaiter(void 0, void 0, void 0, function () {\n var tokenNames, userDataCookieName, refreshTokenApiUrl, subMinutesFromExpirationTime, cookieDomain, errorHandler, accessToken, refreshToken, userDataCookieObject, response, refreshedTokensData, updatedAccessToken, updatedRefreshToken, updatedUser, error_1;\n var _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n tokenNames = authConfig.tokenNames, userDataCookieName = authConfig.userDataCookieName, refreshTokenApiUrl = authConfig.refreshTokenApiUrl, subMinutesFromExpirationTime = authConfig.subMinutesFromExpirationTime, cookieDomain = authConfig.cookieDomain, errorHandler = authConfig.errorHandler;\n accessToken = (_b = req.cookies.get(tokenNames.access)) === null || _b === void 0 ? void 0 : _b.value;\n refreshToken = (_c = req.cookies.get(tokenNames.refresh)) === null || _c === void 0 ? void 0 : _c.value;\n userDataCookieObject = getUserDataAsObject({\n request: req,\n userDataCookieName: userDataCookieName\n });\n if (accessToken &&\n (!(userDataCookieObject === null || userDataCookieObject === void 0 ? void 0 : userDataCookieObject.userType) || !(userDataCookieObject === null || userDataCookieObject === void 0 ? void 0 : userDataCookieObject.userName))) {\n res.cookies.set(userDataCookieName, JSON.stringify(userData), {\n domain: cookieDomain\n });\n }\n if (!refreshToken ||\n !userData.userName ||\n !isAccessTokenExpired(accessToken, subMinutesFromExpirationTime)) {\n return [2 /*return*/, res];\n }\n _d.label = 1;\n case 1:\n _d.trys.push([1, 4, , 5]);\n return [4 /*yield*/, fetch(refreshTokenApiUrl, {\n method: 'POST',\n headers: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n token: refreshToken,\n username: userData.userName\n })\n })];\n case 2:\n response = _d.sent();\n if (!response.ok || response.status !== 200) {\n res.cookies[\"delete\"](tokenNames.access);\n res.cookies[\"delete\"](tokenNames.refresh);\n res.cookies[\"delete\"](userDataCookieName);\n errorHandler &&\n errorHandler(new Error('Failed to refresh token'), {\n extra: { response: response }\n });\n return [2 /*return*/, res];\n }\n return [4 /*yield*/, response.json()];\n case 3:\n refreshedTokensData = _d.sent();\n updatedAccessToken = refreshedTokensData === null || refreshedTokensData === void 0 ? void 0 : refreshedTokensData.access;\n updatedRefreshToken = refreshedTokensData === null || refreshedTokensData === void 0 ? void 0 : refreshedTokensData.refresh;\n if (!updatedAccessToken) {\n return [2 /*return*/, res];\n }\n res.cookies.set(tokenNames.access, updatedAccessToken.value, {\n maxAge: updatedAccessToken.ttl,\n domain: cookieDomain\n });\n updatedUser = decodeJWT(updatedAccessToken.value);\n if ((updatedUser === null || updatedUser === void 0 ? void 0 : updatedUser.username) && (updatedUser === null || updatedUser === void 0 ? void 0 : updatedUser.username) !== userData.userName) {\n userData.userName = updatedUser.username;\n res.cookies.set(userDataCookieName, JSON.stringify(userData), {\n domain: cookieDomain\n });\n }\n if (updatedRefreshToken.value) {\n res.cookies.set(tokenNames.refresh, updatedRefreshToken.value, {\n maxAge: updatedRefreshToken.ttl,\n domain: cookieDomain\n });\n }\n return [2 /*return*/, res];\n case 4:\n error_1 = _d.sent();\n errorHandler && errorHandler(error_1);\n return [3 /*break*/, 5];\n case 5:\n res.cookies[\"delete\"](userDataCookieName);\n res.cookies[\"delete\"](tokenNames.access);\n res.cookies[\"delete\"](tokenNames.refresh);\n return [2 /*return*/, res];\n }\n });\n });\n};\n//# sourceMappingURL=ensureTokenFreshness.js.map","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","\"use strict\";\n\nvar defaultParseOptions = {\n decodeValues: true,\n map: false,\n silent: false,\n};\n\nfunction isNonEmptyString(str) {\n return typeof str === \"string\" && !!str.trim();\n}\n\nfunction parseString(setCookieValue, options) {\n var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n\n var nameValuePairStr = parts.shift();\n var parsed = parseNameValuePair(nameValuePairStr);\n var name = parsed.name;\n var value = parsed.value;\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n try {\n value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value\n } catch (e) {\n console.error(\n \"set-cookie-parser encountered an error while decoding a cookie with value '\" +\n value +\n \"'. Set options.decodeValues to false to disable this feature.\",\n e\n );\n }\n\n var cookie = {\n name: name,\n value: value,\n };\n\n parts.forEach(function (part) {\n var sides = part.split(\"=\");\n var key = sides.shift().trimLeft().toLowerCase();\n var value = sides.join(\"=\");\n if (key === \"expires\") {\n cookie.expires = new Date(value);\n } else if (key === \"max-age\") {\n cookie.maxAge = parseInt(value, 10);\n } else if (key === \"secure\") {\n cookie.secure = true;\n } else if (key === \"httponly\") {\n cookie.httpOnly = true;\n } else if (key === \"samesite\") {\n cookie.sameSite = value;\n } else {\n cookie[key] = value;\n }\n });\n\n return cookie;\n}\n\nfunction parseNameValuePair(nameValuePairStr) {\n // Parses name-value-pair according to rfc6265bis draft\n\n var name = \"\";\n var value = \"\";\n var nameValueArr = nameValuePairStr.split(\"=\");\n if (nameValueArr.length > 1) {\n name = nameValueArr.shift();\n value = nameValueArr.join(\"=\"); // everything after the first =, joined by a \"=\" if there was more than one part\n } else {\n value = nameValuePairStr;\n }\n\n return { name: name, value: value };\n}\n\nfunction parse(input, options) {\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!input) {\n if (!options.map) {\n return [];\n } else {\n return {};\n }\n }\n\n if (input.headers && input.headers[\"set-cookie\"]) {\n // fast-path for node.js (which automatically normalizes header names to lower-case\n input = input.headers[\"set-cookie\"];\n } else if (input.headers) {\n // slow-path for other environments - see #25\n var sch =\n input.headers[\n Object.keys(input.headers).find(function (key) {\n return key.toLowerCase() === \"set-cookie\";\n })\n ];\n // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36\n if (!sch && input.headers.cookie && !options.silent) {\n console.warn(\n \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n );\n }\n input = sch;\n }\n if (!Array.isArray(input)) {\n input = [input];\n }\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!options.map) {\n return input.filter(isNonEmptyString).map(function (str) {\n return parseString(str, options);\n });\n } else {\n var cookies = {};\n return input.filter(isNonEmptyString).reduce(function (cookies, str) {\n var cookie = parseString(str, options);\n cookies[cookie.name] = cookie;\n return cookies;\n }, cookies);\n }\n}\n\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n\n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/\nfunction splitCookiesString(cookiesString) {\n if (Array.isArray(cookiesString)) {\n return cookiesString;\n }\n if (typeof cookiesString !== \"string\") {\n return [];\n }\n\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n\n skipWhitespace();\n nextStart = pos;\n\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n\n return cookiesStrings;\n}\n\nmodule.exports = parse;\nmodule.exports.parse = parse;\nmodule.exports.parseString = parseString;\nmodule.exports.splitCookiesString = splitCookiesString;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.areCookiesEqual = exports.hasSameProperties = exports.createCookie = exports.isBrowser = void 0;\n/**\n * Tells whether we are in a browser or server.\n */\nfunction isBrowser() {\n return typeof window !== 'undefined';\n}\nexports.isBrowser = isBrowser;\n/**\n * Create an instance of the Cookie interface\n */\nfunction createCookie(name, value, options) {\n var sameSite = options.sameSite;\n if (sameSite === true) {\n sameSite = 'strict';\n }\n if (sameSite === undefined || sameSite === false) {\n sameSite = 'lax';\n }\n var cookieToSet = __assign(__assign({}, options), { sameSite: sameSite });\n delete cookieToSet.encode;\n return __assign({ name: name, value: value }, cookieToSet);\n}\nexports.createCookie = createCookie;\n/**\n * Tells whether given objects have the same properties.\n */\nfunction hasSameProperties(a, b) {\n var aProps = Object.getOwnPropertyNames(a);\n var bProps = Object.getOwnPropertyNames(b);\n if (aProps.length !== bProps.length) {\n return false;\n }\n for (var i = 0; i < aProps.length; i++) {\n var propName = aProps[i];\n if (a[propName] !== b[propName]) {\n return false;\n }\n }\n return true;\n}\nexports.hasSameProperties = hasSameProperties;\n/**\n * Compare the cookie and return true if the cookies have equivalent\n * options and the cookies would be overwritten in the browser storage.\n *\n * @param a first Cookie for comparison\n * @param b second Cookie for comparison\n */\nfunction areCookiesEqual(a, b) {\n var sameSiteSame = a.sameSite === b.sameSite;\n if (typeof a.sameSite === 'string' && typeof b.sameSite === 'string') {\n sameSiteSame = a.sameSite.toLowerCase() === b.sameSite.toLowerCase();\n }\n return (hasSameProperties(__assign(__assign({}, a), { sameSite: undefined }), __assign(__assign({}, b), { sameSite: undefined })) && sameSiteSame);\n}\nexports.areCookiesEqual = areCookiesEqual;\n/* Functions */\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.destroyCookie = exports.setCookie = exports.parseCookies = void 0;\nvar cookie = require(\"cookie\");\nvar setCookieParser = require(\"set-cookie-parser\");\nvar utils_1 = require(\"./utils\");\n/**\n * Parses cookies.\n *\n * @param ctx NextJS page or API context, express context, null or undefined.\n * @param options Options that we pass down to `cookie` library.\n */\nfunction parseCookies(ctx, options) {\n var _a, _b;\n if ((_b = (_a = ctx === null || ctx === void 0 ? void 0 : ctx.req) === null || _a === void 0 ? void 0 : _a.headers) === null || _b === void 0 ? void 0 : _b.cookie) {\n return cookie.parse(ctx.req.headers.cookie, options);\n }\n if (utils_1.isBrowser()) {\n return cookie.parse(document.cookie, options);\n }\n return {};\n}\nexports.parseCookies = parseCookies;\n/**\n * Sets a cookie.\n *\n * @param ctx NextJS page or API context, express context, null or undefined.\n * @param name The name of your cookie.\n * @param value The value of your cookie.\n * @param options Options that we pass down to `cookie` library.\n */\nfunction setCookie(ctx, name, value, options) {\n var _a, _b;\n if (options === void 0) { options = {}; }\n // SSR\n if (((_a = ctx === null || ctx === void 0 ? void 0 : ctx.res) === null || _a === void 0 ? void 0 : _a.getHeader) && ctx.res.setHeader) {\n // Check if response has finished and warn about it.\n if ((_b = ctx === null || ctx === void 0 ? void 0 : ctx.res) === null || _b === void 0 ? void 0 : _b.finished) {\n console.warn(\"Not setting \\\"\" + name + \"\\\" cookie. Response has finished.\");\n console.warn(\"You should set cookie before res.send()\");\n return {};\n }\n /**\n * Load existing cookies from the header and parse them.\n */\n var cookies = ctx.res.getHeader('Set-Cookie') || [];\n if (typeof cookies === 'string')\n cookies = [cookies];\n if (typeof cookies === 'number')\n cookies = [];\n /**\n * Parse cookies but ignore values - we've already encoded\n * them in the previous call.\n */\n var parsedCookies = setCookieParser.parse(cookies, {\n decodeValues: false,\n });\n /**\n * We create the new cookie and make sure that none of\n * the existing cookies match it.\n */\n var newCookie_1 = utils_1.createCookie(name, value, options);\n var cookiesToSet_1 = [];\n parsedCookies.forEach(function (parsedCookie) {\n if (!utils_1.areCookiesEqual(parsedCookie, newCookie_1)) {\n /**\n * We serialize the cookie back to the original format\n * if it isn't the same as the new one.\n */\n var serializedCookie = cookie.serialize(parsedCookie.name, parsedCookie.value, __assign({ \n // we prevent reencoding by default, but you might override it\n encode: function (val) { return val; } }, parsedCookie));\n cookiesToSet_1.push(serializedCookie);\n }\n });\n cookiesToSet_1.push(cookie.serialize(name, value, options));\n // Update the header.\n ctx.res.setHeader('Set-Cookie', cookiesToSet_1);\n }\n // Browser\n if (utils_1.isBrowser()) {\n if (options && options.httpOnly) {\n throw new Error('Can not set a httpOnly cookie in the browser.');\n }\n document.cookie = cookie.serialize(name, value, options);\n }\n return {};\n}\nexports.setCookie = setCookie;\n/**\n * Destroys a cookie with a particular name.\n *\n * @param ctx NextJS page or API context, express context, null or undefined.\n * @param name Cookie name.\n * @param options Options that we pass down to `cookie` library.\n */\nfunction destroyCookie(ctx, name, options) {\n /**\n * We forward the request destroy to setCookie function\n * as it is the same function with modified maxAge value.\n */\n return setCookie(ctx, name, '', __assign(__assign({}, (options || {})), { maxAge: -1 }));\n}\nexports.destroyCookie = destroyCookie;\n/* Utility Exports */\nexports.default = {\n set: setCookie,\n get: parseCookies,\n destroy: destroyCookie,\n};\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport React, { createContext, useContext, useEffect, useMemo, useState, } from 'react';\nimport { parseCookies } from 'nookies';\nimport { getUntilRefreshTokenTime, getUserDataAndTokensFromCookies, } from '../helpers';\nvar AuthContext = createContext({\n user: null,\n accessToken: undefined\n});\nvar useAuthContext = function () { return useContext(AuthContext); };\nvar AuthProvider = function (_a) {\n var passedUser = _a.user, authConfig = _a.authConfig, children = _a.children;\n // persists the data initialized server-side on the client\n var memoizedAuthConfig = useMemo(function () {\n return {\n tokenNames: authConfig.tokenNames,\n triggerRefreshTokenApiUrl: authConfig.triggerRefreshTokenApiUrl,\n subMinutesFromExpirationTime: authConfig.subMinutesFromExpirationTime,\n userDataCookieName: authConfig.userDataCookieName\n };\n }, []);\n var triggerRefreshTokenApiUrl = memoizedAuthConfig.triggerRefreshTokenApiUrl, subMinutesFromExpirationTime = memoizedAuthConfig.subMinutesFromExpirationTime;\n var errorHandler = authConfig.errorHandler;\n var cookies = parseCookies();\n var _b = getUserDataAndTokensFromCookies({\n cookies: cookies,\n authConfig: __assign(__assign({}, memoizedAuthConfig), { errorHandler: errorHandler })\n }), cookieUser = _b.user, refreshToken = _b.refreshToken, cookieAccessToken = _b.accessToken;\n var memoizedUser = useMemo(function () {\n if (!passedUser) {\n return cookieUser;\n }\n return passedUser;\n }, [passedUser, cookieUser]);\n var _c = useState(memoizedUser), user = _c[0], setUser = _c[1];\n var _d = useState(cookieAccessToken), accessToken = _d[0], setAccessToken = _d[1];\n useEffect(function () {\n var untilRefreshTokenTime = getUntilRefreshTokenTime(accessToken, subMinutesFromExpirationTime);\n if (!refreshToken) {\n return;\n }\n if (untilRefreshTokenTime > 0) {\n // Call the API by interval in order to trigger middleware to ensure token freshness on client side\n var interval_1 = setInterval(function () { return __awaiter(void 0, void 0, void 0, function () {\n var response, updatedCookies, _a, refreshedUser, refreshedAccessToken, error_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n return [4 /*yield*/, fetch(triggerRefreshTokenApiUrl)];\n case 1:\n response = _b.sent();\n if (!response.ok) {\n errorHandler &&\n errorHandler(new Error('Failed to trigger refresh token api'), {\n extra: { response: response }\n });\n }\n updatedCookies = parseCookies();\n _a = getUserDataAndTokensFromCookies({\n cookies: updatedCookies,\n authConfig: __assign(__assign({}, memoizedAuthConfig), { errorHandler: errorHandler })\n }), refreshedUser = _a.user, refreshedAccessToken = _a.accessToken;\n setUser(refreshedUser);\n setAccessToken(refreshedAccessToken);\n return [3 /*break*/, 3];\n case 2:\n error_1 = _b.sent();\n errorHandler && errorHandler(error_1);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n }); }, untilRefreshTokenTime);\n return function () { return clearInterval(interval_1); };\n }\n }, [refreshToken, accessToken, setUser, setAccessToken]);\n return (React.createElement(AuthContext.Provider, { value: {\n user: user,\n accessToken: accessToken\n } }, children));\n};\nexport { AuthContext, AuthProvider, useAuthContext };\n//# sourceMappingURL=Auth.js.map"],"names":["__assign","parse","decode","tryDecode","cookie","setCookieModule","this","require$$0","require$$1","require$$2","parseCookies"],"mappings":"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","x_google_ignoreList":[0,1,4,5,6,7]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../node_modules/tslib/tslib.es6.js","../../node_modules/cookie/index.js","../../src/helpers/index.ts","../../src/middleware/ensureTokenFreshness.ts","../../node_modules/nookies/node_modules/cookie/index.js","../../node_modules/set-cookie-parser/lib/set-cookie.js","../../node_modules/nookies/dist/utils.js","../../node_modules/nookies/dist/index.js","../../src/context/Auth.tsx"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar __toString = Object.prototype.toString\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var dec = opt.decode || decode;\n\n var index = 0\n while (index < str.length) {\n var eqIdx = str.indexOf('=', index)\n\n // no more cookie pairs\n if (eqIdx === -1) {\n break\n }\n\n var endIdx = str.indexOf(';', index)\n\n if (endIdx === -1) {\n endIdx = str.length\n } else if (endIdx < eqIdx) {\n // backtrack on prior semicolon\n index = str.lastIndexOf(';', eqIdx - 1) + 1\n continue\n }\n\n var key = str.slice(index, eqIdx).trim()\n\n // only assign once\n if (undefined === obj[key]) {\n var val = str.slice(eqIdx + 1, endIdx).trim()\n\n // quoted values\n if (val.charCodeAt(0) === 0x22) {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n\n index = endIdx + 1\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n var expires = opt.expires\n\n if (!isDate(expires) || isNaN(expires.valueOf())) {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + expires.toUTCString()\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.priority) {\n var priority = typeof opt.priority === 'string'\n ? opt.priority.toLowerCase()\n : opt.priority\n\n switch (priority) {\n case 'low':\n str += '; Priority=Low'\n break\n case 'medium':\n str += '; Priority=Medium'\n break\n case 'high':\n str += '; Priority=High'\n break\n default:\n throw new TypeError('option priority is invalid')\n }\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * URL-decode string value. Optimized to skip native call when no %.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction decode (str) {\n return str.indexOf('%') !== -1\n ? decodeURIComponent(str)\n : str\n}\n\n/**\n * URL-encode value.\n *\n * @param {string} str\n * @returns {string}\n */\n\nfunction encode (val) {\n return encodeURIComponent(val)\n}\n\n/**\n * Determine if value is a Date.\n *\n * @param {*} val\n * @private\n */\n\nfunction isDate (val) {\n return __toString.call(val) === '[object Date]' ||\n val instanceof Date\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","import { __assign } from \"tslib\";\nimport { parse } from 'cookie';\nexport var MappedUserType;\n(function (MappedUserType) {\n MappedUserType[\"Private\"] = \"private\";\n MappedUserType[\"Professional\"] = \"professional\";\n})(MappedUserType || (MappedUserType = {}));\nexport var UserType;\n(function (UserType) {\n UserType[\"Dealer\"] = \"Dealer\";\n UserType[\"Private\"] = \"Private\";\n UserType[\"Agent\"] = \"Agent\";\n})(UserType || (UserType = {}));\n// Default time to refresh token before expiration\nvar DefaultSubMinutesFromExpirationTime = 300000;\nexport var decodeJWT = function (token) {\n if (token === null || token === undefined)\n return null;\n var base64String = token.split('.')[1];\n if (!base64String)\n return null;\n var decodedData;\n try {\n decodedData = JSON.parse(atob(base64String));\n }\n catch (error) {\n // eslint-disable-next-line no-console\n console.error('Error decoding JWT:', error);\n return null;\n }\n /* eslint-disable @typescript-eslint/naming-convention */\n var id = decodedData.id, legacy_user_id = decodedData.legacy_user_id, account_id = decodedData.account_id, name = decodedData.name, username = decodedData.username, user_type = decodedData.user_type, exp = decodedData.exp, email = decodedData.email;\n /* eslint-enable @typescript-eslint/naming-convention */\n return {\n id: id || legacy_user_id,\n username: name || username,\n account_id: account_id,\n user_type: user_type,\n email: email,\n exp: exp\n };\n};\nexport var getAccessTokenExpirationTime = function (accessToken) {\n var user = accessToken ? decodeJWT(accessToken) : null;\n return user ? user.exp * 1000 : Date.now();\n};\nexport var isAccessTokenExpired = function (accessToken, subMinutesFromExpirationTime) {\n if (subMinutesFromExpirationTime === void 0) { subMinutesFromExpirationTime = DefaultSubMinutesFromExpirationTime; }\n var accessTokenExpirationTime = getAccessTokenExpirationTime(accessToken);\n return accessTokenExpirationTime - subMinutesFromExpirationTime < Date.now();\n};\nexport var getUntilRefreshTokenTime = function (accessToken, subMinutesFromExpirationTime) {\n if (subMinutesFromExpirationTime === void 0) { subMinutesFromExpirationTime = DefaultSubMinutesFromExpirationTime; }\n var accessTokenExpirationTime = getAccessTokenExpirationTime(accessToken);\n return accessTokenExpirationTime - Date.now() - subMinutesFromExpirationTime;\n};\nexport var mapLegacyUserType = function (userType) {\n switch (userType) {\n case UserType.Agent:\n return MappedUserType.Professional;\n case UserType.Dealer:\n return MappedUserType.Professional;\n case UserType.Private:\n return MappedUserType.Private;\n }\n};\nexport var getUserDataAndTokensFromCookies = function (_a) {\n var cookies = _a.cookies, authConfig = _a.authConfig;\n var userDataCookieName = authConfig.userDataCookieName, _b = authConfig.tokenNames, accessTokenName = _b.access, refreshTokenName = _b.refresh;\n var accessToken = cookies[accessTokenName];\n var refreshToken = cookies[refreshTokenName];\n var userDataCookie = cookies[userDataCookieName];\n var userDataCookieObject = userDataCookie\n ? JSON.parse(userDataCookie)\n : null;\n var user = decodeJWT(accessToken);\n return {\n user: user\n ? __assign({ id: user.id, account_id: user.account_id, email: user.email, exp: user.exp }, userDataCookieObject) : null,\n accessToken: accessToken,\n refreshToken: refreshToken\n };\n};\nexport var getUserDataAsObject = function (_a) {\n var _b;\n var request = _a.request, userDataCookieName = _a.userDataCookieName;\n var userDataCookie = (_b = request.cookies.get(userDataCookieName)) === null || _b === void 0 ? void 0 : _b.value;\n return userDataCookie\n ? JSON.parse(userDataCookie)\n : { userName: null, userType: null };\n};\nexport var deriveUserAndTokenFromRequest = function (_a) {\n var request = _a.request, authConfig = _a.authConfig;\n if (!request || !request.headers.cookie) {\n return { accessToken: null, user: null };\n }\n var cookies = parse(request.headers.cookie);\n var setCookieHeader = request.headers['set-cookie'];\n if (setCookieHeader) {\n var cookiesFromSetCookieHeader = setCookieHeader.reduce(function (acc, current) {\n var parsedCookie = parse(current);\n if (Object.hasOwn(parsedCookie, authConfig.userDataCookieName)) {\n acc.userDataCookie = parsedCookie[authConfig.userDataCookieName];\n }\n if (Object.hasOwn(parsedCookie, authConfig.tokenNames.access)) {\n acc.accessTokenCookie = parsedCookie[authConfig.tokenNames.access];\n }\n return acc;\n }, { userDataCookie: '', accessTokenCookie: '' });\n if (cookiesFromSetCookieHeader.userDataCookie) {\n cookies[authConfig.userDataCookieName] =\n cookiesFromSetCookieHeader.userDataCookie;\n }\n if (cookiesFromSetCookieHeader.accessTokenCookie) {\n cookies[authConfig.tokenNames.access] =\n cookiesFromSetCookieHeader.accessTokenCookie;\n }\n }\n var _b = getUserDataAndTokensFromCookies({\n cookies: cookies,\n authConfig: authConfig\n }), user = _b.user, accessToken = _b.accessToken;\n return { accessToken: accessToken, user: user };\n};\n//# sourceMappingURL=index.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { decodeJWT, getUserDataAsObject, isAccessTokenExpired, } from '../helpers';\nexport var ensureTokenFreshness = function (_a) {\n var req = _a.req, res = _a.res, authConfig = _a.authConfig, userData = _a.userData;\n return __awaiter(void 0, void 0, void 0, function () {\n var tokenNames, userDataCookieName, refreshTokenApiUrl, subMinutesFromExpirationTime, cookieDomain, errorHandler, accessToken, refreshToken, userDataCookieObject, response, refreshedTokensData, updatedAccessToken, updatedRefreshToken, updatedUser, error_1;\n var _b, _c;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n tokenNames = authConfig.tokenNames, userDataCookieName = authConfig.userDataCookieName, refreshTokenApiUrl = authConfig.refreshTokenApiUrl, subMinutesFromExpirationTime = authConfig.subMinutesFromExpirationTime, cookieDomain = authConfig.cookieDomain, errorHandler = authConfig.errorHandler;\n accessToken = (_b = req.cookies.get(tokenNames.access)) === null || _b === void 0 ? void 0 : _b.value;\n refreshToken = (_c = req.cookies.get(tokenNames.refresh)) === null || _c === void 0 ? void 0 : _c.value;\n userDataCookieObject = getUserDataAsObject({\n request: req,\n userDataCookieName: userDataCookieName\n });\n if (accessToken &&\n (!(userDataCookieObject === null || userDataCookieObject === void 0 ? void 0 : userDataCookieObject.userType) || !(userDataCookieObject === null || userDataCookieObject === void 0 ? void 0 : userDataCookieObject.userName))) {\n res.cookies.set(userDataCookieName, JSON.stringify(userData), {\n domain: cookieDomain\n });\n }\n if (!refreshToken ||\n !userData.userName ||\n !isAccessTokenExpired(accessToken, subMinutesFromExpirationTime)) {\n return [2 /*return*/, res];\n }\n _d.label = 1;\n case 1:\n _d.trys.push([1, 4, , 5]);\n return [4 /*yield*/, fetch(refreshTokenApiUrl, {\n method: 'POST',\n headers: {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n token: refreshToken,\n username: userData.userName\n })\n })];\n case 2:\n response = _d.sent();\n if (!response.ok || response.status !== 200) {\n res.cookies[\"delete\"](tokenNames.access);\n res.cookies[\"delete\"](tokenNames.refresh);\n res.cookies[\"delete\"](userDataCookieName);\n errorHandler &&\n errorHandler(new Error('Failed to refresh token'), {\n extra: { response: response }\n });\n return [2 /*return*/, res];\n }\n return [4 /*yield*/, response.json()];\n case 3:\n refreshedTokensData = _d.sent();\n updatedAccessToken = refreshedTokensData === null || refreshedTokensData === void 0 ? void 0 : refreshedTokensData.access;\n updatedRefreshToken = refreshedTokensData === null || refreshedTokensData === void 0 ? void 0 : refreshedTokensData.refresh;\n if (!updatedAccessToken) {\n return [2 /*return*/, res];\n }\n res.cookies.set(tokenNames.access, updatedAccessToken.value, {\n maxAge: updatedAccessToken.ttl,\n domain: cookieDomain\n });\n updatedUser = decodeJWT(updatedAccessToken.value);\n if ((updatedUser === null || updatedUser === void 0 ? void 0 : updatedUser.username) && (updatedUser === null || updatedUser === void 0 ? void 0 : updatedUser.username) !== userData.userName) {\n userData.userName = updatedUser.username;\n res.cookies.set(userDataCookieName, JSON.stringify(userData), {\n domain: cookieDomain\n });\n }\n if (updatedRefreshToken.value) {\n res.cookies.set(tokenNames.refresh, updatedRefreshToken.value, {\n maxAge: updatedRefreshToken.ttl,\n domain: cookieDomain\n });\n }\n return [2 /*return*/, res];\n case 4:\n error_1 = _d.sent();\n errorHandler && errorHandler(error_1);\n return [3 /*break*/, 5];\n case 5:\n res.cookies[\"delete\"](userDataCookieName);\n res.cookies[\"delete\"](tokenNames.access);\n res.cookies[\"delete\"](tokenNames.refresh);\n return [2 /*return*/, res];\n }\n });\n });\n};\n//# sourceMappingURL=ensureTokenFreshness.js.map","/*!\n * cookie\n * Copyright(c) 2012-2014 Roman Shtylman\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nexports.parse = parse;\nexports.serialize = serialize;\n\n/**\n * Module variables.\n * @private\n */\n\nvar decode = decodeURIComponent;\nvar encode = encodeURIComponent;\n\n/**\n * RegExp to match field-content in RFC 7230 sec 3.2\n *\n * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]\n * field-vchar = VCHAR / obs-text\n * obs-text = %x80-FF\n */\n\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\n/**\n * Parse a cookie header.\n *\n * Parse the given cookie header string into an object\n * The object has the various cookies as keys(names) => values\n *\n * @param {string} str\n * @param {object} [options]\n * @return {object}\n * @public\n */\n\nfunction parse(str, options) {\n if (typeof str !== 'string') {\n throw new TypeError('argument str must be a string');\n }\n\n var obj = {}\n var opt = options || {};\n var pairs = str.split(';')\n var dec = opt.decode || decode;\n\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n var index = pair.indexOf('=')\n\n // skip things that don't look like key=value\n if (index < 0) {\n continue;\n }\n\n var key = pair.substring(0, index).trim()\n\n // only assign once\n if (undefined == obj[key]) {\n var val = pair.substring(index + 1, pair.length).trim()\n\n // quoted values\n if (val[0] === '\"') {\n val = val.slice(1, -1)\n }\n\n obj[key] = tryDecode(val, dec);\n }\n }\n\n return obj;\n}\n\n/**\n * Serialize data into a cookie header.\n *\n * Serialize the a name value pair into a cookie string suitable for\n * http headers. An optional options object specified cookie parameters.\n *\n * serialize('foo', 'bar', { httpOnly: true })\n * => \"foo=bar; httpOnly\"\n *\n * @param {string} name\n * @param {string} val\n * @param {object} [options]\n * @return {string}\n * @public\n */\n\nfunction serialize(name, val, options) {\n var opt = options || {};\n var enc = opt.encode || encode;\n\n if (typeof enc !== 'function') {\n throw new TypeError('option encode is invalid');\n }\n\n if (!fieldContentRegExp.test(name)) {\n throw new TypeError('argument name is invalid');\n }\n\n var value = enc(val);\n\n if (value && !fieldContentRegExp.test(value)) {\n throw new TypeError('argument val is invalid');\n }\n\n var str = name + '=' + value;\n\n if (null != opt.maxAge) {\n var maxAge = opt.maxAge - 0;\n\n if (isNaN(maxAge) || !isFinite(maxAge)) {\n throw new TypeError('option maxAge is invalid')\n }\n\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) {\n str += '; HttpOnly';\n }\n\n if (opt.secure) {\n str += '; Secure';\n }\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string'\n ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n}\n\n/**\n * Try decoding a string using a decoding function.\n *\n * @param {string} str\n * @param {function} decode\n * @private\n */\n\nfunction tryDecode(str, decode) {\n try {\n return decode(str);\n } catch (e) {\n return str;\n }\n}\n","\"use strict\";\n\nvar defaultParseOptions = {\n decodeValues: true,\n map: false,\n silent: false,\n};\n\nfunction isNonEmptyString(str) {\n return typeof str === \"string\" && !!str.trim();\n}\n\nfunction parseString(setCookieValue, options) {\n var parts = setCookieValue.split(\";\").filter(isNonEmptyString);\n\n var nameValuePairStr = parts.shift();\n var parsed = parseNameValuePair(nameValuePairStr);\n var name = parsed.name;\n var value = parsed.value;\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n try {\n value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value\n } catch (e) {\n console.error(\n \"set-cookie-parser encountered an error while decoding a cookie with value '\" +\n value +\n \"'. Set options.decodeValues to false to disable this feature.\",\n e\n );\n }\n\n var cookie = {\n name: name,\n value: value,\n };\n\n parts.forEach(function (part) {\n var sides = part.split(\"=\");\n var key = sides.shift().trimLeft().toLowerCase();\n var value = sides.join(\"=\");\n if (key === \"expires\") {\n cookie.expires = new Date(value);\n } else if (key === \"max-age\") {\n cookie.maxAge = parseInt(value, 10);\n } else if (key === \"secure\") {\n cookie.secure = true;\n } else if (key === \"httponly\") {\n cookie.httpOnly = true;\n } else if (key === \"samesite\") {\n cookie.sameSite = value;\n } else {\n cookie[key] = value;\n }\n });\n\n return cookie;\n}\n\nfunction parseNameValuePair(nameValuePairStr) {\n // Parses name-value-pair according to rfc6265bis draft\n\n var name = \"\";\n var value = \"\";\n var nameValueArr = nameValuePairStr.split(\"=\");\n if (nameValueArr.length > 1) {\n name = nameValueArr.shift();\n value = nameValueArr.join(\"=\"); // everything after the first =, joined by a \"=\" if there was more than one part\n } else {\n value = nameValuePairStr;\n }\n\n return { name: name, value: value };\n}\n\nfunction parse(input, options) {\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!input) {\n if (!options.map) {\n return [];\n } else {\n return {};\n }\n }\n\n if (input.headers && input.headers[\"set-cookie\"]) {\n // fast-path for node.js (which automatically normalizes header names to lower-case\n input = input.headers[\"set-cookie\"];\n } else if (input.headers) {\n // slow-path for other environments - see #25\n var sch =\n input.headers[\n Object.keys(input.headers).find(function (key) {\n return key.toLowerCase() === \"set-cookie\";\n })\n ];\n // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36\n if (!sch && input.headers.cookie && !options.silent) {\n console.warn(\n \"Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning.\"\n );\n }\n input = sch;\n }\n if (!Array.isArray(input)) {\n input = [input];\n }\n\n options = options\n ? Object.assign({}, defaultParseOptions, options)\n : defaultParseOptions;\n\n if (!options.map) {\n return input.filter(isNonEmptyString).map(function (str) {\n return parseString(str, options);\n });\n } else {\n var cookies = {};\n return input.filter(isNonEmptyString).reduce(function (cookies, str) {\n var cookie = parseString(str, options);\n cookies[cookie.name] = cookie;\n return cookies;\n }, cookies);\n }\n}\n\n/*\n Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas\n that are within a single set-cookie field-value, such as in the Expires portion.\n\n This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2\n Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128\n React Native's fetch does this for *every* header, including set-cookie.\n\n Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25\n Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation\n*/\nfunction splitCookiesString(cookiesString) {\n if (Array.isArray(cookiesString)) {\n return cookiesString;\n }\n if (typeof cookiesString !== \"string\") {\n return [];\n }\n\n var cookiesStrings = [];\n var pos = 0;\n var start;\n var ch;\n var lastComma;\n var nextStart;\n var cookiesSeparatorFound;\n\n function skipWhitespace() {\n while (pos < cookiesString.length && /\\s/.test(cookiesString.charAt(pos))) {\n pos += 1;\n }\n return pos < cookiesString.length;\n }\n\n function notSpecialChar() {\n ch = cookiesString.charAt(pos);\n\n return ch !== \"=\" && ch !== \";\" && ch !== \",\";\n }\n\n while (pos < cookiesString.length) {\n start = pos;\n cookiesSeparatorFound = false;\n\n while (skipWhitespace()) {\n ch = cookiesString.charAt(pos);\n if (ch === \",\") {\n // ',' is a cookie separator if we have later first '=', not ';' or ','\n lastComma = pos;\n pos += 1;\n\n skipWhitespace();\n nextStart = pos;\n\n while (pos < cookiesString.length && notSpecialChar()) {\n pos += 1;\n }\n\n // currently special character\n if (pos < cookiesString.length && cookiesString.charAt(pos) === \"=\") {\n // we found cookies separator\n cookiesSeparatorFound = true;\n // pos is inside the next cookie, so back up and return it.\n pos = nextStart;\n cookiesStrings.push(cookiesString.substring(start, lastComma));\n start = pos;\n } else {\n // in param ',' or param separator ';',\n // we continue from that comma\n pos = lastComma + 1;\n }\n } else {\n pos += 1;\n }\n }\n\n if (!cookiesSeparatorFound || pos >= cookiesString.length) {\n cookiesStrings.push(cookiesString.substring(start, cookiesString.length));\n }\n }\n\n return cookiesStrings;\n}\n\nmodule.exports = parse;\nmodule.exports.parse = parse;\nmodule.exports.parseString = parseString;\nmodule.exports.splitCookiesString = splitCookiesString;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.areCookiesEqual = exports.hasSameProperties = exports.createCookie = exports.isBrowser = void 0;\n/**\n * Tells whether we are in a browser or server.\n */\nfunction isBrowser() {\n return typeof window !== 'undefined';\n}\nexports.isBrowser = isBrowser;\n/**\n * Create an instance of the Cookie interface\n */\nfunction createCookie(name, value, options) {\n var sameSite = options.sameSite;\n if (sameSite === true) {\n sameSite = 'strict';\n }\n if (sameSite === undefined || sameSite === false) {\n sameSite = 'lax';\n }\n var cookieToSet = __assign(__assign({}, options), { sameSite: sameSite });\n delete cookieToSet.encode;\n return __assign({ name: name, value: value }, cookieToSet);\n}\nexports.createCookie = createCookie;\n/**\n * Tells whether given objects have the same properties.\n */\nfunction hasSameProperties(a, b) {\n var aProps = Object.getOwnPropertyNames(a);\n var bProps = Object.getOwnPropertyNames(b);\n if (aProps.length !== bProps.length) {\n return false;\n }\n for (var i = 0; i < aProps.length; i++) {\n var propName = aProps[i];\n if (a[propName] !== b[propName]) {\n return false;\n }\n }\n return true;\n}\nexports.hasSameProperties = hasSameProperties;\n/**\n * Compare the cookie and return true if the cookies have equivalent\n * options and the cookies would be overwritten in the browser storage.\n *\n * @param a first Cookie for comparison\n * @param b second Cookie for comparison\n */\nfunction areCookiesEqual(a, b) {\n var sameSiteSame = a.sameSite === b.sameSite;\n if (typeof a.sameSite === 'string' && typeof b.sameSite === 'string') {\n sameSiteSame = a.sameSite.toLowerCase() === b.sameSite.toLowerCase();\n }\n return (hasSameProperties(__assign(__assign({}, a), { sameSite: undefined }), __assign(__assign({}, b), { sameSite: undefined })) && sameSiteSame);\n}\nexports.areCookiesEqual = areCookiesEqual;\n/* Functions */\n//# sourceMappingURL=utils.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.destroyCookie = exports.setCookie = exports.parseCookies = void 0;\nvar cookie = require(\"cookie\");\nvar setCookieParser = require(\"set-cookie-parser\");\nvar utils_1 = require(\"./utils\");\n/**\n * Parses cookies.\n *\n * @param ctx NextJS page or API context, express context, null or undefined.\n * @param options Options that we pass down to `cookie` library.\n */\nfunction parseCookies(ctx, options) {\n var _a, _b;\n if ((_b = (_a = ctx === null || ctx === void 0 ? void 0 : ctx.req) === null || _a === void 0 ? void 0 : _a.headers) === null || _b === void 0 ? void 0 : _b.cookie) {\n return cookie.parse(ctx.req.headers.cookie, options);\n }\n if (utils_1.isBrowser()) {\n return cookie.parse(document.cookie, options);\n }\n return {};\n}\nexports.parseCookies = parseCookies;\n/**\n * Sets a cookie.\n *\n * @param ctx NextJS page or API context, express context, null or undefined.\n * @param name The name of your cookie.\n * @param value The value of your cookie.\n * @param options Options that we pass down to `cookie` library.\n */\nfunction setCookie(ctx, name, value, options) {\n var _a, _b;\n if (options === void 0) { options = {}; }\n // SSR\n if (((_a = ctx === null || ctx === void 0 ? void 0 : ctx.res) === null || _a === void 0 ? void 0 : _a.getHeader) && ctx.res.setHeader) {\n // Check if response has finished and warn about it.\n if ((_b = ctx === null || ctx === void 0 ? void 0 : ctx.res) === null || _b === void 0 ? void 0 : _b.finished) {\n console.warn(\"Not setting \\\"\" + name + \"\\\" cookie. Response has finished.\");\n console.warn(\"You should set cookie before res.send()\");\n return {};\n }\n /**\n * Load existing cookies from the header and parse them.\n */\n var cookies = ctx.res.getHeader('Set-Cookie') || [];\n if (typeof cookies === 'string')\n cookies = [cookies];\n if (typeof cookies === 'number')\n cookies = [];\n /**\n * Parse cookies but ignore values - we've already encoded\n * them in the previous call.\n */\n var parsedCookies = setCookieParser.parse(cookies, {\n decodeValues: false,\n });\n /**\n * We create the new cookie and make sure that none of\n * the existing cookies match it.\n */\n var newCookie_1 = utils_1.createCookie(name, value, options);\n var cookiesToSet_1 = [];\n parsedCookies.forEach(function (parsedCookie) {\n if (!utils_1.areCookiesEqual(parsedCookie, newCookie_1)) {\n /**\n * We serialize the cookie back to the original format\n * if it isn't the same as the new one.\n */\n var serializedCookie = cookie.serialize(parsedCookie.name, parsedCookie.value, __assign({ \n // we prevent reencoding by default, but you might override it\n encode: function (val) { return val; } }, parsedCookie));\n cookiesToSet_1.push(serializedCookie);\n }\n });\n cookiesToSet_1.push(cookie.serialize(name, value, options));\n // Update the header.\n ctx.res.setHeader('Set-Cookie', cookiesToSet_1);\n }\n // Browser\n if (utils_1.isBrowser()) {\n if (options && options.httpOnly) {\n throw new Error('Can not set a httpOnly cookie in the browser.');\n }\n document.cookie = cookie.serialize(name, value, options);\n }\n return {};\n}\nexports.setCookie = setCookie;\n/**\n * Destroys a cookie with a particular name.\n *\n * @param ctx NextJS page or API context, express context, null or undefined.\n * @param name Cookie name.\n * @param options Options that we pass down to `cookie` library.\n */\nfunction destroyCookie(ctx, name, options) {\n /**\n * We forward the request destroy to setCookie function\n * as it is the same function with modified maxAge value.\n */\n return setCookie(ctx, name, '', __assign(__assign({}, (options || {})), { maxAge: -1 }));\n}\nexports.destroyCookie = destroyCookie;\n/* Utility Exports */\nexports.default = {\n set: setCookie,\n get: parseCookies,\n destroy: destroyCookie,\n};\n//# sourceMappingURL=index.js.map","import { __assign, __awaiter, __generator } from \"tslib\";\nimport React, { createContext, useContext, useEffect, useMemo, useState, } from 'react';\nimport { parseCookies } from 'nookies';\nimport { getUntilRefreshTokenTime, getUserDataAndTokensFromCookies, } from '../helpers';\nvar AuthContext = createContext({\n user: null,\n accessToken: undefined\n});\nvar useAuthContext = function () { return useContext(AuthContext); };\nvar AuthProvider = function (_a) {\n var passedUser = _a.user, authConfig = _a.authConfig, children = _a.children;\n // persists the data initialized server-side on the client\n var memoizedAuthConfig = useMemo(function () {\n return {\n tokenNames: authConfig.tokenNames,\n triggerRefreshTokenApiUrl: authConfig.triggerRefreshTokenApiUrl,\n subMinutesFromExpirationTime: authConfig.subMinutesFromExpirationTime,\n userDataCookieName: authConfig.userDataCookieName\n };\n }, []);\n var triggerRefreshTokenApiUrl = memoizedAuthConfig.triggerRefreshTokenApiUrl, subMinutesFromExpirationTime = memoizedAuthConfig.subMinutesFromExpirationTime;\n var errorHandler = authConfig.errorHandler;\n var cookies = parseCookies();\n var _b = getUserDataAndTokensFromCookies({\n cookies: cookies,\n authConfig: __assign(__assign({}, memoizedAuthConfig), { errorHandler: errorHandler })\n }), cookieUser = _b.user, refreshToken = _b.refreshToken, cookieAccessToken = _b.accessToken;\n var memoizedUser = useMemo(function () {\n if (!passedUser) {\n return cookieUser;\n }\n return passedUser;\n }, [passedUser, cookieUser]);\n var _c = useState(memoizedUser), user = _c[0], setUser = _c[1];\n var _d = useState(cookieAccessToken), accessToken = _d[0], setAccessToken = _d[1];\n useEffect(function () {\n var untilRefreshTokenTime = getUntilRefreshTokenTime(accessToken, subMinutesFromExpirationTime);\n if (!refreshToken) {\n return;\n }\n if (untilRefreshTokenTime > 0) {\n // Call the API by interval in order to trigger middleware to ensure token freshness on client side\n var interval_1 = setInterval(function () { return __awaiter(void 0, void 0, void 0, function () {\n var response, updatedCookies, _a, refreshedUser, refreshedAccessToken, error_1;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _b.trys.push([0, 2, , 3]);\n return [4 /*yield*/, fetch(triggerRefreshTokenApiUrl)];\n case 1:\n response = _b.sent();\n if (!response.ok) {\n errorHandler &&\n errorHandler(new Error('Failed to trigger refresh token api'), {\n extra: { response: response }\n });\n }\n updatedCookies = parseCookies();\n _a = getUserDataAndTokensFromCookies({\n cookies: updatedCookies,\n authConfig: __assign(__assign({}, memoizedAuthConfig), { errorHandler: errorHandler })\n }), refreshedUser = _a.user, refreshedAccessToken = _a.accessToken;\n setUser(refreshedUser);\n setAccessToken(refreshedAccessToken);\n return [3 /*break*/, 3];\n case 2:\n error_1 = _b.sent();\n errorHandler && errorHandler(error_1);\n return [3 /*break*/, 3];\n case 3: return [2 /*return*/];\n }\n });\n }); }, untilRefreshTokenTime);\n return function () { return clearInterval(interval_1); };\n }\n }, [refreshToken, accessToken, setUser, setAccessToken]);\n return (React.createElement(AuthContext.Provider, { value: {\n user: user,\n accessToken: accessToken\n } }, children));\n};\nexport { AuthContext, AuthProvider, useAuthContext };\n//# sourceMappingURL=Auth.js.map"],"names":["__assign","parse","decode","tryDecode","cookie","setCookieModule","this","require$$0","require$$1","require$$2","parseCookies"],"mappings":"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","x_google_ignoreList":[0,1,4,5,6,7]}
|
|
@@ -61,7 +61,10 @@ export declare const getUserDataAsObject: ({ request, userDataCookieName, }: {
|
|
|
61
61
|
request: NextRequest;
|
|
62
62
|
userDataCookieName: string;
|
|
63
63
|
}) => any;
|
|
64
|
-
export declare const
|
|
64
|
+
export declare const deriveUserAndTokenFromRequest: ({ request, authConfig, }: {
|
|
65
65
|
request: NextApiRequest | http.IncomingMessage;
|
|
66
66
|
authConfig: AuthConfig;
|
|
67
|
-
}) =>
|
|
67
|
+
}) => {
|
|
68
|
+
user: MergedUser | null;
|
|
69
|
+
accessToken: string | undefined | null;
|
|
70
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -63,10 +63,13 @@ declare const getUserDataAsObject: ({ request, userDataCookieName, }: {
|
|
|
63
63
|
request: NextRequest;
|
|
64
64
|
userDataCookieName: string;
|
|
65
65
|
}) => any;
|
|
66
|
-
declare const
|
|
66
|
+
declare const deriveUserAndTokenFromRequest: ({ request, authConfig, }: {
|
|
67
67
|
request: NextApiRequest | http.IncomingMessage;
|
|
68
68
|
authConfig: AuthConfig;
|
|
69
|
-
}) =>
|
|
69
|
+
}) => {
|
|
70
|
+
user: MergedUser | null;
|
|
71
|
+
accessToken: string | undefined | null;
|
|
72
|
+
};
|
|
70
73
|
|
|
71
74
|
interface AuthConfigMiddleware extends AuthConfig {
|
|
72
75
|
refreshTokenApiUrl: string;
|
|
@@ -94,4 +97,4 @@ declare const AuthContext: React.Context<Context>;
|
|
|
94
97
|
declare const useAuthContext: () => Context;
|
|
95
98
|
declare const AuthProvider: FC<PropsWithChildren<AuthProviderProps>>;
|
|
96
99
|
|
|
97
|
-
export { type AuthConfig, type AuthConfigMiddleware, type AuthConfigProvider, AuthContext, AuthProvider, MappedUserType, type MergedUser, type TokenNames, type User, type UserData, UserType, decodeJWT,
|
|
100
|
+
export { type AuthConfig, type AuthConfigMiddleware, type AuthConfigProvider, AuthContext, AuthProvider, MappedUserType, type MergedUser, type TokenNames, type User, type UserData, UserType, decodeJWT, deriveUserAndTokenFromRequest, ensureTokenFreshness, getAccessTokenExpirationTime, getUntilRefreshTokenTime, getUserDataAndTokensFromCookies, getUserDataAsObject, isAccessTokenExpired, mapLegacyUserType, useAuthContext };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smg-automotive/auth",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "SMG Automotive auth package",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -35,19 +35,19 @@
|
|
|
35
35
|
"@smg-automotive/eslint-config": "4.0.12",
|
|
36
36
|
"@testing-library/jest-dom": "6.1.3",
|
|
37
37
|
"@testing-library/react": "14.0.0",
|
|
38
|
-
"@testing-library/user-event": "14.
|
|
38
|
+
"@testing-library/user-event": "14.5.1",
|
|
39
39
|
"@types/cookie": "0.5.2",
|
|
40
|
-
"@types/jest": "29.5.
|
|
41
|
-
"jest": "29.
|
|
42
|
-
"jest-environment-jsdom": "29.
|
|
40
|
+
"@types/jest": "29.5.5",
|
|
41
|
+
"jest": "29.7.0",
|
|
42
|
+
"jest-environment-jsdom": "29.7.0",
|
|
43
43
|
"next": "13.4.19",
|
|
44
44
|
"react": "18.2.0",
|
|
45
45
|
"react-dom": "18.2.0",
|
|
46
46
|
"rimraf": "5.0.1",
|
|
47
|
-
"rollup": "3.29.
|
|
47
|
+
"rollup": "3.29.2",
|
|
48
48
|
"rollup-plugin-dts": "6.0.2",
|
|
49
49
|
"rollup-plugin-peer-deps-external": "2.2.4",
|
|
50
|
-
"semantic-release": "
|
|
50
|
+
"semantic-release": "22.0.0",
|
|
51
51
|
"ts-jest": "29.1.1",
|
|
52
52
|
"ts-node": "10.9.1",
|
|
53
53
|
"typescript": "4.9.5"
|