@xmachines/play-router 2.2.0 → 4.0.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.
Files changed (83) hide show
  1. package/README.md +103 -109
  2. package/dist/base-route-map.d.ts +7 -1
  3. package/dist/base-route-map.d.ts.map +1 -1
  4. package/dist/base-route-map.js +25 -12
  5. package/dist/base-route-map.js.map +1 -1
  6. package/dist/build-tree.d.ts +16 -1
  7. package/dist/build-tree.d.ts.map +1 -1
  8. package/dist/build-tree.js +23 -6
  9. package/dist/build-tree.js.map +1 -1
  10. package/dist/create-route-map-from-tree.d.ts +12 -6
  11. package/dist/create-route-map-from-tree.d.ts.map +1 -1
  12. package/dist/create-route-map-from-tree.js +13 -5
  13. package/dist/create-route-map-from-tree.js.map +1 -1
  14. package/dist/errors.d.ts +2 -134
  15. package/dist/errors.d.ts.map +1 -1
  16. package/dist/errors.js +11 -151
  17. package/dist/errors.js.map +1 -1
  18. package/dist/find-route.d.ts.map +1 -1
  19. package/dist/find-route.js +14 -19
  20. package/dist/find-route.js.map +1 -1
  21. package/dist/index.d.ts +7 -16
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +10 -11
  24. package/dist/index.js.map +1 -1
  25. package/dist/provider-lifecycle.d.ts +28 -6
  26. package/dist/provider-lifecycle.d.ts.map +1 -1
  27. package/dist/provider-lifecycle.js +16 -2
  28. package/dist/provider-lifecycle.js.map +1 -1
  29. package/dist/router-bridge-base.d.ts +42 -23
  30. package/dist/router-bridge-base.d.ts.map +1 -1
  31. package/dist/router-bridge-base.js +257 -84
  32. package/dist/router-bridge-base.js.map +1 -1
  33. package/dist/router-sync.d.ts +1 -1
  34. package/dist/router-sync.d.ts.map +1 -1
  35. package/dist/router-sync.js +28 -13
  36. package/dist/router-sync.js.map +1 -1
  37. package/dist/types.d.ts +186 -87
  38. package/dist/types.d.ts.map +1 -1
  39. package/dist/{create-route-map.d.ts → xstate/create-route-map.d.ts} +6 -20
  40. package/dist/xstate/create-route-map.d.ts.map +1 -0
  41. package/dist/{create-route-map.js → xstate/create-route-map.js} +5 -3
  42. package/dist/xstate/create-route-map.js.map +1 -0
  43. package/dist/{extract-routes.d.ts → xstate/extract-routes.d.ts} +3 -2
  44. package/dist/xstate/extract-routes.d.ts.map +1 -0
  45. package/dist/{extract-routes.js → xstate/extract-routes.js} +8 -3
  46. package/dist/xstate/extract-routes.js.map +1 -0
  47. package/dist/xstate/index.d.ts +35 -0
  48. package/dist/xstate/index.d.ts.map +1 -0
  49. package/dist/xstate/index.js +33 -0
  50. package/dist/xstate/index.js.map +1 -0
  51. package/dist/{machine-to-graph.d.ts → xstate/machine-to-graph.d.ts} +1 -1
  52. package/dist/xstate/machine-to-graph.d.ts.map +1 -0
  53. package/dist/{machine-to-graph.js → xstate/machine-to-graph.js} +2 -2
  54. package/dist/xstate/machine-to-graph.js.map +1 -0
  55. package/dist/xstate/machine-types.d.ts +42 -0
  56. package/dist/xstate/machine-types.d.ts.map +1 -0
  57. package/dist/xstate/machine-types.js +2 -0
  58. package/dist/xstate/machine-types.js.map +1 -0
  59. package/dist/{query.d.ts → xstate/query.d.ts} +6 -4
  60. package/dist/xstate/query.d.ts.map +1 -0
  61. package/dist/{query.js → xstate/query.js} +3 -2
  62. package/dist/xstate/query.js.map +1 -0
  63. package/package.json +26 -20
  64. package/dist/base-path.d.ts +0 -209
  65. package/dist/base-path.d.ts.map +0 -1
  66. package/dist/base-path.js +0 -418
  67. package/dist/base-path.js.map +0 -1
  68. package/dist/create-route-map.d.ts.map +0 -1
  69. package/dist/create-route-map.js.map +0 -1
  70. package/dist/extract-routes.d.ts.map +0 -1
  71. package/dist/extract-routes.js.map +0 -1
  72. package/dist/framework-params.d.ts +0 -144
  73. package/dist/framework-params.d.ts.map +0 -1
  74. package/dist/framework-params.js +0 -291
  75. package/dist/framework-params.js.map +0 -1
  76. package/dist/machine-to-graph.d.ts.map +0 -1
  77. package/dist/machine-to-graph.js.map +0 -1
  78. package/dist/query.d.ts.map +0 -1
  79. package/dist/query.js.map +0 -1
  80. package/dist/url-pattern-utils.d.ts +0 -93
  81. package/dist/url-pattern-utils.d.ts.map +0 -1
  82. package/dist/url-pattern-utils.js +0 -233
  83. package/dist/url-pattern-utils.js.map +0 -1
@@ -42,11 +42,10 @@
42
42
  *
43
43
  * @see [Play RFC](../../docs/rfc/play.md) - invariant INV-04
44
44
  */
45
+ import { NO_BASE_PATH, firstMarkIndex, holdsUnsubstitutedParam, joinBasePath, parsePattern, resolveBasePath, stripBasePath, } from "@xmachines/play-url";
45
46
  import { Signal, watchSignal } from "@xmachines/play-signals";
46
- import { DuplicateBridgeError, RouterSyncError, URLPatternUnavailableError } from "./errors.js";
47
+ import { DuplicateBridgeError, RouterSyncError, InvalidRoutePatternError } from "./errors.js";
47
48
  import { buildPlayRouteEvent, extractQuery, extractRouteParams, matchRouteMap, sanitizePathname, } from "./router-sync.js";
48
- import { isParameterizedPattern } from "./url-pattern-utils.js";
49
- import { NO_BASE_PATH, firstMarkIndex, joinBasePath, resolveBasePath, stripBasePath, } from "./base-path.js";
50
49
  /**
51
50
  * The registry of the actors with an active bridge connection, at the module level.
52
51
  *
@@ -472,9 +471,9 @@ export class RouterBridgeBase {
472
471
  // SvelteKit raises `lifecycle_outside_component` outside the initialization of
473
472
  // a component, and a host reaches that by calling `connectRouter` from a module
474
473
  // scope or a store
475
- // - `performInitialSync()`, with a URLPatternUnavailableError for a parameterized
476
- // route on a runtime without URLPattern, and a RouterSyncError for each other
477
- // failure of the send to the actor
474
+ // - `performInitialSync()`, with an InvalidRoutePatternError for a route that
475
+ // URLPattern refuses, and a RouterSyncError for each other failure of the send
476
+ // to the actor
478
477
  //
479
478
  // The throw needs an action of the caller, and it therefore goes to the caller
480
479
  // without a change.
@@ -486,7 +485,8 @@ export class RouterBridgeBase {
486
485
  // - the signal watcher keeps pushing each actor route to the router
487
486
  // - the activeBridges entry keeps the actor, so the NEXT connect() call of the
488
487
  // caller for this actor throws a DuplicateBridgeError. A repair of the real
489
- // cause, for example a load of the polyfill, rescues that actor never.
488
+ // cause, for example a correction of the route pattern, rescues that actor
489
+ // never.
490
490
  try {
491
491
  // The TC39 Signal watcher of the direction from the actor to the router.
492
492
  this.routeWatcher = createRouteWatcher(this.actor.currentRoute, (route) => {
@@ -501,7 +501,8 @@ export class RouterBridgeBase {
501
501
  // guard of its own, because `unwatchRouterChanges()` belongs to the adapter and
502
502
  // it can throw: a Vue scope that stops, a Solid disposer, a SvelteKit teardown.
503
503
  // That error must NOT replace the one the rollback exists to surface — a caller
504
- // that receives it never learns that its runtime needs a URLPattern polyfill.
504
+ // that receives it learns neither which route pattern URLPattern refused nor
505
+ // which event the actor refused.
505
506
  try {
506
507
  this.disconnect();
507
508
  }
@@ -541,6 +542,18 @@ export class RouterBridgeBase {
541
542
  */
542
543
  performInitialSync(initialRouterPath) {
543
544
  const initialActorRoute = this.actor.currentRoute.get();
545
+ // ONE read of the query of the router, and a LAZY one. The read belongs to the
546
+ // adapter and it can walk the state of a router, so a second call can answer
547
+ // differently — and most branches below reach no query at all.
548
+ let search;
549
+ let searchRead = false;
550
+ const routerSearch = () => {
551
+ if (!searchRead) {
552
+ search = this.getInitialRouterSearch();
553
+ searchRead = true;
554
+ }
555
+ return search;
556
+ };
544
557
  if (typeof initialRouterPath === "string") {
545
558
  // `sanitizePathname` refuses a path of more than 2048 characters, and the RAW
546
559
  // value is no substitute for the clean one: it still carries a query, a
@@ -575,8 +588,15 @@ export class RouterBridgeBase {
575
588
  // The decision below IS the first synchronization, and it runs against a location
576
589
  // under the mount, so nothing is owed any more.
577
590
  this.hasSynchronizedUnderMount = true;
578
- // Test if the actor is at the current location of the router already.
579
- const actorAlreadyAtRouterLocation = this.isActorAtLocation(machinePath, initialActorRoute);
591
+ // Test if the actor is at the current location of the router already. The PATH
592
+ // and the QUERY are two answers of ONE lookup: the path decides whether a restore
593
+ // is possible at all, and the query decides whether the two sides are in step
594
+ // there. `routerSearch` runs behind the `&&`, so a branch that answers on the
595
+ // path alone reads no query.
596
+ const actorAtRouterPath = this.isActorAtPath(machinePath, initialActorRoute);
597
+ const actorAlreadyAtRouterLocation = actorAtRouterPath &&
598
+ initialActorRoute != null &&
599
+ sameQuery(initialActorRoute, routerSearch());
580
600
  // The two are in step already, so nothing is synchronized — but the location has
581
601
  // to be RECORDED, or the echo suppression starts disarmed. `setBasePath` clears
582
602
  // `lastSyncedPath` on a move of the prefix, and this branch left it null: the
@@ -590,7 +610,7 @@ export class RouterBridgeBase {
590
610
  // of one connection, and the record of the old prefix says nothing about this
591
611
  // location.
592
612
  if (actorAlreadyAtRouterLocation) {
593
- this.lastSyncedPath = withSearch(machinePath, this.getInitialRouterSearch());
613
+ this.lastSyncedPath = withSearch(machinePath, routerSearch());
594
614
  }
595
615
  else {
596
616
  // The path of the router is different from the actor route. Is this a deep link, or
@@ -606,16 +626,33 @@ export class RouterBridgeBase {
606
626
  //
607
627
  // The detection: the URL of the router is the initial route of the machine, AND the
608
628
  // actor is at a different route. This is then a restore.
629
+ //
630
+ // The branch reads the LOCATION test above, through the `else` that carries it,
631
+ // and not the path test alone: a fragment that the actor carries and the router
632
+ // reports never — `sanitizePathname` cuts it off — is a difference that only
633
+ // this push can place in the address bar. A query of the ACTOR is such a
634
+ // difference too, and issue #18 carries the decision about it.
635
+ //
636
+ // `carriesNoOwnSuffix` is what keeps the two apart. An actor that stands on the
637
+ // PATH of the router and carries no query and no fragment of its own restores
638
+ // NOTHING: the address bar already shows its place, and a push only rewrites the
639
+ // location that the user opened. The raw comparison against `initialRoute` cannot
640
+ // see that, because a stateId is never string-equal to a path — an actor at
641
+ // `"#home"` against a router at `"/?ref=nav"` read as a move, so the bridge
642
+ // pushed `"/"` over the query the user opened and sent no `play.route` that
643
+ // carried it. The router keeps the priority for such a location, which is the
644
+ // answer that the same bridge gives for the actor route `"/"`.
609
645
  if (initialActorRoute &&
610
646
  machinePath === this.actor.initialRoute &&
611
- initialActorRoute !== this.actor.initialRoute) {
647
+ initialActorRoute !== this.actor.initialRoute &&
648
+ !(actorAtRouterPath && carriesNoOwnSuffix(initialActorRoute))) {
612
649
  this.pushHoldingNavigation(initialActorRoute);
613
650
  }
614
651
  else {
615
- // The search is read HERE, and not at the top of the method: the read belongs
616
- // to the adapter, it can walk the state of a router, and every branch above
617
- // returns without it.
618
- this.syncActorFromRouter(initialRouterPath, this.getInitialRouterSearch());
652
+ // The search is read through `routerSearch`, which reads it one time and only
653
+ // when a branch needs it: the read belongs to the adapter, and it can walk
654
+ // the state of a router.
655
+ this.syncActorFromRouter(initialRouterPath, routerSearch());
619
656
  }
620
657
  }
621
658
  }
@@ -791,7 +828,7 @@ export class RouterBridgeBase {
791
828
  const owesFirstSync = !this.hasSynchronizedUnderMount;
792
829
  this.hasSynchronizedUnderMount = true;
793
830
  const restoredRoute = this.actor.currentRoute.get();
794
- // `isActorAtLocation` is the test that `performInitialSync` makes BEFORE it looks
831
+ // `isActorAtPath` is the test that `performInitialSync` makes BEFORE it looks
795
832
  // for a restore, and both branches of the owed synchronization below need it. The
796
833
  // actor route can be a stateId, and a stateId is never string-equal to
797
834
  // `initialRoute`, which is a path: an actor that sits at "#home" of the mount point
@@ -801,13 +838,23 @@ export class RouterBridgeBase {
801
838
  //
802
839
  // ONE call, because `getStateIdByPath` and `getPathByStateId` belong to the route
803
840
  // map: a map of a consumer can answer differently on a second call, and the two
804
- // branches would then disagree about the same location.
805
- const actorAtLocation = owesFirstSync && this.isActorAtLocation(machinePath, restoredRoute);
841
+ // branches would then disagree about the same location. The PATH and the QUERY are
842
+ // two answers of that one lookup, exactly as `performInitialSync` reads them.
843
+ const actorAtPath = owesFirstSync && this.isActorAtPath(machinePath, restoredRoute);
844
+ const actorAtLocation = actorAtPath && restoredRoute != null && sameQuery(restoredRoute, search);
845
+ // The RESTORE reads the LOCATION test, exactly as `performInitialSync` does, and it
846
+ // refuses the same empty restore: an actor that stands on the PATH of the location
847
+ // and carries no query and no fragment of its own has nothing to put in the address
848
+ // bar. Without that test an actor at `"#home"` met a host that came back to the
849
+ // mount point with a query, and the bridge pushed the mount point over it and
850
+ // returned `true` — so no `play.route` carried that location to the machine either,
851
+ // which is the fault that the comment above this block names.
806
852
  if (owesFirstSync &&
807
853
  restoredRoute &&
808
854
  machinePath === this.actor.initialRoute &&
809
855
  restoredRoute !== this.actor.initialRoute &&
810
- !actorAtLocation) {
856
+ !actorAtLocation &&
857
+ !(actorAtPath && carriesNoOwnSuffix(restoredRoute))) {
811
858
  return this.pushUnderMount(restoredRoute);
812
859
  }
813
860
  if (owesFirstSync) {
@@ -879,12 +926,12 @@ export class RouterBridgeBase {
879
926
  if (this.isProcessingNavigation)
880
927
  return true;
881
928
  // The route has to resolve to a concrete path BEFORE the method reports that it
882
- // handled the location. `pushResolvedRoute` writes nothing for an unknown stateId
883
- // and for a parameterized pattern, and it still records the RAW value in
884
- // `lastSyncedPath`: a `true` return then left the location in neither side — the
885
- // URL kept the page of the host, the actor heard no `play.route`, and the record of
886
- // the location that the address bar holds was gone, so no later return could be
887
- // recognized either. `reconcileLocationWithMount` guards the same case.
929
+ // handled the location. `pushResolvedRoute` navigates nowhere for an unknown stateId
930
+ // and for a parameterized pattern, and it records the RAW value in `lastActorRoute`
931
+ // alone: a `true` return then left the location in neither side — the URL kept the
932
+ // page of the host, and the actor heard no `play.route`. The record of the location
933
+ // that the address bar holds says nothing about it either, so no later return could
934
+ // be recognized. `reconcileLocationWithMount` guards the same case.
888
935
  //
889
936
  // The resolution travels with the route, so `resolveNavigationPath` runs one time:
890
937
  // the method is `protected`, a subclass can override it, and a second call can
@@ -963,8 +1010,9 @@ export class RouterBridgeBase {
963
1010
  * pattern, for a wildcard pattern, and for an unknown id, the method skips the push
964
1011
  * completely: a push of the raw value writes a stateId, a `:param` pattern, or a
965
1012
  * literal `*` into the browser URL. The method still writes the raw route to
966
- * lastSyncedPath. Therefore the dedup guard fires correctly on the next identical
967
- * value of the signal.
1013
+ * lastActorRoute, and it leaves lastSyncedPath as it stands, because that field
1014
+ * records a LOCATION and no location changed. Therefore the dedup guard fires
1015
+ * correctly on the next identical value of the signal.
968
1016
  *
969
1017
  * @param route - The raw value of the actor route.
970
1018
  * @param resolved - The concrete path of that route. The default resolves it here. A
@@ -1094,10 +1142,11 @@ export class RouterBridgeBase {
1094
1142
  this.actor.send(nextRoute.event);
1095
1143
  }
1096
1144
  catch (error) {
1097
- // A URLPatternUnavailableError needs an action of the user: it goes to the caller
1098
- // without a change. The caller can therefore find it, and ask the user for a
1099
- // URLPattern polyfill.
1100
- if (error instanceof URLPatternUnavailableError) {
1145
+ // An InvalidRoutePatternError needs an action of the DEVELOPER: a route of the
1146
+ // machine declares a pattern that URLPattern refuses, and no location can fix it.
1147
+ // It goes to the caller without a change, so that the caller can find it and read
1148
+ // the pattern that it names.
1149
+ if (error instanceof InvalidRoutePatternError) {
1101
1150
  throw error;
1102
1151
  }
1103
1152
  throw new RouterSyncError("Failed to sync actor state from router location.", {
@@ -1112,16 +1161,14 @@ export class RouterBridgeBase {
1112
1161
  /**
1113
1162
  * Reads the path parameters of a URL, with the URLPattern API.
1114
1163
  *
1115
- * The method reads `globalThis.URLPattern` at run time, because this library imports
1116
- * no polyfill. When `URLPattern` is absent and the route of the match holds a
1117
- * parameterized segment, the method throws a `URLPatternUnavailableError`. A caller
1118
- * must therefore give a polyfill in an environment without the native URLPattern:
1119
- * Node.js < 24, and an older browser.
1164
+ * The API is always present: `@xmachines/play-router` uses the native URLPattern of the
1165
+ * runtime, and it falls back to `urlpattern-polyfill`, which it carries as an ordinary
1166
+ * dependency. A consumer therefore loads nothing, whatever the runtime.
1120
1167
  *
1121
1168
  * @param pathname - The real URL path, for example '/profile/john'
1122
1169
  * @param stateId - The stateId of the match, for the lookup of the route pattern
1123
1170
  * @returns The path parameters of the read, or an empty object when nothing matches
1124
- * @throws {URLPatternUnavailableError} When URLPattern is absent and the route holds a parameter
1171
+ * @throws {InvalidRoutePatternError} When URLPattern cannot compile the route pattern
1125
1172
  */
1126
1173
  extractParams(pathname, stateId) {
1127
1174
  const pattern = this.routeMap.getPathByStateId(stateId);
@@ -1140,6 +1187,9 @@ export class RouterBridgeBase {
1140
1187
  * `/docs/*`, because no concrete value is available for a real URL
1141
1188
  * - a string that is no path and no known stateId
1142
1189
  *
1190
+ * A LITERAL route of the map comes back with each escape resolved: `/tags/c\+\+` gives
1191
+ * the path `/tags/c++`, which is the path that the route matches.
1192
+ *
1143
1193
  * A lookup of a stateId tries the form `"#stateId"` and the bare form `"stateId"`,
1144
1194
  * through `lookupPathByStateId`. Therefore a route map of your own that holds one
1145
1195
  * form only still resolves the path.
@@ -1157,19 +1207,70 @@ export class RouterBridgeBase {
1157
1207
  const path = mapped ?? (route.startsWith("/") ? route : null);
1158
1208
  if (path === null)
1159
1209
  return null;
1160
- // The PATHNAME half alone decides whether this is a pattern. A query holds a ":"
1161
- // and a "*" legally — a time in "?at=10:30", a URL in "?next=https://x", a glob in
1162
- // "?q=a*" — and a route of the actor carries its query, because `context.query`
1163
- // travels in `currentRoute`. A test of the whole string read such a route as a
1164
- // pattern: `pushResolvedRoute` wrote `lastSyncedPath` and navigated nowhere, so the
1165
- // URL stopped following the actor, and the dedup guard then suppressed the next
1166
- // attempt at the same route as an echo.
1167
- if (isParameterizedPattern(pathnameOf(path)))
1210
+ // A LITERAL route resolves to the one path that it matches, and the source of a
1211
+ // pattern is not always that path: `/tags/c\+\+` matches `/tags/c++`, and
1212
+ // `/i18n/{en}` matches `/i18n/en`. A bridge that pushed the source wrote the
1213
+ // backslashes and the braces into the address bar, where `getStateIdByPath` answered
1214
+ // that location never — so the URL stopped following the actor, and its next move to
1215
+ // the same route was suppressed as an echo of that push.
1216
+ //
1217
+ // The two branches above resolve DIFFERENT amounts, and the difference is what the
1218
+ // string is:
1219
+ //
1220
+ // - A route of the MAP is a pattern source, so every construct in it is grammar and
1221
+ // the parse resolves all of it.
1222
+ // - A route that the ACTOR built is a path already. `buildRouteUrl` of
1223
+ // `@xmachines/play-xstate` substitutes each `:param` of the template and leaves
1224
+ // every escape as the template wrote it, so a BACKSLASH still means an escape
1225
+ // there — and nothing else does. A brace in such a path is a real brace, and
1226
+ // `/i18n/{en}` from an actor is the location `/i18n/{en}`.
1227
+ //
1228
+ // A route of the map is a pattern source WHOLE, and its `?` is a modifier and never
1229
+ // a query. The parse therefore reads all of it, and its answer is complete: a `null`
1230
+ // literal path says that the pattern describes a SET of paths, so the bridge pushes
1231
+ // nothing. A fall to the concrete-path test below answered that question with the
1232
+ // characters of the string instead, and it let every pattern whose grammar carries
1233
+ // no ":" and no "*" through — `/docs/rfc(2119)`, `/books{/v2}?` and `/files/(\d+)`
1234
+ // all reached the address bar as they stand, where `getStateIdByPath` answers them
1235
+ // never.
1236
+ if (mapped != null)
1237
+ return parsePattern(path).literalPath;
1238
+ // A route of the ACTOR carries its query, because `context.query` travels in
1239
+ // `currentRoute`, and the PATHNAME half alone reaches the grammar for it. A query
1240
+ // holds a ":" and a "*" legally — a time in "?at=10:30", a URL in "?next=https://x",
1241
+ // a glob in "?q=a*" — and it holds the "?" that the grammar reads as a modifier. A
1242
+ // parse of the whole string called such a route malformed and resolved nothing of
1243
+ // it, so `/tags/c\+\+?ref=nav` went to the address bar with both backslashes; a
1244
+ // PATTERN test of the whole string called it a pattern, so `pushResolvedRoute` wrote
1245
+ // `lastSyncedPath` and navigated nowhere, and the dedup guard then suppressed the
1246
+ // next attempt at the same route as an echo. The suffix carries no grammar, and it
1247
+ // travels to the router unchanged.
1248
+ const mark = firstMarkIndex(path);
1249
+ const pathname = mark === -1 ? path : path.slice(0, mark);
1250
+ // A BACKSLASH is the one construct that reaches an actor route unresolved, and this
1251
+ // is where it resolves.
1252
+ if (pathname.includes("\\")) {
1253
+ const literal = parsePattern(pathname).literalPath;
1254
+ // The resolution FAILED, so this route resolves to no concrete path and the
1255
+ // bridge pushes nothing. A fall to the test below refused none of it — a backslash
1256
+ // is neither a ":" nor a "*" — so the SOURCE went to the address bar with its
1257
+ // backslashes, where `getStateIdByPath` answers that location never, and
1258
+ // `pushResolvedRoute` then recorded it and suppressed the next attempt at the same
1259
+ // route as an echo. `encodeURIComponent` leaves "(", ")", "!", "'" and "~" as they
1260
+ // stand, so a param value of `f(x)` under a template that carries an escape —
1261
+ // `/files/c\+\+/:name` — reaches this line and derives no literal path.
1262
+ return literal === null ? null : `${literal}${mark === -1 ? "" : path.slice(mark)}`;
1263
+ }
1264
+ // The test is `holdsUnsubstitutedParam` and NOT `isParameterizedPattern`, because
1265
+ // this string is a concrete path and not a pattern. Its own documentation gives the
1266
+ // reason: a real param value carries a character of the grammar often enough, and
1267
+ // the grammar reads a modifier in "/tags/c++" and a group in "/i18n/{en}".
1268
+ if (holdsUnsubstitutedParam(pathname))
1168
1269
  return null;
1169
1270
  return path;
1170
1271
  }
1171
1272
  /**
1172
- * Tells you whether the actor already stands at a location of the router.
1273
+ * Tells you whether the actor already stands on the PATH of a location of the router.
1173
1274
  *
1174
1275
  * The `currentRoute` of the actor can be a stateId, for example `"#app.home"`, while a
1175
1276
  * location of the router is a URL path, for example `"/home"`. Therefore the method
@@ -1178,33 +1279,67 @@ export class RouterBridgeBase {
1178
1279
  * `takeReturnUnderMount`, it reads a location that the HOST chose as a restore of the
1179
1280
  * actor and writes over it.
1180
1281
  *
1181
- * The actor is at the location in three cases: the stateId of the match IS the actor
1282
+ * The actor is on the path in three cases: the stateId of the match IS the actor
1182
1283
  * route, the path of the match IS the actor route, or the actor route is a stateId
1183
1284
  * that resolves to the same registered path as the stateId of the match. Each lookup
1184
1285
  * goes through {@link lookupPathByStateId}, which tries the form `"#stateId"` and also
1185
1286
  * the bare form `"stateId"`. Therefore a route map with `"#about"` recognizes an actor
1186
1287
  * route of `"about"`, and the opposite also works, and this is correct for a
1187
- * structural map of your own that holds one form. An actor route with a concrete path,
1188
- * which starts with `"/"`, goes to a direct comparison with the path of the router
1189
- * only.
1190
- *
1191
- * Each lookup runs ONE time. `getPathByStateId` belongs to the route map: a map of a
1192
- * consumer can answer differently on a second call, and `RouteMap` pays a cache lookup
1193
- * for each of them.
1194
- *
1195
- * @param machinePath - The machine half of the location of the router.
1196
- * @param actorRoute - The raw value of the actor route.
1288
+ * structural map of your own that holds one form.
1289
+ *
1290
+ * An actor route with a concrete path, which starts with `"/"`, goes to a direct
1291
+ * comparison of the pathname against `machinePath`. That comparison runs BEFORE the
1292
+ * map, because a location the map does not hold is still a location the actor can
1293
+ * stand on.
1294
+ *
1295
+ * The QUERY is a question of its own, and {@link sameQuery} answers it. Each caller
1296
+ * asks BOTH, and the two answers do different work. "The two sides are in step" needs
1297
+ * the path AND the query, so a router that carries the only query is a deep link that
1298
+ * the actor has to follow — for a stateId route as much as for a path route. The
1299
+ * RESTORE needs the path, beside `carriesNoOwnSuffix`: an actor that stands here and
1300
+ * carries no query and no fragment of its own has nothing to put in the address bar,
1301
+ * and a push would only rewrite the location the user opened.
1302
+ *
1303
+ * A query that the ACTOR carries is a difference that this branch still reads as a
1304
+ * restore, so an actor at `/?ref=nav` wins against a router at `/?other=1`. `main`
1305
+ * answers the same way, and whether that is a deep link or a restore is a decision
1306
+ * about the rule: issue #18 carries it, and a test pins the behaviour.
1307
+ *
1308
+ * Each lookup runs ONE time, and a caller that needs both answers calls this method
1309
+ * one time too. `getPathByStateId` belongs to the route map: a map of a consumer can
1310
+ * answer differently on a second call, and `RouteMap` pays a cache lookup for each of
1311
+ * them.
1312
+ *
1313
+ * @param machinePath - The machine half of the location of the router, with no query.
1314
+ * @param actorRoute - The raw value of the actor route. It CAN carry a query.
1197
1315
  */
1198
- isActorAtLocation(machinePath, actorRoute) {
1316
+ isActorAtPath(machinePath, actorRoute) {
1199
1317
  if (actorRoute == null)
1200
1318
  return false;
1201
- // The identical string answers the question with no map at all, and it has to run
1202
- // FIRST: the lookup below returns nothing for a location that the map does not
1203
- // hold, and the early return then reported an actor standing exactly at that
1204
- // location as "somewhere else". `performInitialSync` read that as a deep link and
1205
- // drove the actor into the state it was in already. The seed of the constructor hid
1206
- // this for as long as one field carried the route of the actor AND the location.
1207
- if (machinePath === actorRoute)
1319
+ // The PATHNAME half of the actor route.
1320
+ //
1321
+ // An actor route carries its QUERY, because `context.query` travels in
1322
+ // `currentRoute`, and `machinePath` carries none — `sanitizePathname` cut it off
1323
+ // before the caller stripped the prefix. The two are therefore never the identical
1324
+ // string for a route with a query, and a comparison of the whole strings reported an
1325
+ // actor standing exactly at this location as "somewhere else": `performInitialSync`
1326
+ // read that as a deep link and sent a `play.route` for the state the actor was in
1327
+ // already, so every entry action of that state ran a second time.
1328
+ const [actorPath] = splitLocation(actorRoute);
1329
+ // An ESCAPED literal route resolves on that same half, and its two forms are never
1330
+ // the identical string: the actor carries `/tags/c\+\+`, which is what the template
1331
+ // writes, and the router stands at `/tags/c++`, which is the path that the route
1332
+ // matches and the path that `resolveNavigationPath` pushes. The resolution reads the
1333
+ // PATHNAME, and not the whole string, for two reasons: a `?` is a modifier of the
1334
+ // grammar that makes `/tags/c\+\+?ref=nav` malformed, and a query would key the
1335
+ // bounded parse cache on a string that no route map holds.
1336
+ const literalPath = actorPath.includes("\\") ? parsePattern(actorPath).literalPath : null;
1337
+ // The pathname test answers with no map at all, and it has to run FIRST: the lookup
1338
+ // below returns nothing for a location that the map does not hold, and the early
1339
+ // return then reported an actor standing exactly at that location as "somewhere
1340
+ // else". The seed of the constructor hid this for as long as one field carried the
1341
+ // route of the actor AND the location.
1342
+ if (machinePath === (literalPath ?? actorPath))
1208
1343
  return true;
1209
1344
  const resolvedStateId = this.routeMap.getStateIdByPath(machinePath);
1210
1345
  if (resolvedStateId === null || resolvedStateId === undefined)
@@ -1343,16 +1478,6 @@ export class RouterBridgeBase {
1343
1478
  return undefined;
1344
1479
  }
1345
1480
  }
1346
- /**
1347
- * The pathname half of a location: everything in front of the first `?` or `#`.
1348
- *
1349
- * A pattern test reads this half alone, because a query and a fragment carry their own
1350
- * characters and say nothing about the shape of the path.
1351
- */
1352
- function pathnameOf(location) {
1353
- const mark = firstMarkIndex(location);
1354
- return mark === -1 ? location : location.slice(0, mark);
1355
- }
1356
1481
  /**
1357
1482
  * Splits a location into its path, its query with no leading `?`, and its fragment
1358
1483
  * with its leading `#`.
@@ -1380,6 +1505,54 @@ function splitLocation(location) {
1380
1505
  return [withoutFragment, "", fragment];
1381
1506
  return [withoutFragment.slice(0, mark), withoutFragment.slice(mark + 1), fragment];
1382
1507
  }
1508
+ /**
1509
+ * True when the query of an actor route and the query of the router are the same query.
1510
+ *
1511
+ * `isActorAtPath` answers where the actor stands, and this function answers whether the
1512
+ * two sides agree about the query there. The order of the keys is not significant, which
1513
+ * is what `isEchoOfLastSync` says for the same pair of values.
1514
+ *
1515
+ * A query that DIFFERS answers `false`, and it must: the first synchronization gives the
1516
+ * router the priority, so a location with another query is a deep link that the actor has
1517
+ * to follow. An ABSENT query of the actor against a query of the router is such a
1518
+ * difference — without this, a deep link of `/settings?ref=nav` reached an actor that
1519
+ * stood at `/settings` never, and `context.query` stayed empty for the session while
1520
+ * `lastSyncedPath` recorded the query and suppressed every later report of it. A stateId
1521
+ * carries no query of its own, so it stands at a location with one never.
1522
+ *
1523
+ * @param actorRoute - The raw value of the actor route. It CAN carry a query.
1524
+ * @param search - The query of the router, or `undefined` when it has none.
1525
+ */
1526
+ function sameQuery(actorRoute, search) {
1527
+ const [, actorQuery, fragment] = splitLocation(actorRoute);
1528
+ // A FRAGMENT is a difference, always. `sanitizePathname` cuts it off, so the router
1529
+ // reports one never and this comparison can confirm one never — and "unknown" must not
1530
+ // read as "the same". An actor that carries `/#intro` against a router at `/` is the
1531
+ // restore that puts the fragment in the address bar, and a `true` here swallowed it:
1532
+ // the bridge recorded the location, sent nothing, and the fragment reached the URL on
1533
+ // no later navigation either.
1534
+ if (fragment !== "")
1535
+ return false;
1536
+ return sortedQuery(actorQuery) === sortedQuery(search ?? "");
1537
+ }
1538
+ /**
1539
+ * True when an actor route carries no query and no fragment of its own.
1540
+ *
1541
+ * The RESTORE branch asks this beside {@link RouterBridgeBase.isActorAtPath}. An actor
1542
+ * that stands on the path of the router and answers `true` here restores nothing: the
1543
+ * address bar already shows its place, and a push writes the same path back and drops
1544
+ * whatever the router carried beside it.
1545
+ *
1546
+ * A stateId answers `true`, because a stateId carries no query and no fragment. The
1547
+ * leading `#` of `"#home"` is no fragment, which is what {@link splitLocation} says at
1548
+ * index 0.
1549
+ *
1550
+ * @param actorRoute - The raw value of the actor route.
1551
+ */
1552
+ function carriesNoOwnSuffix(actorRoute) {
1553
+ const [, query, fragment] = splitLocation(actorRoute);
1554
+ return query === "" && fragment === "";
1555
+ }
1383
1556
  /** Joins a pathname and a query into one location value. An empty query adds nothing. */
1384
1557
  function withSearch(pathname, search) {
1385
1558
  const query = (search ?? "").replace(/^\?/, "");
@@ -1395,17 +1568,17 @@ function withSearch(pathname, search) {
1395
1568
  * its own push, so the actor never heard of the move and the URL and the actor state
1396
1569
  * diverged. `mountKey` of `provider-lifecycle.ts` escapes for the same reason.
1397
1570
  *
1398
- * `sort()` in place, and not `toSorted()`: the array is a fresh one of `map()`, so
1399
- * nothing else holds a reference to it and the mutation escapes nowhere. Either one
1400
- * compiles — every example package builds against the ESNext baseline now, and
1401
- * `mountKey` of `provider-lifecycle.ts` calls `toSorted()` on this same shared source
1402
- * — so this is a choice of style and not a constraint of the toolchain.
1571
+ * `toSorted()` and not `sort()`: an in-place sort is safe here, because the array is a
1572
+ * fresh one of `map()` and the mutation escapes nowhere. It is still the second spelling
1573
+ * of one operation. `mountKey` of `provider-lifecycle.ts` sorts this same shared source
1574
+ * with `toSorted()`, so this site uses it too.
1575
+ *
1576
+ * The copy costs nothing that a profile can find. `resolveViewMeta` of play-xstate holds
1577
+ * the measurement for the same question.
1403
1578
  */
1404
1579
  function sortedQuery(search) {
1405
1580
  const pairs = [...new URLSearchParams(search).entries()].map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`);
1406
- // oxlint-disable-next-line unicorn/no-array-sort
1407
- pairs.sort();
1408
- return pairs.join("&");
1581
+ return pairs.toSorted().join("&");
1409
1582
  }
1410
1583
  function noopCleanup() { }
1411
1584
  function createRouteWatcher(signal, onRoute) {
@@ -1 +1 @@
1
- {"version":3,"file":"router-bridge-base.js","sourceRoot":"","sources":["../src/router-bridge-base.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AAEH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEhG,OAAO,EACN,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,aAAa,EACb,gBAAgB,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EACN,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,GAGb,MAAM,gBAAgB,CAAC;AAqBxB;;;;;;;;;;GAUG;AACH,MAAM,aAAa,GAAG,IAAI,OAAO,EAA4B,CAAC;AAe9D,MAAM,OAAgB,gBAAgB;IAuHjB;IACA;IAvHpB,mEAAmE;IACzD,WAAW,GAAY,KAAK,CAAC;IAC7B,gBAAgB,GAAY,KAAK,CAAC;IAC5C;;;;;;;;;;;;;;;OAeG;IACO,cAAc,GAAkB,IAAI,CAAC;IAC/C;;;;;;;;;;OAUG;IACO,cAAc,GAAkB,IAAI,CAAC;IAC/C;;;;;;;;;;OAUG;IACO,sBAAsB,GAAY,KAAK,CAAC;IAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACK,UAAU,GAAe,aAAa,CAAC;IAC/C;;;;;;;;;;;;;OAaG;IACK,yBAAyB,GAAY,KAAK,CAAC;IACzC,YAAY,GAA8B,IAAI,CAAC;IACzD;;;;;;;;;;;;;;OAcG;IACK,KAAK,GAAqB,YAAY,CAAC;IAE/C;;;;;;;;OAQG;IACH,YACoB,KAAoB,EACpB,QAGlB,EACD,OAAyB;QALN,UAAK,GAAL,KAAK,CAAe;QACpB,aAAQ,GAAR,QAAQ,CAG1B;QAGD,gFAAgF;QAChF,mEAAmE;QACnE,IAAI,CAAC,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QACzE,iFAAiF;QACjF,kFAAkF;QAClF,oDAAoD;QACpD,EAAE;QACF,mFAAmF;QACnF,mFAAmF;QACnF,4EAA4E;QAC5E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACH,IAAI,QAAQ;QACX,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,IAAI,cAAc;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,WAAW,CACV,QAAsC,EACtC,cAAkD;QAElD,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAE/C,mFAAmF;QACnF,kFAAkF;QAClF,oFAAoF;QACpF,kFAAkF;QAClF,6EAA6E;QAC7E,wDAAwD;QACxD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAElB,kFAAkF;QAClF,+EAA+E;QAC/E,IAAI,QAAQ;YAAE,OAAO;QAErB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,8EAA8E;YAC9E,8EAA8E;YAC9E,wDAAwD;YACxD,EAAE;YACF,gFAAgF;YAChF,4EAA4E;YAC5E,wEAAwE;YACxE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,8EAA8E;YAC9E,kFAAkF;YAClF,mFAAmF;YACnF,4EAA4E;YAC5E,mFAAmF;YACnF,kFAAkF;YAClF,gFAAgF;YAChF,gEAAgE;YAChE,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;YAChC,8EAA8E;YAC9E,8EAA8E;YAC9E,+EAA+E;YAC/E,iFAAiF;YACjF,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;YACvC,6EAA6E;YAC7E,gFAAgF;YAChF,+EAA+E;YAC/E,8EAA8E;YAC9E,kFAAkF;YAClF,6EAA6E;YAC7E,uEAAuE;YACvE,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACnC,CAAC;IACF,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACK,0BAA0B;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC/C,oFAAoF;QACpF,kFAAkF;QAClF,kFAAkF;QAClF,+EAA+E;QAC/E,sEAAsE;QACtE,MAAM,SAAS,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEvF,6EAA6E;QAC7E,wEAAwE;QACxE,4EAA4E;QAC5E,mCAAmC;QACnC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YAC1D,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO;QACR,CAAC;QAED,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YAC1B,gFAAgF;YAChF,8EAA8E;YAC9E,mEAAmE;YACnE,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACpC,OAAO;QACR,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QACxD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACxB,8EAA8E;YAC9E,gFAAgF;YAChF,yCAAyC;YACzC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,kFAAkF;QAClF,4EAA4E;QAC5E,kFAAkF;QAClF,mFAAmF;QACnF,gFAAgF;QAChF,uEAAuE;QACvE,EAAE;QACF,gFAAgF;QAChF,6CAA6C;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;QAC/D,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,mBAAmB,CAAC;YACtC,OAAO;QACR,CAAC;QAED,4EAA4E;QAC5E,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;QAChC,mFAAmF;QACnF,2EAA2E;QAC3E,oFAAoF;QACpF,mFAAmF;QACnF,mFAAmF;QACnF,qCAAqC;QACrC,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,mFAAmF;QACnF,iFAAiF;QACjF,yCAAyC;QACzC,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACK,qBAAqB,CAAC,KAAa,EAAE,QAAwB;QACpE,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC;YACJ,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACrC,CAAC;IACF,CAAC;IAED,sFAAsF;IAEtF;;;;;;;;;;;;;;;OAeG;IACH,OAAO;QACN,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO;QACR,CAAC;QAED,iFAAiF;QACjF,mFAAmF;QACnF,kFAAkF;QAClF,SAAS;QACT,MAAM,cAAc,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,cAAc,KAAK,SAAS,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC7D,MAAM,IAAI,oBAAoB,EAAE,CAAC;QAClC,CAAC;QACD,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAEpC,kFAAkF;QAClF,+EAA+E;QAC/E,oFAAoF;QACpF,gFAAgF;QAChF,iFAAiF;QACjF,oFAAoF;QACpF,4CAA4C;QAC5C,EAAE;QACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC;QAE5D,kFAAkF;QAClF,kFAAkF;QAClF,mFAAmF;QACnF,oFAAoF;QACpF,+EAA+E;QAC/E,0EAA0E;QAC1E,sEAAsE;QACtE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,iFAAiF;QACjF,0CAA0C;QAC1C,+DAA+D;QAC/D,iFAAiF;QACjF,mFAAmF;QACnF,oFAAoF;QACpF,uBAAuB;QACvB,oFAAoF;QACpF,kFAAkF;QAClF,uCAAuC;QACvC,EAAE;QACF,+EAA+E;QAC/E,oBAAoB;QACpB,EAAE;QACF,+EAA+E;QAC/E,6DAA6D;QAC7D,iFAAiF;QACjF,0CAA0C;QAC1C,sEAAsE;QACtE,iFAAiF;QACjF,gFAAgF;QAChF,2EAA2E;QAC3E,IAAI,CAAC;YACJ,yEAAyE;YACzE,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;gBACzE,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YAEH,4EAA4E;YAC5E,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAE1B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,gFAAgF;YAChF,gFAAgF;YAChF,gFAAgF;YAChF,gFAAgF;YAChF,8EAA8E;YAC9E,IAAI,CAAC;gBACJ,IAAI,CAAC,UAAU,EAAE,CAAC;YACnB,CAAC;YAAC,MAAM,CAAC;gBACR,wEAAwE;gBACxE,yEAAyE;gBACzE,uBAAuB;YACxB,CAAC;YACD,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACK,kBAAkB,CAAC,iBAA4C;QACtE,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QAExD,IAAI,OAAO,iBAAiB,KAAK,QAAQ,EAAE,CAAC;YAC3C,8EAA8E;YAC9E,wEAAwE;YACxE,0EAA0E;YAC1E,yEAAyE;YACzE,6EAA6E;YAC7E,sEAAsE;YACtE,MAAM,SAAS,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;YACtD,IAAI,SAAS,KAAK,IAAI;gBAAE,OAAO;YAE/B,8EAA8E;YAC9E,gFAAgF;YAChF,+EAA+E;YAC/E,6EAA6E;YAC7E,+CAA+C;YAC/C,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9D,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,OAAO;YACR,CAAC;YACD,6EAA6E;YAC7E,6EAA6E;YAC7E,sEAAsE;YACtE,2EAA2E;YAC3E,wEAAwE;YACxE,gDAAgD;YAChD,gFAAgF;YAChF,+EAA+E;YAC/E,+EAA+E;YAC/E,iBAAiB;YACjB,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;YAChC,kFAAkF;YAClF,gDAAgD;YAChD,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;YAEtC,sEAAsE;YACtE,MAAM,4BAA4B,GAAG,IAAI,CAAC,iBAAiB,CAC1D,WAAW,EACX,iBAAiB,CACjB,CAAC;YAEF,iFAAiF;YACjF,gFAAgF;YAChF,8EAA8E;YAC9E,8EAA8E;YAC9E,4EAA4E;YAC5E,6CAA6C;YAC7C,EAAE;YACF,mFAAmF;YACnF,8EAA8E;YAC9E,iFAAiF;YACjF,8EAA8E;YAC9E,YAAY;YACZ,IAAI,4BAA4B,EAAE,CAAC;gBAClC,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACP,oFAAoF;gBACpF,mBAAmB;gBACnB,EAAE;gBACF,qFAAqF;gBACrF,oBAAoB;gBACpB,+EAA+E;gBAC/E,EAAE;gBACF,8EAA8E;gBAC9E,2CAA2C;gBAC3C,0EAA0E;gBAC1E,EAAE;gBACF,oFAAoF;gBACpF,yDAAyD;gBACzD,IACC,iBAAiB;oBACjB,WAAW,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY;oBACvC,iBAAiB,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY,EAC5C,CAAC;oBACF,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;gBAC/C,CAAC;qBAAM,CAAC;oBACP,8EAA8E;oBAC9E,4EAA4E;oBAC5E,sBAAsB;oBACtB,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;gBAC5E,CAAC;YACF,CAAC;QACF,CAAC;aAAM,IAAI,iBAAiB,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC5D,iFAAiF;YACjF,oCAAoC;YACpC,oFAAoF;YACpF,YAAY;YACZ,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;YAC9C,+EAA+E;YAC/E,gFAAgF;YAChF,kFAAkF;YAClF,kFAAkF;YAClF,mFAAmF;YACnF,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACvC,CAAC;aAAM,IAAI,iBAAiB,IAAI,iBAAiB,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;YAC3E,8FAA8F;YAC9F,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;YAC5C,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACvC,CAAC;IACF,CAAC;IAED;;;;;OAKG;IACH,UAAU;QACT,MAAM,eAAe,GAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;QAEnD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,IAAI,CAAC;gBACJ,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC;YAAC,MAAM,CAAC;gBACR,kFAAkF;YACnF,CAAC;QACF,CAAC;QACD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,iFAAiF;QACjF,+EAA+E;QAC/E,iFAAiF;QACjF,0EAA0E;QAC1E,kFAAkF;QAClF,2EAA2E;QAC3E,4DAA4D;QAC5D,IAAI,CAAC;YACJ,IAAI,IAAI,CAAC,WAAW,IAAI,eAAe,EAAE,CAAC;gBACzC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC7B,CAAC;QACF,CAAC;QAAC,MAAM,CAAC;YACR,+EAA+E;YAC/E,4EAA4E;YAC5E,4EAA4E;YAC5E,8EAA8E;YAC9E,6CAA6C;QAC9C,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;YACpC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,gFAAgF;YAChF,iFAAiF;YACjF,6DAA6D;YAC7D,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;YAChC,IAAI,CAAC,yBAAyB,GAAG,KAAK,CAAC;YAEvC,2EAA2E;YAC3E,8EAA8E;YAC9E,uEAAuE;YACvE,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC5C,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;QACF,CAAC;IACF,CAAC;IAED,gGAAgG;IAEhG;;;;;;;;;;;;;;;;;;;OAmBG;IACO,mBAAmB,CAAC,KAA8B;QAC3D,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QACvD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO;QAChD,2EAA2E;QAC3E,+EAA+E;QAC/E,gFAAgF;QAChF,8EAA8E;QAC9E,yEAAyE;QACzE,EAAE;QACF,8EAA8E;QAC9E,2EAA2E;QAC3E,6EAA6E;QAC7E,gFAAgF;QAChF,sBAAsB;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE5C,IAAI,IAAI,CAAC,UAAU,KAAK,aAAa,EAAE,CAAC;YACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC;YAChE,OAAO;QACR,CAAC;QAED,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO;QAExB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;OAMG;IACK,WAAW;QAClB,IAAI,IAAI,CAAC,UAAU,KAAK,aAAa;YAAE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;IACpE,CAAC;IAED;;;;;;;;;;;;;;;;;;;OAmBG;IACK,oBAAoB,CAAC,WAAmB,EAAE,MAA0B;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC;QACjC,IAAI,QAAQ,KAAK,aAAa;YAAE,OAAO,KAAK,CAAC;QAC7C,oFAAoF;QACpF,mFAAmF;QACnF,gDAAgD;QAChD,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC;QAEhC,uEAAuE;QACvE,kFAAkF;QAClF,gFAAgF;QAChF,gFAAgF;QAChF,gFAAgF;QAChF,kFAAkF;QAClF,yCAAyC;QACzC,EAAE;QACF,gFAAgF;QAChF,gFAAgF;QAChF,kFAAkF;QAClF,0EAA0E;QAC1E,4CAA4C;QAC5C,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC;QACtD,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;QACpD,kFAAkF;QAClF,kFAAkF;QAClF,uEAAuE;QACvE,oFAAoF;QACpF,oFAAoF;QACpF,kFAAkF;QAClF,kCAAkC;QAClC,EAAE;QACF,kFAAkF;QAClF,gFAAgF;QAChF,wDAAwD;QACxD,MAAM,eAAe,GAAG,aAAa,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAC5F,IACC,aAAa;YACb,aAAa;YACb,WAAW,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY;YACvC,aAAa,KAAK,IAAI,CAAC,KAAK,CAAC,YAAY;YACzC,CAAC,eAAe,EACf,CAAC;YACF,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,aAAa,EAAE,CAAC;YACnB,6EAA6E;YAC7E,8EAA8E;YAC9E,gFAAgF;YAChF,4BAA4B;YAC5B,EAAE;YACF,8EAA8E;YAC9E,gFAAgF;YAChF,qCAAqC;YACrC,EAAE;YACF,iFAAiF;YACjF,4EAA4E;YAC5E,gFAAgF;YAChF,kFAAkF;YAClF,kFAAkF;YAClF,iFAAiF;YACjF,kFAAkF;YAClF,+CAA+C;YAC/C,IAAI,eAAe,EAAE,CAAC;gBACrB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;gBACtD,OAAO,IAAI,CAAC;YACb,CAAC;YAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,OAAO,KAAK,CAAC;QACd,CAAC;QAED,IAAI,QAAQ,KAAK,mBAAmB;YAAE,OAAO,KAAK,CAAC;QAEnD,mFAAmF;QACnF,wEAAwE;QACxE,EAAE;QACF,8EAA8E;QAC9E,mFAAmF;QACnF,iFAAiF;QACjF,gFAAgF;QAChF,iEAAiE;QACjE,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAE9D,iEAAiE;QACjE,4EAA4E;QAC5E,8BAA8B;QAC9B,EAAE;QACF,gFAAgF;QAChF,oFAAoF;QACpF,iFAAiF;QACjF,iFAAiF;QACjF,mDAAmD;QACnD,IAAI,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QACjC,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,cAAc,CAAC,KAAa;QACnC,IAAI,IAAI,CAAC,sBAAsB;YAAE,OAAO,IAAI,CAAC;QAE7C,gFAAgF;QAChF,kFAAkF;QAClF,yEAAyE;QACzE,iFAAiF;QACjF,oFAAoF;QACpF,gFAAgF;QAChF,wEAAwE;QACxE,EAAE;QACF,mFAAmF;QACnF,+EAA+E;QAC/E,qCAAqC;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACvB,6EAA6E;YAC7E,gFAAgF;YAChF,qEAAqE;YACrE,8EAA8E;YAC9E,iFAAiF;YACjF,+EAA+E;YAC/E,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,OAAO,KAAK,CAAC;QACd,CAAC;QAED,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACK,kBAAkB,CAAC,KAAa;QACvC,mFAAmF;QACnF,gFAAgF;QAChF,6EAA6E;QAC7E,gEAAgE;QAChE,IAAI,KAAK,KAAK,IAAI,CAAC,cAAc;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAE3D,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC;QACrC,gFAAgF;QAChF,2CAA2C;QAC3C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;QACvE,CAAC;QAED,mFAAmF;QACnF,uDAAuD;QACvD,IAAI,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAE3D,mFAAmF;QACnF,gFAAgF;QAChF,mFAAmF;QACnF,iFAAiF;QACjF,uEAAuE;QACvE,EAAE;QACF,iFAAiF;QACjF,iFAAiF;QACjF,yCAAyC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,QAAQ,KAAK,IAAI,IAAI,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACnF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACK,iBAAiB,CACxB,KAAa,EACb,WAA0B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC;QAE3D,oFAAoF;QACpF,wDAAwD;QACxD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,oFAAoF;QACpF,iFAAiF;QACjF,kFAAkF;QAClF,kDAAkD;QAClD,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO;QAC9B,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC;QAC/B,4EAA4E;QAC5E,iFAAiF;QACjF,kFAAkF;QAClF,+EAA+E;QAC/E,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACO,mBAAmB,CAAC,QAAgB,EAAE,MAAe;QAC9D,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QACvD,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,OAAO;QAEzC,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7C,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO,CAAC,kCAAkC;QAElE,gFAAgF;QAChF,iFAAiF;QACjF,kFAAkF;QAClF,uDAAuD;QACvD,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO;QACR,CAAC;QAED,8EAA8E;QAC9E,kFAAkF;QAClF,0EAA0E;QAC1E,IAAI,IAAI,CAAC,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC;YAAE,OAAO;QAE3D,kFAAkF;QAClF,8EAA8E;QAC9E,oFAAoF;QACpF,mFAAmF;QACnF,gFAAgF;QAChF,mFAAmF;QACnF,oFAAoF;QACpF,kFAAkF;QAClF,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;QAEtC,IAAI,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC;YAAE,OAAO;QACvD,IAAI,IAAI,CAAC,sBAAsB;YAAE,OAAO;QAExC,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;QAEnC,IAAI,CAAC;YACJ,MAAM,SAAS,GAAG,mBAAmB,CAAC;gBACrC,QAAQ,EAAE,WAAW;gBACrB,MAAM;gBACN,KAAK,EAAE,CAAC,YAAY,EAAE,EAAE,CACvB,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,EAAE,CACxE,IAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAC7C;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChB,6DAA6D;gBAC7D,oFAAoF;gBACpF,sFAAsF;gBACtF,8EAA8E;gBAC9E,EAAE;gBACF,iFAAiF;gBACjF,qFAAqF;gBACrF,oFAAoF;gBACpF,oFAAoF;gBACpF,oDAAoD;gBACpD,oFAAoF;gBACpF,SAAS;gBACT,EAAE;gBACF,kFAAkF;gBAClF,8EAA8E;gBAC9E,0DAA0D;gBAC1D,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;gBACxD,IAAI,iBAAiB,EAAE,CAAC;oBACvB,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;gBAC3C,CAAC;gBACD,OAAO;YACR,CAAC;YAED,qEAAqE;YACrE,EAAE;YACF,4EAA4E;YAC5E,4EAA4E;YAC5E,0DAA0D;YAC1D,EAAE;YACF,4EAA4E;YAC5E,yEAAyE;YACzE,4EAA4E;YAC5E,0EAA0E;YAC1E,wBAAwB;YACxB,yEAAyE;YACzE,0EAA0E;YAC1E,sBAAsB;YACtB,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC7D,8EAA8E;YAC9E,iFAAiF;YACjF,8EAA8E;YAC9E,8EAA8E;YAC9E,kFAAkF;YAClF,wDAAwD;YACxD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,kFAAkF;YAClF,6EAA6E;YAC7E,uBAAuB;YACvB,IAAI,KAAK,YAAY,0BAA0B,EAAE,CAAC;gBACjD,MAAM,KAAK,CAAC;YACb,CAAC;YACD,MAAM,IAAI,eAAe,CAAC,kDAAkD,EAAE;gBAC7E,KAAK,EAAE,KAAK;aACZ,CAAC,CAAC;QACJ,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;QACrC,CAAC;IACF,CAAC;IAED,4GAA4G;IAE5G;;;;;;;;;;;;;OAaG;IACO,aAAa,CAAC,QAAgB,EAAE,OAAe;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,OAAO,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACO,qBAAqB,CAAC,KAAa;QAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,iFAAiF;QACjF,mFAAmF;QACnF,gFAAgF;QAChF,+EAA+E;QAC/E,oFAAoF;QACpF,gFAAgF;QAChF,wCAAwC;QACxC,IAAI,sBAAsB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1D,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACK,iBAAiB,CAAC,WAAmB,EAAE,UAAqC;QACnF,IAAI,UAAU,IAAI,IAAI;YAAE,OAAO,KAAK,CAAC;QACrC,kFAAkF;QAClF,+EAA+E;QAC/E,6EAA6E;QAC7E,kFAAkF;QAClF,oFAAoF;QACpF,iFAAiF;QACjF,IAAI,WAAW,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;QAC5C,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QAC5E,IAAI,eAAe,KAAK,UAAU;YAAE,OAAO,IAAI,CAAC;QAChD,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC9D,OAAO,CACN,gBAAgB,IAAI,IAAI;YACxB,gBAAgB,KAAK,IAAI,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAC9D,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,mBAAmB,CAAC,KAAa;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,MAAM,IAAI,IAAI;YAAE,OAAO,MAAM,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC;QACvE,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED;;;;;OAKG;IACO,YAAY,CAAC,MAAc;QACpC,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACK,gBAAgB,CAAC,SAAiB,EAAE,MAA0B;QACrE,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC;QACjC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,SAAS,KAAK,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAE7D,+EAA+E;QAC/E,gFAAgF;QAChF,gFAAgF;QAChF,mEAAmE;QACnE,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;QACzC,OAAO,WAAW,CAAC,SAAS,CAAC,KAAK,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC7D,CAAC;IAiBD;;;;;;;;;;;;;;;OAeG;IACO,YAAY,CAAC,QAAgB;QACtC,OAAO,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IA6BD;;;;;;;;;;;;;;;;;;OAkBG;IACO,oBAAoB;QAC7B,OAAO,SAAS,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACO,sBAAsB;QAC/B,OAAO,SAAS,CAAC;IAClB,CAAC;CACD;AAED;;;;;GAKG;AACH,SAAS,UAAU,CAAC,QAAgB;IACnC,MAAM,IAAI,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACtC,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,SAAS,aAAa,CAAC,QAAgB;IACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC5C,MAAM,eAAe,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACrF,MAAM,QAAQ,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACrE,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,IAAI,KAAK,CAAC,CAAC;QAAE,OAAO,CAAC,eAAe,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;IACxD,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACpF,CAAC;AAED,yFAAyF;AACzF,SAAS,UAAU,CAAC,QAAgB,EAAE,MAA0B;IAC/D,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChD,OAAO,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC;AACzD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,WAAW,CAAC,MAAc;IAClC,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAC3D,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAC3E,CAAC;IACF,iDAAiD;IACjD,KAAK,CAAC,IAAI,EAAE,CAAC;IACb,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,WAAW,KAAI,CAAC;AAEzB,SAAS,kBAAkB,CAC1B,MAAsC,EACtC,OAAuC;IAEvC,IAAI,OAAO,GAAe,WAAW,CAAC;IACtC,MAAM,OAAO,GAAuB;QACnC,KAAK,CAAC,UAA0C;YAC/C,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QACD,OAAO;YACN,OAAO,EAAE,CAAC;QACX,CAAC;KACD,CAAC;IAEF,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,OAAO,OAAO,CAAC;AAChB,CAAC;AAUD;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,CAAS,EAAE,CAAS;IACzC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,KAAK,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAClC,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC1C,OAAO,WAAW,CAAC,MAAM,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"router-bridge-base.js","sourceRoot":"","sources":["../src/router-bridge-base.ts"],"names":[],"mappings":"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"}