@shamar/adonis 0.1.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/assets/admin.css +2 -0
- package/assets/alpine.min.js +5 -0
- package/assets/input.css +2286 -0
- package/assets/shamar-ui.js +3658 -0
- package/dist/assets-controller.d.ts +12 -0
- package/dist/assets-controller.d.ts.map +1 -0
- package/dist/assets-controller.js +32 -0
- package/dist/assets-controller.js.map +1 -0
- package/dist/config.d.ts +79 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +38 -0
- package/dist/config.js.map +1 -0
- package/dist/configure.d.ts +21 -0
- package/dist/configure.d.ts.map +1 -0
- package/dist/configure.js +20 -0
- package/dist/configure.js.map +1 -0
- package/dist/context.d.ts +22 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +2 -0
- package/dist/context.js.map +1 -0
- package/dist/controller.d.ts +31 -0
- package/dist/controller.d.ts.map +1 -0
- package/dist/controller.js +45 -0
- package/dist/controller.js.map +1 -0
- package/dist/controllers/admin_controller.d.ts +72 -0
- package/dist/controllers/admin_controller.d.ts.map +1 -0
- package/dist/controllers/admin_controller.js +1075 -0
- package/dist/controllers/admin_controller.js.map +1 -0
- package/dist/discover.d.ts +7 -0
- package/dist/discover.d.ts.map +1 -0
- package/dist/discover.js +50 -0
- package/dist/discover.js.map +1 -0
- package/dist/form-state.d.ts +41 -0
- package/dist/form-state.d.ts.map +1 -0
- package/dist/form-state.js +74 -0
- package/dist/form-state.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/require_api_key_middleware.d.ts +30 -0
- package/dist/middleware/require_api_key_middleware.d.ts.map +1 -0
- package/dist/middleware/require_api_key_middleware.js +59 -0
- package/dist/middleware/require_api_key_middleware.js.map +1 -0
- package/dist/provider.d.ts +9 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/provider.js +66 -0
- package/dist/provider.js.map +1 -0
- package/dist/resources/api_key_resource.d.ts +35 -0
- package/dist/resources/api_key_resource.d.ts.map +1 -0
- package/dist/resources/api_key_resource.js +225 -0
- package/dist/resources/api_key_resource.js.map +1 -0
- package/dist/routes.d.ts +5 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +97 -0
- package/dist/routes.js.map +1 -0
- package/dist/runtime.d.ts +27 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +74 -0
- package/dist/runtime.js.map +1 -0
- package/dist/shamar/auth.d.ts +30 -0
- package/dist/shamar/auth.d.ts.map +1 -0
- package/dist/shamar/auth.js +218 -0
- package/dist/shamar/auth.js.map +1 -0
- package/dist/shamar/branding.d.ts +24 -0
- package/dist/shamar/branding.d.ts.map +1 -0
- package/dist/shamar/branding.js +91 -0
- package/dist/shamar/branding.js.map +1 -0
- package/dist/shamar/display-relations.d.ts +7 -0
- package/dist/shamar/display-relations.d.ts.map +1 -0
- package/dist/shamar/display-relations.js +89 -0
- package/dist/shamar/display-relations.js.map +1 -0
- package/dist/shamar/list-headers.d.ts +38 -0
- package/dist/shamar/list-headers.d.ts.map +1 -0
- package/dist/shamar/list-headers.js +218 -0
- package/dist/shamar/list-headers.js.map +1 -0
- package/dist/shamar/list-query.d.ts +229 -0
- package/dist/shamar/list-query.d.ts.map +1 -0
- package/dist/shamar/list-query.js +564 -0
- package/dist/shamar/list-query.js.map +1 -0
- package/dist/shamar/menu.d.ts +48 -0
- package/dist/shamar/menu.d.ts.map +1 -0
- package/dist/shamar/menu.js +93 -0
- package/dist/shamar/menu.js.map +1 -0
- package/dist/shamar/paths.d.ts +5 -0
- package/dist/shamar/paths.d.ts.map +1 -0
- package/dist/shamar/paths.js +16 -0
- package/dist/shamar/paths.js.map +1 -0
- package/dist/shamar/relation-fields.d.ts +54 -0
- package/dist/shamar/relation-fields.d.ts.map +1 -0
- package/dist/shamar/relation-fields.js +94 -0
- package/dist/shamar/relation-fields.js.map +1 -0
- package/dist/shamar/resource-actions.d.ts +9 -0
- package/dist/shamar/resource-actions.d.ts.map +1 -0
- package/dist/shamar/resource-actions.js +42 -0
- package/dist/shamar/resource-actions.js.map +1 -0
- package/dist/shamar/view-context.d.ts +79 -0
- package/dist/shamar/view-context.d.ts.map +1 -0
- package/dist/shamar/view-context.js +74 -0
- package/dist/shamar/view-context.js.map +1 -0
- package/dist/types.d.ts +15 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +67 -0
- package/resources/views/shamar/dashboard.edge +24 -0
- package/resources/views/shamar/form.edge +87 -0
- package/resources/views/shamar/index.edge +149 -0
- package/resources/views/shamar/partials/boolean-value.edge +25 -0
- package/resources/views/shamar/partials/csrf.edge +1 -0
- package/resources/views/shamar/partials/detail-entry.edge +72 -0
- package/resources/views/shamar/partials/dialog-host.edge +125 -0
- package/resources/views/shamar/partials/field-affix-icon.edge +23 -0
- package/resources/views/shamar/partials/field-input.edge +585 -0
- package/resources/views/shamar/partials/field-relation-checkbox.edge +104 -0
- package/resources/views/shamar/partials/field-relation-m2m.edge +110 -0
- package/resources/views/shamar/partials/field-relation-m2o.edge +116 -0
- package/resources/views/shamar/partials/field-relation-table.edge +139 -0
- package/resources/views/shamar/partials/form-container.edge +82 -0
- package/resources/views/shamar/partials/icon.edge +14 -0
- package/resources/views/shamar/partials/list-row.edge +73 -0
- package/resources/views/shamar/partials/list-toolbar.edge +269 -0
- package/resources/views/shamar/partials/nav-mobile.edge +21 -0
- package/resources/views/shamar/partials/nav.edge +58 -0
- package/resources/views/shamar/partials/page-heading.edge +130 -0
- package/resources/views/shamar/partials/pagination.edge +73 -0
- package/resources/views/shamar/partials/record-pager.edge +37 -0
- package/resources/views/shamar/partials/schema-node.edge +289 -0
- package/resources/views/shamar/partials/shell-close.edge +20 -0
- package/resources/views/shamar/partials/shell-open.edge +51 -0
- package/resources/views/shamar/partials/toast.edge +5 -0
- package/resources/views/shamar/partials/topbar.edge +115 -0
- package/resources/views/shamar/show.edge +17 -0
- package/stubs/config/shamar.stub +29 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin_controller.js","sourceRoot":"","sources":["../../src/controllers/admin_controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE3E,OAAO,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,GACV,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,WAAW,EACX,yBAAyB,EACzB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,GAGnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,GAEvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE1E,MAAM,OAAO,eAAe;IAQP;IACA;IARF,SAAS,CAAqB;IAC9B,QAAQ,CAAS;IACjB,QAAQ,CAAmB;IAC3B,aAAa,CAA2B;IACxC,UAAU,CAAa;IAExC,YACmB,KAAmB,EACnB,MAAoB,EACrC,UAAuB;QAFN,UAAK,GAAL,KAAK,CAAc;QACnB,WAAM,GAAN,MAAM,CAAc;QAGrC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;QAC9D,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,eAAe,EAAE,CAAC;IACxD,CAAC;IAEO,aAAa,CACnB,KAAqC;QAErC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK,CAAC;IACxE,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,GAAsB;QAC9C,OAAO,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,GAAsB,EACtB,MAAM,GAAG,KAAK;QAEd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAE3C,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC/C,OAAO,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAChC,GAAsB,EACtB,IAAkB,EAClB,MAAsB,EACtB,MAAgC,EAChC,MAAM,GAAG,KAAK;QAEd,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QACvD,MAAM,OAAO,GAAG,UAAU,CAAC;QAE3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC;YAAE,OAAO,OAAO,CAAC;QAE/C,IAAI,CAAC;YACH,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACtF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;gBACpC,OAAO,gBAAgB,CACrB,GAAG,EACH,KAAK,CAAC,OAAO,EACb,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAC7B,IAAI,CAAC,QAAQ,CACd,CAAC;YACJ,CAAC;YACD,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;gBACvC,OAAO,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,SAAS,CACf,GAAsB,EACtB,OAA6B,EAC7B,MAaD;QACC,MAAM,MAAM,GACV,MAAM,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI;YACzB,CAAC,CAAC,mBAAmB,CACjB,IAAI,CAAC,UAAU,EACf,OAAO,EACP,IAAI,CAAC,QAAQ,EACb,MAAM,CAAC,IAAI,EACX,MAAM,CAAC,MAAM,CACd;YACH,CAAC,CAAC,IAAI,CAAC;QAEX,MAAM,EACJ,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,MAAM,EACN,GAAG,IAAI,EACR,GAAG,MAAM,CAAC;QAEX,OAAO,iBAAiB,CAAC;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,aAAa;YAC5B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO;YACP,KAAK,EAAE,SAAS,CAAC,GAAG,CAAC;YACrB,gBAAgB,EACd,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB;YACvE,cAAc,EACZ,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,cAAc;YACnE,gBAAgB,EACd,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,gBAAgB;YACvE,GAAG,IAAI;SACR,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAsB;QACpC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QACvD,MAAM,OAAO,GAAG,UAAU,CAAC;QAE3B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC;QACvE,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,CAAC;QAEpF,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE;YAC1C,GAAG,KAAK;YACR,cAAc;SACf,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAsB,EAAE,OAA8B;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACrG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QACvD,MAAM,OAAO,GAAG,UAAU,CAAC;QAE3B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,eAAe,GAAG,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,CAAC;QAC5E,MAAM,eAAe,GAAG,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,IAAI,CAAC;QAE5E,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAEhD,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;YACpD,UAAU,CAAC,OAAO,GAAG,qBAAqB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAChE,CAAC;aAAM,IAAI,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACtC,UAAU,CAAC,OAAO,GAAG,gBAAgB,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QACzE,CAAC;QAED,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5C,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,CAAC;aAAM,IAAI,eAAe,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACjE,UAAU,CAAC,OAAO,GAAG,SAAS,CAAC;QACjC,CAAC;QAED,6EAA6E;QAC7E,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC;QAC1C,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAClC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,cAAc,IAAI,MAAM,CAAC,WAAW,KAAK,cAAc,CACpF,CAAC;QACF,MAAM,cAAc,GAAG,WAAW,EAAE,WAAW,IAAI,cAAc,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE;YAChD,GAAG,UAAU;YACb,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACvD,MAAM,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtF,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACvD,MAAM,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACtF,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,gBAAgB,CAAC;YACtE,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,IAAI;YACJ,KAAK,EAAE,QAAQ;YACf,MAAM;SACP,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE;YACzC,IAAI;YACJ,SAAS,EAAE,IAAI,CAAC,KAAK;YACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM;YAC/B,cAAc,EAAE,MAAM,CAAC,MAAM;YAC7B,gBAAgB,EAAE,MAAM,CAAC,MAAM;SAChC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,sBAAsB,CACnC,MAAM,CAAC,KAAK,EACZ,cAAc,EACd,WAAW,CACZ,CAAC;QAEF,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE;YACtC,GAAG,KAAK;YACR,IAAI;YACJ,QAAQ,EAAE,IAAI;YACd,MAAM;YACN,MAAM;YACN,KAAK,EAAE;gBACL,GAAG,SAAS;gBACZ,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,UAAU,CAAC,OAAO,IAAI,EAAE;gBACjC,OAAO,EAAE,cAAc,IAAI,IAAI;aAChC;YACD,UAAU;YACV,WAAW;YACX,cAAc,EAAE,yBAAyB;YACzC,kBAAkB,EAAE,eAAe,IAAI,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;YACpE,gBAAgB,EAAE,eAAe,IAAI,CAAC,cAAc;YACpD,WAAW,EAAE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;YACrD,UAAU,EAAE,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC;SACpD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAsB,EAAE,OAA8B;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACpG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QACvD,MAAM,OAAO,GAAG,UAAU,CAAC;QAE3B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YACzC,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAClF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE;YACzC,IAAI;YACJ,SAAS,EAAE,OAAO,IAAI,CAAC,aAAa,EAAE;YACtC,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SACrC,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACjE,IAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QACvD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;QAErF,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YACrC,GAAG,KAAK;YACR,IAAI;YACJ,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,QAAQ;YACd,KAAK;YACL,gFAAgF;YAChF,yBAAyB,EAAE,CAAC,MAAM,CAAC,MAAM;YACzC,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC;YAChC,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC;YAChC,cAAc,EAAE,gBAAgB,CAAC,IAAI,EAAE;gBACrC,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,IAAI;gBACZ,SAAS,EAAE,QAAQ;aACpB,CAAC;YACF,iBAAiB,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,aAAa;YAC7D,gBAAgB,EAAE,YAAY;YAC9B,UAAU,EAAE,EAAE;YACd,UAAU;YACV,WAAW,EAAE,IAAI;YACjB,oBAAoB;SACrB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAsB,EAAE,OAA8B;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACpG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QAEvD,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,cAAkC,CAAC;QACvC,IAAI,YAAgC,CAAC;QAErC,IAAI,CAAC;YACH,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,IAAI,aAAa,EAAE,aAAa,EAAE,CAAC;gBACjC,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,IAAI,EAAE;oBACvD,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;oBAC3B,IAAI;oBACJ,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI;iBACpC,CAAC,CAAC;gBACH,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;gBACrB,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;gBACzC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;YACvC,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEtD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;gBACzC,oFAAoF;gBACpF,IAAI,cAAc,EAAE,CAAC;oBACnB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,aAAa,UAAU,CAAC,CAAC;gBAChE,CAAC;gBACD,OAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAC1B,GAAG,MAAM;oBACT,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACzD,CAAC,CAAC;YACL,CAAC;YAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE;gBACrE,cAAc;gBACd,YAAY;gBACZ,OAAO,EAAE,UAAU;aACpB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE;gBACtD,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,IAAI;gBACZ,IAAI;gBACJ,MAAM,EAAE,OAAO,EAAE,MAAM;gBACvB,OAAO,EAAE,UAAU;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAsB,EAAE,OAA8B;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC/F,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QACvD,MAAM,OAAO,GAAG,UAAU,CAAC;QAE3B,MAAM,wBAAwB,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAClF,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YACzC,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1F,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE;YACzC,IAAI;YACJ,MAAM;YACN,SAAS,EAAE,KAAK;YAChB,cAAc,EAAE,MAAM,CAAC,MAAM;YAC7B,gBAAgB,EAAE,MAAM,CAAC,MAAM;YAC/B,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE;gBAChB,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,KAAK;aACnB;SACF,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAE/E,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YACrC,GAAG,KAAK;YACR,IAAI;YACJ,QAAQ,EAAE,IAAI;YACd,MAAM;YACN,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,YAAY,EAAE,gBAAgB,CAAC,IAAI,CAAC;YACpC,cAAc,EAAE,cAAc,CAAC,IAAI,CAAC;YACpC,UAAU;YACV,UAAU,EAAE,EAAE;YACd,WAAW,EAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;YAChF,oBAAoB;YACpB,aAAa,EAAE,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC;SACvD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAsB,EAAE,OAA8B;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACjG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QACvD,MAAM,OAAO,GAAG,UAAU,CAAC;QAE3B,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YACzC,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1F,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE;YACzC,IAAI;YACJ,MAAM;YACN,SAAS,EAAE,QAAQ,KAAK,EAAE;YAC1B,gBAAgB,EAAE,MAAM,CAAC,MAAM;YAC/B,cAAc,EAAE,KAAK;YACrB,gBAAgB,EAAE;gBAChB,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,KAAK;gBAClB,UAAU,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,GAAG,QAAQ,EAAE;aACpE;SACF,CAAC,CAAC;QAEH,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAEzF,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YACrC,GAAG,KAAK;YACR,IAAI;YACJ,QAAQ,EAAE,IAAI;YACd,MAAM;YACN,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,MAAM;YACZ,KAAK;YACL,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC;YAChC,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC;YAChC,cAAc,EAAE,gBAAgB,CAAC,IAAI,EAAE;gBACrC,KAAK,EAAE,gBAAgB;gBACvB,MAAM;gBACN,SAAS,EAAE,MAAM;aAClB,CAAC;YACF,iBAAiB,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,aAAa;YAC7D,gBAAgB;YAChB,UAAU,EAAE,EAAE;YACd,UAAU;YACV,WAAW,EAAE,KAAK;gBAChB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;YACvE,oBAAoB;SACrB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAsB;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAK5B,CAAC;QAEF,MAAM,SAAS,GACb,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ;YACnF,CAAC,CAAC,IAAI,CAAC,SAAS;YAChB,CAAC,CAAC,MAAM,CAAC;QAEb,IAAI,MAAM,GAAmC,IAAI,CAAC;QAClD,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GACV,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/E,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAChD,GAAG,EACH,IAAI,EACJ,MAAM,EACN,MAAM,IAAI,SAAS,EACnB,IAAI,CACL,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE;YAC3C,SAAS;YACT,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;YACvB,MAAM;SACP,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAsB;QAClC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QACpF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QAEvD,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvB,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,KAAK,EAAE,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC;SACxC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAsB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC1F,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QAEvD,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;QACzF,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,UAAU,GACd,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,GAAG;YACnC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;YACjC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;QAEvC,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,IACE,UAAU;YACV,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;YACjC,KAAK,CAAC,QAAQ,CAAC,UAAU;YACzB,QAAQ,EACR,CAAC;YACD,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE;YACvD,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;YACpC,KAAK;YACL,cAAc;YACd,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACrD,CAAC,CAAC;QAEH,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,GAAsB;QAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACzF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QAEvD,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAI5B,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC;YACrB,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,6CAA6C,EAAE,CAAC,CAAC;QAC7F,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,OAAO,GAA4B,EAAE,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC;QAEpE,IACE,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS;YACjC,KAAK,CAAC,QAAQ,CAAC,UAAU;YACzB,IAAI,CAAC,QAAQ,EACb,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACjE,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACvB,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrB,KAAK,EAAE,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC;aAC3D,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC,CAAC;YAC/E,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAsB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAI5B,CAAC;QAEF,IAAI,YAAiD,CAAC;QACtD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxE,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,GAAG,SAAS,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAChD,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,IAAI,CACL,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QAEvD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,KAAK,EAAE,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxF,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACtC,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,CAAC,CAAC;QACrF,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC9E,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;SACnD,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;YACvB,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,KAAK,EAAE,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,CAAC;SAC3D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAsB;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAI5B,CAAC;QAEF,IAAI,YAAiD,CAAC;QACtD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC;gBACH,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACxE,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY,GAAG,SAAS,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAChD,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,IAAI,CACL,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QAEvD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,KAAK,EAAE,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxF,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,0CAA0C,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;YAC/D,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI;SAClC,CAAC,CAAC;QACH,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAsB,EAAE,OAA8B;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAE1B,IAAI,QAAQ,GAAmC,IAAI,CAAC;QACpD,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAChD,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,QAAQ,IAAI,SAAS,EACrB,OAAO,EAAE,MAAM,CAChB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QAEvD,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAEvD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YAE3D,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;gBACzC,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,CAAC;YAED,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,MAAM,GAAmC,QAAQ,CAAC;YACtD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC;oBACH,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBAAC,MAAM,CAAC;oBACP,MAAM,GAAG,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC;gBAC3B,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE;gBACtD,IAAI,EAAE,MAAM;gBACZ,MAAM;gBACN,IAAI;gBACJ,MAAM,EAAE,OAAO,EAAE,MAAM;gBACvB,OAAO,EAAE,UAAU;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAsB,EAAE,OAA8B;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAChD,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,EAAE,MAAM,CAChB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QAEvD,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAEvC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;YACzC,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAClC,CAAC;QAED,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,aAAa,UAAU,CAAC,CAAC;QAC9D,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,IAAI,CAAC,GAAsB,EAAE,OAA8B;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAChE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QACvD,MAAM,OAAO,GAAG,UAAU,CAAC;QAE3B,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAC;YACnD,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,OAAO,GAA8B,EAAE,CAAC;QAC5C,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YACnC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC3F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE;gBAC9C,GAAG,KAAK;gBACR,IAAI,EAAE,CAAC;gBACP,OAAO,EAAE,yBAAyB;aACnC,CAAC,CAAC;YACH,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACrB,IAAI,CAAC;oBACH,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;gBACpD,CAAC;gBAAC,MAAM,CAAC;oBACP,kBAAkB;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;YACzD,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,oBAAoB,CAClB,IAAI,CAAC,UAAU,EACf,OAAO,EACP,IAAI,CAAC,QAAQ,EACb,IAAI,EACJ,QAAQ,EACR,MAAM,CACP,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;wBACpC,OAAO,gBAAgB,CACrB,GAAG,EACH,KAAK,CAAC,OAAO,EACb,OAAO,EAAE,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EACtC,IAAI,CAAC,QAAQ,CACd,CAAC;oBACJ,CAAC;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC;gBACD,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC;YACD,MAAM,OAAO,GACX,OAAO,CAAC,MAAM,KAAK,CAAC;gBAClB,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,UAAU;gBACjC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC;YAC9D,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;gBACzC,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/D,CAAC;YACD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YACtC,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9F,CAAC;IAED,oEAAoE;IACpE,KAAK,CAAC,YAAY,CAAC,GAAsB,EAAE,OAA8B;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/E,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAChD,GAAG,EACH,IAAI,EACJ,QAAQ,EACR,MAAM,EACN,OAAO,EAAE,MAAM,CAChB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QAEvD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;gBACzC,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;YAClC,CAAC;YACD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,aAAa,UAAU,CAAC,CAAC;YAC9D,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,IAAI,CAAC,eAAe,CACzB,GAAG,EACH,IAAI,EACJ,UAAU,EACV,MAAM,EACN,CAAC,MAAM,CAAC,EACR,QAAQ,EACR,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAClB,CAAC;IACJ,CAAC;IAEO,cAAc,CAAC,IAAkB,EAAE,MAAc;QACvD,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAC3E,MAAM,IAAI,GAAG,MAAM,EAAE,OAAO,IAAI,MAAM,CAAC;QACvC,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QACvC,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAC1D,IAAI,IAAI,KAAK,MAAM;YAAE,OAAO,MAAM,CAAC;QACnC,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QACzC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,cAAc,CAAC,GAAsB;QAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,GAAG,IAAI,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7C,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,KAAK,CAAC,eAAe,CAC3B,GAAsB,EACtB,IAAkB,EAClB,OAA6B,EAC7B,MAAc,EACd,OAAkC,EAClC,QAAwB,EACxB,MAAgB,EAChB,UAAmB;QAEnB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACxF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;oBACpC,OAAO,gBAAgB,CACrB,GAAG,EACH,KAAK,CAAC,OAAO,EACb,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAC7B,IAAI,CAAC,QAAQ,CACd,CAAC;gBACJ,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC;YACjC,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,mBAAmB,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE;YAC/D,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,IAAI;YACJ,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI,IAAI,IAAI;SAC3B,CAAC,CAAC;QAEH,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,OAAO,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,mBAAmB,MAAM,EAAE,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,MAAM,OAAO,GACX,MAAM,CAAC,OAAO;YACd,GAAG,IAAI,CAAC,aAAa,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAEvF,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;YAChC,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACtC,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;IAEO,eAAe,CAAC,GAAsB;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAEO,eAAe,CACrB,OAA6B,EAC7B,IAAkB,EAClB,KAA4C;QAE5C,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAChE,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,OAAO;YACL,GAAG,KAAK;YACR,KAAK,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE;SAC5C,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,GAAsB;QACtC,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/B,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;YACrC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;YACnC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/B,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC;YACzC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;YACrC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;YACrC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;SACtC,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,GAAsB,EAAE,KAAK,GAAG,KAAK;QACrD,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClD,OAAO,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAC7C,CAAC;IAEO,OAAO,CAAC,GAAsB;QACpC,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAChE,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAChD,OAAO,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,CAAC;IACrD,CAAC;IAEO,iBAAiB,CACvB,GAAsB,EACtB,IAAkB,EAClB,QAAyB,EACzB,MAA6B,EAC7B,OAIC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAC1B,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,YAAY,MAAM,UAAU,CACtE,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,EAAE,cAAc,EAAE,CAAC;YAC5B,GAAG,CAAC,OAAO,CAAC,KAAK,CACf,SAAS,EACT,OAAO,CAAC,YAAY;gBAClB,GAAG,IAAI,CAAC,aAAa,wDAAwD,OAAO,CAAC,cAAc,EAAE,CACxG,CAAC;YACF,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,OAAO,CAAC,KAAK,CACf,SAAS,EACT,OAAO,EAAE,YAAY;gBACnB,CAAC,MAAM,KAAK,SAAS;oBACnB,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,UAAU;oBACjC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,UAAU,CAAC,CACvC,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QAErD,gEAAgE;QAChE,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;YAC7C,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7D,MAAM,QAAQ,GACZ,CAAC,aAAa;gBACd,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAC1B,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,GAAG,QAAQ,EAAE,CACvD,CAAC;YACJ,CAAC;QACH,CAAC;QAED,qEAAqE;QACrE,OAAO,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAC1B,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,QAAQ,QAAQ,EAAE,CAC5D,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,yBAAyB,CACrC,GAAsB,EACtB,IAAkB,EAClB,KAAc,EACd,OAMC;QAED,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACxC,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;aACrB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAEjE,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE;YAChC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;YACP,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,gBAAgB,EAAE;gBAChB,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC;gBAC5D,GAAG,OAAO,CAAC,IAAI;aAChB;SACF,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,UAAU,CACtB,GAAsB,EACtB,IAAkB,EAClB,OAMC;QAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,KAAK,GACT,OAAO,CAAC,IAAI,KAAK,QAAQ;YACvB,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,EAAE;YAC7B,CAAC,CAAC,QAAQ,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QAExD,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,mBAAmB,CAChC,IAAI,CAAC,UAAU,EACf,OAAO,EACP,IAAI,CAAC,QAAQ,EACb,IAAI,EACJ,OAAO,CAAC,MAAM,CACf,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE;YACzC,IAAI;YACJ,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,KAAK;YAChB,gBAAgB,EAAE,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YACrE,cAAc,EAAE,KAAK;YACrB,gBAAgB,EACd,OAAO,CAAC,IAAI,KAAK,QAAQ;gBACvB,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;gBACpB,CAAC,CAAC;oBACE,IAAI,EAAE,MAAM;oBACZ,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;oBACpD,UAAU,EACR,QAAQ,IAAI,IAAI;wBACd,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,GAAG,QAAQ,EAAE;wBACxD,CAAC,CAAC,SAAS;iBAChB;SACR,CAAC,CAAC;QAEH,MAAM,gBAAgB,GACpB,OAAO,CAAC,gBAAgB;YACxB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC9C,IAAI,EACJ,OAAO,CAAC,MAAM,EACd,OAAO,CAAC,IAAI,EACZ,gBAAgB,CACjB,CAAC;QAEF,OAAO,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;YACrC,GAAG,KAAK;YACR,IAAI;YACJ,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE;YACtB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK;YACL,gFAAgF;YAChF,yBAAyB,EAAE,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM;YACtE,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC;YAChC,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC;YAChC,cAAc,EAAE,gBAAgB,CAAC,IAAI,EAAE;gBACrC,KAAK,EAAE,gBAAgB;gBACvB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,OAAO,CAAC,IAAI;aACxB,CAAC;YACF,iBAAiB,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,aAAa;YAC7D,gBAAgB;YAChB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;YACpC,UAAU;YACV,WAAW,EACT,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,IAAI;gBAC7D,CAAC,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;gBAC7E,CAAC,CAAC,IAAI;YACV,oBAAoB;SACrB,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,GAAsB,EACtB,IAAkB,EAClB,QAAgB,EAChB,IAAqB;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,SAAS,GAAG,kBAAkB,CAAC;YACnC,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;QACH,oEAAoE;QACpE,SAAS,CAAC,OAAO,GAAG,cAAc,CAAC;QAEnC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK;iBACrB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACvD,MAAM,CAAC,OAAO,CAAC,CAAC;YACnB,OAAO,gBAAgB,CAAC;gBACtB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,QAAQ;gBACR,IAAI;gBACJ,GAAG;gBACH,QAAQ;aACT,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,wBAAwB,CAC9B,GAAsB,EACtB,IAAkB,EAClB,KAA8B;QAE9B,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,EAA6B,CAAC;QACvD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;gBAAE,SAAS;YAClC,MAAM,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE;gBAAE,SAAS;YACxC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;QACD,+DAA+D;QAC/D,IAAI,MAAM,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YACtD,MAAM,UAAU,GACd,IAAI,CAAC,gBAAgB;gBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,IAAI;gBACxD,IAAI,CAAC;YACP,IAAI,UAAU,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;gBAC1E,KAAK,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAEO,gBAAgB,CACtB,IAAkB,EAClB,MAAsC,EACtC,SAA4B;QAE5B,MAAM,KAAK,GAA4B,EAAE,CAAC;QAC1C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,MAAM,IAAI,KAAK,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC;gBACnC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;YACpE,CAAC;iBAAM,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC9E,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBACjE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YAC5B,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YAChC,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC7E,yEAAyE;YAC3E,CAAC;iBAAM,IACL,KAAK,CAAC,QAAQ;gBACd,KAAK,CAAC,IAAI,KAAK,MAAM;gBACrB,KAAK,CAAC,IAAI,KAAK,cAAc;gBAC7B,KAAK,CAAC,IAAI,KAAK,eAAe;gBAC9B,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,KAAK,WAAW,CAAC,EACnE,CAAC;gBACD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACrD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;QACD,KAAK,SAAS,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,IAAkB,EAClB,MAAsC,EACtC,SAAqC,EACrC,KAA8B;QAE9B,MAAM,GAAG,GAAqC,EAAE,CAAC;QAEjD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAAE,SAAS;YAEzD,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YAClE,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,IAAI,UAAU,CAAC;YAEnD,IAAI,YAAY,GAA0D,EAAE,CAAC;YAE7E,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,EAAE,EAAE,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACzF,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE;oBACtD,cAAc;oBACd,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAI,GAAG;oBACzC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;iBAC1D,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,kBAAkB,CAAC,KAAK,EAAE;oBACpC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;oBACjB,GAAG,KAAK;iBACT,CAAC,CAAC;gBACH,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnB,YAAY,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE;wBACtD,GAAG;wBACH,cAAc;wBACd,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;qBAChC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,IAAI,gBAAiD,CAAC;YACtD,IAAI,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;gBACpD,gBAAgB,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE;oBAC1D,cAAc;oBACd,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAI,GAAG;oBACzC,CAAC,EAAE,EAAE;iBACN,CAAC,CAAC;gBACH,mDAAmD;gBACnD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9D,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;oBAChC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;wBACvB,gBAAgB,GAAG,CAAC,IAAI,EAAE,GAAG,gBAAgB,CAAC,CAAC;oBACjD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC;gBACtC,KAAK;gBACL,UAAU,EAAE,IAAI;gBAChB,WAAW,EAAE,OAAO;gBACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM;gBACN,YAAY;gBACZ,gBAAgB;gBAChB,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAEO,eAAe,CACrB,IAAkB,EAClB,GAAsB,EACtB,MAA2B;QAE3B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,IAAI,GAA4B,EAAE,CAAC;QAEzC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,IAAI,KAAK,CAAC,YAAY;gBAAE,SAAS;YACjC,IAAI,KAAK,CAAC,UAAU,KAAK,KAAK;gBAAE,SAAS;YACzC,IAAI,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU;gBAAE,SAAS;YAEtD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;gBAC1D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oBACd,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI;wBAC1B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG;wBACzB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI;wBAC1B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,MAAM,CAAC;gBAC/B,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAChE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAC7C,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IACE,KAAK,CAAC,IAAI,KAAK,MAAM;gBACrB,KAAK,CAAC,IAAI,KAAK,cAAc;gBAC7B,CAAC,KAAK,CAAC,QAAQ;oBACb,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,EAC3D,CAAC;gBACD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;gBAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACrE,CAAC;qBAAM,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;oBACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;wBACd,KAAK,CAAC,IAAI,KAAK,MAAM;4BACnB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;4BAC3D,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrB,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;oBAC7D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACxB,CAAC;gBACD,SAAS;YACX,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC;iBAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Resource } from '@shamar/core';
|
|
2
|
+
/**
|
|
3
|
+
* Discover Resource classes under a directory (relative to `appRoot`).
|
|
4
|
+
* Matches `*_resource.ts` / `*Resource.ts` and loads default exports.
|
|
5
|
+
*/
|
|
6
|
+
export declare function discoverResources(appRoot: string, relativeDir: string): Promise<Array<typeof Resource>>;
|
|
7
|
+
//# sourceMappingURL=discover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAK7C;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC,CAejC"}
|
package/dist/discover.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { readdir } from 'node:fs/promises';
|
|
2
|
+
import { join, resolve } from 'node:path';
|
|
3
|
+
import { pathToFileURL } from 'node:url';
|
|
4
|
+
/** Matches `*_resource.ts` and `*Resource.ts`. */
|
|
5
|
+
const RESOURCE_FILE = /(?:_resource|Resource)\.(?:ts|js|mts|mjs)$/;
|
|
6
|
+
/**
|
|
7
|
+
* Discover Resource classes under a directory (relative to `appRoot`).
|
|
8
|
+
* Matches `*_resource.ts` / `*Resource.ts` and loads default exports.
|
|
9
|
+
*/
|
|
10
|
+
export async function discoverResources(appRoot, relativeDir) {
|
|
11
|
+
const root = resolve(appRoot, relativeDir);
|
|
12
|
+
const files = await walkFiles(root);
|
|
13
|
+
const resources = [];
|
|
14
|
+
for (const file of files) {
|
|
15
|
+
if (!RESOURCE_FILE.test(file.replace(/\\/g, '/')))
|
|
16
|
+
continue;
|
|
17
|
+
const mod = await import(pathToFileURL(file).href);
|
|
18
|
+
const candidate = mod.default ?? mod.Resource;
|
|
19
|
+
if (isResourceClass(candidate)) {
|
|
20
|
+
resources.push(candidate);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return resources;
|
|
24
|
+
}
|
|
25
|
+
function isResourceClass(value) {
|
|
26
|
+
return (typeof value === 'function' &&
|
|
27
|
+
typeof value.configure === 'function' &&
|
|
28
|
+
typeof value.slug === 'string');
|
|
29
|
+
}
|
|
30
|
+
async function walkFiles(dir) {
|
|
31
|
+
const out = [];
|
|
32
|
+
let entries;
|
|
33
|
+
try {
|
|
34
|
+
entries = await readdir(dir, { withFileTypes: true });
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return out;
|
|
38
|
+
}
|
|
39
|
+
for (const entry of entries) {
|
|
40
|
+
const full = join(dir, entry.name);
|
|
41
|
+
if (entry.isDirectory()) {
|
|
42
|
+
out.push(...(await walkFiles(full)));
|
|
43
|
+
}
|
|
44
|
+
else if (entry.isFile()) {
|
|
45
|
+
out.push(full);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../src/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,kDAAkD;AAClD,MAAM,aAAa,GAAG,4CAA4C,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAe,EACf,WAAmB;IAEnB,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,SAAS,GAA2B,EAAE,CAAC;IAE7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAAE,SAAS;QAC5D,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC;QAC9C,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CACL,OAAO,KAAK,KAAK,UAAU;QAC3B,OAAQ,KAAiC,CAAC,SAAS,KAAK,UAAU;QAClE,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ,CACvD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { FieldConfig, FormOperation, ResourceMeta } from '@shamar/core';
|
|
2
|
+
export interface FormStateRequest {
|
|
3
|
+
operation: FormOperation;
|
|
4
|
+
changed?: string;
|
|
5
|
+
state: Record<string, unknown>;
|
|
6
|
+
record?: Record<string, unknown> | null;
|
|
7
|
+
}
|
|
8
|
+
export interface FormFieldClientMeta {
|
|
9
|
+
name: string;
|
|
10
|
+
live?: FieldConfig['live'];
|
|
11
|
+
label?: string;
|
|
12
|
+
help?: string;
|
|
13
|
+
hint?: string;
|
|
14
|
+
placeholder?: string;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
visible?: boolean;
|
|
17
|
+
required?: boolean;
|
|
18
|
+
readonly?: boolean;
|
|
19
|
+
value?: unknown;
|
|
20
|
+
currency?: FieldConfig['currency'];
|
|
21
|
+
}
|
|
22
|
+
export interface FormStateResponse {
|
|
23
|
+
state: Record<string, unknown>;
|
|
24
|
+
fields: FormFieldClientMeta[];
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Run afterStateUpdated for the changed field, then resolve closure props
|
|
28
|
+
* for all fields against the resulting state.
|
|
29
|
+
*/
|
|
30
|
+
export declare function evaluateFormState(meta: ResourceMeta, request: FormStateRequest): Promise<FormStateResponse>;
|
|
31
|
+
export declare function liveClientFields(meta: ResourceMeta): FormFieldClientMeta[];
|
|
32
|
+
/**
|
|
33
|
+
* Client meta for all form-visible fields (disabled/visible/required/readonly/live).
|
|
34
|
+
* Passed into Alpine so static closures are honored without a form-state roundtrip.
|
|
35
|
+
*/
|
|
36
|
+
export declare function formClientFields(meta: ResourceMeta, options?: {
|
|
37
|
+
state?: Record<string, unknown>;
|
|
38
|
+
record?: Record<string, unknown> | null;
|
|
39
|
+
operation?: FormOperation;
|
|
40
|
+
}): FormFieldClientMeta[];
|
|
41
|
+
//# sourceMappingURL=form-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-state.d.ts","sourceRoot":"","sources":["../src/form-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG7E,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,aAAa,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,mBAAmB,EAAE,CAAC;CAC/B;AA+CD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CAmB5B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,mBAAmB,EAAE,CAE1E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,aAAa,CAAC;CACtB,GACL,mBAAmB,EAAE,CAOvB"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { evaluateAfterStateUpdated, humanizeLabel, resolveClosure } from '@shamar/core';
|
|
2
|
+
function fieldClientMeta(field, state, record, operation) {
|
|
3
|
+
const ctx = {
|
|
4
|
+
get state() {
|
|
5
|
+
return state[field.name];
|
|
6
|
+
},
|
|
7
|
+
record: record ?? null,
|
|
8
|
+
operation,
|
|
9
|
+
get(name) {
|
|
10
|
+
return state[name];
|
|
11
|
+
},
|
|
12
|
+
set(name, value) {
|
|
13
|
+
state[name] = value;
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
const visible = resolveClosure(field.visible, ctx, true) ?? true;
|
|
17
|
+
const disabled = resolveClosure(field.disabled, ctx, false) ?? false;
|
|
18
|
+
const required = resolveClosure(field.required, ctx, false) ?? false;
|
|
19
|
+
const readonly = resolveClosure(field.readonly, ctx, false) ?? false;
|
|
20
|
+
const label = resolveClosure(field.label, ctx) ?? humanizeLabel(field.name);
|
|
21
|
+
const help = resolveClosure(field.help, ctx);
|
|
22
|
+
const hint = resolveClosure(field.hint, ctx);
|
|
23
|
+
const placeholder = resolveClosure(field.placeholder, ctx);
|
|
24
|
+
return {
|
|
25
|
+
name: field.name,
|
|
26
|
+
live: field.live,
|
|
27
|
+
label: typeof label === 'string' ? label : String(label ?? field.name),
|
|
28
|
+
help: help != null ? String(help) : undefined,
|
|
29
|
+
hint: hint != null ? String(hint) : undefined,
|
|
30
|
+
placeholder: placeholder != null ? String(placeholder) : undefined,
|
|
31
|
+
disabled: Boolean(disabled),
|
|
32
|
+
visible: Boolean(visible),
|
|
33
|
+
required: Boolean(required),
|
|
34
|
+
readonly: Boolean(readonly),
|
|
35
|
+
value: state[field.name],
|
|
36
|
+
currency: field.currency,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Run afterStateUpdated for the changed field, then resolve closure props
|
|
41
|
+
* for all fields against the resulting state.
|
|
42
|
+
*/
|
|
43
|
+
export async function evaluateFormState(meta, request) {
|
|
44
|
+
let state = { ...request.state };
|
|
45
|
+
if (request.changed) {
|
|
46
|
+
const field = meta.fields.find((f) => f.name === request.changed);
|
|
47
|
+
if (field?.afterStateUpdated) {
|
|
48
|
+
state = await evaluateAfterStateUpdated(field, {
|
|
49
|
+
state,
|
|
50
|
+
record: request.record,
|
|
51
|
+
operation: request.operation,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const fields = meta.fields
|
|
56
|
+
.filter((f) => !f.hiddenOnForm)
|
|
57
|
+
.map((field) => fieldClientMeta(field, state, request.record, request.operation));
|
|
58
|
+
return { state, fields };
|
|
59
|
+
}
|
|
60
|
+
export function liveClientFields(meta) {
|
|
61
|
+
return formClientFields(meta).filter((f) => f.live);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Client meta for all form-visible fields (disabled/visible/required/readonly/live).
|
|
65
|
+
* Passed into Alpine so static closures are honored without a form-state roundtrip.
|
|
66
|
+
*/
|
|
67
|
+
export function formClientFields(meta, options = {}) {
|
|
68
|
+
const state = options.state ?? {};
|
|
69
|
+
const operation = options.operation ?? 'edit';
|
|
70
|
+
return meta.fields
|
|
71
|
+
.filter((f) => !f.hiddenOnForm)
|
|
72
|
+
.map((field) => fieldClientMeta(field, state, options.record, operation));
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=form-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form-state.js","sourceRoot":"","sources":["../src/form-state.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { defineConfig, panel, type ShamarConfig, type ShamarOrm } from './config.js';
|
|
2
|
+
export { default as ShamarProvider } from './provider.js';
|
|
3
|
+
export { ResourceController } from './controller.js';
|
|
4
|
+
export { authRequired, buildAuthContext, createAuthorizer, missingRequiredMachineKey, resolveShamarUser, } from './shamar/auth.js';
|
|
5
|
+
export { createShamarRuntime, type ShamarRuntime, type PanelRuntime, } from './runtime.js';
|
|
6
|
+
export { configure, stubsRoot } from './configure.js';
|
|
7
|
+
export { discoverResources } from './discover.js';
|
|
8
|
+
export { default as ApiKeyResource } from './resources/api_key_resource.js';
|
|
9
|
+
export { default as RequireApiKeyMiddleware, createRequireApiKeyMiddleware } from './middleware/require_api_key_middleware.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { defineConfig, panel } from './config.js';
|
|
2
|
+
export { default as ShamarProvider } from './provider.js';
|
|
3
|
+
export { ResourceController } from './controller.js';
|
|
4
|
+
export { authRequired, buildAuthContext, createAuthorizer, missingRequiredMachineKey, resolveShamarUser, } from './shamar/auth.js';
|
|
5
|
+
export { createShamarRuntime, } from './runtime.js';
|
|
6
|
+
export { configure, stubsRoot } from './configure.js';
|
|
7
|
+
export { discoverResources } from './discover.js';
|
|
8
|
+
export { default as ApiKeyResource } from './resources/api_key_resource.js';
|
|
9
|
+
export { default as RequireApiKeyMiddleware, createRequireApiKeyMiddleware } from './middleware/require_api_key_middleware.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAqC,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,mBAAmB,GAGpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,4CAA4C,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { HttpContext } from '@adonisjs/core/http';
|
|
2
|
+
import type { NextFn } from '@adonisjs/core/types/http';
|
|
3
|
+
import type { ShamarConfig } from '../config.js';
|
|
4
|
+
export type RequireApiKeyHandler = (ctx: HttpContext, next: NextFn) => Promise<unknown>;
|
|
5
|
+
/**
|
|
6
|
+
* Build a route middleware that requires a valid **machine** API key
|
|
7
|
+
* (`X-Api-Key` / `Api-Key`).
|
|
8
|
+
*
|
|
9
|
+
* Prefer this factory when registering from Shamar (config is already known).
|
|
10
|
+
* The default class export resolves config from the IoC container for named use.
|
|
11
|
+
*/
|
|
12
|
+
export declare function createRequireApiKeyMiddleware(config: ShamarConfig): RequireApiKeyHandler;
|
|
13
|
+
/**
|
|
14
|
+
* Require a valid **machine** API key on the request (`X-Api-Key` or `Api-Key`).
|
|
15
|
+
*
|
|
16
|
+
* Opt in per route / group — does not run unless assigned:
|
|
17
|
+
*
|
|
18
|
+
* ```ts
|
|
19
|
+
* // Via Shamar config (applies to /api/shamar):
|
|
20
|
+
* auth: { apiKeys: { resolve, protectApi: true } }
|
|
21
|
+
*
|
|
22
|
+
* // Or on custom routes:
|
|
23
|
+
* import { middleware } from '#start/kernel'
|
|
24
|
+
* router.group(() => { … }).use(middleware.shamarApiKey())
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export default class RequireApiKeyMiddleware {
|
|
28
|
+
handle(ctx: HttpContext, next: NextFn): Promise<unknown>;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=require_api_key_middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require_api_key_middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/require_api_key_middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAKvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAGhD,MAAM,MAAM,oBAAoB,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAEvF;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,YAAY,GAAG,oBAAoB,CAoCxF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IACpC,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;CAM5C"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { extractMachineApiKey, isMachineApiKeyPrincipal, } from '@shamar/cherubim';
|
|
2
|
+
/**
|
|
3
|
+
* Build a route middleware that requires a valid **machine** API key
|
|
4
|
+
* (`X-Api-Key` / `Api-Key`).
|
|
5
|
+
*
|
|
6
|
+
* Prefer this factory when registering from Shamar (config is already known).
|
|
7
|
+
* The default class export resolves config from the IoC container for named use.
|
|
8
|
+
*/
|
|
9
|
+
export function createRequireApiKeyMiddleware(config) {
|
|
10
|
+
return async (ctx, next) => {
|
|
11
|
+
const resolve = config.auth?.apiKeys?.resolve;
|
|
12
|
+
if (!resolve) {
|
|
13
|
+
return ctx.response.status(500).json({
|
|
14
|
+
message: 'API key authentication is not configured (auth.apiKeys.resolve).',
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
const plainText = extractMachineApiKey({
|
|
18
|
+
get: (name) => ctx.request.header(name) ?? undefined,
|
|
19
|
+
});
|
|
20
|
+
if (!plainText) {
|
|
21
|
+
return ctx.response.status(401).json({
|
|
22
|
+
message: 'Valid API key required. Pass it via the X-Api-Key header.',
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
const principal = await resolve(plainText, ctx);
|
|
26
|
+
if (!principal || !isMachineApiKeyPrincipal(principal)) {
|
|
27
|
+
return ctx.response.status(401).json({
|
|
28
|
+
message: 'Valid API key required. Pass it via the X-Api-Key header.',
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
const shamarCtx = ctx;
|
|
32
|
+
shamarCtx.shamarGatewayUser = principal;
|
|
33
|
+
shamarCtx.shamarGatewayApiKeyId = principal.apiKeyId;
|
|
34
|
+
return next();
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Require a valid **machine** API key on the request (`X-Api-Key` or `Api-Key`).
|
|
39
|
+
*
|
|
40
|
+
* Opt in per route / group — does not run unless assigned:
|
|
41
|
+
*
|
|
42
|
+
* ```ts
|
|
43
|
+
* // Via Shamar config (applies to /api/shamar):
|
|
44
|
+
* auth: { apiKeys: { resolve, protectApi: true } }
|
|
45
|
+
*
|
|
46
|
+
* // Or on custom routes:
|
|
47
|
+
* import { middleware } from '#start/kernel'
|
|
48
|
+
* router.group(() => { … }).use(middleware.shamarApiKey())
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export default class RequireApiKeyMiddleware {
|
|
52
|
+
async handle(ctx, next) {
|
|
53
|
+
// Prefer binding from container when registered as named middleware.
|
|
54
|
+
const { default: app } = await import('@adonisjs/core/services/app');
|
|
55
|
+
const config = (await app.container.make('shamar.config'));
|
|
56
|
+
return createRequireApiKeyMiddleware(config)(ctx, next);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=require_api_key_middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require_api_key_middleware.js","sourceRoot":"","sources":["../../src/middleware/require_api_key_middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,kBAAkB,CAAA;AAMzB;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAAC,MAAoB;IAChE,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAA;QAE7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnC,OAAO,EAAE,kEAAkE;aAC5E,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,oBAAoB,CAAC;YACrC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS;SACrD,CAAC,CAAA;QAEF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnC,OAAO,EAAE,2DAA2D;aACrE,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,EAAE,GAAwB,CAAC,CAAA;QACpE,IAAI,CAAC,SAAS,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,CAAC;YACvD,OAAO,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBACnC,OAAO,EAAE,2DAA2D;aACrE,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,GAGjB,CAAA;QACD,SAAS,CAAC,iBAAiB,GAAG,SAAS,CAAA;QACvC,SAAS,CAAC,qBAAqB,GAAG,SAAS,CAAC,QAAQ,CAAA;QAEpD,OAAO,IAAI,EAAE,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC1C,KAAK,CAAC,MAAM,CAAC,GAAgB,EAAE,IAAY;QACzC,qEAAqE;QACrE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,6BAA6B,CAAC,CAAA;QACpE,MAAM,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAiB,CAAA;QAC1E,OAAO,6BAA6B,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACzD,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ApplicationService } from '@adonisjs/core/types';
|
|
2
|
+
import './types.js';
|
|
3
|
+
export default class ShamarProvider {
|
|
4
|
+
protected app: ApplicationService;
|
|
5
|
+
constructor(app: ApplicationService);
|
|
6
|
+
register(): void;
|
|
7
|
+
boot(): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK/D,OAAO,YAAY,CAAC;AAEpB,MAAM,CAAC,OAAO,OAAO,cAAc;IACrB,SAAS,CAAC,GAAG,EAAE,kBAAkB;gBAAvB,GAAG,EAAE,kBAAkB;IAE7C,QAAQ,IAAI,IAAI;IAgCV,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CA2C5B"}
|
package/dist/provider.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { dirname, join } from 'node:path';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
import { createShamarRuntime } from './runtime.js';
|
|
4
|
+
import { registerShamarRoutes } from './routes.js';
|
|
5
|
+
import { resolveGridItemStyle } from '@shamar/core';
|
|
6
|
+
import './types.js';
|
|
7
|
+
export default class ShamarProvider {
|
|
8
|
+
app;
|
|
9
|
+
constructor(app) {
|
|
10
|
+
this.app = app;
|
|
11
|
+
}
|
|
12
|
+
register() {
|
|
13
|
+
this.app.container.singleton('shamar.runtime', async () => {
|
|
14
|
+
const config = this.app.config.get('shamar');
|
|
15
|
+
return createShamarRuntime(config, { appRoot: this.app.makePath() });
|
|
16
|
+
});
|
|
17
|
+
this.app.container.singleton('shamar.config', async () => {
|
|
18
|
+
const runtime = await this.app.container.make('shamar.runtime');
|
|
19
|
+
return runtime.config;
|
|
20
|
+
});
|
|
21
|
+
this.app.container.singleton('shamar.registry', async () => {
|
|
22
|
+
const runtime = await this.app.container.make('shamar.runtime');
|
|
23
|
+
return runtime.registry;
|
|
24
|
+
});
|
|
25
|
+
this.app.container.singleton('shamar.adapter', async () => {
|
|
26
|
+
const runtime = await this.app.container.make('shamar.runtime');
|
|
27
|
+
return runtime.adapter;
|
|
28
|
+
});
|
|
29
|
+
this.app.container.singleton('shamar.authorizer', async () => {
|
|
30
|
+
const runtime = await this.app.container.make('shamar.runtime');
|
|
31
|
+
return runtime.authorizer;
|
|
32
|
+
});
|
|
33
|
+
this.app.container.singleton('shamar.panels', async () => {
|
|
34
|
+
const runtime = await this.app.container.make('shamar.runtime');
|
|
35
|
+
return runtime.panels;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
async boot() {
|
|
39
|
+
const runtime = await this.app.container.make('shamar.runtime');
|
|
40
|
+
const router = await this.app.container.make('router');
|
|
41
|
+
if (this.app.usingEdgeJS) {
|
|
42
|
+
const { default: edge } = await import('edge.js');
|
|
43
|
+
const viewsPath = join(dirname(fileURLToPath(import.meta.url)), '../resources/views/shamar');
|
|
44
|
+
edge.mount('shamar', viewsPath);
|
|
45
|
+
const { sortColumnUrl, cellValue, detailValue, badgeValues, fieldChecked, formInputType, fieldInputAttrs, recordNavQuery, } = await import('./shamar/list-query.js');
|
|
46
|
+
edge.global('sortColumnUrl', sortColumnUrl);
|
|
47
|
+
edge.global('cellValue', cellValue);
|
|
48
|
+
edge.global('detailValue', detailValue);
|
|
49
|
+
edge.global('badgeValues', badgeValues);
|
|
50
|
+
edge.global('fieldChecked', fieldChecked);
|
|
51
|
+
edge.global('formInputType', formInputType);
|
|
52
|
+
edge.global('fieldInputAttrs', fieldInputAttrs);
|
|
53
|
+
edge.global('recordNavQuery', recordNavQuery);
|
|
54
|
+
edge.global('resolveGridItemStyle', resolveGridItemStyle);
|
|
55
|
+
const { humanizeLabel, resolveAlignmentClass, alignmentTextClass } = await import('@shamar/core');
|
|
56
|
+
edge.global('humanizeLabel', humanizeLabel);
|
|
57
|
+
edge.global('resolveAlignmentClass', resolveAlignmentClass);
|
|
58
|
+
edge.global('alignmentTextClass', alignmentTextClass);
|
|
59
|
+
edge.global('jsonAttr', (value) => {
|
|
60
|
+
return JSON.stringify(value ?? null).replace(/</g, '\\u003c');
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
await registerShamarRoutes(this.app, router, runtime);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Resource, type PrepareCreateContext, type PrepareCreateResult, type HandleActionContext, type HandleActionResult, type ResourceModel, type ShamarUser } from '@shamar/core';
|
|
2
|
+
/**
|
|
3
|
+
* ORM-agnostic API credentials resource (PATs + machine keys).
|
|
4
|
+
*
|
|
5
|
+
* Apps bind their model: `class AppApiKeyResource extends ApiKeyResource { static model = ApiKey }`
|
|
6
|
+
*
|
|
7
|
+
* Create generates a one-time secret (shown once). Editing credentials is disabled;
|
|
8
|
+
* admins can deactivate / reactivate (and delete) instead.
|
|
9
|
+
* Abilities are picked from the registered `permissions` catalog by name.
|
|
10
|
+
*/
|
|
11
|
+
export default class ApiKeyResource extends Resource {
|
|
12
|
+
/** Keep as `ResourceModel` so apps can override with a Lucid/Mongoose model class. */
|
|
13
|
+
static model: ResourceModel;
|
|
14
|
+
static slug: string;
|
|
15
|
+
static label: string;
|
|
16
|
+
static singularLabel: string;
|
|
17
|
+
static recordTitleField: string;
|
|
18
|
+
static navigationGroup: string;
|
|
19
|
+
static navigationSort: number;
|
|
20
|
+
static icon: string;
|
|
21
|
+
static canAccess(_user: ShamarUser): boolean;
|
|
22
|
+
static canViewAny(_user: ShamarUser): boolean;
|
|
23
|
+
static canView(_user: ShamarUser, _record?: Record<string, unknown>): boolean;
|
|
24
|
+
static canCreate(_user: ShamarUser): boolean;
|
|
25
|
+
/** Secrets are create-once — use Deactivate / Reactivate instead of edit. */
|
|
26
|
+
static canEdit(_user: ShamarUser, _record?: Record<string, unknown>): boolean;
|
|
27
|
+
static canDelete(_user: ShamarUser, _record?: Record<string, unknown>): boolean;
|
|
28
|
+
static resourceActions(): import("@shamar/core").ActionConfig[];
|
|
29
|
+
static form(): import("@shamar/core").FormSchema;
|
|
30
|
+
static table(): import("@shamar/core").TableSchema;
|
|
31
|
+
static infolist(): import("@shamar/core").InfolistSchema;
|
|
32
|
+
static prepareCreate(data: Record<string, unknown>, ctx: PrepareCreateContext): Promise<PrepareCreateResult>;
|
|
33
|
+
static handleAction(action: string, records: Record<string, unknown>[], ctx: HandleActionContext): Promise<HandleActionResult | null>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=api_key_resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api_key_resource.d.ts","sourceRoot":"","sources":["../../src/resources/api_key_resource.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAcR,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,cAAc,CAAA;AAGrB;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,QAAQ;IAClD,sFAAsF;IACtF,OAAgB,KAAK,EAAE,aAAa,CAAW;IAC/C,OAAgB,IAAI,SAAa;IACjC,OAAgB,KAAK,SAAa;IAClC,OAAgB,aAAa,SAAY;IACzC,OAAgB,gBAAgB,SAAS;IACzC,OAAgB,eAAe,SAAW;IAC1C,OAAgB,cAAc,SAAI;IAClC,OAAgB,IAAI,SAAQ;WAEZ,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;WAIrC,UAAU,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;WAItC,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;WAItE,SAAS,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO;IAIrD,6EAA6E;WAC7D,OAAO,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;WAItE,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;WAIxE,eAAe;WAuBf,IAAI;WAsCJ,KAAK;WAiBL,QAAQ;WAsBF,aAAa,CACjC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,GAAG,EAAE,oBAAoB,GACxB,OAAO,CAAC,mBAAmB,CAAC;WAiET,YAAY,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EAClC,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;CAuCtC"}
|