@pristine-ts/security 2.0.2 → 2.0.4

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.
@@ -20,7 +20,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
20
20
  });
21
21
  };
22
22
  import { inject, injectable, injectAll } from "tsyringe";
23
- import { moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
23
+ import { moduleScoped, Request, ServiceDefinitionTagEnum, tag, traced } from "@pristine-ts/common";
24
24
  import { AuthenticatorFactory } from "../factories/authenticator.factory";
25
25
  import { SecurityModuleKeyname } from "../security.module.keyname";
26
26
  import { authenticatorMetadataKeyname } from "../decorators/authenticator.decorator";
@@ -35,11 +35,10 @@ let AuthenticationManager = class AuthenticationManager {
35
35
  * @param logHandler The log handler to output logs.
36
36
  * @param authenticatorFactory The factory to create the authenticator.
37
37
  */
38
- constructor(identityProviders, logHandler, authenticatorFactory, breadcrumbHandler) {
38
+ constructor(identityProviders, logHandler, authenticatorFactory) {
39
39
  this.identityProviders = identityProviders;
40
40
  this.logHandler = logHandler;
41
41
  this.authenticatorFactory = authenticatorFactory;
42
- this.breadcrumbHandler = breadcrumbHandler;
43
42
  }
44
43
  /**
45
44
  * Authenticates a request by providing the identity that made the request.
@@ -49,10 +48,6 @@ let AuthenticationManager = class AuthenticationManager {
49
48
  */
50
49
  authenticate(request, routeContext, container) {
51
50
  return __awaiter(this, void 0, void 0, function* () {
52
- this.breadcrumbHandler.add(request.id, `${SecurityModuleKeyname}:authentication.manager:authenticate:enter`, {
53
- request,
54
- routeContext
55
- });
56
51
  if (!routeContext || routeContext[authenticatorMetadataKeyname] === undefined) {
57
52
  return undefined;
58
53
  }
@@ -73,7 +68,6 @@ let AuthenticationManager = class AuthenticationManager {
73
68
  }
74
69
  catch (e) {
75
70
  this.logHandler.error("AuthenticationManager: Error authenticating the request.", {
76
- eventId: request.id,
77
71
  extra: { error: e }
78
72
  });
79
73
  throw e;
@@ -82,8 +76,6 @@ let AuthenticationManager = class AuthenticationManager {
82
76
  highlights: {
83
77
  identity,
84
78
  },
85
- breadcrumb: `${SecurityModuleKeyname}:authentication.manager:authenticate:return`,
86
- eventId: request.id,
87
79
  extra: {
88
80
  request,
89
81
  routeContext,
@@ -93,14 +85,19 @@ let AuthenticationManager = class AuthenticationManager {
93
85
  });
94
86
  }
95
87
  };
88
+ __decorate([
89
+ traced(),
90
+ __metadata("design:type", Function),
91
+ __metadata("design:paramtypes", [Request, Object, Object]),
92
+ __metadata("design:returntype", Promise)
93
+ ], AuthenticationManager.prototype, "authenticate", null);
96
94
  AuthenticationManager = __decorate([
97
95
  moduleScoped(SecurityModuleKeyname),
98
96
  tag("AuthenticationManagerInterface"),
99
97
  injectable(),
100
98
  __param(0, injectAll(ServiceDefinitionTagEnum.IdentityProvider, { isOptional: true })),
101
99
  __param(1, inject("LogHandlerInterface")),
102
- __param(3, inject("BreadcrumbHandlerInterface")),
103
- __metadata("design:paramtypes", [Array, Object, AuthenticatorFactory, Object])
100
+ __metadata("design:paramtypes", [Array, Object, AuthenticatorFactory])
104
101
  ], AuthenticationManager);
105
102
  export { AuthenticationManager };
106
103
  //# sourceMappingURL=authentication.manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.manager.js","sourceRoot":"","sources":["../../../../src/managers/authentication.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAsB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAC,MAAM,UAAU,CAAC;AAE5E,OAAO,EAAoB,YAAY,EAAW,wBAAwB,EAAE,GAAG,EAAC,MAAM,qBAAqB,CAAC;AAI5G,OAAO,EAAC,oBAAoB,EAAC,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAC,4BAA4B,EAAC,MAAM,uCAAuC,CAAC;AAEnF;;;GAGG;AAII,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEhC;;;;;OAKG;IACH,YAC6F,iBAA8C,EACzF,UAA+B,EAC9D,oBAA0C,EACJ,iBAA6C;QAHT,sBAAiB,GAAjB,iBAAiB,CAA6B;QACzF,eAAU,GAAV,UAAU,CAAqB;QAC9D,yBAAoB,GAApB,oBAAoB,CAAsB;QACJ,sBAAiB,GAAjB,iBAAiB,CAA4B;IACtG,CAAC;IAED;;;;;OAKG;IACU,YAAY,CAAC,OAAgB,EAAE,YAAiB,EAAE,SAA8B;;YAC3F,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,qBAAqB,4CAA4C,EAAE;gBAC3G,OAAO;gBACP,YAAY;aACb,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,4BAA4B,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9E,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,aAAa,GAAG,YAAY,CAAC,4BAA4B,CAAC,CAAC;YAEjE,IAAI,QAAuC,CAAC;YAE5C,MAAM,oBAAoB,GAAkC,aAAa,CAAC;YAE1E,IAAI,CAAC;gBACH,MAAM,yBAAyB,GAA2B,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;gBAEjI,MAAM,yBAAyB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;gBAEjE,QAAQ,GAAG,MAAM,yBAAyB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAEjE,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAC1B,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBAED,mCAAmC;gBACnC,KAAK,MAAM,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACtD,QAAQ,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACtD,CAAC;YAEH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,0DAA0D,EAAE;oBAChF,OAAO,EAAE,OAAO,CAAC,EAAE;oBACnB,KAAK,EAAE,EAAC,KAAK,EAAE,CAAC,EAAC;iBAClB,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC;YACV,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kCAAkC,EAAE;gBACvD,UAAU,EAAE;oBACV,QAAQ;iBACT;gBACD,UAAU,EAAE,GAAG,qBAAqB,6CAA6C;gBACjF,OAAO,EAAE,OAAO,CAAC,EAAE;gBACnB,KAAK,EAAE;oBACL,OAAO;oBACP,YAAY;iBACb;aACF,CAAC,CAAA;YACF,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;CACF,CAAA;AAzEY,qBAAqB;IAHjC,YAAY,CAAC,qBAAqB,CAAC;IACnC,GAAG,CAAC,gCAAgC,CAAC;IACrC,UAAU,EAAE;IAUR,WAAA,SAAS,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC,CAAA;IACxE,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAE7B,WAAA,MAAM,CAAC,4BAA4B,CAAC,CAAA;oDADE,oBAAoB;GAXlD,qBAAqB,CAyEjC"}
1
+ {"version":3,"file":"authentication.manager.js","sourceRoot":"","sources":["../../../../src/managers/authentication.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAsB,MAAM,EAAE,UAAU,EAAE,SAAS,EAAC,MAAM,UAAU,CAAC;AAE5E,OAAO,EAAoB,YAAY,EAAE,OAAO,EAAE,wBAAwB,EAAE,GAAG,EAAE,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAIpH,OAAO,EAAC,oBAAoB,EAAC,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAC,4BAA4B,EAAC,MAAM,uCAAuC,CAAC;AAEnF;;;GAGG;AAII,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAEhC;;;;;OAKG;IACH,YAC6F,iBAA8C,EACzF,UAA+B,EAC9D,oBAA0C;QAFgC,sBAAiB,GAAjB,iBAAiB,CAA6B;QACzF,eAAU,GAAV,UAAU,CAAqB;QAC9D,yBAAoB,GAApB,oBAAoB,CAAsB;IAC7D,CAAC;IAED;;;;;OAKG;IAEU,YAAY,CAAC,OAAgB,EAAE,YAAiB,EAAE,SAA8B;;YAC3F,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,4BAA4B,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC9E,OAAO,SAAS,CAAC;YACnB,CAAC;YAED,MAAM,aAAa,GAAG,YAAY,CAAC,4BAA4B,CAAC,CAAC;YAEjE,IAAI,QAAuC,CAAC;YAE5C,MAAM,oBAAoB,GAAkC,aAAa,CAAC;YAE1E,IAAI,CAAC;gBACH,MAAM,yBAAyB,GAA2B,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,oBAAoB,EAAE,SAAS,CAAC,CAAC;gBAEjI,MAAM,yBAAyB,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;gBAEjE,QAAQ,GAAG,MAAM,yBAAyB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAEjE,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAC1B,OAAO,QAAQ,CAAC;gBAClB,CAAC;gBAED,mCAAmC;gBACnC,KAAK,MAAM,gBAAgB,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACtD,QAAQ,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACtD,CAAC;YAEH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,0DAA0D,EAAE;oBAChF,KAAK,EAAE,EAAC,KAAK,EAAE,CAAC,EAAC;iBAClB,CAAC,CAAC;gBACH,MAAM,CAAC,CAAC;YACV,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kCAAkC,EAAE;gBACvD,UAAU,EAAE;oBACV,QAAQ;iBACT;gBACD,KAAK,EAAE;oBACL,OAAO;oBACP,YAAY;iBACb;aACF,CAAC,CAAA;YACF,OAAO,QAAQ,CAAC;QAClB,CAAC;KAAA;CACF,CAAA;AA7Cc;IADZ,MAAM,EAAE;;qCAC0B,OAAO;;yDA4CzC;AAjEU,qBAAqB;IAHjC,YAAY,CAAC,qBAAqB,CAAC;IACnC,GAAG,CAAC,gCAAgC,CAAC;IACrC,UAAU,EAAE;IAUR,WAAA,SAAS,CAAC,wBAAwB,CAAC,gBAAgB,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC,CAAA;IACxE,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;oDACS,oBAAoB;GAXlD,qBAAqB,CAkEjC"}
@@ -20,7 +20,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
20
20
  });
21
21
  };
22
22
  import { inject, injectable } from "tsyringe";
23
- import { moduleScoped, tag } from "@pristine-ts/common";
23
+ import { moduleScoped, Request, tag, traced } from "@pristine-ts/common";
24
24
  import { GuardFactory } from "../factories/guard.factory";
25
25
  import { SecurityModuleKeyname } from "../security.module.keyname";
26
26
  import { guardMetadataKeyname } from "../decorators/guard.decorator";
@@ -33,12 +33,10 @@ let AuthorizerManager = class AuthorizerManager {
33
33
  * The authorizer manager provides authorization by authorizing the action.
34
34
  * @param logHandler The log handler to output logs.
35
35
  * @param guardFactory The factory to create the guard.
36
- * @param breadcrumbHandler
37
36
  */
38
- constructor(logHandler, guardFactory, breadcrumbHandler) {
37
+ constructor(logHandler, guardFactory) {
39
38
  this.logHandler = logHandler;
40
39
  this.guardFactory = guardFactory;
41
- this.breadcrumbHandler = breadcrumbHandler;
42
40
  }
43
41
  /**
44
42
  * Returns whether or not the request is authorized to access the route.
@@ -50,11 +48,6 @@ let AuthorizerManager = class AuthorizerManager {
50
48
  isAuthorized(request, routeContext, container, identity) {
51
49
  return __awaiter(this, void 0, void 0, function* () {
52
50
  var _a, _b, _c;
53
- // If there are no guards defined, we simply return that it is authorized.
54
- this.breadcrumbHandler.add(request.id, `${SecurityModuleKeyname}:authorizer.manager:isAuthorized:enter`, {
55
- request,
56
- routeContext
57
- });
58
51
  if (!routeContext || routeContext[guardMetadataKeyname] === undefined || Array.isArray(routeContext[guardMetadataKeyname]) === false) {
59
52
  return true;
60
53
  }
@@ -75,7 +68,6 @@ let AuthorizerManager = class AuthorizerManager {
75
68
  identityId: (_b = identity === null || identity === void 0 ? void 0 : identity.id) !== null && _b !== void 0 ? _b : "No Identity Id found",
76
69
  identityClaims: (_c = identity === null || identity === void 0 ? void 0 : identity.claims) !== null && _c !== void 0 ? _c : "No claims found",
77
70
  },
78
- eventId: request.id,
79
71
  extra: {
80
72
  error: e,
81
73
  request,
@@ -85,33 +77,26 @@ let AuthorizerManager = class AuthorizerManager {
85
77
  isAuthorized = false;
86
78
  }
87
79
  }
88
- if (isAuthorized) {
89
- this.logHandler.info(`User authorized`, {
90
- headlights: { isAuthorized },
91
- extra: { request, routeContext },
92
- eventId: request.id,
93
- breadcrumb: `${SecurityModuleKeyname}:authorizer.manager:isAuthorized:return`
94
- });
95
- }
96
- else {
97
- this.logHandler.info(`User authorized`, {
98
- headlights: { isAuthorized },
99
- extra: { request, routeContext },
100
- eventId: request.id,
101
- breadcrumb: `${SecurityModuleKeyname}:authorizer.manager:isAuthorized:return`
102
- });
103
- }
80
+ this.logHandler.info(`User authorized`, {
81
+ headlights: { isAuthorized },
82
+ extra: { request, routeContext },
83
+ });
104
84
  return isAuthorized;
105
85
  });
106
86
  }
107
87
  };
88
+ __decorate([
89
+ traced(),
90
+ __metadata("design:type", Function),
91
+ __metadata("design:paramtypes", [Request, Object, Object, Object]),
92
+ __metadata("design:returntype", Promise)
93
+ ], AuthorizerManager.prototype, "isAuthorized", null);
108
94
  AuthorizerManager = __decorate([
109
95
  moduleScoped(SecurityModuleKeyname),
110
96
  tag("AuthorizerManagerInterface"),
111
97
  injectable(),
112
98
  __param(0, inject("LogHandlerInterface")),
113
- __param(2, inject("BreadcrumbHandlerInterface")),
114
- __metadata("design:paramtypes", [Object, GuardFactory, Object])
99
+ __metadata("design:paramtypes", [Object, GuardFactory])
115
100
  ], AuthorizerManager);
116
101
  export { AuthorizerManager };
117
102
  //# sourceMappingURL=authorizer.manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authorizer.manager.js","sourceRoot":"","sources":["../../../../src/managers/authorizer.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAsB,MAAM,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAEjE,OAAO,EAAoB,YAAY,EAAW,GAAG,EAAC,MAAM,qBAAqB,CAAC;AAElF,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAC;AAEnE;;;GAGG;AAII,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAE5B;;;;;OAKG;IACH,YAAmE,UAA+B,EAC9D,YAA0B,EACY,iBAA6C;QAFpD,eAAU,GAAV,UAAU,CAAqB;QAC9D,iBAAY,GAAZ,YAAY,CAAc;QACY,sBAAiB,GAAjB,iBAAiB,CAA4B;IACvH,CAAC;IAED;;;;;;OAMG;IACU,YAAY,CAAC,OAAgB,EAAE,YAAiB,EAAE,SAA8B,EAAE,QAA4B;;;YACzH,0EAA0E;YAC1E,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,qBAAqB,wCAAwC,EAAE;gBACvG,OAAO;gBACP,YAAY;aACb,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,oBAAoB,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;gBACrI,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;YAElD,IAAI,YAAY,GAAG,IAAI,CAAC;YAExB,KAAK,MAAM,YAAY,IAAI,MAAM,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACH,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;oBAEjF,MAAM,iBAAiB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAEjD,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAC7E,YAAY,GAAG,YAAY,IAAI,YAAY,CAAC;gBAC9C,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,yDAAyD,EAAE;wBAC/E,UAAU,EAAE;4BACV,YAAY,EAAE,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,mCAAI,eAAe;4BAC3C,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE;4BAClD,UAAU,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,mCAAI,sBAAsB;4BAClD,cAAc,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,mCAAI,iBAAiB;yBACtD;wBACD,OAAO,EAAE,OAAO,CAAC,EAAE;wBACnB,KAAK,EAAE;4BACL,KAAK,EAAE,CAAC;4BACR,OAAO;4BACP,QAAQ;yBACT;qBACF,CAAC,CAAC;oBACH,YAAY,GAAG,KAAK,CAAC;gBACvB,CAAC;YACH,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBACtC,UAAU,EAAE,EAAC,YAAY,EAAC;oBAC1B,KAAK,EAAE,EAAC,OAAO,EAAE,YAAY,EAAC;oBAC9B,OAAO,EAAE,OAAO,CAAC,EAAE;oBACnB,UAAU,EAAE,GAAG,qBAAqB,yCAAyC;iBAC9E,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE;oBACtC,UAAU,EAAE,EAAC,YAAY,EAAC;oBAC1B,KAAK,EAAE,EAAC,OAAO,EAAE,YAAY,EAAC;oBAC9B,OAAO,EAAE,OAAO,CAAC,EAAE;oBACnB,UAAU,EAAE,GAAG,qBAAqB,yCAAyC;iBAC9E,CAAC,CAAC;YACL,CAAC;YAED,OAAO,YAAY,CAAC;QACtB,CAAC;KAAA;CACF,CAAA;AAhFY,iBAAiB;IAH7B,YAAY,CAAC,qBAAqB,CAAC;IACnC,GAAG,CAAC,4BAA4B,CAAC;IACjC,UAAU,EAAE;IASS,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;IAE7B,WAAA,MAAM,CAAC,4BAA4B,CAAC,CAAA;6CADN,YAAY;GATnD,iBAAiB,CAgF7B"}
1
+ {"version":3,"file":"authorizer.manager.js","sourceRoot":"","sources":["../../../../src/managers/authorizer.manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAsB,MAAM,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAEjE,OAAO,EAAoB,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAC,MAAM,qBAAqB,CAAC;AAE1F,OAAO,EAAC,YAAY,EAAC,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAC,qBAAqB,EAAC,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAC,oBAAoB,EAAC,MAAM,+BAA+B,CAAC;AAEnE;;;GAGG;AAII,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAE5B;;;;OAIG;IACH,YAAmE,UAA+B,EAC9D,YAA0B;QADK,eAAU,GAAV,UAAU,CAAqB;QAC9D,iBAAY,GAAZ,YAAY,CAAc;IAC9D,CAAC;IAED;;;;;;OAMG;IAEU,YAAY,CAAC,OAAgB,EAAE,YAAiB,EAAE,SAA8B,EAAE,QAA4B;;;YACzH,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,oBAAoB,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;gBACrI,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,MAAM,GAAG,YAAY,CAAC,oBAAoB,CAAC,CAAC;YAElD,IAAI,YAAY,GAAG,IAAI,CAAC;YAExB,KAAK,MAAM,YAAY,IAAI,MAAM,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACH,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;oBAEjF,MAAM,iBAAiB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;oBAEjD,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAC7E,YAAY,GAAG,YAAY,IAAI,YAAY,CAAC;gBAC9C,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,yDAAyD,EAAE;wBAC/E,UAAU,EAAE;4BACV,YAAY,EAAE,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,mCAAI,eAAe;4BAC3C,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE;4BAClD,UAAU,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,mCAAI,sBAAsB;4BAClD,cAAc,EAAE,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,mCAAI,iBAAiB;yBACtD;wBACD,KAAK,EAAE;4BACL,KAAK,EAAE,CAAC;4BACR,OAAO;4BACP,QAAQ;yBACT;qBACF,CAAC,CAAC;oBACH,YAAY,GAAG,KAAK,CAAC;gBACvB,CAAC;YACH,CAAC;YAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBACtC,UAAU,EAAE,EAAC,YAAY,EAAC;gBAC1B,KAAK,EAAE,EAAC,OAAO,EAAE,YAAY,EAAC;aAC/B,CAAC,CAAC;YAEH,OAAO,YAAY,CAAC;QACtB,CAAC;KAAA;CACF,CAAA;AA1Cc;IADZ,MAAM,EAAE;;qCAC0B,OAAO;;qDAyCzC;AA5DU,iBAAiB;IAH7B,YAAY,CAAC,qBAAqB,CAAC;IACnC,GAAG,CAAC,4BAA4B,CAAC;IACjC,UAAU,EAAE;IAQS,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;6CACC,YAAY;GARnD,iBAAiB,CA6D7B"}