@xemahq/platform-common 0.2.12 → 0.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/nestjs/jwks/issuer-metadata-resolver.d.ts +7 -0
- package/dist/nestjs/jwks/issuer-metadata-resolver.d.ts.map +1 -0
- package/dist/nestjs/jwks/issuer-metadata-resolver.js +36 -0
- package/dist/nestjs/jwks/issuer-metadata-resolver.js.map +1 -0
- package/dist/nestjs/jwt-verification.guard.d.ts +1 -0
- package/dist/nestjs/jwt-verification.guard.d.ts.map +1 -1
- package/dist/nestjs/jwt-verification.guard.js +13 -1
- package/dist/nestjs/jwt-verification.guard.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issuer-metadata-resolver.d.ts","sourceRoot":"","sources":["../../../src/nestjs/jwks/issuer-metadata-resolver.ts"],"names":[],"mappings":"AAuBA,qBAAa,sBAAsB;IAOrB,OAAO,CAAC,QAAQ,CAAC,UAAU;IANvC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6D;gBAMtD,UAAU,GAAE,MAAkB;IAOrD,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAgC5D"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IssuerMetadataResolver = void 0;
|
|
4
|
+
const jwks_verifier_1 = require("./jwks-verifier");
|
|
5
|
+
class IssuerMetadataResolver {
|
|
6
|
+
cacheTtlMs;
|
|
7
|
+
cache = new Map();
|
|
8
|
+
constructor(cacheTtlMs = 3_600_000) {
|
|
9
|
+
this.cacheTtlMs = cacheTtlMs;
|
|
10
|
+
}
|
|
11
|
+
async resolveJwksUri(discoveryUrl) {
|
|
12
|
+
const cached = this.cache.get(discoveryUrl);
|
|
13
|
+
if (cached && Date.now() - cached.fetchedAt < this.cacheTtlMs) {
|
|
14
|
+
return cached.jwksUri;
|
|
15
|
+
}
|
|
16
|
+
let response;
|
|
17
|
+
try {
|
|
18
|
+
response = await fetch(discoveryUrl);
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
22
|
+
throw new jwks_verifier_1.JwksVerificationError(`Failed to reach OIDC discovery endpoint ${discoveryUrl}: ${msg}`);
|
|
23
|
+
}
|
|
24
|
+
if (!response.ok) {
|
|
25
|
+
throw new jwks_verifier_1.JwksVerificationError(`Failed to fetch OIDC discovery from ${discoveryUrl}: ${response.status}`);
|
|
26
|
+
}
|
|
27
|
+
const doc = (await response.json());
|
|
28
|
+
if (typeof doc.jwks_uri !== 'string' || doc.jwks_uri.length === 0) {
|
|
29
|
+
throw new jwks_verifier_1.JwksVerificationError(`OIDC discovery at ${discoveryUrl} did not provide a jwks_uri`);
|
|
30
|
+
}
|
|
31
|
+
this.cache.set(discoveryUrl, { jwksUri: doc.jwks_uri, fetchedAt: Date.now() });
|
|
32
|
+
return doc.jwks_uri;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.IssuerMetadataResolver = IssuerMetadataResolver;
|
|
36
|
+
//# sourceMappingURL=issuer-metadata-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issuer-metadata-resolver.js","sourceRoot":"","sources":["../../../src/nestjs/jwks/issuer-metadata-resolver.ts"],"names":[],"mappings":";;;AAAA,mDAAwD;AAuBxD,MAAa,sBAAsB;IAOJ;IANZ,KAAK,GAAG,IAAI,GAAG,EAAkD,CAAC;IAMnF,YAA6B,aAAqB,SAAS;QAA9B,eAAU,GAAV,UAAU,CAAoB;IAAG,CAAC;IAO/D,KAAK,CAAC,cAAc,CAAC,YAAoB;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAC9D,OAAO,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,IAAI,QAAkB,CAAC;QACvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEnE,MAAM,IAAI,qCAAqB,CAC7B,2CAA2C,YAAY,KAAK,GAAG,EAAE,CAClE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,qCAAqB,CAC7B,uCAAuC,YAAY,KAAK,QAAQ,CAAC,MAAM,EAAE,CAC1E,CAAC;QACJ,CAAC;QAED,MAAM,GAAG,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA2B,CAAC;QAC9D,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,qCAAqB,CAC7B,qBAAqB,YAAY,6BAA6B,CAC/D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAC/E,OAAO,GAAG,CAAC,QAAQ,CAAC;IACtB,CAAC;CACF;AA9CD,wDA8CC"}
|
|
@@ -4,6 +4,7 @@ export declare class JwtVerificationGuard implements CanActivate {
|
|
|
4
4
|
private readonly authOptions?;
|
|
5
5
|
private readonly logger;
|
|
6
6
|
private readonly jwks;
|
|
7
|
+
private readonly issuerMetadata;
|
|
7
8
|
private static readonly SINGLE_REALM_CACHE_KEY;
|
|
8
9
|
private multiRealmConfig;
|
|
9
10
|
private resolvingConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-verification.guard.d.ts","sourceRoot":"","sources":["../../src/nestjs/jwt-verification.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,gBAAgB,EAKjB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"jwt-verification.guard.d.ts","sourceRoot":"","sources":["../../src/nestjs/jwt-verification.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,WAAW,EACX,gBAAgB,EAKjB,MAAM,gBAAgB,CAAC;AAKxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AA0CpE,qBACa,oBAAqB,YAAW,WAAW;IAmCpD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAlC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAShE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAMlD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgC;IAG/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAgB;IAG9D,OAAO,CAAC,gBAAgB,CAGR;IAEhB,OAAO,CAAC,eAAe,CAGC;gBAKL,WAAW,CAAC,EAAE,iBAAiB,YAAA;IAG5C,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;YAwChD,WAAW;IAsBzB,OAAO,CAAC,aAAa;YAmBP,cAAc;YAed,gBAAgB;YAkDhB,iBAAiB;YA0CjB,uBAAuB;YA4CvB,sBAAsB;YAQtB,oBAAoB;IAclC,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,YAAY;CAYrB"}
|
|
@@ -20,6 +20,7 @@ const public_decorator_1 = require("./public.decorator");
|
|
|
20
20
|
const auth_module_options_1 = require("./auth/auth-module-options");
|
|
21
21
|
const request_context_1 = require("../lib/request-context");
|
|
22
22
|
const jwks_verifier_1 = require("./jwks/jwks-verifier");
|
|
23
|
+
const issuer_metadata_resolver_1 = require("./jwks/issuer-metadata-resolver");
|
|
23
24
|
const PUBLIC_PATH_PREFIXES = ['/health', '/api/docs', '/api/openapi.json'];
|
|
24
25
|
const PUBLIC_WEBHOOK_PREFIX = '/webhooks';
|
|
25
26
|
let JwtVerificationGuard = class JwtVerificationGuard {
|
|
@@ -27,6 +28,7 @@ let JwtVerificationGuard = class JwtVerificationGuard {
|
|
|
27
28
|
authOptions;
|
|
28
29
|
logger = new common_1.Logger(JwtVerificationGuard_1.name);
|
|
29
30
|
jwks = new jwks_verifier_1.JwksVerifier(600_000);
|
|
31
|
+
issuerMetadata = new issuer_metadata_resolver_1.IssuerMetadataResolver();
|
|
30
32
|
static SINGLE_REALM_CACHE_KEY = '__single__';
|
|
31
33
|
multiRealmConfig = null;
|
|
32
34
|
resolvingConfig = null;
|
|
@@ -110,7 +112,17 @@ let JwtVerificationGuard = class JwtVerificationGuard {
|
|
|
110
112
|
if (!validIssuers.includes(payload.iss) && !payload.iss.endsWith(`/realms/${realmName}`)) {
|
|
111
113
|
throw new common_1.UnauthorizedException('Invalid token issuer');
|
|
112
114
|
}
|
|
113
|
-
const
|
|
115
|
+
const discoveryUrl = `${config.keycloakBaseUrls[0]}/realms/${realmName}/.well-known/openid-configuration`;
|
|
116
|
+
let jwksUrl;
|
|
117
|
+
try {
|
|
118
|
+
jwksUrl = await this.issuerMetadata.resolveJwksUri(discoveryUrl);
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
if (error instanceof jwks_verifier_1.JwksVerificationError) {
|
|
122
|
+
throw new common_1.UnauthorizedException(error.message);
|
|
123
|
+
}
|
|
124
|
+
throw error;
|
|
125
|
+
}
|
|
114
126
|
await this.verifyWithJwks(token, realmName, jwksUrl);
|
|
115
127
|
}
|
|
116
128
|
async verifySingleRealm(token, payload) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-verification.guard.js","sourceRoot":"","sources":["../../src/nestjs/jwt-verification.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAQwB;AACxB,6DAA6D;AAE7D,yDAAmD;AACnD,oEAAiE;AAEjE,4DAAyD;AAEzD,wDAA2E;
|
|
1
|
+
{"version":3,"file":"jwt-verification.guard.js","sourceRoot":"","sources":["../../src/nestjs/jwt-verification.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAQwB;AACxB,6DAA6D;AAE7D,yDAAmD;AACnD,oEAAiE;AAEjE,4DAAyD;AAEzD,wDAA2E;AAC3E,8EAAyE;AAazE,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;AAC3E,MAAM,qBAAqB,GAAG,WAAW,CAAC;AAyBnC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;;IAmCZ;IAlCF,MAAM,GAAG,IAAI,eAAM,CAAC,sBAAoB,CAAC,IAAI,CAAC,CAAC;IAS/C,IAAI,GAAG,IAAI,4BAAY,CAAC,OAAO,CAAC,CAAC;IAMjC,cAAc,GAAG,IAAI,iDAAsB,EAAE,CAAC;IAGvD,MAAM,CAAU,sBAAsB,GAAG,YAAY,CAAC;IAGtD,gBAAgB,GAGb,IAAI,CAAC;IAER,eAAe,GAGJ,IAAI,CAAC;IAExB,YAGmB,WAA+B;QAA/B,gBAAW,GAAX,WAAW,CAAoB;IAC/C,CAAC;IAEJ,KAAK,CAAC,WAAW,CAAC,OAAyB;QAEzC,MAAM,QAAQ,GAAG,IAAA,0CAAqB,EAAU,gCAAa,EAAE;YAC7D,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,CAAC;QACH,IAAI,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAW,CAAC;QAG7D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9D,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAEzC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QAEjD,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,8BAAqB,CAC7B,yCAAyC,CAC1C,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAG9C,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE5C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,8BAAqB;gBAAE,MAAM,KAAK,CAAC;YAExD,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACtE,MAAM,IAAI,8BAAqB,CAAC,eAAe,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAa;QACrC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAE9C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAExD,IAAI,UAAU,EAAE,CAAC;YAEf,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC1D,CAAC;aAAM,CAAC;YAEN,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAQO,aAAa,CAAC,KAAa;QAIjC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,qCAAqB,EAAE,CAAC;gBAC3C,MAAM,IAAI,8BAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAOO,KAAK,CAAC,cAAc,CAC1B,KAAa,EACb,QAAgB,EAChB,OAAe;QAEf,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,qCAAqB,EAAE,CAAC;gBAC3C,MAAM,IAAI,8BAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAC5B,KAAa,EACb,OAAmB,EACnB,MAAkE;QAElE,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,8BAAqB,CAAC,qCAAqC,CAAC,CAAC;QACzE,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,8BAAqB,CAC7B,0CAA0C,CAC3C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,8BAAqB,CAAC,UAAU,SAAS,kBAAkB,CAAC,CAAC;QACzE,CAAC;QAKD,MAAM,YAAY,GAAG,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAC9C,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,WAAW,SAAS,EAAE,CACxC,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,SAAS,EAAE,CAAC,EAAE,CAAC;YACzF,MAAM,IAAI,8BAAqB,CAAC,sBAAsB,CAAC,CAAC;QAC1D,CAAC;QAQD,MAAM,YAAY,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,SAAS,mCAAmC,CAAC;QAC1G,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;QACnE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,qCAAqB,EAAE,CAAC;gBAC3C,MAAM,IAAI,8BAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,KAAa,EACb,OAAmB;QAGnB,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;QAChD,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACjB,MAAM,IAAI,8BAAqB,CAAC,qCAAqC,CAAC,CAAC;YACzE,CAAC;YACD,MAAM,cAAc,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YAGtE,MAAM,aAAa,GAAG;gBACpB,GAAG,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;oBACpC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;oBAC9C,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;aACpB,CAAC;YACF,MAAM,aAAa,GACjB,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;gBACpC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,GAAI,CAAC,QAAQ,CAAC,MAAO,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,8BAAqB,CAAC,sBAAsB,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QAGD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,IAAI,CAAC,cAAc,CACvB,KAAK,EACL,sBAAoB,CAAC,sBAAsB,EAC3C,OAAO,CACR,CAAC;IACJ,CAAC;IAIO,KAAK,CAAC,uBAAuB;QAKnC,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAGxD,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC;QAEtD,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,IAAI,EAAE;YACjC,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBAC5D,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAE3D,IAAI,eAAe,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnD,MAAM,gBAAgB,GAAG,eAAe;yBACrC,KAAK,CAAC,GAAG,CAAC;yBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;oBAE3C,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAC;oBAE5C,IAAI,CAAC,gBAAgB,GAAG;wBACtB,gBAAgB;wBAChB,aAAa,EAAE,IAAI,GAAG,CAAC,gBAAgB,CAAC;qBACzC,CAAC;oBACF,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,qCAAqC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAChH,CAAC;oBACF,OAAO,IAAI,CAAC,gBAAgB,CAAC;gBAC/B,CAAC;gBAKD,OAAO,IAAI,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,sBAAsB;QAClC,IAAI,IAAI,CAAC,WAAW,EAAE,eAAe;YAAE,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;QAC/E,IAAI,IAAI,CAAC,WAAW,EAAE,uBAAuB,EAAE,CAAC;YAC9C,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,uBAAuB,EAAE,CAAC,IAAI,SAAS,CAAC;QACzE,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,KAAK,CAAC,oBAAoB;QAChC,IAAI,IAAI,CAAC,WAAW,EAAE,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjF,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,EAAE,qBAAqB,EAAE,CAAC;YAC5C,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAMO,oBAAoB,CAAC,gBAA0B;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;QAC3C,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;YACjD,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7C,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAIO,sBAAsB,CAAC,MAAc;QAE3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACjD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC5B,CAAC;IAEO,oBAAoB,CAAC,OAAgB,EAAE,OAAmB;QAChE,IAAI,CAAC,OAAO,CAAC,GAAG;YAAE,OAAO;QACzB,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3D,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,MAAM,GAAG,GAAI,OAA8C,CACzD,iCAAe,CACc,CAAC;QAChC,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,IAAY;QAC/B,KAAK,MAAM,MAAM,IAAI,oBAAoB,EAAE,CAAC;YAC1C,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC;gBAAE,OAAO,IAAI,CAAC;QACpE,CAAC;QACD,IACE,IAAI,KAAK,qBAAqB;YAC9B,IAAI,CAAC,UAAU,CAAC,qBAAqB,GAAG,GAAG,CAAC,EAC5C,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;AA/UU,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;IAkCR,WAAA,IAAA,iBAAQ,GAAE,CAAA;IACV,WAAA,IAAA,eAAM,EAAC,yCAAmB,CAAC,CAAA;;GAlCnB,oBAAoB,CAgVhC"}
|