@unitflow/router 0.1.1 → 0.2.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/dist/router.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Event, Model, Store } from "@unitflow/core";
2
- import { Registry } from "@unitflow/core/registry";
2
+ import { InstanceScope, Registry } from "@unitflow/core/registry";
3
3
  import * as Context from "effect/Context";
4
4
  import * as Cause from "effect/Cause";
5
5
  import * as Effect from "effect/Effect";
@@ -7,6 +7,7 @@ import * as Layer from "effect/Layer";
7
7
  import * as Option from "effect/Option";
8
8
  import { type Pipeable } from "effect/Pipeable";
9
9
  import * as Schema from "effect/Schema";
10
+ import type * as Scope from "effect/Scope";
10
11
  import type { ParseOptions } from "effect/SchemaAST";
11
12
  declare const RouteTypeId: unique symbol;
12
13
  declare const RouteGroupTypeId: unique symbol;
@@ -134,6 +135,19 @@ export interface Route<Id extends string, Path extends string, ParamsSchema exte
134
135
  readonly path: Path;
135
136
  readonly options: RouteOptions<Path, ParamsSchema, Search>;
136
137
  readonly middlewares: ReadonlyArray<AnyMiddleware>;
138
+ /** `true` only for `Route.layout`'s implicit parent: contributes no path
139
+ * segment, can never be a leaf/exact match — distinct from `path: "/"`
140
+ * (which is a real, navigable root) even though both normalize to `"/"`. */
141
+ readonly pathless?: boolean;
142
+ /** The id of the route this one was explicitly attached under — via
143
+ * `Route.addChild` on the parent, or implicitly via `Route.layout`'s
144
+ * pathless grouping parent. `undefined` for a route with no declared
145
+ * parent: it matches only itself, never becomes an accidental ancestor of
146
+ * an unrelated route that happens to share a literal path prefix. */
147
+ readonly parentId?: string;
148
+ /** Children declared on this route via `Route.addChild`, not yet
149
+ * expanded into the flat list `Route.group(...)` compiles from. */
150
+ readonly children: ReadonlyArray<Route.Any>;
137
151
  readonly "~types": {
138
152
  readonly id: Id;
139
153
  readonly path: Path;
@@ -157,9 +171,50 @@ export declare namespace Route {
157
171
  type Provided<R extends Any> = R["~types"]["provided"];
158
172
  type Error<R extends Any> = R["~types"]["error"];
159
173
  type Services<R extends Any> = R["~types"]["services"];
174
+ /** The FULLY FLATTENED set of routes `Route.addChild` attached under `R`,
175
+ * at any depth — carried as a phantom `"~children"` marker INTERSECTED
176
+ * onto `R`'s type (not one of `Route<>`'s own type parameters, kept out
177
+ * of the core interface so `Route.Any` stays the simple type every other
178
+ * conditional type here already builds on). `WithChild` bakes a child's
179
+ * OWN already-flattened closure in at EACH `addChild` call (bottom-up),
180
+ * so reading this is a single non-recursive extraction, not a recursive
181
+ * walk — a recursive `Descendants<R>` was tried and blew up `tsc`
182
+ * (TS2589) once anything opaque (`Route.Any` itself, or a fully generic
183
+ * unresolved type parameter behind `AnyRouteGroup`) reached it. Plain
184
+ * routes never declare this property, so the check below fails structural
185
+ * assignability and falls through to `readonly []`. */
186
+ type Children<R> = R extends {
187
+ readonly "~children": infer C extends ReadonlyArray<Any>;
188
+ } ? C : readonly [];
189
+ /** Alias of {@link Children}: already the full flattened descendant set by
190
+ * construction (see `WithChild`), not computed by recursing here. */
191
+ type Descendants<R> = Children<R>[number];
160
192
  }
161
193
  export declare const isRoute: (value: unknown) => value is Route.Any;
162
194
  export declare const route: <const Id extends string, const Path extends string, ParamsSchema extends AnyParamsSchema = undefined, Search extends AnySearchDefinition = undefined>(id: Id, options: RouteOptions<Path, ParamsSchema, Search>) => Route<Id, Path, ParamsSchema, Search>;
195
+ /** `PrefixedRoute` applied to every member of a tuple, preserving its
196
+ * length/order (a homomorphic mapped tuple type) — used to re-root a whole
197
+ * already-flattened subtree (a child's own previously-attached descendants)
198
+ * under a NEW ancestor's path, mirroring what `flattenRoute` does to the
199
+ * VALUE at runtime by threading the accumulated prefix down. */
200
+ type PrefixedTuple<T extends ReadonlyArray<Route.Any>, Prefix extends string> = {
201
+ readonly [K in keyof T]: PrefixedRoute<T[K], Prefix>;
202
+ };
203
+ type WithChild<R extends Route.Any, Child extends Route.Any> = Omit<R, "~children"> & {
204
+ readonly "~children": readonly [
205
+ ...Route.Children<R>,
206
+ PrefixedRoute<Child, Route.Path<R>>,
207
+ ...PrefixedTuple<Route.Children<Child>, Route.Path<R>>
208
+ ];
209
+ };
210
+ /** Declares `child` as nested under `self`: `child`'s path is rewritten to
211
+ * join under `self`'s own path (reuses the same `joinPaths` composition
212
+ * `.prefix()` already uses), and `child.parentId` is set to `self.id`.
213
+ * Opt-in only — a route with no `addChild` calls has no children, so two
214
+ * routes whose paths happen to share a literal prefix never nest unless
215
+ * this was called explicitly. Chainable: `.pipe(Route.addChild(A),
216
+ * Route.addChild(B))`. */
217
+ export declare const addChild: <Child extends Route.Any>(child: Child) => <Self extends Route.Any>(self: Self) => WithChild<Self, Child>;
163
218
  type PrefixedRoute<R extends Route.Any, Prefix extends string> = R extends Route<infer Id, infer Path, infer ParamsSchema, infer Search, infer Requires, infer Provided> ? Route<Id, JoinPath<Prefix, Path>, ParamsSchema, Search, Requires, Provided> : never;
164
219
  type WithMiddleware<R extends Route.Any, M extends AnyMiddleware> = R extends Route<infer Id, infer Path, infer ParamsSchema, infer Search, infer Requires, infer Provided> ? Route<Id, Path, ParamsSchema, Search, Requires | Context.Service.Identifier<M>, [
165
220
  ProvidesOf<M>
@@ -177,11 +232,34 @@ export interface RouteGroup<R extends Route.Any> extends Pipeable {
177
232
  }
178
233
  export type AnyRouteGroup = RouteGroup<Route.Any>;
179
234
  export type RoutesOf<Group> = Group extends RouteGroup<infer R> ? R : never;
180
- export declare const group: <const Routes extends ReadonlyArray<Route.Any>>(...routes: Routes) => RouteGroup<Routes[number]>;
181
- export declare const makeGroup: <const Routes extends ReadonlyArray<Route.Any>>(...routes: Routes) => RouteGroup<Routes[number]>;
182
- export declare const add: <const Routes extends ReadonlyArray<Route.Any>>(...routes: Routes) => RouteGroup<Routes[number]>;
235
+ /** Builds a `RouteGroup` from top-level route arguments, widening each
236
+ * argument's type into itself PLUS every route `Route.addChild` attached
237
+ * under it (at any depth) matching what `flattenRoute` does to the VALUE
238
+ * at runtime, so a route table built from one `.addChild`-composed parent
239
+ * exposes every descendant's id/path to `RoutePath`/`RouteIds` and friends,
240
+ * not just the parent passed in directly. */
241
+ export declare const group: <const Routes extends ReadonlyArray<Route.Any>>(...routes: Routes) => RouteGroup<Routes[number] | Route.Descendants<Routes[number]>>;
242
+ export declare const makeGroup: <const Routes extends ReadonlyArray<Route.Any>>(...routes: Routes) => RouteGroup<Routes[number] | Route.Descendants<Routes[number]>>;
243
+ export declare const add: <const Routes extends ReadonlyArray<Route.Any>>(...routes: Routes) => RouteGroup<Routes[number] | Route.Descendants<Routes[number]>>;
183
244
  export declare const merge: <const Groups extends ReadonlyArray<AnyRouteGroup>>(...groups: Groups) => RouteGroup<RoutesOf<Groups[number]>>;
184
- export declare const prefix: <const Prefix extends string, Group extends AnyRouteGroup>(routeGroup: Group, path: Prefix) => RouteGroup<PrefixedRoute<RoutesOf<Group>, Prefix>>;
245
+ /** The members `Route.layout` wraps: `self`'s own type if it's a single
246
+ * `Route`, otherwise the group's member union — in both cases WITHOUT its
247
+ * `Route.Descendants` yet, `layout`'s own return type widens that in. */
248
+ type MembersOf<Self extends AnyRouteGroup | Route.Any> = Self extends Route.Any ? Self : RoutesOf<Self>;
249
+ /** Wraps `self` (a route, or a group of routes) under an implicit pathless
250
+ * parent with the given id — a shared rendering/guard-scope wrapper for
251
+ * *independent* siblings that aren't the same resource (unlike
252
+ * `Route.addChild`, which is for one route that genuinely owns a child's
253
+ * content). The parent contributes no path segment of its own. */
254
+ export declare const layout: <const Id extends string>(id: Id) => <Self extends AnyRouteGroup | Route.Any>(self: Self) => RouteGroup<Route<Id, "", undefined, undefined> | MembersOf<Self> | Route.Descendants<MembersOf<Self>>>;
255
+ /** Attaches a middleware TAG to `self` (a route, or every route currently in
256
+ * a group). With explicit parent-child hierarchy, attaching to a shared
257
+ * parent (`Route.layout`'s implicit parent, or any `Route.addChild` owner)
258
+ * is usually enough — `resolveMatches` walks the ancestor chain and runs an
259
+ * ancestor's middlewares for every descendant navigation, so a group-wide
260
+ * attach is only needed for independent routes with no shared parent. */
261
+ export declare const middleware: <M extends AnyMiddleware>(mw: M) => <Self extends AnyRouteGroup | Route.Any>(self: Self) => Self extends AnyRouteGroup ? RouteGroup<WithMiddleware<RoutesOf<Self>, M>> : WithMiddleware<Self & Route.Any, M>;
262
+ export declare const prefix: <const Prefix extends string>(path: Prefix) => <Group extends AnyRouteGroup>(routeGroup: Group) => RouteGroup<PrefixedRoute<RoutesOf<Group>, Prefix>>;
185
263
  export declare const routes: <Group extends AnyRouteGroup>(routeGroup: Group) => ReadonlyArray<RoutesOf<Group>>;
186
264
  export interface ParsedLocation {
187
265
  readonly pathname: string;
@@ -334,9 +412,15 @@ export type RouteShapes<Group extends AnyRouteGroup> = {
334
412
  /** The page-model map handed to `router.pages(...)`: keys are the router's
335
413
  * route ids (a typo will not compile), values are the page models. Declared
336
414
  * AFTER the models — never on the route — because a route referencing its
337
- * model while the model reads `router.routes` is a type-inference cycle. */
415
+ * model while the model reads `router.routes` is a type-inference cycle.
416
+ *
417
+ * Values are `Model.Singleton` on purpose: `makePages` leases each one with
418
+ * `Model.get(pageModel)`, no key. A keyed page model has nowhere to receive
419
+ * one here — page data is meant to be gated on the route's own ports
420
+ * (`params`/`search`/`opened`), not on the page model's key. Wrap a keyed
421
+ * model in a singleton that leases it with the fixed key it needs. */
338
422
  export type PageMap<Group extends AnyRouteGroup> = {
339
- readonly [Id in RouteIds<Group>]?: Model.AnyService;
423
+ readonly [Id in RouteIds<Group>]?: Model.Singleton;
340
424
  };
341
425
  type PageServicesOfMap<Pages> = {
342
426
  [K in keyof Pages]-?: Pages[K] extends Model.AnyService ? Context.Service.Identifier<Pages[K]> : never;
@@ -413,11 +497,25 @@ type SearchParamOptions<Search> = IsAny<Search> extends true ? {
413
497
  } : {
414
498
  readonly search: Search | true | ((current: RawSearch) => Search);
415
499
  };
416
- export type ToOptions<TRouter extends AnyRouter | AnyRouterController, To extends RoutePath<TRouter>> = {
500
+ /** A raw href, not one of the router's registered route templates — no
501
+ * `params`/`search` to type-check against a schema that doesn't apply. The
502
+ * companion to the typed member below: together they let `navigate`/`Link`
503
+ * accept either a known route (typed, autocompleted) or an arbitrary string
504
+ * (e.g. a redirect target stashed as `?redirect=<href>`), matching the same
505
+ * "known union member or plain string" shape TanStack Router's own `to`
506
+ * typing uses. */
507
+ export interface RawToOptions {
508
+ readonly to: string & {};
509
+ readonly hash?: string | true;
510
+ readonly state?: unknown;
511
+ readonly params?: never;
512
+ readonly search?: never;
513
+ }
514
+ export type ToOptions<TRouter extends AnyRouter | AnyRouterController, To extends RoutePath<TRouter>> = ({
417
515
  readonly to: To;
418
516
  readonly hash?: string | true;
419
517
  readonly state?: unknown;
420
- } & PathParamOptions<PathParamsFor<TRouter, To>> & SearchParamOptions<SearchInputFor<TRouter, To>>;
518
+ } & PathParamOptions<PathParamsFor<TRouter, To>> & SearchParamOptions<SearchInputFor<TRouter, To>>) | RawToOptions;
421
519
  export type NavigateOptions<TRouter extends AnyRouter | AnyRouterController, To extends RoutePath<TRouter>> = ToOptions<TRouter, To> & {
422
520
  readonly replace?: boolean;
423
521
  readonly resetScroll?: boolean;
@@ -457,10 +555,22 @@ export interface RouterTargets<Id extends string, Group extends AnyRouteGroup> {
457
555
  /** Builds an href string for a route target without navigating. */
458
556
  readonly buildHref: <const To extends RoutePath<RouterController<Group>>>(options: ToOptions<RouterController<Group>, To>) => Effect.Effect<string, unknown, RouterModel<Id, Group> | Registry | RouterServicesForGroup<Group>>;
459
557
  }
460
- export declare const make: <const Id extends string, const Group extends AnyRouteGroup>(id: Id, routeGroup: Group, options?: RouterOptions) => {
461
- readonly NavigationModel: RouterModel<Id, Group> & RouterTargets<Id, Group>;
462
- readonly RouteModel: RouteModel<Id, Group>;
463
- };
558
+ /** What `Router.make(...)` returns: one value instead of a `NavigationModel`/
559
+ * `RouteModel` pair the app had to name and compose separately. `model`
560
+ * (the engine — navigation, current location, `buildHref`/`buildLocation`)
561
+ * and `routeModel` (the keyed per-route unit) are the same two `Model.get`
562
+ * targets as before, just nested — `model`/`routeModel` are plain fields,
563
+ * not the identifiers of their own types (`RouterModel`/`RouteModel`),
564
+ * exactly like the existing `routes` value / `RouteModel<...>` type pairing
565
+ * already has. `layer` is `routeModel.layer` merged with `model.layer` —
566
+ * `routeModel`'s own `make` already leases `model`, so this is the same
567
+ * composition apps previously wrote by hand at the call site. */
568
+ export interface AppRouter<Id extends string, Group extends AnyRouteGroup> {
569
+ readonly model: RouterModel<Id, Group> & RouterTargets<Id, Group>;
570
+ readonly routeModel: RouteModel<Id, Group>;
571
+ readonly layer: Layer.Layer<RouterModel<Id, Group> | RouteModel<Id, Group>, never, Exclude<RouterServicesForGroup<Group> | History | Registry, InstanceScope | Scope.Scope>>;
572
+ }
573
+ export declare const make: <const Id extends string, const Group extends AnyRouteGroup>(id: Id, routeGroup: Group, options?: RouterOptions) => AppRouter<Id, Group>;
464
574
  /** INTERNAL (used by RouterView): the pages model — one singleton owning
465
575
  * the router and every mapped page model, the view tree's root. */
466
576
  export declare const makePages: <M extends AnyRouter, const Pages extends PageMap<RouterGroupOf<M>>>(model: M, pageMap: Pages) => PagesModel<RouterIdOf<M>, RouterGroupOf<M>, Pages>;
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAiB,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,QAAQ,EAAiB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAErD,QAAA,MAAM,WAAW,eAAuC,CAAC;AACzD,QAAA,MAAM,gBAAgB,eAA4C,CAAC;AAUnE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEvD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAC3E,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;AAC3E,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AAC7F,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAE7D,KAAK,YAAY,CAAC,CAAC,IAAI;KACpB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;CACpD,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,KAAK,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAExC,KAAK,aAAa,CAAC,OAAO,SAAS,MAAM,IAAI,OAAO,SAAS,IAAI,MAAM,IAAI,GAAG,GAC1E;IAAE,QAAQ,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM;CAAE,GACjC,OAAO,SAAS,IAAI,MAAM,IAAI,EAAE,GAC9B;IAAE,QAAQ,EAAE,CAAC,IAAI,IAAI,GAAG,MAAM;CAAE,GAChC,OAAO,SAAS,IAAI,MAAM,IAAI,EAAE,GAC9B;IAAE,QAAQ,EAAE,CAAC,IAAI,IAAI,SAAS,EAAE,GAAG,QAAQ,GAAG,IAAI,GAAG,MAAM;CAAE,GAC7D,WAAW,CAAC;AAEpB,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/B,KAAK,cAAc,CAAC,IAAI,SAAS,MAAM,IAAI,IAAI,SAAS,GAAG,MAAM,OAAO,IAAI,MAAM,IAAI,EAAE,GACpF,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,GACzD,aAAa,CAAC,IAAI,CAAC,CAAC;AAExB,MAAM,MAAM,UAAU,CAAC,IAAI,SAAS,MAAM,IAAI,MAAM,SAAS,IAAI,GAC7D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAClC,cAAc,CAAC,IAAI,SAAS,IAAI,MAAM,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;AAEhE,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,IAAI,MAAM,IAAI,EAAE,GAC7D,aAAa,CAAC,IAAI,CAAC,GACnB,CAAC,SAAS,GAAG,MAAM,IAAI,GAAG,GACxB,aAAa,CAAC,IAAI,CAAC,GACnB,CAAC,CAAC;AAER,MAAM,MAAM,QAAQ,CAAC,MAAM,SAAS,MAAM,EAAE,IAAI,SAAS,MAAM,IAAI,MAAM,SAAS,GAAG,GACjF,IAAI,SAAS,GAAG,GACd,GAAG,GACH,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,GAC3B,IAAI,SAAS,GAAG,GACd,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,GAC3B,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;AAEzD,MAAM,WAAW,WAAW,CAAC,KAAK,SAAS,YAAY,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAE,SAAQ,QAAQ;IACrF,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC;IAC9C,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrB,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;CACzB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC7D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9D,KAAK,eAAe,GAAG,cAAc,GAAG,SAAS,CAAC;AAClD,KAAK,mBAAmB,GAAG,cAAc,GAAG,cAAc,GAAG,SAAS,CAAC;AACvE,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAClF,KAAK,cAAc,CAAC,IAAI,SAAS,MAAM,EAAE,YAAY,IAAI,YAAY,SAAS,cAAc,GACxF,YAAY,CAAC,YAAY,CAAC,GAC1B,UAAU,CAAC,IAAI,CAAC,CAAC;AACrB,KAAK,aAAa,CAAC,IAAI,SAAS,MAAM,EAAE,YAAY,IAAI,YAAY,SAAS,cAAc,GACvF,YAAY,CAAC,YAAY,CAAC,GAC1B,UAAU,CAAC,IAAI,CAAC,CAAC;AACrB,KAAK,aAAa,CAAC,YAAY,IAAI,YAAY,SAAS,cAAc,GAAG,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;AACpG,KAAK,gBAAgB,CAAC,YAAY,IAAI,YAAY,SAAS,cAAc,GACrE,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,YAAY,CAAC,GACzF,KAAK,CAAC;AACV,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GACjE,CAAC,GACD,CAAC,SAAS,cAAc,GACtB,YAAY,CAAC,CAAC,CAAC,GACf,WAAW,CAAC;AAClB,KAAK,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAClE,CAAC,GACD,CAAC,SAAS,cAAc,GACtB,YAAY,CAAC,CAAC,CAAC,GACf,WAAW,CAAC;AAClB,KAAK,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,GACjE,CAAC,GACD,CAAC,SAAS,cAAc,GACtB,MAAM,CAAC,WAAW,GAClB,KAAK,CAAC;AACZ,KAAK,gBAAgB,CAAC,CAAC,IAAI,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,GACpE,CAAC,GACD,CAAC,SAAS,cAAc,GACtB,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,GACnE,KAAK,CAAC;AAEZ,eAAO,MAAM,MAAM,GAAI,KAAK,SAAS,YAAY,EAAE,MAAM,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,EACrF,QAAQ,CAAC,GAAG,EAAE,SAAS,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EACrD,UAAU;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS,CAAA;CAAE,KAC1D,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAQhC,CAAC;AAEH,eAAO,MAAM,YAAY,GACvB,CAAC,SAAS,YAAY,EACtB,CAAC,SAAS,YAAY,EACtB,EAAE,EACF,EAAE,EAEF,QAAQ,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,EAClC,UAAU,YAAY,KACrB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,EAAE,CACsD,CAAC;AAElG,MAAM,WAAW,YAAY,CAAC,IAAI,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM;IAC/D,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,YAAY,CAC3B,IAAI,SAAS,MAAM,EACnB,YAAY,SAAS,eAAe,EACpC,MAAM,SAAS,mBAAmB;IAElC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,CACrB,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,KACrB,WAAW,CAAC,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACvE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3F,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,CACd,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,KACpF,aAAa,CAAC,YAAY,CAAC,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,CACf,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC,KACpF,aAAa,CAAC,YAAY,CAAC,CAAC;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;cAEc;AACd,MAAM,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAEvE;;;;;;8CAM8C;AAC9C,MAAM,WAAW,iBAAiB,CAAC,QAAQ,GAAG,IAAI;IAChD,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,CAAC,CAAC;CACtF;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC;AAEzE,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,eAAe,CAAC,IAAI,EAAE,EAAE,SAAS,MAAM,EAAE,QAAQ,GAAG,IAAI,CACvE,SAAQ,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACnE,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC/B;;kEAE8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,KAAK,EACxB,OAAO,EAAE,CACP,OAAO,EAAE,iBAAiB,KACvB,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,aAAa,GAAG,aAAa,EAAE,CAAC,CAAC,KAC3D,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,UAAU,GACpB,IAAI,QACJ,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,IAAI,EAAE,MAC/B,QAAQ,GAAG,IAAI,OAAK,eAAe,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAwBtD,CAAC;AAEJ,MAAM,WAAW,KAAK,CACpB,EAAE,SAAS,MAAM,EACjB,IAAI,SAAS,MAAM,EACnB,YAAY,SAAS,eAAe,EACpC,MAAM,SAAS,mBAAmB,EAClC,QAAQ,GAAG,KAAK,EAChB,QAAQ,GAAG,WAAW,CACtB,SAAQ,QAAQ;IAChB,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,WAAW,CAAC;IAC3C,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAC3D,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;QACpB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACpD,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QACxD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;QACxC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;QAC5B,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,GAAG,aAAa,CAAC;QACpG,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,YAAY,CAAC,GAAG,gBAAgB,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;KACzF,CAAC;CACH;AAED,yBAAiB,KAAK,CAAC;IACrB,KAAY,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACrF,KAAY,EAAE,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC;IAClD,KAAY,IAAI,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;IACtD,KAAY,MAAM,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1D,KAAY,WAAW,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC;IACpE,KAAY,MAAM,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC1D,KAAY,WAAW,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC;IACpE,KAAY,QAAQ,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9D,KAAY,KAAK,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;IACxD,KAAY,QAAQ,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAC;CAC/D;AAED,eAAO,MAAM,OAAO,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,KAAK,CAAC,GACa,CAAC;AAEtE,eAAO,MAAM,KAAK,GAChB,KAAK,CAAC,EAAE,SAAS,MAAM,EACvB,KAAK,CAAC,IAAI,SAAS,MAAM,EACzB,YAAY,SAAS,eAAe,GAAG,SAAS,EAChD,MAAM,SAAS,mBAAmB,GAAG,SAAS,EAE9C,IAAI,EAAE,EACN,SAAS,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,KAChD,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAQrC,CAAC;AAEH,KAAK,aAAa,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,MAAM,SAAS,MAAM,IAAI,CAAC,SAAS,KAAK,CAC9E,MAAM,EAAE,EACR,MAAM,IAAI,EACV,MAAM,YAAY,EAClB,MAAM,MAAM,EACZ,MAAM,QAAQ,EACd,MAAM,QAAQ,CACf,GACG,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAC3E,KAAK,CAAC;AAeV,KAAK,cAAc,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,KAAK,CACjF,MAAM,EAAE,EACR,MAAM,IAAI,EACV,MAAM,YAAY,EAClB,MAAM,MAAM,EACZ,MAAM,QAAQ,EACd,MAAM,QAAQ,CACf,GACG,KAAK,CACH,EAAE,EACF,IAAI,EACJ,YAAY,EACZ,MAAM,EACN,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EACxC;IAAC,UAAU,CAAC,CAAC,CAAC;CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CACrE,GACD,KAAK,CAAC;AAEV,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAE,SAAQ,QAAQ;IAC/D,QAAQ,CAAC,CAAC,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAClC,GAAG,CAAC,KAAK,CAAC,EAAE,SAAS,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1F,KAAK,CAAC,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,aAAa,CAAC,EACrD,GAAG,MAAM,EAAE,MAAM,GAChB,UAAU,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5C,MAAM,CAAC,KAAK,CAAC,MAAM,SAAS,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1F;;uDAEmD;IACnD,UAAU,CAAC,CAAC,SAAS,aAAa,EAAE,UAAU,EAAE,CAAC,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACtF;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,MAAM,QAAQ,CAAC,KAAK,IAAI,KAAK,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAsB5E,eAAO,MAAM,KAAK,GAAI,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EACjE,GAAG,QAAQ,MAAM,KAChB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAIxB,CAAC;AAEL,eAAO,MAAM,SAAS,SARM,MAAM,SAAS,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,aACtD,MAAM,KAChB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAME,CAAC;AAE/B,eAAO,MAAM,GAAG,GAAI,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAC/D,GAAG,QAAQ,MAAM,KAChB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAqB,CAAC;AAElD,eAAO,MAAM,KAAK,GAAI,KAAK,CAAC,MAAM,SAAS,aAAa,CAAC,aAAa,CAAC,EACrE,GAAG,QAAQ,MAAM,KAChB,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CACyD,CAAC;AAEhG,eAAO,MAAM,MAAM,GAAI,KAAK,CAAC,MAAM,SAAS,MAAM,EAAE,KAAK,SAAS,aAAa,EAC7E,YAAY,KAAK,EACjB,MAAM,MAAM,KACX,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CACsC,CAAC;AAE3F,eAAO,MAAM,MAAM,GAAI,KAAK,SAAS,aAAa,EAAE,YAAY,KAAK,KAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CACrC,CAAC;AAEjE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7C,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CACrE;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;IACzD,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAClB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACjC,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAAC;IACxE,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,QAAQ,CAAC,eAAe,CAAC,EAAE,cAAc,CAAC;IAC1C,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC;IACrD,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,MAAM,CAAC;CAC7D;AAED;;;wDAGwD;AACxD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE;QACvB,QAAQ,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC;KACrD,KAAK,aAAa,CAAC;CACrB;;AAED;;;;;;;;;GASG;AACH,qBAAa,OAAQ,SAAQ,YAE5B;CAAG;AAEJ,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAGpD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAGjD,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,UAAU;IAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACjD,KAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAWpB,CAAC;AAEJ,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,EAAE;IAC9B,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAC;CAC7B,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEjC;;;;4DAI4D;AAC5D,MAAM,WAAW,gBAAgB,CAAC,KAAK,SAAS,aAAa,GAAG,aAAa;IAC3E,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAC1E,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAC5C,cAAc,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EACtE,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAC5C,MAAM,CAAC;IACZ,QAAQ,CAAC,mBAAmB,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAChF,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAC5C,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,OAAO,EAAE,sBAAsB,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;IACtF,QAAQ,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAC5E,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAC5C,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,sBAAsB,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;IAC9E,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EACvE,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,KAC5D,OAAO,CAAC;CACd;AAED,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAExD;;;;mCAImC;AACnC,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GAC5E,EAAE,SAAS,SAAS,CAAC,CAAC,CAAC,GACrB,eAAe,CAAC,CAAC,EAAE,EAAE,CAAC,GACtB,KAAK,GACP,KAAK,CAAC;AAEV,MAAM,WAAW,WAAW,CAAC,KAAK,SAAS,aAAa,CAAE,SAAQ,KAAK,CAAC,KAAK;IAC3E,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7G,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAC9C,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1D,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAClD,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;KACpD,CAAC;IACF,QAAQ,CAAC,EAAE,EAAE;QACX,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1D,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;QAClD,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7G,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;KACpD,CAAC;CACH;AAED,KAAK,sBAAsB,CAAC,KAAK,SAAS,aAAa,IAAI,QAAQ,CAAC,KAAK,CAAC,SAAS,MAAM,CAAC,GACtF,CAAC,SAAS,KAAK,CAAC,GAAG,GACjB,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GACjB,KAAK,GACP,KAAK,CAAC;AAEV;;wEAEwE;AACxE,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAE,SAAQ,KAAK,CAAC,KAAK;IACtE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACrE,CAAC;IACF,QAAQ,CAAC,EAAE,EAAE;QACX,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACrE,CAAC;CACH;AAED,MAAM,MAAM,QAAQ,CAAC,KAAK,SAAS,aAAa,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AAE9E;;iEAEiE;AACjE,MAAM,MAAM,WAAW,CAAC,KAAK,SAAS,aAAa,IAAI;IACrD,QAAQ,EAAE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAA;KAAE,CAAC,CAAC;CAChG,CAAC;AAEF;;;4EAG4E;AAC5E,MAAM,MAAM,OAAO,CAAC,KAAK,SAAS,aAAa,IAAI;IACjD,QAAQ,EAAE,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU;CACpD,CAAC;AAEF,KAAK,iBAAiB,CAAC,KAAK,IAAI;KAC7B,CAAC,IAAI,MAAM,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,UAAU,GACnD,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GACpC,KAAK;CACV,CAAC,MAAM,KAAK,CAAC,CAAC;AAEf;wBACwB;AACxB,MAAM,WAAW,UAAU,CAAC,KAAK,CAAE,SAAQ,KAAK,CAAC,KAAK;IACpD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACvC,QAAQ,CAAC,EAAE,EAAE;QACX;;;gEAGwD;QACxD,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;KAClC,GAAG;QAGF,QAAQ,EAAE,CAAC,IAAI,MAAM,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,UAAU,GAC3D,CAAC,GAAG,MAAM,GACV,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,UAAU,GACzC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,GACzC,KAAK;KACV,CAAC;CACH;AAED;;;4CAG4C;AAC5C,MAAM,WAAW,UAAU,CACzB,EAAE,SAAS,MAAM,GAAG,MAAM,EAC1B,KAAK,SAAS,aAAa,GAAG,aAAa,EAC3C,KAAK,SAAS,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAC7C,SAAQ,KAAK,CAAC,YAAY,CACxB,UAAU,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,EAC5B,GAAG,EAAE,QAAQ,EACb,IAAI,EACJ,UAAU,CAAC,KAAK,CAAC,EACjB,KAAK,EACL,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,QAAQ,CAC7D;IACD;;6EAEyE;IACzE,QAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC;CACnC;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAEtD;0CAC0C;AAC1C,MAAM,WAAW,UAAU,CACzB,EAAE,SAAS,MAAM,GAAG,MAAM,EAC1B,KAAK,SAAS,aAAa,GAAG,aAAa,CAC3C,SAAQ,KAAK,CAAC,YAAY,CACxB,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,EACrB,GAAG,EAAE,SAAS,EACd,QAAQ,CAAC,KAAK,CAAC,EACf,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAC/B,KAAK,EACL,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,QAAQ,CAClC;IACD,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,WAAW,CAC1B,EAAE,SAAS,MAAM,GAAG,MAAM,EAC1B,KAAK,SAAS,aAAa,GAAG,aAAa,CAC3C,SAAQ,KAAK,CAAC,YAAY,CACxB,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,EACtB,EAAE,EACF,IAAI,EACJ,WAAW,CAAC,KAAK,CAAC,EAClB,KAAK,EACL,sBAAsB,CAAC,KAAK,CAAC,GAAG,OAAO,GAAG,QAAQ,CACnD;IACD,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE;QACnB,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;QAChB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;KACvB,CAAC;CACH;AAKD,MAAM,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC9C,MAAM,MAAM,gBAAgB,GAAG,QAAQ,SAAS;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,SAAS,CAAA;CAAE,GAC1F,CAAC,GACD,SAAS,CAAC;AACd,MAAM,MAAM,aAAa,CAAC,OAAO,IAC/B,OAAO,SAAS,WAAW,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,GACzC,KAAK,GACL,OAAO,SAAS,gBAAgB,CAAC,MAAM,KAAK,CAAC,GAC3C,KAAK,GACL,KAAK,CAAC;AACd,MAAM,MAAM,YAAY,CAAC,OAAO,IAAI,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AACrE,MAAM,MAAM,SAAS,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,MAAM,CAAC,GAClE,CAAC,SAAS,KAAK,CAAC,GAAG,GACjB,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GACb,KAAK,GACP,KAAK,CAAC;AACV,MAAM,MAAM,WAAW,CAAC,OAAO,EAAE,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC;AACjG,MAAM,MAAM,WAAW,CAAC,OAAO,EAAE,IAAI,IAAI,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AAChF,MAAM,MAAM,UAAU,CAAC,OAAO,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,MAAM,CAAC,GACnE,CAAC,SAAS,KAAK,CAAC,GAAG,GACjB,UAAU,CAAC,CAAC,CAAC,GACb,KAAK,GACP,KAAK,CAAC;AACV,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,SAAS,IAAI,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACzF,MAAM,MAAM,UAAU,CAAC,OAAO,IAAI,OAAO,SAAS,WAAW,CAAC,MAAM,EAAE,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;AAE1F,KAAK,aAAa,CAAC,OAAO,EAAE,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9E,KAAK,cAAc,CAAC,OAAO,EAAE,EAAE,IAAI,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAK/E,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,KAAK,CAAC;AAE/C,KAAK,gBAAgB,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,GACtD;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACnC,MAAM,MAAM,SAAS,KAAK,GACxB;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACnC;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAEzC,KAAK,kBAAkB,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,IAAI,GACxD;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,KAAK,MAAM,CAAC,CAAA;CAAE,GACtE,MAAM,MAAM,SAAS,KAAK,GACxB;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,KAAK,MAAM,CAAC,CAAA;CAAE,GACtE,YAAY,CAAC,MAAM,CAAC,SAAS,KAAK,GAChC;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,KAAK,MAAM,CAAC,CAAA;CAAE,GACtE;IAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,SAAS,KAAK,MAAM,CAAC,CAAA;CAAE,CAAC;AAE9E,MAAM,MAAM,SAAS,CAAC,OAAO,SAAS,SAAS,GAAG,mBAAmB,EAAE,EAAE,SAAS,SAAS,CAAC,OAAO,CAAC,IAAI;IACtG,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG,gBAAgB,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAC9C,kBAAkB,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AAElD,MAAM,MAAM,eAAe,CACzB,OAAO,SAAS,SAAS,GAAG,mBAAmB,EAC/C,EAAE,SAAS,SAAS,CAAC,OAAO,CAAC,IAC3B,SAAS,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;CACxD,CAAC;;;;AAEF;;2CAE2C;AAC3C,qBAAa,aAAc,SAAQ,mBAAkC;IAKnE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,gBAAgB,CAAC,CAAC;CACrD,CAAC;CAAG;;;;AAEL,qBAAa,aAAc,SAAQ,mBAAkC;IACnE,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,CAAC;CAAG;AAEL,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,aAC1B,CAAC;AACjC,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,aAC1B,CAAC;AAWjC;;;;;uBAKuB;AACvB,MAAM,WAAW,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,KAAK,SAAS,aAAa;IAC3E,+DAA+D;IAC/D,QAAQ,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAC1E,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAC5C,MAAM,CAAC,MAAM,CAChB,cAAc,EACd,OAAO,EACP,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAClE,CAAC;IACF,mEAAmE;IACnE,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,CAAC,EAAE,SAAS,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,EACtE,OAAO,EAAE,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAC5C,MAAM,CAAC,MAAM,CAChB,MAAM,EACN,OAAO,EACP,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAClE,CAAC;CACH;AAED,eAAO,MAAM,IAAI,GAAI,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,KAAK,CAAC,KAAK,SAAS,aAAa,EAC7E,IAAI,EAAE,EACN,YAAY,KAAK,EACjB,UAAS,aAAkB,KAC1B;IACD,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5E,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;CAqE5C,CAAC;AAEF;mEACmE;AACnE,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,SAAS,EAAE,KAAK,CAAC,KAAK,SAAS,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAC1F,OAAO,CAAC,EACR,SAAS,KAAK,KACb,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,CAuBnD,CAAC;AA0fF,eAAO,MAAM,mBAAmB,GAAI,UAAU;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC;CACtD,KAAG,aA+BH,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,UAAU;IAC7C,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC;CACtD,KAAG,aA2CH,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,UAAU;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC;CACtD,KAAG,aAuCH,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,cAAc,MAAM,KAAG,SAUzD,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,cAAc,YAAY,KAAG,MAanE,CAAC"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
package/dist/router.js CHANGED
@@ -44,8 +44,31 @@ export const route = (id, options) => ({
44
44
  path: normalizePath(options.path),
45
45
  options: { ...options, path: normalizePath(options.path) },
46
46
  middlewares: [],
47
+ children: [],
47
48
  "~types": undefined,
48
49
  });
50
+ /** Declares `child` as nested under `self`: `child`'s path is rewritten to
51
+ * join under `self`'s own path (reuses the same `joinPaths` composition
52
+ * `.prefix()` already uses), and `child.parentId` is set to `self.id`.
53
+ * Opt-in only — a route with no `addChild` calls has no children, so two
54
+ * routes whose paths happen to share a literal prefix never nest unless
55
+ * this was called explicitly. Chainable: `.pipe(Route.addChild(A),
56
+ * Route.addChild(B))`. */
57
+ export const addChild = (child) => (self) => {
58
+ // Path-joining happens ONCE, bottom-up, in `flattenRoute` — not here.
59
+ // `child` may itself already have grandchildren attached (an earlier
60
+ // `.addChild` on `child`); if this function eagerly joined `self.path`
61
+ // into just `child`'s own path, those grandchildren's paths (already
62
+ // baked relative to `child`'s ORIGINAL, pre-attachment path) would never
63
+ // learn about `self`'s prefix. Deferring to `flattenRoute`, which
64
+ // threads the accumulated prefix down through the whole tree, keeps
65
+ // every depth correct regardless of attachment order.
66
+ const linkedChild = { ...child, parentId: self.id };
67
+ return {
68
+ ...self,
69
+ children: [...self.children, linkedChild],
70
+ };
71
+ };
49
72
  const prefixRoute = (current, prefix) => {
50
73
  const path = joinPaths(prefix, current.path);
51
74
  // Spread (not `route(...)`) so `middlewares` and the pipe method survive.
@@ -72,14 +95,72 @@ const RouteGroupProto = {
72
95
  })));
73
96
  },
74
97
  };
98
+ /** Flattens a route declared with `.addChild(...)` into itself plus every
99
+ * declared descendant (recursively — a child may have its own children),
100
+ * each already carrying its `parentId`. A route with no children flattens
101
+ * to just itself. */
102
+ const flattenRoute = (current, prefix = "") => {
103
+ // Pathless (`Route.layout`) parents contribute no URL segment of their
104
+ // own — skip through them unchanged, threading the SAME prefix to their
105
+ // members, instead of joining against their placeholder `path: ""`.
106
+ if (current.pathless === true) {
107
+ return [
108
+ { ...current, children: [] },
109
+ ...current.children.flatMap((child) => flattenRoute(child, prefix)),
110
+ ];
111
+ }
112
+ const path = joinPaths(prefix, current.path);
113
+ return [
114
+ { ...current, path, options: { ...current.options, path }, children: [] },
115
+ ...current.children.flatMap((child) => flattenRoute(child, path)),
116
+ ];
117
+ };
118
+ /** Builds a `RouteGroup` from top-level route arguments, widening each
119
+ * argument's type into itself PLUS every route `Route.addChild` attached
120
+ * under it (at any depth) — matching what `flattenRoute` does to the VALUE
121
+ * at runtime, so a route table built from one `.addChild`-composed parent
122
+ * exposes every descendant's id/path to `RoutePath`/`RouteIds` and friends,
123
+ * not just the parent passed in directly. */
75
124
  export const group = (...routes) => Object.assign(Object.create(PipeableProto), RouteGroupProto, {
76
125
  [RouteGroupTypeId]: RouteGroupTypeId,
77
- routes,
126
+ routes: routes.flatMap((current) => flattenRoute(current)),
78
127
  });
79
128
  export const makeGroup = group;
80
129
  export const add = (...routes) => group(...routes);
81
130
  export const merge = (...groups) => group(...groups.flatMap((current) => current.routes));
82
- export const prefix = (routeGroup, path) => routeGroup.prefix(path);
131
+ /** Wraps `self` (a route, or a group of routes) under an implicit pathless
132
+ * parent with the given id — a shared rendering/guard-scope wrapper for
133
+ * *independent* siblings that aren't the same resource (unlike
134
+ * `Route.addChild`, which is for one route that genuinely owns a child's
135
+ * content). The parent contributes no path segment of its own. */
136
+ export const layout = (id) => (self) => {
137
+ const members = isRoute(self) ? [self] : self.routes;
138
+ const parent = {
139
+ ...PipeableProto,
140
+ [RouteTypeId]: RouteTypeId,
141
+ id,
142
+ path: "",
143
+ options: { path: "" },
144
+ middlewares: [],
145
+ children: [],
146
+ pathless: true,
147
+ // eslint-disable-next-line revizo/no-type-assertion
148
+ "~types": undefined,
149
+ };
150
+ const linkedMembers = members.map((member) => ({ ...member, parentId: id }));
151
+ // eslint-disable-next-line revizo/no-type-assertion
152
+ return group(parent, ...linkedMembers);
153
+ };
154
+ /** Attaches a middleware TAG to `self` (a route, or every route currently in
155
+ * a group). With explicit parent-child hierarchy, attaching to a shared
156
+ * parent (`Route.layout`'s implicit parent, or any `Route.addChild` owner)
157
+ * is usually enough — `resolveMatches` walks the ancestor chain and runs an
158
+ * ancestor's middlewares for every descendant navigation, so a group-wide
159
+ * attach is only needed for independent routes with no shared parent. */
160
+ export const middleware = (mw) => (self) => (isRoute(self)
161
+ ? { ...self, middlewares: [...self.middlewares, mw] }
162
+ : self.middleware(mw));
163
+ export const prefix = (path) => (routeGroup) => routeGroup.prefix(path);
83
164
  export const routes = (routeGroup) => routeGroup.routes;
84
165
  /**
85
166
  * The history capability, provided as a LAYER — `Router.make` declares
@@ -162,7 +243,11 @@ export const make = (id, routeGroup, options = {}) => {
162
243
  buildLocation: (options) => Effect.flatMap(getController(router), (api) => api.buildLocationEffect(options)),
163
244
  buildHref: (options) => Effect.flatMap(getController(router), (api) => api.buildHrefEffect(options)),
164
245
  });
165
- return { NavigationModel: model, RouteModel: routes };
246
+ // `routes.layer`'s own `make` already leases `router` (`Model.get(router)`
247
+ // above) — merging `model.layer` in satisfies that requirement, the same
248
+ // composition an app previously wrote by hand at the call site.
249
+ const layer = routes.layer.pipe(Layer.provideMerge(model.layer));
250
+ return { model, routeModel: routes, layer };
166
251
  };
167
252
  /** INTERNAL (used by RouterView): the pages model — one singleton owning
168
253
  * the router and every mapped page model, the view tree's root. */
@@ -188,6 +273,7 @@ const makeShape = (routeGroup, options) => Effect.gen(function* () {
188
273
  const stringifySearch = options.stringifySearch ?? defaultStringifySearch;
189
274
  const history = (yield* History).make({ parseSearch });
190
275
  const compiled = routeGroup.routes.map(compileRoute).sort((a, b) => b.score - a.score);
276
+ const compiledById = new Map(compiled.map((current) => [current.route.id, current]));
191
277
  const blockers = new Set();
192
278
  let disposed = false;
193
279
  let ignoreNextHistory = false;
@@ -237,11 +323,29 @@ const makeShape = (routeGroup, options) => Effect.gen(function* () {
237
323
  const leaf = exactMatches[0];
238
324
  if (leaf === undefined)
239
325
  return yield* Effect.fail(new NotFoundError({}));
240
- const branch = compiled
241
- .map((compiledRoute) => ({ compiledRoute, match: compiledRoute.prefix.exec(pathname) }))
242
- .filter((item) => item.match !== null)
243
- .sort((a, b) => a.compiledRoute.length - b.compiledRoute.length ||
244
- a.compiledRoute.score - b.compiledRoute.score);
326
+ // Ancestors come from the explicitly declared `parentId` chain, not
327
+ // from filtering the whole route list by path — a route with no
328
+ // declared parent (including one at "/") is never an accidental
329
+ // ancestor of anything else, only of itself.
330
+ const chain = [];
331
+ let current = leaf.compiledRoute;
332
+ while (current !== undefined) {
333
+ chain.push(current);
334
+ const parentId = current.route.parentId;
335
+ current = parentId === undefined ? undefined : compiledById.get(parentId);
336
+ }
337
+ chain.reverse(); // root-first, guards run parent-first
338
+ // A pathless `Route.layout` ancestor has no slice of the pathname of
339
+ // its own — no params/search to decode, just middlewares to run and
340
+ // an id for the render tree to key on. A real ancestor's prefix
341
+ // should always match (its path is, by construction, a literal
342
+ // prefix of the leaf's own compiled path) — the null-filter is
343
+ // defensive, not expected to trigger.
344
+ const branch = chain
345
+ .map((compiledRoute) => compiledRoute.route.pathless === true
346
+ ? { compiledRoute, match: [""] }
347
+ : { compiledRoute, match: compiledRoute.prefix.exec(pathname) })
348
+ .filter((item) => item.match !== null);
245
349
  const matches = [];
246
350
  // Guard results accumulate parent-first down the branch; a guard
247
351
  // shared by several routes in the branch runs once per navigation.
@@ -327,8 +431,12 @@ const makeShape = (routeGroup, options) => Effect.gen(function* () {
327
431
  };
328
432
  const buildLocationEffect = (toOptions) => Effect.gen(function* () {
329
433
  const foundRoute = routeGroup.routes.find((current) => current.path === toOptions.to);
434
+ const hash = toOptions.hash === true ? currentState.location.hash : toOptions.hash ?? "";
330
435
  if (foundRoute === undefined) {
331
- return yield* Effect.fail(new Error(`Unitflow router cannot build unknown route "${String(toOptions.to)}".`));
436
+ // Not one of the registered route templates a raw href
437
+ // (`RawToOptions`): build the location straight from the string, no
438
+ // param/search schema to encode against.
439
+ return makeLocation(`${addBasepath(toOptions.to, options.basepath)}${hash === "" ? "" : `#${hash}`}`, parseSearch, toOptions.state);
332
440
  }
333
441
  const targetRoute = foundRoute;
334
442
  const routeParams = yield* encodeParams(targetRoute, toOptions.params);
@@ -338,7 +446,6 @@ const makeShape = (routeGroup, options) => Effect.gen(function* () {
338
446
  });
339
447
  const rawSearch = yield* encodeSearch(targetRoute, toOptions.search);
340
448
  const searchString = stringifySearch(rawSearch);
341
- const hash = toOptions.hash === true ? currentState.location.hash : toOptions.hash ?? "";
342
449
  return makeLocation(`${pathname}${searchString}${hash === "" ? "" : `#${hash}`}`, parseSearch, toOptions.state);
343
450
  });
344
451
  const buildLocation = (toOptions) => {
@@ -762,17 +869,16 @@ const stripBasepath = (path, basepath) => {
762
869
  return path === normalized ? "/" : path.startsWith(`${normalized}/`) ? path.slice(normalized.length) : path;
763
870
  };
764
871
  const escapeRegex = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
872
+ /** A regex that never matches anything — for `Route.layout`'s implicit
873
+ * parent, which has no real path and can never be a leaf/exact match. */
874
+ const NEVER_MATCH = /(?!)/;
765
875
  const compileRoute = (current) => {
876
+ if (current.pathless === true) {
877
+ return { route: current, exact: NEVER_MATCH, prefix: NEVER_MATCH, paramNames: [], score: 0, length: 0 };
878
+ }
766
879
  const path = normalizePath(current.path);
767
880
  if (path === "/") {
768
- return {
769
- route: current,
770
- exact: /^\/?$/,
771
- prefix: /^\//,
772
- paramNames: [],
773
- score: 0,
774
- length: 0,
775
- };
881
+ return { route: current, exact: /^\/?$/, prefix: /^\//, paramNames: [], score: 0, length: 0 };
776
882
  }
777
883
  const segments = path.slice(1).split("/");
778
884
  const paramNames = [];