@spinajs/orm-http 2.0.389 → 2.0.391

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.
Files changed (45) hide show
  1. package/lib/cjs/builders.js +171 -69
  2. package/lib/cjs/builders.js.map +1 -1
  3. package/lib/cjs/decorators.d.ts.map +1 -1
  4. package/lib/cjs/decorators.js.map +1 -1
  5. package/lib/cjs/dto.js.map +1 -1
  6. package/lib/cjs/extension.d.ts +5 -4
  7. package/lib/cjs/extension.d.ts.map +1 -1
  8. package/lib/cjs/index.d.ts.map +1 -1
  9. package/lib/cjs/index.js +5 -6
  10. package/lib/cjs/index.js.map +1 -1
  11. package/lib/cjs/interfaces.d.ts +9 -1
  12. package/lib/cjs/interfaces.d.ts.map +1 -1
  13. package/lib/cjs/interfaces.js +6 -1
  14. package/lib/cjs/interfaces.js.map +1 -1
  15. package/lib/cjs/model.d.ts +26 -17
  16. package/lib/cjs/model.d.ts.map +1 -1
  17. package/lib/cjs/model.js +25 -15
  18. package/lib/cjs/model.js.map +1 -1
  19. package/lib/cjs/route-arg.d.ts.map +1 -1
  20. package/lib/cjs/route-arg.js +23 -13
  21. package/lib/cjs/route-arg.js.map +1 -1
  22. package/lib/mjs/builders.js +171 -69
  23. package/lib/mjs/builders.js.map +1 -1
  24. package/lib/mjs/decorators.d.ts.map +1 -1
  25. package/lib/mjs/decorators.js.map +1 -1
  26. package/lib/mjs/dto.js.map +1 -1
  27. package/lib/mjs/extension.d.ts +5 -4
  28. package/lib/mjs/extension.d.ts.map +1 -1
  29. package/lib/mjs/index.d.ts.map +1 -1
  30. package/lib/mjs/index.js +5 -6
  31. package/lib/mjs/index.js.map +1 -1
  32. package/lib/mjs/interfaces.d.ts +9 -1
  33. package/lib/mjs/interfaces.d.ts.map +1 -1
  34. package/lib/mjs/interfaces.js +5 -0
  35. package/lib/mjs/interfaces.js.map +1 -1
  36. package/lib/mjs/model.d.ts +26 -17
  37. package/lib/mjs/model.d.ts.map +1 -1
  38. package/lib/mjs/model.js +25 -15
  39. package/lib/mjs/model.js.map +1 -1
  40. package/lib/mjs/route-arg.d.ts.map +1 -1
  41. package/lib/mjs/route-arg.js +23 -13
  42. package/lib/mjs/route-arg.js.map +1 -1
  43. package/lib/tsconfig.cjs.tsbuildinfo +1 -1
  44. package/lib/tsconfig.mjs.tsbuildinfo +1 -1
  45. package/package.json +11 -10
package/lib/mjs/model.js CHANGED
@@ -1,9 +1,10 @@
1
1
  import { OrmException, SelectQueryBuilder, createQuery } from '@spinajs/orm';
2
2
  import './builders.js';
3
+ import { FilterableLogicalOperators } from './interfaces.js';
3
4
  export const MODEL_STATIC_MIXINS = {
4
- async filter(filters) {
5
+ async filter(filterRequest) {
5
6
  const { query } = createQuery(this, SelectQueryBuilder);
6
- return query.filter(filters);
7
+ return query.filter(filterRequest.filters, filterRequest.op);
7
8
  },
8
9
  filterColumns() {
9
10
  const modelDescriptor = this.getModelDescriptor();
@@ -24,20 +25,29 @@ export const MODEL_STATIC_MIXINS = {
24
25
  throw new OrmException(`Model ${this.constructor.name} has no descriptor`);
25
26
  }
26
27
  return {
27
- type: 'array',
28
- items: {
29
- type: 'object',
30
- anyOf: [...modelDescriptor.FilterableColumns.entries()].map(([key, val]) => {
31
- return {
28
+ type: 'object',
29
+ properties: {
30
+ op: {
31
+ type: 'string',
32
+ enum: [FilterableLogicalOperators.And, FilterableLogicalOperators.Or],
33
+ },
34
+ filters: {
35
+ type: 'array',
36
+ items: {
32
37
  type: 'object',
33
- required: ['Column', 'Operator'],
34
- properties: {
35
- Column: { const: key },
36
- Value: { type: ['string', 'integer', 'array', 'boolean'] },
37
- Operator: { type: 'string', enum: val.operators },
38
- },
39
- };
40
- }),
38
+ anyOf: [...modelDescriptor.FilterableColumns.entries()].map(([key, val]) => {
39
+ return {
40
+ type: 'object',
41
+ required: ['Column', 'Operator'],
42
+ properties: {
43
+ Column: { const: key },
44
+ Value: { type: ['string', 'integer', 'array', 'boolean'] },
45
+ Operator: { type: 'string', enum: val.operators },
46
+ },
47
+ };
48
+ }),
49
+ },
50
+ },
41
51
  },
42
52
  };
43
53
  },
@@ -1 +1 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,eAAe,CAAC;AAGvB,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,CAAC,MAAM,CAAC,OAAkB;QAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACxD,OAAQ,KAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,aAAa;QACX,MAAM,eAAe,GAAI,IAAY,CAAC,kBAAkB,EAAsB,CAAC;QAE/E,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,YAAY,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,CAAC,GAAG,eAAe,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAoC,EAAE,EAAE;YAC5G,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,KAAK,EAAE,GAAG,CAAC,KAAK;aACjB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,MAAM,eAAe,GAAI,IAAY,CAAC,kBAAkB,EAAsB,CAAC;QAE/E,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,YAAY,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO;YACL,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,CAAC,GAAG,eAAe,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAmC,EAAE,EAAE;oBAC3G,OAAO;wBACL,IAAI,EAAE,QAAQ;wBACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;wBAChC,UAAU,EAAE;4BACV,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;4BACtB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;4BAC1D,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE;yBAClD;qBACF,CAAC;gBACJ,CAAC,CAAC;aACH;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/F,OAAO,eAAe,CAAC;AACvB,OAAO,EAAiC,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAE5F,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK,CAAC,MAAM,CAAC,aAA6B;QACxC,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;QACxD,OAAQ,KAAa,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,aAAa;QACX,MAAM,eAAe,GAAI,IAAY,CAAC,kBAAkB,EAAsB,CAAC;QAE/E,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,YAAY,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,CAAC,GAAG,eAAe,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAmC,EAAE,EAAE;YAC3G,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,KAAK,EAAE,GAAG,CAAC,KAAK;aACjB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,MAAM,eAAe,GAAI,IAAY,CAAC,kBAAkB,EAAsB,CAAC;QAE/E,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,YAAY,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC,IAAI,oBAAoB,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,0BAA0B,CAAC,GAAG,EAAE,0BAA0B,CAAC,EAAE,CAAC;iBACtE;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,CAAC,GAAG,eAAe,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAmC,EAAE,EAAE;4BAC3G,OAAO;gCACL,IAAI,EAAE,QAAQ;gCACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;gCAChC,UAAU,EAAE;oCACV,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;oCACtB,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE;oCAC1D,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,EAAE;iCAClD;6BACF,CAAC;wBACJ,CAAC,CAAC;qBACH;iBACF;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"route-arg.d.ts","sourceRoot":"","sources":["../../src/route-arg.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAiC,WAAW,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,qBAEa,mBAAoB,SAAQ,SAAS;IAChD,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;gBAEpB,CAAC,EAAE,UAAU;IAMnB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,IAAW,aAAa,IAAI,aAAa,GAAG,MAAM,CAEjD;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;;;;CAyCpM"}
1
+ {"version":3,"file":"route-arg.d.ts","sourceRoot":"","sources":["../../src/route-arg.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAiC,WAAW,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC9F,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAA8B,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE5E,qBAEa,mBAAoB,SAAQ,SAAS;IAChD,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;gBAEpB,CAAC,EAAE,UAAU;IAMnB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,IAAW,aAAa,IAAI,aAAa,GAAG,MAAM,CAEjD;IAEY,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM;;;;CAgDpM"}
@@ -9,6 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  import { Inject, Injectable, Container } from '@spinajs/di';
11
11
  import { RouteArgs } from '@spinajs/http';
12
+ import { FilterableLogicalOperators } from './interfaces.js';
12
13
  let FilterModelRouteArg = class FilterModelRouteArg extends RouteArgs {
13
14
  constructor(c) {
14
15
  super();
@@ -35,20 +36,29 @@ let FilterModelRouteArg = class FilterModelRouteArg extends RouteArgs {
35
36
  else {
36
37
  // manually build custom schema
37
38
  rParam.Schema = {
38
- type: 'array',
39
- items: {
40
- type: 'object',
41
- anyOf: param.Options.map((x) => {
42
- return {
39
+ type: 'object',
40
+ properties: {
41
+ op: {
42
+ type: 'string',
43
+ enum: [FilterableLogicalOperators.And, FilterableLogicalOperators.Or],
44
+ },
45
+ filters: {
46
+ type: 'array',
47
+ items: {
43
48
  type: 'object',
44
- required: ['Column', 'Value', 'Operator'],
45
- properties: {
46
- Column: { const: x.column },
47
- Value: { type: ['string', 'integer', 'array'] },
48
- Operator: { type: 'string', enum: x.operators },
49
- },
50
- };
51
- }),
49
+ anyOf: param.Options.map((x) => {
50
+ return {
51
+ type: 'object',
52
+ required: ['Column', 'Value', 'Operator'],
53
+ properties: {
54
+ Column: { const: x.column },
55
+ Value: { type: ['string', 'integer', 'array'] },
56
+ Operator: { type: 'string', enum: x.operators },
57
+ },
58
+ };
59
+ }),
60
+ },
61
+ },
52
62
  },
53
63
  };
54
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"route-arg.js","sourceRoot":"","sources":["../../src/route-arg.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAc,MAAM,EAAE,UAAU,EAAE,SAAS,EAAe,MAAM,aAAa,CAAC;AACrF,OAAO,EAAsD,SAAS,EAAE,MAAM,eAAe,CAAC;AAOvF,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,SAAS;IAGhD,YAAY,CAAa;QACvB,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO,KAAoB,CAAC;IAElC,IAAW,aAAa;QACtB,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAgB,EAAE,KAAyE,EAAE,GAAoB,EAAE,IAAsB,EAAE,KAAa;QACjM,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE/D,wDAAwD;QACxD,iEAAiE;QACjE,MAAM,MAAM,GAAG;YACb,GAAG,KAAK;YACR,MAAM,EAAE,EAAE;SACX,CAAC;QAEF,yBAAyB;QACzB,0CAA0C;QAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAK,KAAK,CAAC,OAAe,CAAC,YAAY,EAAE,CAAC;YAEzE,uBAAuB;YACvB,MAAM,CAAC,MAAM,GAAI,KAAK,CAAC,OAAe,CAAC,YAAY,EAAE,CAAC;QACxD,CAAC;aAAM,CAAC;YAEN,+BAA+B;YAC/B,MAAM,CAAC,MAAM,GAAG;gBACd,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAG,KAAK,CAAC,OAAoC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBAC3D,OAAO;4BACL,IAAI,EAAE,QAAQ;4BACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;4BACzC,UAAU,EAAE;gCACV,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;gCAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE;gCAC/C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE;6BAChD;yBACF,CAAC;oBACJ,CAAC,CAAC;iBACH;aACF,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACjH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;CACF,CAAA;AAxDY,mBAAmB;IAF/B,UAAU,EAAE;IACZ,MAAM,CAAC,SAAS,CAAC;;GACL,mBAAmB,CAwD/B"}
1
+ {"version":3,"file":"route-arg.js","sourceRoot":"","sources":["../../src/route-arg.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAc,MAAM,EAAE,UAAU,EAAE,SAAS,EAAe,MAAM,aAAa,CAAC;AACrF,OAAO,EAAsD,SAAS,EAAE,MAAM,eAAe,CAAC;AAG9F,OAAO,EAAE,0BAA0B,EAAiB,MAAM,iBAAiB,CAAC;AAIrE,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,SAAS;IAGhD,YAAY,CAAa;QACvB,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO,KAAoB,CAAC;IAElC,IAAW,aAAa;QACtB,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,QAAoB,EAAE,KAAgB,EAAE,KAAyE,EAAE,GAAoB,EAAE,IAAsB,EAAE,KAAa;QACjM,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE/D,wDAAwD;QACxD,iEAAiE;QACjE,MAAM,MAAM,GAAG;YACb,GAAG,KAAK;YACR,MAAM,EAAE,EAAE;SACX,CAAC;QAEF,yBAAyB;QACzB,0CAA0C;QAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAK,KAAK,CAAC,OAAe,CAAC,YAAY,EAAE,CAAC;YACzE,uBAAuB;YACvB,MAAM,CAAC,MAAM,GAAI,KAAK,CAAC,OAAe,CAAC,YAAY,EAAE,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,+BAA+B;YAC/B,MAAM,CAAC,MAAM,GAAG;gBACd,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,EAAE,EAAE;wBACF,IAAI,EAAE,QAAQ;wBACd,IAAI,EAAE,CAAC,0BAA0B,CAAC,GAAG,EAAE,0BAA0B,CAAC,EAAE,CAAC;qBACtE;oBACD,OAAO,EAAE;wBACP,IAAI,EAAE,OAAO;wBACb,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAG,KAAK,CAAC,OAAoC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gCAC3D,OAAO;oCACL,IAAI,EAAE,QAAQ;oCACd,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC;oCACzC,UAAU,EAAE;wCACV,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;wCAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE;wCAC/C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE;qCAChD;iCACF,CAAC;4BACJ,CAAC,CAAC;yBACH;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACjH,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9C,CAAC;CACF,CAAA;AA/DY,mBAAmB;IAF/B,UAAU,EAAE;IACZ,MAAM,CAAC,SAAS,CAAC;;GACL,mBAAmB,CA+D/B"}