@plumile/router 0.1.42 → 0.1.44
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/README.md +27 -14
- package/lib/esm/builder.d.ts +2 -2
- package/lib/esm/builder.d.ts.map +1 -1
- package/lib/esm/builder.js +1 -1
- package/lib/esm/routing/Link.d.ts +4 -3
- package/lib/esm/routing/Link.d.ts.map +1 -1
- package/lib/esm/routing/Link.js +33 -7
- package/lib/esm/routing/RouteComponentWrapper.d.ts.map +1 -1
- package/lib/esm/routing/RouteComponentWrapper.js +3 -1
- package/lib/esm/routing/createRouter.d.ts +6 -4
- package/lib/esm/routing/createRouter.d.ts.map +1 -1
- package/lib/esm/routing/createRouter.js +80 -6
- package/lib/esm/routing/index.d.ts +3 -0
- package/lib/esm/routing/index.d.ts.map +1 -1
- package/lib/esm/routing/index.js +4 -1
- package/lib/esm/routing/useLocation.d.ts +2 -0
- package/lib/esm/routing/useLocation.d.ts.map +1 -0
- package/lib/esm/routing/useLocation.js +24 -0
- package/lib/esm/routing/useNavigate.d.ts +2 -1
- package/lib/esm/routing/useNavigate.d.ts.map +1 -1
- package/lib/esm/routing/useNavigate.js +1 -1
- package/lib/esm/routing/usePathname.d.ts +2 -0
- package/lib/esm/routing/usePathname.d.ts.map +1 -0
- package/lib/esm/routing/usePathname.js +9 -0
- package/lib/esm/routing/useSearchParams.d.ts +11 -0
- package/lib/esm/routing/useSearchParams.d.ts.map +1 -0
- package/lib/esm/routing/useSearchParams.js +67 -0
- package/lib/esm/tools/buildCombinedSearch.d.ts +1 -0
- package/lib/esm/tools/buildCombinedSearch.d.ts.map +1 -1
- package/lib/esm/tools/buildCombinedSearch.js +61 -4
- package/lib/esm/tools.d.ts +3 -3
- package/lib/esm/tools.d.ts.map +1 -1
- package/lib/esm/tools.js +3 -2
- package/lib/esm/types.d.ts +24 -19
- package/lib/esm/types.d.ts.map +1 -1
- package/lib/esm/types.js +1 -1
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/builder.d.ts +2 -2
- package/lib/types/builder.d.ts.map +1 -1
- package/lib/types/routing/Link.d.ts +4 -3
- package/lib/types/routing/Link.d.ts.map +1 -1
- package/lib/types/routing/RouteComponentWrapper.d.ts.map +1 -1
- package/lib/types/routing/createRouter.d.ts +6 -4
- package/lib/types/routing/createRouter.d.ts.map +1 -1
- package/lib/types/routing/index.d.ts +3 -0
- package/lib/types/routing/index.d.ts.map +1 -1
- package/lib/types/routing/useLocation.d.ts +2 -0
- package/lib/types/routing/useLocation.d.ts.map +1 -0
- package/lib/types/routing/useNavigate.d.ts +2 -1
- package/lib/types/routing/useNavigate.d.ts.map +1 -1
- package/lib/types/routing/usePathname.d.ts +2 -0
- package/lib/types/routing/usePathname.d.ts.map +1 -0
- package/lib/types/routing/useSearchParams.d.ts +11 -0
- package/lib/types/routing/useSearchParams.d.ts.map +1 -0
- package/lib/types/tools/buildCombinedSearch.d.ts +1 -0
- package/lib/types/tools/buildCombinedSearch.d.ts.map +1 -1
- package/lib/types/tools.d.ts +3 -3
- package/lib/types/tools.d.ts.map +1 -1
- package/lib/types/types.d.ts +24 -19
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -51,7 +51,7 @@ This package is ESM-only. If your tooling expects CommonJS, enable ESM support (
|
|
|
51
51
|
```typescript
|
|
52
52
|
import { Route, getResourcePage } from '@plumile/router';
|
|
53
53
|
|
|
54
|
-
const routes: Route<any, any>[] = [
|
|
54
|
+
const routes: Route<any, any, any>[] = [
|
|
55
55
|
{
|
|
56
56
|
path: '/',
|
|
57
57
|
resourcePage: getResourcePage('Home', () => import('./pages/Home')),
|
|
@@ -136,6 +136,9 @@ function Navigation() {
|
|
|
136
136
|
| `useNavigate()` | `() => Navigate` | Imperative navigation with type-safe params and filters. | `const navigate = useNavigate(); navigate({ pathname: '/products', filters: { page: { eq: 2 } } });` |
|
|
137
137
|
| `useFilters(schema)` | `(schema) => [filters, actions]` | Read and mutate filters inferred from a schema. | `const [filters, actions] = useFilters(productFilters); actions.set('price', 'gt', 10);` |
|
|
138
138
|
| `useQuery()` | `() => Record<string, string \| string[]>` | Access the raw query aggregation (legacy/simple use). | `const query = useQuery();` |
|
|
139
|
+
| `useLocation()` | `() => Location` | Read the current location object. | `const location = useLocation();` |
|
|
140
|
+
| `usePathname()` | `() => string` | Read the current pathname. | `const pathname = usePathname();` |
|
|
141
|
+
| `useSearchParams()` | `() => SearchParamsActions` | Read and update URLSearchParams. | `const { params, setParam } = useSearchParams();` |
|
|
139
142
|
| `useQueryState(key, options?)` | `(key, options?) => [value, setValue]` | Two-way binding for a single query parameter with default/replace options. | `const [page, setPage] = useQueryState('page', { defaultValue: 1 });` |
|
|
140
143
|
| `useFilterDiagnostics()` | `() => Diagnostic[]` | Surface parsing issues (unknown fields/operators) for UI or logging. | `const diagnostics = useFilterDiagnostics();` |
|
|
141
144
|
| `useAllQuery(options?)` | `(options?) => QueryLike` | Merge filters and raw query, helpful during migrations. | `const all = useAllQuery();` |
|
|
@@ -144,13 +147,17 @@ function Navigation() {
|
|
|
144
147
|
|
|
145
148
|
### Core Components
|
|
146
149
|
|
|
147
|
-
#### `createRouter(routes: Route[])`
|
|
150
|
+
#### `createRouter<TContext>(routes: Route<TContext, any, any>[], options?)`
|
|
148
151
|
|
|
149
152
|
Creates a router instance with the given route configuration.
|
|
150
153
|
|
|
151
154
|
**Parameters:**
|
|
152
155
|
|
|
153
156
|
- `routes`: Array of route definitions
|
|
157
|
+
- `options?`: Optional configuration
|
|
158
|
+
- `context?`: Static context value or lazy initializer
|
|
159
|
+
- `getContext?`: Resolve a fresh context value per navigation
|
|
160
|
+
- `instrumentations?`: Instrumentations invoked on router events
|
|
154
161
|
|
|
155
162
|
**Returns:**
|
|
156
163
|
|
|
@@ -173,12 +180,17 @@ Navigation component that handles client-side routing.
|
|
|
173
180
|
|
|
174
181
|
**Props:**
|
|
175
182
|
|
|
176
|
-
- `to`: string - Destination path
|
|
183
|
+
- `to`: string | HistoryLocation - Destination path (supports `search`/`hash`)
|
|
184
|
+
- `filters?`: object - Filters object serialized with the active query schema
|
|
185
|
+
- `query?`: object - Raw query params merged as non-schema keys
|
|
177
186
|
- `exact?`: boolean - Exact path matching for active state
|
|
178
187
|
- `activeClassName?`: string - CSS class when link is active
|
|
179
188
|
- `className?`: string - Base CSS class
|
|
180
|
-
- `
|
|
181
|
-
- `
|
|
189
|
+
- `preloadOnMouseEnter?`: boolean - Preload route on hover
|
|
190
|
+
- `preloadOnMouseDown?`: boolean - Preload route on mouse down
|
|
191
|
+
- `href?`: string - Explicit href override
|
|
192
|
+
- `target?`: string - Target attribute for the link
|
|
193
|
+
- `onClick?`: (event) => void - Click handler
|
|
182
194
|
|
|
183
195
|
#### `RoutingContext`
|
|
184
196
|
|
|
@@ -186,7 +198,7 @@ React context that provides router functionality to components.
|
|
|
186
198
|
|
|
187
199
|
### Route Configuration
|
|
188
200
|
|
|
189
|
-
#### `Route<TPrepared, TVariables>`
|
|
201
|
+
#### `Route<TContext, TPrepared, TVariables>`
|
|
190
202
|
|
|
191
203
|
Route definition interface.
|
|
192
204
|
|
|
@@ -195,8 +207,8 @@ Route definition interface.
|
|
|
195
207
|
- `path?`: string - URL path pattern
|
|
196
208
|
- `children?`: Route[] | Redirect[] - Nested routes
|
|
197
209
|
- `resourcePage?`: ResourcePage - Lazy-loaded component
|
|
198
|
-
- `prepare?`: Function to preload data
|
|
199
|
-
- `render?`: Custom render function
|
|
210
|
+
- `prepare?`: Function to preload data (receives `context`)
|
|
211
|
+
- `render?`: Custom render function (receives `context`)
|
|
200
212
|
|
|
201
213
|
#### `Redirect`
|
|
202
214
|
|
|
@@ -251,11 +263,11 @@ Browser history implementation.
|
|
|
251
263
|
|
|
252
264
|
Finds the matching route for a given location.
|
|
253
265
|
|
|
254
|
-
#### `prepareMatch(match)`
|
|
266
|
+
#### `prepareMatch(match, query?, instrumentation?, context?)`
|
|
255
267
|
|
|
256
268
|
Prepares route data and components for rendering.
|
|
257
269
|
|
|
258
|
-
#### `r<TPrepared, TVariables>(route)`
|
|
270
|
+
#### `r<TContext, TPrepared, TVariables>(route)`
|
|
259
271
|
|
|
260
272
|
Type helper for strongly-typed route definitions.
|
|
261
273
|
|
|
@@ -361,8 +373,9 @@ import { buildCombinedSearch } from '@plumile/router';
|
|
|
361
373
|
const search = buildCombinedSearch({
|
|
362
374
|
filters: { page: { eq: 1 }, price: { gt: 10 } },
|
|
363
375
|
querySchema: productFilters,
|
|
376
|
+
query: { ref: 'promo' },
|
|
364
377
|
});
|
|
365
|
-
// => '?page=1&price.gt=10'
|
|
378
|
+
// => '?page=1&price.gt=10&ref=promo'
|
|
366
379
|
```
|
|
367
380
|
|
|
368
381
|
Guideline: If you need to derive lightweight projections (e.g. `const { page } = typed`), you can still destructure; but avoid spreading into a new object if you rely on reference equality downstream.
|
|
@@ -550,7 +563,7 @@ Options:
|
|
|
550
563
|
### Data Preloading
|
|
551
564
|
|
|
552
565
|
```typescript
|
|
553
|
-
const route: Route<{ user: User }, { id: string }> = {
|
|
566
|
+
const route: Route<any, { user: User }, { id: string }> = {
|
|
554
567
|
path: '/users/:id',
|
|
555
568
|
prepare: async ({ variables }) => {
|
|
556
569
|
const user = await fetchUser(variables.id);
|
|
@@ -566,7 +579,7 @@ const route: Route<{ user: User }, { id: string }> = {
|
|
|
566
579
|
### Custom Route Rendering
|
|
567
580
|
|
|
568
581
|
```typescript
|
|
569
|
-
const route: Route<any, any> = {
|
|
582
|
+
const route: Route<any, any, any> = {
|
|
570
583
|
path: '/protected',
|
|
571
584
|
render: ({ children, prepared }) => {
|
|
572
585
|
if (!userIsAuthenticated()) {
|
|
@@ -635,7 +648,7 @@ interface UserPageParams {
|
|
|
635
648
|
id: string;
|
|
636
649
|
}
|
|
637
650
|
|
|
638
|
-
const userRoute = r<UserPageData, UserPageParams>({
|
|
651
|
+
const userRoute = r<any, UserPageData, UserPageParams>({
|
|
639
652
|
path: '/users/:id',
|
|
640
653
|
prepare: ({ variables }) => {
|
|
641
654
|
// variables.id is typed as string
|
package/lib/esm/builder.d.ts
CHANGED
|
@@ -8,6 +8,6 @@ export declare class FlatRoute<TParams extends ParamData> {
|
|
|
8
8
|
constructor(input: FlatRouteInput<TParams>);
|
|
9
9
|
}
|
|
10
10
|
export declare function isRedirect(route: AnyRoute | Redirect): route is Redirect;
|
|
11
|
-
export declare function buildRoute(routeConfig: (AnyRoute | Redirect)[], parentRoutes?: AnyRoute[], prefix?: string): FlatRoute<ParamData>[];
|
|
12
|
-
export declare function buildRoutes(routeConfig: AnyRoute[]): FlatRoute<ParamData>[];
|
|
11
|
+
export declare function buildRoute<TContext>(routeConfig: (AnyRoute<TContext> | Redirect)[], parentRoutes?: AnyRoute<TContext>[], prefix?: string): FlatRoute<ParamData>[];
|
|
12
|
+
export declare function buildRoutes<TContext>(routeConfig: AnyRoute<TContext>[]): FlatRoute<ParamData>[];
|
|
13
13
|
//# sourceMappingURL=builder.d.ts.map
|
package/lib/esm/builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAS,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ5E,qBAAa,SAAS,CAAC,OAAO,SAAS,SAAS;IAEvC,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,QAAQ,EAAE,CAAC;IAGnB,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAGtC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAOR,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;CAOlD;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAGxE;AASD,wBAAgB,UAAU,
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,aAAa,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAS,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQ5E,qBAAa,SAAS,CAAC,OAAO,SAAS,SAAS;IAEvC,IAAI,EAAE,MAAM,CAAC;IAGb,MAAM,EAAE,QAAQ,EAAE,CAAC;IAGnB,aAAa,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAGtC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAOR,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC;CAOlD;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,IAAI,QAAQ,CAGxE;AASD,wBAAgB,UAAU,CAAC,QAAQ,EACjC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,EAC9C,YAAY,GAAE,QAAQ,CAAC,QAAQ,CAAC,EAAO,EACvC,MAAM,SAAK,GACV,SAAS,CAAC,SAAS,CAAC,EAAE,CA8DxB;AAOD,wBAAgB,WAAW,CAAC,QAAQ,EAClC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAChC,SAAS,CAAC,SAAS,CAAC,EAAE,CAExB"}
|
package/lib/esm/builder.js
CHANGED
|
@@ -68,4 +68,4 @@ export function buildRoute(routeConfig, parentRoutes = [], prefix = '') {
|
|
|
68
68
|
export function buildRoutes(routeConfig) {
|
|
69
69
|
return buildRoute(routeConfig);
|
|
70
70
|
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQXNDLE1BQU0sZ0JBQWdCLENBQUM7QUFVM0UsTUFBTSxPQUFPLFNBQVM7SUFFYixJQUFJLENBQVM7SUFHYixNQUFNLENBQWE7SUFHbkIsYUFBYSxDQUF5QjtJQUd0QyxVQUFVLENBQVU7SUFPM0IsWUFBbUIsS0FBOEI7UUFDL0MsTUFBTSxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQztRQUMxRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztJQUNyQyxDQUFDO0NBQ0Y7QUFHRCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQTBCO0lBRW5ELE9BQVEsS0FBa0IsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDO0FBQ3hDLENBQUM7QUFTRCxNQUFNLFVBQVUsVUFBVSxDQUN4QixXQUE4QyxFQUM5QyxlQUFxQyxFQUFFLEVBQ3ZDLE1BQU0sR0FBRyxFQUFFO0lBRVgsTUFBTSxVQUFVLEdBQTJCLEVBQUUsQ0FBQztJQUU5QyxLQUFLLE1BQU0sS0FBSyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNsQixLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssRUFBRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDbEUsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsVUFBVSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFaEMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQXVDLENBQUM7UUFFN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDM0MsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZFLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztZQUUzQixTQUFTO1FBQ1gsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLE9BQU8sRUFBRSxFQUFFO1lBQ3pDLFFBQVEsRUFBRSxLQUFLO1NBQ2hCLENBQUMsQ0FBQztRQUVILElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFFMUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsVUFBVSxHQUFHLEdBQUcsSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ3ZDLENBQUM7WUFDRCxVQUFVLENBQUMsSUFBSSxDQUNiLElBQUksU0FBUyxDQUFDO2dCQUNaLElBQUk7Z0JBQ0osVUFBVTtnQkFDVixhQUFhO2dCQUNiLE1BQU0sRUFBRSxDQUFDLEdBQUcsWUFBWSxDQUFlO2FBQ3hDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixVQUFVLENBQUMsSUFBSSxDQUNiLElBQUksU0FBUyxDQUFDO2dCQUNaLElBQUk7Z0JBQ0osYUFBYTtnQkFDYixNQUFNLEVBQUUsQ0FBQyxHQUFHLFlBQVksRUFBRSxLQUFLLENBQWU7YUFDL0MsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUM7QUFPRCxNQUFNLFVBQVUsV0FBVyxDQUN6QixXQUFpQztJQUVqQyxPQUFPLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWF0Y2gsIHR5cGUgTWF0Y2hGdW5jdGlvbiwgdHlwZSBQYXJhbURhdGEgfSBmcm9tICdwYXRoLXRvLXJlZ2V4cCc7XG5cbmltcG9ydCB0eXBlIHsgRmxhdFJvdXRlSW5wdXQsIFJlZGlyZWN0LCBSb3V0ZSwgQW55Um91dGUgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgZmxhdHRlbmVkIHJvdXRlIHdpdGggYSBjb21waWxlZCBtYXRjaCBmdW5jdGlvbi5cbiAqIFRoaXMgaXMgYW4gaW50ZXJuYWwgcmVwcmVzZW50YXRpb24gdXNlZCBieSB0aGUgcm91dGVyIHRvIGVmZmljaWVudGx5IG1hdGNoIFVSTHMuXG4gKlxuICogQHRlbXBsYXRlIFRQYXJhbXMgLSBSb3V0ZSBwYXJhbWV0ZXIgdHlwZXMgZXh0cmFjdGVkIGZyb20gdGhlIFVSTCBwYXRoXG4gKi9cbmV4cG9ydCBjbGFzcyBGbGF0Um91dGU8VFBhcmFtcyBleHRlbmRzIFBhcmFtRGF0YT4ge1xuICAvKiogVGhlIFVSTCBwYXRoIHBhdHRlcm4gZm9yIHRoaXMgcm91dGUgKi9cbiAgcHVibGljIHBhdGg6IHN0cmluZztcblxuICAvKiogTmVzdGVkIHJvdXRlcyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCB3aXRoaW4gdGhpcyByb3V0ZSAqL1xuICBwdWJsaWMgcm91dGVzOiBBbnlSb3V0ZVtdO1xuXG4gIC8qKiBDb21waWxlZCBmdW5jdGlvbiB0byBtYXRjaCBVUkwgcGF0aHMgYWdhaW5zdCB0aGlzIHJvdXRlIHBhdHRlcm4gKi9cbiAgcHVibGljIG1hdGNoRnVuY3Rpb246IE1hdGNoRnVuY3Rpb248VFBhcmFtcz47XG5cbiAgLyoqIE9wdGlvbmFsIHJlZGlyZWN0IGRlc3RpbmF0aW9uIGlmIHRoaXMgcm91dGUgc2hvdWxkIHJlZGlyZWN0ICovXG4gIHB1YmxpYyByZWRpcmVjdFRvPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEZsYXRSb3V0ZSBpbnN0YW5jZS5cbiAgICpcbiAgICogQHBhcmFtIGlucHV0IC0gQ29uZmlndXJhdGlvbiBmb3IgdGhlIGZsYXQgcm91dGVcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihpbnB1dDogRmxhdFJvdXRlSW5wdXQ8VFBhcmFtcz4pIHtcbiAgICBjb25zdCB7IG1hdGNoRnVuY3Rpb24sIHBhdGgsIHJlZGlyZWN0VG8sIHJvdXRlcyB9ID0gaW5wdXQ7XG4gICAgdGhpcy5wYXRoID0gcGF0aDtcbiAgICB0aGlzLnJlZGlyZWN0VG8gPSByZWRpcmVjdFRvO1xuICAgIHRoaXMucm91dGVzID0gcm91dGVzO1xuICAgIHRoaXMubWF0Y2hGdW5jdGlvbiA9IG1hdGNoRnVuY3Rpb247XG4gIH1cbn1cblxuLyoqIE5hcnJvdyBhIHJvdXRlIGNvbmZpZ3VyYXRpb24gdG8gYSByZWRpcmVjdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1JlZGlyZWN0KHJvdXRlOiBBbnlSb3V0ZSB8IFJlZGlyZWN0KTogcm91dGUgaXMgUmVkaXJlY3Qge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVubmVjZXNzYXJ5LWNvbmRpdGlvblxuICByZXR1cm4gKHJvdXRlIGFzIFJlZGlyZWN0KS50byAhPSBudWxsO1xufVxuXG4vKipcbiAqIFJlY3Vyc2l2ZWx5IGZsYXR0ZW5zIG5lc3RlZCByb3V0ZSBkZWZpbml0aW9ucyBpbnRvIGBGbGF0Um91dGVgIGVudHJpZXMuXG4gKlxuICogQHBhcmFtIHJvdXRlQ29uZmlnIC0gUm91dGUgb3IgcmVkaXJlY3QgZGVmaW5pdGlvbnMgdG8gcHJvY2Vzcy5cbiAqIEBwYXJhbSBwYXJlbnRSb3V0ZXMgLSBBY2N1bXVsYXRlZCBwYXJlbnQgcm91dGVzIGZvciBuZXN0aW5nIGNvbnRleHQuXG4gKiBAcGFyYW0gcHJlZml4IC0gQ3VycmVudCBwYXRoIHByZWZpeCBwcm9wYWdhdGVkIGZyb20gcGFyZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUm91dGU8VENvbnRleHQ+KFxuICByb3V0ZUNvbmZpZzogKEFueVJvdXRlPFRDb250ZXh0PiB8IFJlZGlyZWN0KVtdLFxuICBwYXJlbnRSb3V0ZXM6IEFueVJvdXRlPFRDb250ZXh0PltdID0gW10sXG4gIHByZWZpeCA9ICcnLFxuKTogRmxhdFJvdXRlPFBhcmFtRGF0YT5bXSB7XG4gIGNvbnN0IGZsYXRSb3V0ZXM6IEZsYXRSb3V0ZTxQYXJhbURhdGE+W10gPSBbXTtcblxuICBmb3IgKGNvbnN0IHJvdXRlIG9mIHJvdXRlQ29uZmlnKSB7XG4gICAgY29uc3QgcGFydHMgPSBbXTtcbiAgICBpZiAocHJlZml4ICE9PSAnJykge1xuICAgICAgcGFydHMucHVzaChwcmVmaXgpO1xuICAgIH1cbiAgICBpZiAocm91dGUucGF0aCAhPSBudWxsICYmIHJvdXRlLnBhdGggIT09ICcnICYmIHJvdXRlLnBhdGggIT09ICcvJykge1xuICAgICAgbGV0IG5vcm1hbGl6ZWQgPSByb3V0ZS5wYXRoO1xuICAgICAgaWYgKG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVkLnNsaWNlKDEpO1xuICAgICAgfVxuICAgICAgcGFydHMucHVzaChub3JtYWxpemVkKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdQYXRoID0gcGFydHMuam9pbignLycpO1xuXG4gICAgY29uc3QgeyBjaGlsZHJlbiB9ID0gcm91dGUgYXMgUm91dGU8YW55LCBhbnksIGFueSwgYW55LCBhbnk+O1xuXG4gICAgaWYgKCFpc1JlZGlyZWN0KHJvdXRlKSAmJiBjaGlsZHJlbiAhPSBudWxsKSB7XG4gICAgICBjb25zdCByb3V0ZXMgPSBidWlsZFJvdXRlKGNoaWxkcmVuLCBbLi4ucGFyZW50Um91dGVzLCByb3V0ZV0sIG5ld1BhdGgpO1xuICAgICAgZmxhdFJvdXRlcy5wdXNoKC4uLnJvdXRlcyk7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udGludWVcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IG1hdGNoRnVuY3Rpb24gPSBtYXRjaChgLyR7bmV3UGF0aH1gLCB7XG4gICAgICB0cmFpbGluZzogZmFsc2UsXG4gICAgfSk7XG5cbiAgICBsZXQgcGF0aCA9IG5ld1BhdGg7XG4gICAgaWYgKCFuZXdQYXRoLnN0YXJ0c1dpdGgoJy8nKSkge1xuICAgICAgcGF0aCA9IGAvJHtuZXdQYXRofWA7XG4gICAgfVxuXG4gICAgaWYgKGlzUmVkaXJlY3Qocm91dGUpKSB7XG4gICAgICBsZXQgcmVkaXJlY3RUbyA9IHJvdXRlLnRvO1xuXG4gICAgICBpZiAoIXJlZGlyZWN0VG8uc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgICAgIHJlZGlyZWN0VG8gPSBgJHtwYXRofS8ke3JlZGlyZWN0VG99YDtcbiAgICAgIH1cbiAgICAgIGZsYXRSb3V0ZXMucHVzaChcbiAgICAgICAgbmV3IEZsYXRSb3V0ZSh7XG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICByZWRpcmVjdFRvLFxuICAgICAgICAgIG1hdGNoRnVuY3Rpb24sXG4gICAgICAgICAgcm91dGVzOiBbLi4ucGFyZW50Um91dGVzXSBhcyBBbnlSb3V0ZVtdLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZsYXRSb3V0ZXMucHVzaChcbiAgICAgICAgbmV3IEZsYXRSb3V0ZSh7XG4gICAgICAgICAgcGF0aCxcbiAgICAgICAgICBtYXRjaEZ1bmN0aW9uLFxuICAgICAgICAgIHJvdXRlczogWy4uLnBhcmVudFJvdXRlcywgcm91dGVdIGFzIEFueVJvdXRlW10sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmxhdFJvdXRlcztcbn1cblxuLyoqXG4gKiBUb3AtbGV2ZWwgY29udmVuaWVuY2UgdG8gZmxhdHRlbiBhIHJvdXRlIGNvbmZpZ3VyYXRpb24gaW50byBgRmxhdFJvdXRlYHMuXG4gKlxuICogQHBhcmFtIHJvdXRlQ29uZmlnIC0gUm91dGUgZGVmaW5pdGlvbnMgdG8gZmxhdHRlbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUm91dGVzPFRDb250ZXh0PihcbiAgcm91dGVDb25maWc6IEFueVJvdXRlPFRDb250ZXh0PltdLFxuKTogRmxhdFJvdXRlPFBhcmFtRGF0YT5bXSB7XG4gIHJldHVybiBidWlsZFJvdXRlKHJvdXRlQ29uZmlnKTtcbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { type HTMLAttributeAnchorTarget, type ReactNode } from 'react';
|
|
2
2
|
import type { BrowserHistory, HistoryLocation } from '../history/index.js';
|
|
3
3
|
export declare function isCurrentPathname(exact: boolean, history: BrowserHistory | undefined, pathname: string): boolean;
|
|
4
|
-
type Props<
|
|
4
|
+
type Props<TFilters extends Record<string, unknown> = Record<string, unknown>, TRawQuery extends Record<string, unknown> = Record<string, unknown>> = {
|
|
5
5
|
activeClassName?: string;
|
|
6
6
|
children: ReactNode;
|
|
7
7
|
className?: string;
|
|
@@ -15,8 +15,9 @@ type Props<TQuery extends Record<string, unknown> = Record<string, unknown>> = {
|
|
|
15
15
|
onMouseOver?: React.MouseEventHandler<HTMLAnchorElement>;
|
|
16
16
|
target?: HTMLAttributeAnchorTarget;
|
|
17
17
|
to?: HistoryLocation | string;
|
|
18
|
-
|
|
18
|
+
filters?: TFilters;
|
|
19
|
+
query?: TRawQuery;
|
|
19
20
|
};
|
|
20
|
-
declare const Link: React.ForwardRefExoticComponent<Props<Record<string, unknown>> & React.RefAttributes<HTMLAnchorElement>>;
|
|
21
|
+
declare const Link: React.ForwardRefExoticComponent<Props<Record<string, unknown>, Record<string, unknown>> & React.RefAttributes<HTMLAnchorElement>>;
|
|
21
22
|
export default Link;
|
|
22
23
|
//# sourceMappingURL=Link.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/routing/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,yBAAyB,EAE9B,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAa3E,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAmBT;AAKD,KAAK,KAAK,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"Link.d.ts","sourceRoot":"","sources":["../../../src/routing/Link.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EACZ,KAAK,yBAAyB,EAE9B,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAa3E,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAmBT;AAKD,KAAK,KAAK,CACR,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IACjE;IAEF,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,QAAQ,EAAE,SAAS,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAErD,OAAO,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAErD,WAAW,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAEzD,MAAM,CAAC,EAAE,yBAAyB,CAAC;IAEnC,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IAE9B,OAAO,CAAC,EAAE,QAAQ,CAAC;IAEnB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAyBF,QAAA,MAAM,IAAI,mIAqMR,CAAC;AAEH,eAAe,IAAI,CAAC"}
|
package/lib/esm/routing/Link.js
CHANGED
|
@@ -20,7 +20,7 @@ export function isCurrentPathname(exact, history, pathname) {
|
|
|
20
20
|
}
|
|
21
21
|
const Link = forwardRef((props, ref) => {
|
|
22
22
|
const router = useContext(RoutingContext);
|
|
23
|
-
const { activeClassName, children, className, exact = false, isDisabled = false, onClick, onFocus, onMouseOver, preloadOnMouseEnter = false, preloadOnMouseDown = true, target, to, href, query, } = props;
|
|
23
|
+
const { activeClassName, children, className, exact = false, isDisabled = false, onClick, onFocus, onMouseOver, preloadOnMouseEnter = false, preloadOnMouseDown = true, target, to, href, filters, query, } = props;
|
|
24
24
|
const pathname = useMemo(() => {
|
|
25
25
|
if (isDisabled) {
|
|
26
26
|
return '#';
|
|
@@ -50,14 +50,37 @@ const Link = forwardRef((props, ref) => {
|
|
|
50
50
|
}
|
|
51
51
|
return `?${to.search}`;
|
|
52
52
|
}
|
|
53
|
-
|
|
53
|
+
const filterInput = filters ?? query;
|
|
54
|
+
let rawQueryInput;
|
|
55
|
+
if (filters != null) {
|
|
56
|
+
rawQueryInput = query;
|
|
57
|
+
}
|
|
58
|
+
if (filterInput == null && rawQueryInput == null)
|
|
59
|
+
return '';
|
|
60
|
+
if (router == null)
|
|
54
61
|
return '';
|
|
55
62
|
const entry = router.get();
|
|
56
63
|
return buildCombinedSearch({
|
|
57
|
-
filters:
|
|
64
|
+
filters: filterInput,
|
|
65
|
+
query: rawQueryInput,
|
|
58
66
|
querySchema: entry.activeQuerySchema,
|
|
59
67
|
});
|
|
60
|
-
}, [isDisabled, query, router, to]);
|
|
68
|
+
}, [filters, isDisabled, query, router, to]);
|
|
69
|
+
const hash = useMemo(() => {
|
|
70
|
+
if (isDisabled) {
|
|
71
|
+
return '';
|
|
72
|
+
}
|
|
73
|
+
if (to != null && typeof to === 'object' && to.hash != null) {
|
|
74
|
+
if (to.hash === '') {
|
|
75
|
+
return '';
|
|
76
|
+
}
|
|
77
|
+
if (to.hash.startsWith('#')) {
|
|
78
|
+
return to.hash;
|
|
79
|
+
}
|
|
80
|
+
return `#${to.hash}`;
|
|
81
|
+
}
|
|
82
|
+
return '';
|
|
83
|
+
}, [isDisabled, to]);
|
|
61
84
|
const initialIsActive = isCurrentPathname(exact, router?.history, pathname);
|
|
62
85
|
const [isActive, setIsActive] = React.useState(initialIsActive);
|
|
63
86
|
useEffect(() => {
|
|
@@ -97,13 +120,13 @@ const Link = forwardRef((props, ref) => {
|
|
|
97
120
|
router.history.push({
|
|
98
121
|
pathname,
|
|
99
122
|
search,
|
|
100
|
-
hash
|
|
123
|
+
hash,
|
|
101
124
|
debugContext: {
|
|
102
125
|
origin: 'link-click',
|
|
103
126
|
trigger: 'link',
|
|
104
127
|
},
|
|
105
128
|
});
|
|
106
|
-
}, [isDisabled, onClick, pathname, router, target, search]);
|
|
129
|
+
}, [hash, isDisabled, onClick, pathname, router, target, search]);
|
|
107
130
|
const handleMouseEnter = useCallback(() => {
|
|
108
131
|
if (router == null || isDisabled) {
|
|
109
132
|
return;
|
|
@@ -126,7 +149,10 @@ const Link = forwardRef((props, ref) => {
|
|
|
126
149
|
if (typeof search === 'string' && search.length > 0) {
|
|
127
150
|
hrefValue = `${pathname}${search}`;
|
|
128
151
|
}
|
|
152
|
+
if (typeof hash === 'string' && hash.length > 0) {
|
|
153
|
+
hrefValue = `${hrefValue}${hash}`;
|
|
154
|
+
}
|
|
129
155
|
return (_jsx("a", { className: cx(classNames), href: hrefValue, onClick: handleClick, onFocus: onFocus, onMouseDown: handleMouseDown, onMouseEnter: handleMouseEnter, onMouseOver: onMouseOver, ref: ref, target: target, children: children }));
|
|
130
156
|
});
|
|
131
157
|
export default Link;
|
|
132
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0aW5nL0xpbmsudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssRUFBRSxFQUlaLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxHQUNSLE1BQU0sT0FBTyxDQUFDO0FBSWYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pDLE9BQU8sbUJBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsT0FBTyxjQUFjLE1BQU0scUJBQXFCLENBQUM7QUFHakQsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUM7QUFLMUMsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUFjLEVBQ2QsT0FBbUMsRUFDbkMsUUFBZ0I7SUFFaEIsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBR0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV6RCxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7SUFFOUMsSUFBSSxLQUFLLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDckUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBMkRELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBMkIsQ0FBQyxLQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDdEUsTUFB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LE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDcEQsU0FBUyxHQUFHLEdBQUcsUUFBUSxHQUFHLE1BQU0sRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLENBQ0wsWUFDRSxTQUFTLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUN6QixJQUFJLEVBQUUsU0FBUyxFQUNmLE9BQU8sRUFBRSxXQUFXLEVBQ3BCLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFdBQVcsRUFBRSxlQUFlLEVBQzVCLFlBQVksRUFBRSxnQkFBZ0IsRUFDOUIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsR0FBRyxFQUFFLEdBQUcsRUFDUixNQUFNLEVBQUUsTUFBTSxZQUViLFFBQVEsR0FDUCxDQUNMLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQztBQUVILGVBQWUsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIHR5cGUgSFRNTEF0dHJpYnV0ZUFuY2hvclRhcmdldCxcbiAgdHlwZSBNb3VzZUV2ZW50LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxufSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgQnJvd3Nlckhpc3RvcnksIEhpc3RvcnlMb2NhdGlvbiB9IGZyb20gJy4uL2hpc3RvcnkvaW5kZXguanMnO1xuXG5pbXBvcnQgeyBjeCB9IGZyb20gJy4vLi4vdG9vbHMvaW5kZXguanMnO1xuaW1wb3J0IGJ1aWxkQ29tYmluZWRTZWFyY2ggZnJvbSAnLi4vdG9vbHMvYnVpbGRDb21iaW5lZFNlYXJjaC5qcyc7XG5cbmltcG9ydCBSb3V0aW5nQ29udGV4dCBmcm9tICcuL1JvdXRpbmdDb250ZXh0LmpzJztcbi8vIChmaWx0ZXItcXVlcnkgc3RyaW5naWZ5IG5vdCB1c2VkIGhlcmUgYWZ0ZXIgc2ltcGxpZnlpbmcgbWFudWFsIHNlcmlhbGl6YXRpb24pXG5cbmNvbnN0IHsgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQgfSA9IFJlYWN0O1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBjdXJyZW50IHBhdGhuYW1lIG1hdGNoZXMgdGhlIGdpdmVuIHBhdGhuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDdXJyZW50UGF0aG5hbWUoXG4gIGV4YWN0OiBib29sZWFuLFxuICBoaXN0b3J5OiBCcm93c2VySGlzdG9yeSB8IHVuZGVmaW5lZCxcbiAgcGF0aG5hbWU6IHN0cmluZyxcbik6IGJvb2xlYW4ge1xuICBpZiAoaGlzdG9yeSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgY29uc3QgcmVzb2x2ZWRVcmwgPSBuZXcgVVJMKHBhdGhuYW1lLCBkb2N1bWVudC5sb2NhdGlvbik7XG5cbiAgY29uc3QgcmVzb2x2ZWRQYXRobmFtZSA9IHJlc29sdmVkVXJsLnBhdGhuYW1lO1xuXG4gIGlmIChleGFjdCAmJiBoaXN0b3J5LmxvY2F0aW9uLnBhdGhuYW1lID09PSByZXNvbHZlZFBhdGhuYW1lKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoIWV4YWN0ICYmIGhpc3RvcnkubG9jYXRpb24ucGF0aG5hbWUuc3RhcnRzV2l0aChyZXNvbHZlZFBhdGhuYW1lKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFByb3BzIGZvciB0aGUgTGluayBjb21wb25lbnQuXG4gKi9cbnR5cGUgUHJvcHM8VFF1ZXJ5IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSB7XG4gIC8qKiBDU1MgY2xhc3MgdG8gYXBwbHkgd2hlbiB0aGUgbGluayBpcyBhY3RpdmUgKG1hdGNoZXMgY3VycmVudCByb3V0ZSkgKi9cbiAgYWN0aXZlQ2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKiogQ2hpbGQgY29tcG9uZW50cyB0byByZW5kZXIgaW5zaWRlIHRoZSBsaW5rICovXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIC8qKiBCYXNlIENTUyBjbGFzcyBmb3IgdGhlIGxpbmsgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKiogV2hldGhlciB0byB1c2UgZXhhY3QgcGF0aCBtYXRjaGluZyBmb3IgYWN0aXZlIHN0YXRlICovXG4gIGV4YWN0PzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdG8gcHJlbG9hZCB0aGUgcm91dGUgd2hlbiBtb3VzZSBlbnRlcnMgdGhlIGxpbmsgKi9cbiAgcHJlbG9hZE9uTW91c2VFbnRlcj86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRvIHByZWxvYWQgdGhlIHJvdXRlIHdoZW4gbW91c2UgaXMgcHJlc3NlZCBkb3duICovXG4gIHByZWxvYWRPbk1vdXNlRG93bj86IGJvb2xlYW47XG4gIC8qKiBEaXJlY3QgaHJlZiBhdHRyaWJ1dGUgKG92ZXJyaWRlcyAndG8nIHByb3ApICovXG4gIGhyZWY/OiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBsaW5rIHNob3VsZCBiZSBkaXNhYmxlZCAqL1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgLyoqIENsaWNrIGhhbmRsZXIgKi9cbiAgb25DbGljaz86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIEZvY3VzIGhhbmRsZXIgKi9cbiAgb25Gb2N1cz86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIE1vdXNlIG92ZXIgaGFuZGxlciAqL1xuICBvbk1vdXNlT3Zlcj86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIFRhcmdldCBhdHRyaWJ1dGUgZm9yIHRoZSBsaW5rICovXG4gIHRhcmdldD86IEhUTUxBdHRyaWJ1dGVBbmNob3JUYXJnZXQ7XG4gIC8qKiBEZXN0aW5hdGlvbiBmb3IgdGhlIGxpbmsgKGNhbiBiZSBzdHJpbmcgcGF0aCBvciBsb2NhdGlvbiBvYmplY3QpICovXG4gIHRvPzogSGlzdG9yeUxvY2F0aW9uIHwgc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgcXVlcnkgb2JqZWN0IHRvIHNlcmlhbGl6ZSB1c2luZyBkZXN0aW5hdGlvbiByb3V0ZSBzY2hlbWEgKGlnbm9yZWQgaWYgYHRvLnNlYXJjaGAgaXMgc2V0KSAqL1xuICBxdWVyeT86IFRRdWVyeTtcbn07XG5cbi8qKlxuICogTmF2aWdhdGlvbiBjb21wb25lbnQgdGhhdCBwcm92aWRlcyBjbGllbnQtc2lkZSByb3V0aW5nIHdpdGggcHJlbG9hZGluZyBjYXBhYmlsaXRpZXMuXG4gKlxuICogVGhpcyBjb21wb25lbnQgaW50ZWdyYXRlcyB3aXRoIHRoZSByb3V0ZXIncyBSb3V0aW5nQ29udGV4dCB0byBwcm92aWRlIHNtb290aCBuYXZpZ2F0aW9uXG4gKiB3aXRoIG9wdGlvbmFsIHByZWxvYWRpbmcgb2Ygcm91dGUgY29tcG9uZW50cyBhbmQgZGF0YS4gSXQgYXV0b21hdGljYWxseSBhcHBsaWVzIGFjdGl2ZVxuICogc3R5bGluZyB3aGVuIHRoZSBjdXJyZW50IHJvdXRlIG1hdGNoZXMgdGhlIGxpbmsncyBkZXN0aW5hdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiAvLyBCYXNpYyB1c2FnZVxuICogPExpbmsgdG89XCIvdXNlcnMvMTIzXCI+VmlldyBQcm9maWxlPC9MaW5rPlxuICpcbiAqIC8vIFdpdGggYWN0aXZlIHN0eWxpbmdcbiAqIDxMaW5rIHRvPVwiL2Rhc2hib2FyZFwiIGFjdGl2ZUNsYXNzTmFtZT1cImFjdGl2ZVwiIGV4YWN0PlxuICogICBEYXNoYm9hcmRcbiAqIDwvTGluaz5cbiAqXG4gKiAvLyBXaXRoIHByZWxvYWRpbmcgb24gaG92ZXJcbiAqIDxMaW5rIHRvPVwiL2hlYXZ5LXBhZ2VcIiBwcmVsb2FkT25Nb3VzZUVudGVyPlxuICogICBIZWF2eSBQYWdlXG4gKiA8L0xpbms+XG4gKiBgYGBcbiAqL1xuY29uc3QgTGluayA9IGZvcndhcmRSZWY8SFRNTEFuY2hvckVsZW1lbnQsIFByb3BzPigocHJvcHM6IFByb3BzLCByZWYpID0+IHtcbiAgY29uc3Qgcm91dGVyID0gdXNlQ29udGV4dChSb3V0aW5nQ29udGV4dCk7XG4gIGNvbnN0IHtcbiAgICBhY3RpdmVDbGFzc05hbWUsXG4gICAgY2hpbGRyZW4sXG4gICAgY2xhc3NOYW1lLFxuICAgIGV4YWN0ID0gZmFsc2UsXG4gICAgaXNEaXNhYmxlZCA9IGZhbHNlLFxuICAgIG9uQ2xpY2ssXG4gICAgb25Gb2N1cyxcbiAgICBvbk1vdXNlT3ZlcixcbiAgICBwcmVsb2FkT25Nb3VzZUVudGVyID0gZmFsc2UsXG4gICAgcHJlbG9hZE9uTW91c2VEb3duID0gdHJ1ZSxcbiAgICB0YXJnZXQsXG4gICAgdG8sXG4gICAgaHJlZixcbiAgICBxdWVyeSxcbiAgfSA9IHByb3BzO1xuXG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiAnIyc7XG4gICAgfVxuXG4gICAgbGV0IG5ld0hyZWYgPSBocmVmO1xuXG4gICAgaWYgKG5ld0hyZWYgPT0gbnVsbCkge1xuICAgICAgaWYgKHR5cGVvZiB0byA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgbmV3SHJlZiA9IHRvO1xuICAgICAgfSBlbHNlIGlmICh0bz8ucGF0aG5hbWUgIT0gbnVsbCkge1xuICAgICAgICBuZXdIcmVmID0gdG8ucGF0aG5hbWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbmV3SHJlZiA/Pz0gJyMnO1xuXG4gICAgcmV0dXJuIG5ld0hyZWY7XG4gIH0sIFtocmVmLCBpc0Rpc2FibGVkLCB0b10pO1xuXG4gIC8vIFJlc29sdmUgc2VhcmNoIHN0cmluZyBmcm9tIGV4cGxpY2l0IGB0by5zZWFyY2hgIG9yIGZyb20gcHJvdmlkZWQgcXVlcnlcbiAgLy8gdHJlYXRlZCBhcyBmaWx0ZXJzIHdpdGggdGhlIGFjdGl2ZSBzY2hlbWEuXG4gIGNvbnN0IHNlYXJjaCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmICh0byAhPSBudWxsICYmIHR5cGVvZiB0byA9PT0gJ29iamVjdCcgJiYgdG8uc2VhcmNoICE9IG51bGwpIHtcbiAgICAgIGlmICh0by5zZWFyY2ggPT09ICcnKSB7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cbiAgICAgIGlmICh0by5zZWFyY2guc3RhcnRzV2l0aCgnPycpKSB7XG4gICAgICAgIHJldHVybiB0by5zZWFyY2g7XG4gICAgICB9XG4gICAgICByZXR1cm4gYD8ke3RvLnNlYXJjaH1gO1xuICAgIH1cbiAgICBpZiAocXVlcnkgPT0gbnVsbCB8fCByb3V0ZXIgPT0gbnVsbCkgcmV0dXJuICcnO1xuICAgIGNvbnN0IGVudHJ5ID0gcm91dGVyLmdldCgpO1xuICAgIHJldHVybiBidWlsZENvbWJpbmVkU2VhcmNoKHtcbiAgICAgIGZpbHRlcnM6IHF1ZXJ5IGFzIGFueSxcbiAgICAgIHF1ZXJ5U2NoZW1hOiBlbnRyeS5hY3RpdmVRdWVyeVNjaGVtYSBhcyBhbnksXG4gICAgfSk7XG4gIH0sIFtpc0Rpc2FibGVkLCBxdWVyeSwgcm91dGVyLCB0b10pO1xuXG4gIGNvbnN0IGluaXRpYWxJc0FjdGl2ZSA9IGlzQ3VycmVudFBhdGhuYW1lKGV4YWN0LCByb3V0ZXI/Lmhpc3RvcnksIHBhdGhuYW1lKTtcbiAgY29uc3QgW2lzQWN0aXZlLCBzZXRJc0FjdGl2ZV0gPSBSZWFjdC51c2VTdGF0ZShpbml0aWFsSXNBY3RpdmUpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3Qgb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBjb25zdCBuZXdJc0FjdGl2ZSA9IGlzQ3VycmVudFBhdGhuYW1lKGV4YWN0LCByb3V0ZXI/Lmhpc3RvcnksIHBhdGhuYW1lKTtcbiAgICAgIHNldElzQWN0aXZlKG5ld0lzQWN0aXZlKTtcbiAgICB9O1xuXG4gICAgaWYgKHJvdXRlciA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge307XG4gICAgfVxuXG4gICAgcm91dGVyLmhpc3Rvcnkuc3Vic2NyaWJlKG9uQ2hhbmdlKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICByb3V0ZXIuaGlzdG9yeS51bnN1YnNjcmliZShvbkNoYW5nZSk7XG4gICAgfTtcbiAgfSwgW2V4YWN0LCBwYXRobmFtZSwgcm91dGVyXSk7XG5cbiAgY29uc3QgY2xhc3NOYW1lcyA9IFtjbGFzc05hbWVdO1xuXG4gIGlmIChpc0FjdGl2ZSkge1xuICAgIGNsYXNzTmFtZXMucHVzaChhY3RpdmVDbGFzc05hbWUpO1xuICB9XG5cbiAgLy8gV2hlbiB0aGUgdXNlciBjbGlja3MsIGNoYW5nZSByb3V0ZVxuICBjb25zdCBoYW5kbGVDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIChldmVudDogTW91c2VFdmVudDxIVE1MQW5jaG9yRWxlbWVudD4pID0+IHtcbiAgICAgIGlmICghaXNEaXNhYmxlZCAmJiB0eXBlb2Ygb25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBvbkNsaWNrKGV2ZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBldmVudC5kZWZhdWx0UHJldmVudGVkIHx8XG4gICAgICAgIGV2ZW50Lm1ldGFLZXkgfHxcbiAgICAgICAgZXZlbnQuYWx0S2V5IHx8XG4gICAgICAgIGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgZXZlbnQuc2hpZnRLZXkgfHxcbiAgICAgICAgZXZlbnQuYnV0dG9uICE9PSAwIHx8XG4gICAgICAgICh0YXJnZXQgIT0gbnVsbCAmJiB0YXJnZXQgIT09ICdfc2VsZicpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaWYgKHJvdXRlciA9PSBudWxsIHx8IGlzRGlzYWJsZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICByb3V0ZXIuaGlzdG9yeS5wdXNoKHtcbiAgICAgICAgcGF0aG5hbWUsXG4gICAgICAgIHNlYXJjaCxcbiAgICAgICAgaGFzaDogJycsXG4gICAgICAgIGRlYnVnQ29udGV4dDoge1xuICAgICAgICAgIG9yaWdpbjogJ2xpbmstY2xpY2snLFxuICAgICAgICAgIHRyaWdnZXI6ICdsaW5rJyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgW2lzRGlzYWJsZWQsIG9uQ2xpY2ssIHBhdGhuYW1lLCByb3V0ZXIsIHRhcmdldCwgc2VhcmNoXSxcbiAgKTtcblxuICAvLyBDYWxsYmFjayB0byBwcmVsb2FkIGp1c3QgdGhlIGNvZGUgZm9yIHRoZSByb3V0ZTpcbiAgLy8gd2UgcGFzcyB0aGlzIHRvIG9uTW91c2VFbnRlciwgd2hpY2ggaXMgYSB3ZWFrZXIgc2lnbmFsXG4gIC8vIHRoYXQgdGhlIHVzZXIgKm1heSogbmF2aWdhdGUgdG8gdGhlIHJvdXRlLlxuICBjb25zdCBoYW5kbGVNb3VzZUVudGVyID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGlmIChyb3V0ZXIgPT0gbnVsbCB8fCBpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0ID0geyBwYXRobmFtZSwgc2VhcmNoLCBzb3VyY2U6ICdwcmVsb2FkLWhvdmVyJyB9IGFzIGNvbnN0O1xuICAgIGlmIChwcmVsb2FkT25Nb3VzZUVudGVyKSB7XG4gICAgICByb3V0ZXIucHJlbG9hZCh0YXJnZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByb3V0ZXIucHJlbG9hZENvZGUodGFyZ2V0KTtcbiAgICB9XG4gIH0sIFtyb3V0ZXIsIGlzRGlzYWJsZWQsIHByZWxvYWRPbk1vdXNlRW50ZXIsIHBhdGhuYW1lLCBzZWFyY2hdKTtcblxuICAvLyBDYWxsYmFjayB0byBwcmVsb2FkIHRoZSBjb2RlIGFuZCBkYXRhIGZvciB0aGUgcm91dGU6XG4gIC8vIHdlIHBhc3MgdGhpcyB0byBvbk1vdXNlRG93biwgc2luY2UgdGhpcyBpcyBhIHN0cm9uZ2VyXG4gIC8vIHNpZ25hbCB0aGF0IHRoZSB1c2VyIHdpbGwgbGlrZWx5IGNvbXBsZXRlIHRoZSBuYXZpZ2F0aW9uXG4gIGNvbnN0IGhhbmRsZU1vdXNlRG93biA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAocm91dGVyID09IG51bGwgfHwgaXNEaXNhYmxlZCB8fCAhcHJlbG9hZE9uTW91c2VEb3duKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJvdXRlci5wcmVsb2FkKHsgcGF0aG5hbWUsIHNlYXJjaCwgc291cmNlOiAnbGluay1jbGljaycgfSk7XG4gIH0sIFtyb3V0ZXIsIGlzRGlzYWJsZWQsIHByZWxvYWRPbk1vdXNlRG93biwgcGF0aG5hbWUsIHNlYXJjaF0pO1xuXG4gIGxldCBocmVmVmFsdWUgPSBwYXRobmFtZTtcbiAgaWYgKHR5cGVvZiBzZWFyY2ggPT09ICdzdHJpbmcnICYmIHNlYXJjaC5sZW5ndGggPiAwKSB7XG4gICAgaHJlZlZhbHVlID0gYCR7cGF0aG5hbWV9JHtzZWFyY2h9YDtcbiAgfVxuICByZXR1cm4gKFxuICAgIDxhXG4gICAgICBjbGFzc05hbWU9e2N4KGNsYXNzTmFtZXMpfVxuICAgICAgaHJlZj17aHJlZlZhbHVlfVxuICAgICAgb25DbGljaz17aGFuZGxlQ2xpY2t9XG4gICAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgICAgb25Nb3VzZURvd249e2hhbmRsZU1vdXNlRG93bn1cbiAgICAgIG9uTW91c2VFbnRlcj17aGFuZGxlTW91c2VFbnRlcn1cbiAgICAgIG9uTW91c2VPdmVyPXtvbk1vdXNlT3Zlcn1cbiAgICAgIHJlZj17cmVmfVxuICAgICAgdGFyZ2V0PXt0YXJnZXR9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvYT5cbiAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBMaW5rO1xuIl19
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yb3V0aW5nL0xpbmsudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEtBQUssRUFBRSxFQUlaLFVBQVUsRUFDVixTQUFTLEVBQ1QsT0FBTyxHQUNSLE1BQU0sT0FBTyxDQUFDO0FBSWYsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pDLE9BQU8sbUJBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFFbEUsT0FBTyxjQUFjLE1BQU0scUJBQXFCLENBQUM7QUFHakQsTUFBTSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUM7QUFLMUMsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUFjLEVBQ2QsT0FBbUMsRUFDbkMsUUFBZ0I7SUFFaEIsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBR0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV6RCxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUM7SUFFOUMsSUFBSSxLQUFLLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztRQUM1RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDckUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBZ0VELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBMkIsQ0FBQyxLQUFZLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDdEUsTUFB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UyxHQUFHLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFDRCxPQUFPLENBQ0wsWUFDRSxTQUFTLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUN6QixJQUFJLEVBQUUsU0FBUyxFQUNmLE9BQU8sRUFBRSxXQUFXLEVBQ3BCLE9BQU8sRUFBRSxPQUFPLEVBQ2hCLFdBQVcsRUFBRSxlQUFlLEVBQzVCLFlBQVksRUFBRSxnQkFBZ0IsRUFDOUIsV0FBVyxFQUFFLFdBQVcsRUFDeEIsR0FBRyxFQUFFLEdBQUcsRUFDUixNQUFNLEVBQUUsTUFBTSxZQUViLFFBQVEsR0FDUCxDQUNMLENBQUM7QUFDSixDQUFDLENBQUMsQ0FBQztBQUVILGVBQWUsSUFBSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIHR5cGUgSFRNTEF0dHJpYnV0ZUFuY2hvclRhcmdldCxcbiAgdHlwZSBNb3VzZUV2ZW50LFxuICB0eXBlIFJlYWN0Tm9kZSxcbiAgZm9yd2FyZFJlZixcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxufSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgQnJvd3Nlckhpc3RvcnksIEhpc3RvcnlMb2NhdGlvbiB9IGZyb20gJy4uL2hpc3RvcnkvaW5kZXguanMnO1xuXG5pbXBvcnQgeyBjeCB9IGZyb20gJy4vLi4vdG9vbHMvaW5kZXguanMnO1xuaW1wb3J0IGJ1aWxkQ29tYmluZWRTZWFyY2ggZnJvbSAnLi4vdG9vbHMvYnVpbGRDb21iaW5lZFNlYXJjaC5qcyc7XG5cbmltcG9ydCBSb3V0aW5nQ29udGV4dCBmcm9tICcuL1JvdXRpbmdDb250ZXh0LmpzJztcbi8vIChmaWx0ZXItcXVlcnkgc3RyaW5naWZ5IG5vdCB1c2VkIGhlcmUgYWZ0ZXIgc2ltcGxpZnlpbmcgbWFudWFsIHNlcmlhbGl6YXRpb24pXG5cbmNvbnN0IHsgdXNlQ2FsbGJhY2ssIHVzZUNvbnRleHQgfSA9IFJlYWN0O1xuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBjdXJyZW50IHBhdGhuYW1lIG1hdGNoZXMgdGhlIGdpdmVuIHBhdGhuYW1lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDdXJyZW50UGF0aG5hbWUoXG4gIGV4YWN0OiBib29sZWFuLFxuICBoaXN0b3J5OiBCcm93c2VySGlzdG9yeSB8IHVuZGVmaW5lZCxcbiAgcGF0aG5hbWU6IHN0cmluZyxcbik6IGJvb2xlYW4ge1xuICBpZiAoaGlzdG9yeSA9PSBudWxsKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0tcbiAgY29uc3QgcmVzb2x2ZWRVcmwgPSBuZXcgVVJMKHBhdGhuYW1lLCBkb2N1bWVudC5sb2NhdGlvbik7XG5cbiAgY29uc3QgcmVzb2x2ZWRQYXRobmFtZSA9IHJlc29sdmVkVXJsLnBhdGhuYW1lO1xuXG4gIGlmIChleGFjdCAmJiBoaXN0b3J5LmxvY2F0aW9uLnBhdGhuYW1lID09PSByZXNvbHZlZFBhdGhuYW1lKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBpZiAoIWV4YWN0ICYmIGhpc3RvcnkubG9jYXRpb24ucGF0aG5hbWUuc3RhcnRzV2l0aChyZXNvbHZlZFBhdGhuYW1lKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIFByb3BzIGZvciB0aGUgTGluayBjb21wb25lbnQuXG4gKi9cbnR5cGUgUHJvcHM8XG4gIFRGaWx0ZXJzIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgVFJhd1F1ZXJ5IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbj4gPSB7XG4gIC8qKiBDU1MgY2xhc3MgdG8gYXBwbHkgd2hlbiB0aGUgbGluayBpcyBhY3RpdmUgKG1hdGNoZXMgY3VycmVudCByb3V0ZSkgKi9cbiAgYWN0aXZlQ2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKiogQ2hpbGQgY29tcG9uZW50cyB0byByZW5kZXIgaW5zaWRlIHRoZSBsaW5rICovXG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIC8qKiBCYXNlIENTUyBjbGFzcyBmb3IgdGhlIGxpbmsgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKiogV2hldGhlciB0byB1c2UgZXhhY3QgcGF0aCBtYXRjaGluZyBmb3IgYWN0aXZlIHN0YXRlICovXG4gIGV4YWN0PzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdG8gcHJlbG9hZCB0aGUgcm91dGUgd2hlbiBtb3VzZSBlbnRlcnMgdGhlIGxpbmsgKi9cbiAgcHJlbG9hZE9uTW91c2VFbnRlcj86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRvIHByZWxvYWQgdGhlIHJvdXRlIHdoZW4gbW91c2UgaXMgcHJlc3NlZCBkb3duICovXG4gIHByZWxvYWRPbk1vdXNlRG93bj86IGJvb2xlYW47XG4gIC8qKiBEaXJlY3QgaHJlZiBhdHRyaWJ1dGUgKG92ZXJyaWRlcyAndG8nIHByb3ApICovXG4gIGhyZWY/OiBzdHJpbmc7XG4gIC8qKiBXaGV0aGVyIHRoZSBsaW5rIHNob3VsZCBiZSBkaXNhYmxlZCAqL1xuICBpc0Rpc2FibGVkPzogYm9vbGVhbjtcbiAgLyoqIENsaWNrIGhhbmRsZXIgKi9cbiAgb25DbGljaz86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIEZvY3VzIGhhbmRsZXIgKi9cbiAgb25Gb2N1cz86IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIE1vdXNlIG92ZXIgaGFuZGxlciAqL1xuICBvbk1vdXNlT3Zlcj86IFJlYWN0Lk1vdXNlRXZlbnRIYW5kbGVyPEhUTUxBbmNob3JFbGVtZW50PjtcbiAgLyoqIFRhcmdldCBhdHRyaWJ1dGUgZm9yIHRoZSBsaW5rICovXG4gIHRhcmdldD86IEhUTUxBdHRyaWJ1dGVBbmNob3JUYXJnZXQ7XG4gIC8qKiBEZXN0aW5hdGlvbiBmb3IgdGhlIGxpbmsgKGNhbiBiZSBzdHJpbmcgcGF0aCBvciBsb2NhdGlvbiBvYmplY3QpICovXG4gIHRvPzogSGlzdG9yeUxvY2F0aW9uIHwgc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgZmlsdGVycyBvYmplY3QgdG8gc2VyaWFsaXplIHVzaW5nIGRlc3RpbmF0aW9uIHJvdXRlIHNjaGVtYSAoaWdub3JlZCBpZiBgdG8uc2VhcmNoYCBpcyBzZXQpICovXG4gIGZpbHRlcnM/OiBURmlsdGVycztcbiAgLyoqIE9wdGlvbmFsIHJhdyBxdWVyeSBwYXJhbXMgKG5vbi1zY2hlbWEga2V5cykgdG8gbWVyZ2UgKGlnbm9yZWQgaWYgYHRvLnNlYXJjaGAgaXMgc2V0KSAqL1xuICBxdWVyeT86IFRSYXdRdWVyeTtcbn07XG5cbi8qKlxuICogTmF2aWdhdGlvbiBjb21wb25lbnQgdGhhdCBwcm92aWRlcyBjbGllbnQtc2lkZSByb3V0aW5nIHdpdGggcHJlbG9hZGluZyBjYXBhYmlsaXRpZXMuXG4gKlxuICogVGhpcyBjb21wb25lbnQgaW50ZWdyYXRlcyB3aXRoIHRoZSByb3V0ZXIncyBSb3V0aW5nQ29udGV4dCB0byBwcm92aWRlIHNtb290aCBuYXZpZ2F0aW9uXG4gKiB3aXRoIG9wdGlvbmFsIHByZWxvYWRpbmcgb2Ygcm91dGUgY29tcG9uZW50cyBhbmQgZGF0YS4gSXQgYXV0b21hdGljYWxseSBhcHBsaWVzIGFjdGl2ZVxuICogc3R5bGluZyB3aGVuIHRoZSBjdXJyZW50IHJvdXRlIG1hdGNoZXMgdGhlIGxpbmsncyBkZXN0aW5hdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHN4XG4gKiAvLyBCYXNpYyB1c2FnZVxuICogPExpbmsgdG89XCIvdXNlcnMvMTIzXCI+VmlldyBQcm9maWxlPC9MaW5rPlxuICpcbiAqIC8vIFdpdGggYWN0aXZlIHN0eWxpbmdcbiAqIDxMaW5rIHRvPVwiL2Rhc2hib2FyZFwiIGFjdGl2ZUNsYXNzTmFtZT1cImFjdGl2ZVwiIGV4YWN0PlxuICogICBEYXNoYm9hcmRcbiAqIDwvTGluaz5cbiAqXG4gKiAvLyBXaXRoIHByZWxvYWRpbmcgb24gaG92ZXJcbiAqIDxMaW5rIHRvPVwiL2hlYXZ5LXBhZ2VcIiBwcmVsb2FkT25Nb3VzZUVudGVyPlxuICogICBIZWF2eSBQYWdlXG4gKiA8L0xpbms+XG4gKiBgYGBcbiAqL1xuY29uc3QgTGluayA9IGZvcndhcmRSZWY8SFRNTEFuY2hvckVsZW1lbnQsIFByb3BzPigocHJvcHM6IFByb3BzLCByZWYpID0+IHtcbiAgY29uc3Qgcm91dGVyID0gdXNlQ29udGV4dChSb3V0aW5nQ29udGV4dCk7XG4gIGNvbnN0IHtcbiAgICBhY3RpdmVDbGFzc05hbWUsXG4gICAgY2hpbGRyZW4sXG4gICAgY2xhc3NOYW1lLFxuICAgIGV4YWN0ID0gZmFsc2UsXG4gICAgaXNEaXNhYmxlZCA9IGZhbHNlLFxuICAgIG9uQ2xpY2ssXG4gICAgb25Gb2N1cyxcbiAgICBvbk1vdXNlT3ZlcixcbiAgICBwcmVsb2FkT25Nb3VzZUVudGVyID0gZmFsc2UsXG4gICAgcHJlbG9hZE9uTW91c2VEb3duID0gdHJ1ZSxcbiAgICB0YXJnZXQsXG4gICAgdG8sXG4gICAgaHJlZixcbiAgICBmaWx0ZXJzLFxuICAgIHF1ZXJ5LFxuICB9ID0gcHJvcHM7XG5cbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuICcjJztcbiAgICB9XG5cbiAgICBsZXQgbmV3SHJlZiA9IGhyZWY7XG5cbiAgICBpZiAobmV3SHJlZiA9PSBudWxsKSB7XG4gICAgICBpZiAodHlwZW9mIHRvID09PSAnc3RyaW5nJykge1xuICAgICAgICBuZXdIcmVmID0gdG87XG4gICAgICB9IGVsc2UgaWYgKHRvPy5wYXRobmFtZSAhPSBudWxsKSB7XG4gICAgICAgIG5ld0hyZWYgPSB0by5wYXRobmFtZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXdIcmVmID8/PSAnIyc7XG5cbiAgICByZXR1cm4gbmV3SHJlZjtcbiAgfSwgW2hyZWYsIGlzRGlzYWJsZWQsIHRvXSk7XG5cbiAgLy8gUmVzb2x2ZSBzZWFyY2ggc3RyaW5nIGZyb20gZXhwbGljaXQgYHRvLnNlYXJjaGAgb3IgZnJvbSBwcm92aWRlZCBxdWVyeVxuICAvLyB0cmVhdGVkIGFzIGZpbHRlcnMgd2l0aCB0aGUgYWN0aXZlIHNjaGVtYS5cbiAgY29uc3Qgc2VhcmNoID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgaWYgKHRvICE9IG51bGwgJiYgdHlwZW9mIHRvID09PSAnb2JqZWN0JyAmJiB0by5zZWFyY2ggIT0gbnVsbCkge1xuICAgICAgaWYgKHRvLnNlYXJjaCA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgICAgaWYgKHRvLnNlYXJjaC5zdGFydHNXaXRoKCc/JykpIHtcbiAgICAgICAgcmV0dXJuIHRvLnNlYXJjaDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBgPyR7dG8uc2VhcmNofWA7XG4gICAgfVxuICAgIGNvbnN0IGZpbHRlcklucHV0ID0gZmlsdGVycyA/PyBxdWVyeTtcbiAgICBsZXQgcmF3UXVlcnlJbnB1dDogdHlwZW9mIHF1ZXJ5IHwgdW5kZWZpbmVkO1xuICAgIGlmIChmaWx0ZXJzICE9IG51bGwpIHtcbiAgICAgIHJhd1F1ZXJ5SW5wdXQgPSBxdWVyeTtcbiAgICB9XG4gICAgaWYgKGZpbHRlcklucHV0ID09IG51bGwgJiYgcmF3UXVlcnlJbnB1dCA9PSBudWxsKSByZXR1cm4gJyc7XG4gICAgaWYgKHJvdXRlciA9PSBudWxsKSByZXR1cm4gJyc7XG4gICAgY29uc3QgZW50cnkgPSByb3V0ZXIuZ2V0KCk7XG4gICAgcmV0dXJuIGJ1aWxkQ29tYmluZWRTZWFyY2goe1xuICAgICAgZmlsdGVyczogZmlsdGVySW5wdXQgYXMgYW55LFxuICAgICAgcXVlcnk6IHJhd1F1ZXJ5SW5wdXQgYXMgYW55LFxuICAgICAgcXVlcnlTY2hlbWE6IGVudHJ5LmFjdGl2ZVF1ZXJ5U2NoZW1hIGFzIGFueSxcbiAgICB9KTtcbiAgfSwgW2ZpbHRlcnMsIGlzRGlzYWJsZWQsIHF1ZXJ5LCByb3V0ZXIsIHRvXSk7XG5cbiAgY29uc3QgaGFzaCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChpc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGlmICh0byAhPSBudWxsICYmIHR5cGVvZiB0byA9PT0gJ29iamVjdCcgJiYgdG8uaGFzaCAhPSBudWxsKSB7XG4gICAgICBpZiAodG8uaGFzaCA9PT0gJycpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgICAgfVxuICAgICAgaWYgKHRvLmhhc2guc3RhcnRzV2l0aCgnIycpKSB7XG4gICAgICAgIHJldHVybiB0by5oYXNoO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGAjJHt0by5oYXNofWA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfSwgW2lzRGlzYWJsZWQsIHRvXSk7XG5cbiAgY29uc3QgaW5pdGlhbElzQWN0aXZlID0gaXNDdXJyZW50UGF0aG5hbWUoZXhhY3QsIHJvdXRlcj8uaGlzdG9yeSwgcGF0aG5hbWUpO1xuICBjb25zdCBbaXNBY3RpdmUsIHNldElzQWN0aXZlXSA9IFJlYWN0LnVzZVN0YXRlKGluaXRpYWxJc0FjdGl2ZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBvbkNoYW5nZSA9ICgpID0+IHtcbiAgICAgIGNvbnN0IG5ld0lzQWN0aXZlID0gaXNDdXJyZW50UGF0aG5hbWUoZXhhY3QsIHJvdXRlcj8uaGlzdG9yeSwgcGF0aG5hbWUpO1xuICAgICAgc2V0SXNBY3RpdmUobmV3SXNBY3RpdmUpO1xuICAgIH07XG5cbiAgICBpZiAocm91dGVyID09IG51bGwpIHtcbiAgICAgIHJldHVybiAoKSA9PiB7fTtcbiAgICB9XG5cbiAgICByb3V0ZXIuaGlzdG9yeS5zdWJzY3JpYmUob25DaGFuZ2UpO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIHJvdXRlci5oaXN0b3J5LnVuc3Vic2NyaWJlKG9uQ2hhbmdlKTtcbiAgICB9O1xuICB9LCBbZXhhY3QsIHBhdGhuYW1lLCByb3V0ZXJdKTtcblxuICBjb25zdCBjbGFzc05hbWVzID0gW2NsYXNzTmFtZV07XG5cbiAgaWYgKGlzQWN0aXZlKSB7XG4gICAgY2xhc3NOYW1lcy5wdXNoKGFjdGl2ZUNsYXNzTmFtZSk7XG4gIH1cblxuICAvLyBXaGVuIHRoZSB1c2VyIGNsaWNrcywgY2hhbmdlIHJvdXRlXG4gIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgKGV2ZW50OiBNb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgICAgaWYgKCFpc0Rpc2FibGVkICYmIHR5cGVvZiBvbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIG9uQ2xpY2soZXZlbnQpO1xuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgfHxcbiAgICAgICAgZXZlbnQubWV0YUtleSB8fFxuICAgICAgICBldmVudC5hbHRLZXkgfHxcbiAgICAgICAgZXZlbnQuY3RybEtleSB8fFxuICAgICAgICBldmVudC5zaGlmdEtleSB8fFxuICAgICAgICBldmVudC5idXR0b24gIT09IDAgfHxcbiAgICAgICAgKHRhcmdldCAhPSBudWxsICYmIHRhcmdldCAhPT0gJ19zZWxmJylcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAocm91dGVyID09IG51bGwgfHwgaXNEaXNhYmxlZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHJvdXRlci5oaXN0b3J5LnB1c2goe1xuICAgICAgICBwYXRobmFtZSxcbiAgICAgICAgc2VhcmNoLFxuICAgICAgICBoYXNoLFxuICAgICAgICBkZWJ1Z0NvbnRleHQ6IHtcbiAgICAgICAgICBvcmlnaW46ICdsaW5rLWNsaWNrJyxcbiAgICAgICAgICB0cmlnZ2VyOiAnbGluaycsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9LFxuICAgIFtoYXNoLCBpc0Rpc2FibGVkLCBvbkNsaWNrLCBwYXRobmFtZSwgcm91dGVyLCB0YXJnZXQsIHNlYXJjaF0sXG4gICk7XG5cbiAgLy8gQ2FsbGJhY2sgdG8gcHJlbG9hZCBqdXN0IHRoZSBjb2RlIGZvciB0aGUgcm91dGU6XG4gIC8vIHdlIHBhc3MgdGhpcyB0byBvbk1vdXNlRW50ZXIsIHdoaWNoIGlzIGEgd2Vha2VyIHNpZ25hbFxuICAvLyB0aGF0IHRoZSB1c2VyICptYXkqIG5hdmlnYXRlIHRvIHRoZSByb3V0ZS5cbiAgY29uc3QgaGFuZGxlTW91c2VFbnRlciA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBpZiAocm91dGVyID09IG51bGwgfHwgaXNEaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldCA9IHsgcGF0aG5hbWUsIHNlYXJjaCwgc291cmNlOiAncHJlbG9hZC1ob3ZlcicgfSBhcyBjb25zdDtcbiAgICBpZiAocHJlbG9hZE9uTW91c2VFbnRlcikge1xuICAgICAgcm91dGVyLnByZWxvYWQodGFyZ2V0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm91dGVyLnByZWxvYWRDb2RlKHRhcmdldCk7XG4gICAgfVxuICB9LCBbcm91dGVyLCBpc0Rpc2FibGVkLCBwcmVsb2FkT25Nb3VzZUVudGVyLCBwYXRobmFtZSwgc2VhcmNoXSk7XG5cbiAgLy8gQ2FsbGJhY2sgdG8gcHJlbG9hZCB0aGUgY29kZSBhbmQgZGF0YSBmb3IgdGhlIHJvdXRlOlxuICAvLyB3ZSBwYXNzIHRoaXMgdG8gb25Nb3VzZURvd24sIHNpbmNlIHRoaXMgaXMgYSBzdHJvbmdlclxuICAvLyBzaWduYWwgdGhhdCB0aGUgdXNlciB3aWxsIGxpa2VseSBjb21wbGV0ZSB0aGUgbmF2aWdhdGlvblxuICBjb25zdCBoYW5kbGVNb3VzZURvd24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgaWYgKHJvdXRlciA9PSBudWxsIHx8IGlzRGlzYWJsZWQgfHwgIXByZWxvYWRPbk1vdXNlRG93bikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByb3V0ZXIucHJlbG9hZCh7IHBhdGhuYW1lLCBzZWFyY2gsIHNvdXJjZTogJ2xpbmstY2xpY2snIH0pO1xuICB9LCBbcm91dGVyLCBpc0Rpc2FibGVkLCBwcmVsb2FkT25Nb3VzZURvd24sIHBhdGhuYW1lLCBzZWFyY2hdKTtcblxuICBsZXQgaHJlZlZhbHVlID0gcGF0aG5hbWU7XG4gIGlmICh0eXBlb2Ygc2VhcmNoID09PSAnc3RyaW5nJyAmJiBzZWFyY2gubGVuZ3RoID4gMCkge1xuICAgIGhyZWZWYWx1ZSA9IGAke3BhdGhuYW1lfSR7c2VhcmNofWA7XG4gIH1cbiAgaWYgKHR5cGVvZiBoYXNoID09PSAnc3RyaW5nJyAmJiBoYXNoLmxlbmd0aCA+IDApIHtcbiAgICBocmVmVmFsdWUgPSBgJHtocmVmVmFsdWV9JHtoYXNofWA7XG4gIH1cbiAgcmV0dXJuIChcbiAgICA8YVxuICAgICAgY2xhc3NOYW1lPXtjeChjbGFzc05hbWVzKX1cbiAgICAgIGhyZWY9e2hyZWZWYWx1ZX1cbiAgICAgIG9uQ2xpY2s9e2hhbmRsZUNsaWNrfVxuICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgIG9uTW91c2VEb3duPXtoYW5kbGVNb3VzZURvd259XG4gICAgICBvbk1vdXNlRW50ZXI9e2hhbmRsZU1vdXNlRW50ZXJ9XG4gICAgICBvbk1vdXNlT3Zlcj17b25Nb3VzZU92ZXJ9XG4gICAgICByZWY9e3JlZn1cbiAgICAgIHRhcmdldD17dGFyZ2V0fVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2E+XG4gICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgTGluaztcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouteComponentWrapper.d.ts","sourceRoot":"","sources":["../../../src/routing/RouteComponentWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAiChD,KAAK,KAAK,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS,IAAI;IAChD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACxC,aAAa,EAAE,kBAAkB,CAAC;CACnC,CAAC;AAaF,QAAA,MAAM,qBAAqB,GAAI,KAAK,SAAS,SAAS,GAAG,SAAS,EAChE,OAAO,KAAK,CAAC,KAAK,CAAC,KAClB,GAAG,CAAC,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"RouteComponentWrapper.d.ts","sourceRoot":"","sources":["../../../src/routing/RouteComponentWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,GAAG,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAiChD,KAAK,KAAK,CAAC,KAAK,SAAS,SAAS,GAAG,SAAS,IAAI;IAChD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IACxC,aAAa,EAAE,kBAAkB,CAAC;CACnC,CAAC;AAaF,QAAA,MAAM,qBAAqB,GAAI,KAAK,SAAS,SAAS,GAAG,SAAS,EAChE,OAAO,KAAK,CAAC,KAAK,CAAC,KAClB,GAAG,CAAC,OAAO,GAAG,IA+GhB,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -13,6 +13,7 @@ const RouteComponentWrapper = (props) => {
|
|
|
13
13
|
const router = useContext(RoutingContext);
|
|
14
14
|
const currentEntry = router?.get();
|
|
15
15
|
const rawQuery = currentEntry?.query ?? {};
|
|
16
|
+
const routeContext = currentEntry?.context;
|
|
16
17
|
const typedQuery = rawQuery;
|
|
17
18
|
const route = useMemo(() => {
|
|
18
19
|
if (match == null) {
|
|
@@ -36,6 +37,7 @@ const RouteComponentWrapper = (props) => {
|
|
|
36
37
|
preparedRoute,
|
|
37
38
|
route,
|
|
38
39
|
prepared,
|
|
40
|
+
context: routeContext,
|
|
39
41
|
rawQuery,
|
|
40
42
|
query: typedQuery,
|
|
41
43
|
});
|
|
@@ -85,4 +87,4 @@ const RouteComponentWrapper = (props) => {
|
|
|
85
87
|
return _jsx(RouteComponent, { redirectToPathname: pathname, content: content2 });
|
|
86
88
|
};
|
|
87
89
|
export default RouteComponentWrapper;
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm91dGVDb21wb25lbnRXcmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JvdXRpbmcvUm91dGVDb21wb25lbnRXcmFwcGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQTRCLE1BQU0sT0FBTyxDQUFDO0FBSXRFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxPQUFPLGNBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLGNBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQVVqRCxTQUFTLHNCQUFzQixDQUFDLEtBQTZCO0lBQzNELE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ3hDLE9BQU8sQ0FDTCw4QkFDRSwyQ0FDNEIsV0FBVyxpQkFDekIsTUFBTSxFQUNsQixLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQzFCLEVBQ0QsUUFBUSxFQUNULHlDQUMwQixXQUFXLGlCQUN2QixNQUFNLEVBQ2xCLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FDMUIsSUFDRCxDQUNKLENBQUM7QUFDSixDQUFDO0FBbUJELE1BQU0scUJBQXFCLEdBQUcsQ0FDNUIsS0FBbUIsRUFDQyxFQUFFO0lBQ3RCLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUNqRCxNQUFNLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxHQUMvRCxhQUFhLENBQUM7SUFDaEIsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNuQyxNQUFNLFFBQVEsR0FBRyxZQUFZLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUMzQyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUM7SUFFNUIsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUN6QixJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUM7SUFDckIsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUdaLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDN0IsSUFBSSxZQUFZLElBQUksSUFBSSxFQUFFLENBQUM7WUFDekIsT0FBTztRQUNULENBQUM7UUFHRCxPQUFPLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0lBRW5CLElBQUksT0FBTyxHQUNULElBQUksQ0FBQztJQUNQLElBQUksa0JBQWtCLEdBQWtCLElBQUksQ0FBQztJQUU3QyxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUM7WUFDSCxPQUFPLEdBQUcsTUFBTSxDQUFDO2dCQUNmLFFBQVE7Z0JBRVIsU0FBUztnQkFDVCxhQUFhO2dCQUNiLEtBQUs7Z0JBQ0wsUUFBUTtnQkFDUixRQUFRO2dCQUNSLEtBQUssRUFBRSxVQUFVO2FBQ2xCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxLQUFLLFlBQVksWUFBWSxJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDcEQsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDZixrQkFBa0IsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBRXhDLENBQUM7aUJBQU0sSUFBSSxLQUFLLFlBQVksT0FBTyxFQUFFLENBQUM7Z0JBQ3BDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDbEIsQ0FBQztpQkFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUN4QyxPQUFPLEdBQUcsU0FBUyxDQUFDO2dCQUNwQixrQkFBa0IsR0FBRyxJQUFJLENBQUM7WUFDNUIsQ0FBQztpQkFBTSxDQUFDO2dCQUVOLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNoQyxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNmLGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUM1QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBa0IsVUFBVSxJQUFJLGtCQUFrQixJQUFJLElBQUksQ0FBQztJQUV6RSxNQUFNLGlCQUFpQixHQUFHLENBQUMsSUFBZSxFQUFlLEVBQUU7UUFDekQsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxPQUFPLDRCQUFHLElBQUksR0FBSSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxPQUFPLENBQ0wsS0FBQyxzQkFBc0IsSUFBQyxXQUFXLEVBQUUsV0FBVyxZQUM3QyxJQUFJLEdBQ2tCLENBQzFCLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRixJQUFJLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNuQixJQUFJLE9BQU8sWUFBWSxPQUFPLEVBQUUsQ0FBQztZQUUvQixNQUFNLE9BQU8sQ0FBQztRQUNoQixDQUFDO1FBRUQsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDckIsT0FBTyxLQUFDLGNBQWMsSUFBQyxrQkFBa0IsRUFBRSxRQUFRLEdBQUksQ0FBQztRQUMxRCxDQUFDO1FBRUQsSUFBSSxPQUFPLE9BQU8sS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNuQyxPQUFPLGlCQUFpQixDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLENBRXBCLEtBQUMsU0FBUyxJQUNSLEtBQUssRUFBRSxLQUFLLEVBQ1osYUFBYSxFQUFFLGFBQWEsRUFDNUIsS0FBSyxFQUFFLEtBQUssRUFDWixRQUFRLEVBQUUsUUFBUSxFQUNsQixLQUFLLEVBQUUsVUFBVSxZQUVoQixRQUFRLEdBQ0MsQ0FDYixDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFbEQsT0FBTyxLQUFDLGNBQWMsSUFBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsR0FBSSxDQUFDO0FBQzdFLENBQUMsQ0FBQztBQUVGLGVBQWUscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VNZW1vLCB0eXBlIEpTWCwgdHlwZSBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgUHJlcGFyZWRNYXRjaFJvdXRlLCBSb3V0ZXJNYXRjaGVkUm91dGUgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcbmltcG9ydCB7IEh0dHBSZWRpcmVjdCB9IGZyb20gJy4uL2Vycm9ycy9pbmRleC5qcyc7XG5cbmltcG9ydCBSb3V0aW5nQ29udGV4dCBmcm9tICcuL1JvdXRpbmdDb250ZXh0LmpzJztcbmltcG9ydCBSb3V0ZUNvbXBvbmVudCBmcm9tICcuL1JvdXRlQ29tcG9uZW50LmpzJztcblxudHlwZSBIaWdobGlnaHRCb3VuZGFyeVByb3BzID0ge1xuICBoaWdobGlnaHRJZDogc3RyaW5nO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufTtcblxuLyoqXG4gKiBXcmFwcyB0aGUgcmVuZGVyZWQgcm91dGUgb3V0cHV0IHdpdGggaW52aXNpYmxlIG1hcmtlcnMgc28gRGV2VG9vbHMgY2FuIG1hcCBpdCBiYWNrLlxuICovXG5mdW5jdGlvbiBSb3V0ZUhpZ2hsaWdodEJvdW5kYXJ5KHByb3BzOiBIaWdobGlnaHRCb3VuZGFyeVByb3BzKTogSlNYLkVsZW1lbnQge1xuICBjb25zdCB7IGhpZ2hsaWdodElkLCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxzcGFuXG4gICAgICAgIGRhdGEtcGx1bWlsZS1yb3V0ZS1zdGFydD17aGlnaGxpZ2h0SWR9XG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgLz5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDxzcGFuXG4gICAgICAgIGRhdGEtcGx1bWlsZS1yb3V0ZS1lbmQ9e2hpZ2hsaWdodElkfVxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiAnbm9uZScgfX1cbiAgICAgIC8+XG4gICAgPC8+XG4gICk7XG59XG5cbnR5cGUgUHJvcHM8VFZhcnMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGE+ID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgbWF0Y2g6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFycz4gfCBudWxsO1xuICBwcmVwYXJlZFJvdXRlOiBQcmVwYXJlZE1hdGNoUm91dGU7XG59O1xuXG4vKipcbiAqIFRoZSBgcmVzb3VyY2VQYWdlYCBwcm9wZXJ0eSBmcm9tIHRoZSByb3V0ZSBlbnRyeSBpcyBhIFJlc291cmNlLCB3aGljaCBtYXkgb3IgbWF5IG5vdCBiZSByZWFkeS5cbiAqIFdlIHVzZSBhIGhlbHBlciBjaGlsZCBjb21wb25lbnQgdG8gdW53cmFwIHRoZSByZXNvdXJjZSB3aXRoIGNvbXBvbmVudC5yZWFkKCksIGFuZCB0aGVuXG4gKiByZW5kZXIgaXQgaWYgaXRzIHJlYWR5LlxuICpcbiAqIE5PVEU6IGNhbGxpbmcgcm91dGVFbnRyeS5yb3V0ZS5jb21wb25lbnQucmVhZCgpIGRpcmVjdGx5IGluIFJvdXRlUmVuZGVyZXIgd29sZG4ndCB3b3JrIHRoZVxuICogd2F5IHdlJ2QgZXhwZWN0LiBCZWNhdXNlIHRoYXQgbWV0aG9kIGNvdWxkIHRocm93IC0gZWl0aGVyIHN1c3BlbmRpbmcgb3Igb24gZXJyb3IgLSB0aGUgZXJyb3JcbiAqIHdvdWxkIGJ1YmJsZSB1cCB0byB0aGUgKmNhbGxlciogb2YgUm91dGVSZW5kZXJlci4gV2Ugd2FudCB0aGUgc3VzcGVuZC9lcnJvciB0byBidWJibGUgdXAgdG9cbiAqIG91ciBFcnJvckJvdW5kYXJ5L1N1c3BlbnNlIGNvbXBvbmVudHMsIHNvIHdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgdGhlIHN1c3BlbmQvZXJyb3IgaGFwcGVuc1xuICogaW4gYSBjaGlsZCBjb21wb25lbnQuXG4gKi9cbmNvbnN0IFJvdXRlQ29tcG9uZW50V3JhcHBlciA9IDxUVmFycyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YT4oXG4gIHByb3BzOiBQcm9wczxUVmFycz4sXG4pOiBKU1guRWxlbWVudCB8IG51bGwgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBtYXRjaCwgcHJlcGFyZWRSb3V0ZSB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgcmVzb3VyY2VQYWdlLCBwcmVwYXJlZCwgcmVuZGVyLCByZWRpcmVjdFRvLCBoaWdobGlnaHRJZCB9ID1cbiAgICBwcmVwYXJlZFJvdXRlOyAvLyByb3V0ZURhdGFcbiAgY29uc3Qgcm91dGVyID0gdXNlQ29udGV4dChSb3V0aW5nQ29udGV4dCk7XG4gIGNvbnN0IGN1cnJlbnRFbnRyeSA9IHJvdXRlcj8uZ2V0KCk7XG4gIGNvbnN0IHJhd1F1ZXJ5ID0gY3VycmVudEVudHJ5Py5xdWVyeSA/PyB7fTtcbiAgY29uc3QgdHlwZWRRdWVyeSA9IHJhd1F1ZXJ5OyAvLyBsZWdhY3kgdHlwZWRRdWVyeSByZW1vdmVkXG5cbiAgY29uc3Qgcm91dGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAobWF0Y2ggPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIG1hdGNoLnJvdXRlO1xuICB9LCBbbWF0Y2hdKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3Byb21pc2UtZnVuY3Rpb24tYXN5bmNcbiAgY29uc3QgQ29tcG9uZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHJlc291cmNlUGFnZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbnNpc3RlbnQtcmV0dXJuXG4gICAgcmV0dXJuIHJlc291cmNlUGFnZS5yZWFkKCk7XG4gIH0sIFtyZXNvdXJjZVBhZ2VdKTtcblxuICBsZXQgY29udGVudDogSlNYLkVsZW1lbnQgfCBudWxsIHwgdW5kZWZpbmVkIHwgUHJvbWlzZTxKU1guRWxlbWVudCB8IG51bGw+ID1cbiAgICBudWxsO1xuICBsZXQgcmVkaXJlY3RUb1BhdGhuYW1lOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBpZiAocmVuZGVyICE9IG51bGwpIHtcbiAgICB0cnkge1xuICAgICAgY29udGVudCA9IHJlbmRlcih7XG4gICAgICAgIGNoaWxkcmVuLFxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBPSyBjYW4gYmUgYSBzdXNwZW5kXG4gICAgICAgIENvbXBvbmVudCxcbiAgICAgICAgcHJlcGFyZWRSb3V0ZSxcbiAgICAgICAgcm91dGUsXG4gICAgICAgIHByZXBhcmVkLFxuICAgICAgICByYXdRdWVyeSxcbiAgICAgICAgcXVlcnk6IHR5cGVkUXVlcnksXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cFJlZGlyZWN0ICYmIHJvdXRlciAhPSBudWxsKSB7XG4gICAgICAgIGNvbnRlbnQgPSBudWxsO1xuICAgICAgICByZWRpcmVjdFRvUGF0aG5hbWUgPSBlcnJvci5yZWRpcmVjdFRvO1xuICAgICAgICAvLyBJZiBpdCdzIHN1c3BlbmRlZFxuICAgICAgfSBlbHNlIGlmIChlcnJvciBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgY29udGVudCA9IGVycm9yO1xuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZXJyb3IgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIGNvbnRlbnQgPSB1bmRlZmluZWQ7XG4gICAgICAgIHJlZGlyZWN0VG9QYXRobmFtZSA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgICBjb25zb2xlLmVycm9yKCdFUlJPUjogJywgZXJyb3IpO1xuICAgICAgICBjb250ZW50ID0gbnVsbDtcbiAgICAgICAgcmVkaXJlY3RUb1BhdGhuYW1lID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdCBwYXRobmFtZTogc3RyaW5nIHwgbnVsbCA9IHJlZGlyZWN0VG8gPz8gcmVkaXJlY3RUb1BhdGhuYW1lID8/IG51bGw7XG5cbiAgY29uc3Qgd3JhcFdpdGhIaWdobGlnaHQgPSAobm9kZTogUmVhY3ROb2RlKTogSlNYLkVsZW1lbnQgPT4ge1xuICAgIGlmICh0eXBlb2YgaGlnaGxpZ2h0SWQgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gPD57bm9kZX08Lz47XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8Um91dGVIaWdobGlnaHRCb3VuZGFyeSBoaWdobGlnaHRJZD17aGlnaGxpZ2h0SWR9PlxuICAgICAgICB7bm9kZX1cbiAgICAgIDwvUm91dGVIaWdobGlnaHRCb3VuZGFyeT5cbiAgICApO1xuICB9O1xuXG4gIGlmIChyZW5kZXIgIT0gbnVsbCkge1xuICAgIGlmIChjb250ZW50IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9vbmx5LXRocm93LWVycm9yXG4gICAgICB0aHJvdyBjb250ZW50O1xuICAgIH1cblxuICAgIGlmIChwYXRobmFtZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gPFJvdXRlQ29tcG9uZW50IHJlZGlyZWN0VG9QYXRobmFtZT17cGF0aG5hbWV9IC8+O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY29udGVudCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiB3cmFwV2l0aEhpZ2hsaWdodChjb250ZW50ID8/IG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChDb21wb25lbnQgPT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgY29tcG9uZW50Tm9kZSA9IChcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBPSyAtIGNvbXBvbmVudCB0eXBlIGluZmVyZW5jZSBmcm9tIHJlc291cmNlIGxvYWRlciBpcyBkeW5hbWljXG4gICAgPENvbXBvbmVudFxuICAgICAgbWF0Y2g9e21hdGNofVxuICAgICAgcHJlcGFyZWRSb3V0ZT17cHJlcGFyZWRSb3V0ZX1cbiAgICAgIHJvdXRlPXtyb3V0ZX1cbiAgICAgIHByZXBhcmVkPXtwcmVwYXJlZH1cbiAgICAgIHF1ZXJ5PXt0eXBlZFF1ZXJ5fVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0NvbXBvbmVudD5cbiAgKTtcbiAgY29uc3QgY29udGVudDIgPSB3cmFwV2l0aEhpZ2hsaWdodChjb21wb25lbnROb2RlKTtcblxuICByZXR1cm4gPFJvdXRlQ29tcG9uZW50IHJlZGlyZWN0VG9QYXRobmFtZT17cGF0aG5hbWV9IGNvbnRlbnQ9e2NvbnRlbnQyfSAvPjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFJvdXRlQ29tcG9uZW50V3JhcHBlcjtcbiJdfQ==
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUm91dGVDb21wb25lbnRXcmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3JvdXRpbmcvUm91dGVDb21wb25lbnRXcmFwcGVyLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQTRCLE1BQU0sT0FBTyxDQUFDO0FBSXRFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVsRCxPQUFPLGNBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLGNBQWMsTUFBTSxxQkFBcUIsQ0FBQztBQVVqRCxTQUFTLHNCQUFzQixDQUFDLEtBQTZCO0lBQzNELE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQ3hDLE9BQU8sQ0FDTCw4QkFDRSwyQ0FDNEIsV0FBVyxpQkFDekIsTUFBTSxFQUNsQixLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQzFCLEVBQ0QsUUFBUSxFQUNULHlDQUMwQixXQUFXLGlCQUN2QixNQUFNLEVBQ2xCLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FDMUIsSUFDRCxDQUNKLENBQUM7QUFDSixDQUFDO0FBbUJELE1BQU0scUJBQXFCLEdBQUcsQ0FDNUIsS0FBbUIsRUFDQyxFQUFFO0lBQ3RCLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUNqRCxNQUFNLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxHQUMvRCxhQUFhLENBQUM7SUFDaEIsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sWUFBWSxHQUFHLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNuQyxNQUFNLFFBQVEsR0FBRyxZQUFZLEVB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U0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sYUFBYSxHQUFHLENBRXBCLEtBQUMsU0FBUyxJQUNSLEtBQUssRUFBRSxLQUFLLEVBQ1osYUFBYSxFQUFFLGFBQWEsRUFDNUIsS0FBSyxFQUFFLEtBQUssRUFDWixRQUFRLEVBQUUsUUFBUSxFQUNsQixLQUFLLEVBQUUsVUFBVSxZQUVoQixRQUFRLEdBQ0MsQ0FDYixDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFbEQsT0FBTyxLQUFDLGNBQWMsSUFBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsR0FBSSxDQUFDO0FBQzdFLENBQUMsQ0FBQztBQUVGLGVBQWUscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB1c2VDb250ZXh0LCB1c2VNZW1vLCB0eXBlIEpTWCwgdHlwZSBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgUHJlcGFyZWRNYXRjaFJvdXRlLCBSb3V0ZXJNYXRjaGVkUm91dGUgfSBmcm9tICcuLi90eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7IFBhcmFtRGF0YSB9IGZyb20gJ3BhdGgtdG8tcmVnZXhwJztcbmltcG9ydCB7IEh0dHBSZWRpcmVjdCB9IGZyb20gJy4uL2Vycm9ycy9pbmRleC5qcyc7XG5cbmltcG9ydCBSb3V0aW5nQ29udGV4dCBmcm9tICcuL1JvdXRpbmdDb250ZXh0LmpzJztcbmltcG9ydCBSb3V0ZUNvbXBvbmVudCBmcm9tICcuL1JvdXRlQ29tcG9uZW50LmpzJztcblxudHlwZSBIaWdobGlnaHRCb3VuZGFyeVByb3BzID0ge1xuICBoaWdobGlnaHRJZDogc3RyaW5nO1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xufTtcblxuLyoqXG4gKiBXcmFwcyB0aGUgcmVuZGVyZWQgcm91dGUgb3V0cHV0IHdpdGggaW52aXNpYmxlIG1hcmtlcnMgc28gRGV2VG9vbHMgY2FuIG1hcCBpdCBiYWNrLlxuICovXG5mdW5jdGlvbiBSb3V0ZUhpZ2hsaWdodEJvdW5kYXJ5KHByb3BzOiBIaWdobGlnaHRCb3VuZGFyeVByb3BzKTogSlNYLkVsZW1lbnQge1xuICBjb25zdCB7IGhpZ2hsaWdodElkLCBjaGlsZHJlbiB9ID0gcHJvcHM7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxzcGFuXG4gICAgICAgIGRhdGEtcGx1bWlsZS1yb3V0ZS1zdGFydD17aGlnaGxpZ2h0SWR9XG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgLz5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDxzcGFuXG4gICAgICAgIGRhdGEtcGx1bWlsZS1yb3V0ZS1lbmQ9e2hpZ2hsaWdodElkfVxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiAnbm9uZScgfX1cbiAgICAgIC8+XG4gICAgPC8+XG4gICk7XG59XG5cbnR5cGUgUHJvcHM8VFZhcnMgZXh0ZW5kcyBQYXJhbURhdGEgPSBQYXJhbURhdGE+ID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgbWF0Y2g6IFJvdXRlck1hdGNoZWRSb3V0ZTxUVmFycz4gfCBudWxsO1xuICBwcmVwYXJlZFJvdXRlOiBQcmVwYXJlZE1hdGNoUm91dGU7XG59O1xuXG4vKipcbiAqIFRoZSBgcmVzb3VyY2VQYWdlYCBwcm9wZXJ0eSBmcm9tIHRoZSByb3V0ZSBlbnRyeSBpcyBhIFJlc291cmNlLCB3aGljaCBtYXkgb3IgbWF5IG5vdCBiZSByZWFkeS5cbiAqIFdlIHVzZSBhIGhlbHBlciBjaGlsZCBjb21wb25lbnQgdG8gdW53cmFwIHRoZSByZXNvdXJjZSB3aXRoIGNvbXBvbmVudC5yZWFkKCksIGFuZCB0aGVuXG4gKiByZW5kZXIgaXQgaWYgaXRzIHJlYWR5LlxuICpcbiAqIE5PVEU6IGNhbGxpbmcgcm91dGVFbnRyeS5yb3V0ZS5jb21wb25lbnQucmVhZCgpIGRpcmVjdGx5IGluIFJvdXRlUmVuZGVyZXIgd29sZG4ndCB3b3JrIHRoZVxuICogd2F5IHdlJ2QgZXhwZWN0LiBCZWNhdXNlIHRoYXQgbWV0aG9kIGNvdWxkIHRocm93IC0gZWl0aGVyIHN1c3BlbmRpbmcgb3Igb24gZXJyb3IgLSB0aGUgZXJyb3JcbiAqIHdvdWxkIGJ1YmJsZSB1cCB0byB0aGUgKmNhbGxlciogb2YgUm91dGVSZW5kZXJlci4gV2Ugd2FudCB0aGUgc3VzcGVuZC9lcnJvciB0byBidWJibGUgdXAgdG9cbiAqIG91ciBFcnJvckJvdW5kYXJ5L1N1c3BlbnNlIGNvbXBvbmVudHMsIHNvIHdlIGhhdmUgdG8gZW5zdXJlIHRoYXQgdGhlIHN1c3BlbmQvZXJyb3IgaGFwcGVuc1xuICogaW4gYSBjaGlsZCBjb21wb25lbnQuXG4gKi9cbmNvbnN0IFJvdXRlQ29tcG9uZW50V3JhcHBlciA9IDxUVmFycyBleHRlbmRzIFBhcmFtRGF0YSA9IFBhcmFtRGF0YT4oXG4gIHByb3BzOiBQcm9wczxUVmFycz4sXG4pOiBKU1guRWxlbWVudCB8IG51bGwgPT4ge1xuICBjb25zdCB7IGNoaWxkcmVuLCBtYXRjaCwgcHJlcGFyZWRSb3V0ZSB9ID0gcHJvcHM7XG4gIGNvbnN0IHsgcmVzb3VyY2VQYWdlLCBwcmVwYXJlZCwgcmVuZGVyLCByZWRpcmVjdFRvLCBoaWdobGlnaHRJZCB9ID1cbiAgICBwcmVwYXJlZFJvdXRlOyAvLyByb3V0ZURhdGFcbiAgY29uc3Qgcm91dGVyID0gdXNlQ29udGV4dChSb3V0aW5nQ29udGV4dCk7XG4gIGNvbnN0IGN1cnJlbnRFbnRyeSA9IHJvdXRlcj8uZ2V0KCk7XG4gIGNvbnN0IHJhd1F1ZXJ5ID0gY3VycmVudEVudHJ5Py5xdWVyeSA/PyB7fTtcbiAgY29uc3Qgcm91dGVDb250ZXh0ID0gY3VycmVudEVudHJ5Py5jb250ZXh0O1xuICBjb25zdCB0eXBlZFF1ZXJ5ID0gcmF3UXVlcnk7IC8vIGxlZ2FjeSB0eXBlZFF1ZXJ5IHJlbW92ZWRcblxuICBjb25zdCByb3V0ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChtYXRjaCA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2gucm91dGU7XG4gIH0sIFttYXRjaF0pO1xuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcHJvbWlzZS1mdW5jdGlvbi1hc3luY1xuICBjb25zdCBDb21wb25lbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAocmVzb3VyY2VQYWdlID09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29uc2lzdGVudC1yZXR1cm5cbiAgICByZXR1cm4gcmVzb3VyY2VQYWdlLnJlYWQoKTtcbiAgfSwgW3Jlc291cmNlUGFnZV0pO1xuXG4gIGxldCBjb250ZW50OiBKU1guRWxlbWVudCB8IG51bGwgfCB1bmRlZmluZWQgfCBQcm9taXNlPEpTWC5FbGVtZW50IHwgbnVsbD4gPVxuICAgIG51bGw7XG4gIGxldCByZWRpcmVjdFRvUGF0aG5hbWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGlmIChyZW5kZXIgIT0gbnVsbCkge1xuICAgIHRyeSB7XG4gICAgICBjb250ZW50ID0gcmVuZGVyKHtcbiAgICAgICAgY2hpbGRyZW4sXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IE9LIGNhbiBiZSBhIHN1c3BlbmRcbiAgICAgICAgQ29tcG9uZW50LFxuICAgICAgICBwcmVwYXJlZFJvdXRlLFxuICAgICAgICByb3V0ZSxcbiAgICAgICAgcHJlcGFyZWQsXG4gICAgICAgIGNvbnRleHQ6IHJvdXRlQ29udGV4dCxcbiAgICAgICAgcmF3UXVlcnksXG4gICAgICAgIHF1ZXJ5OiB0eXBlZFF1ZXJ5LFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBSZWRpcmVjdCAmJiByb3V0ZXIgIT0gbnVsbCkge1xuICAgICAgICBjb250ZW50ID0gbnVsbDtcbiAgICAgICAgcmVkaXJlY3RUb1BhdGhuYW1lID0gZXJyb3IucmVkaXJlY3RUbztcbiAgICAgICAgLy8gSWYgaXQncyBzdXNwZW5kZWRcbiAgICAgIH0gZWxzZSBpZiAoZXJyb3IgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgIGNvbnRlbnQgPSBlcnJvcjtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGVycm9yID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb250ZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICByZWRpcmVjdFRvUGF0aG5hbWUgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgICAgY29uc29sZS5lcnJvcignRVJST1I6ICcsIGVycm9yKTtcbiAgICAgICAgY29udGVudCA9IG51bGw7XG4gICAgICAgIHJlZGlyZWN0VG9QYXRobmFtZSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3QgcGF0aG5hbWU6IHN0cmluZyB8IG51bGwgPSByZWRpcmVjdFRvID8/IHJlZGlyZWN0VG9QYXRobmFtZSA/PyBudWxsO1xuXG4gIGNvbnN0IHdyYXBXaXRoSGlnaGxpZ2h0ID0gKG5vZGU6IFJlYWN0Tm9kZSk6IEpTWC5FbGVtZW50ID0+IHtcbiAgICBpZiAodHlwZW9mIGhpZ2hsaWdodElkICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIDw+e25vZGV9PC8+O1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPFJvdXRlSGlnaGxpZ2h0Qm91bmRhcnkgaGlnaGxpZ2h0SWQ9e2hpZ2hsaWdodElkfT5cbiAgICAgICAge25vZGV9XG4gICAgICA8L1JvdXRlSGlnaGxpZ2h0Qm91bmRhcnk+XG4gICAgKTtcbiAgfTtcblxuICBpZiAocmVuZGVyICE9IG51bGwpIHtcbiAgICBpZiAoY29udGVudCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvb25seS10aHJvdy1lcnJvclxuICAgICAgdGhyb3cgY29udGVudDtcbiAgICB9XG5cbiAgICBpZiAocGF0aG5hbWUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIDxSb3V0ZUNvbXBvbmVudCByZWRpcmVjdFRvUGF0aG5hbWU9e3BhdGhuYW1lfSAvPjtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gd3JhcFdpdGhIaWdobGlnaHQoY29udGVudCA/PyBudWxsKTtcbiAgICB9XG4gIH1cblxuICBpZiAoQ29tcG9uZW50ID09IG51bGwpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGNvbXBvbmVudE5vZGUgPSAoXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogT0sgLSBjb21wb25lbnQgdHlwZSBpbmZlcmVuY2UgZnJvbSByZXNvdXJjZSBsb2FkZXIgaXMgZHluYW1pY1xuICAgIDxDb21wb25lbnRcbiAgICAgIG1hdGNoPXttYXRjaH1cbiAgICAgIHByZXBhcmVkUm91dGU9e3ByZXBhcmVkUm91dGV9XG4gICAgICByb3V0ZT17cm91dGV9XG4gICAgICBwcmVwYXJlZD17cHJlcGFyZWR9XG4gICAgICBxdWVyeT17dHlwZWRRdWVyeX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Db21wb25lbnQ+XG4gICk7XG4gIGNvbnN0IGNvbnRlbnQyID0gd3JhcFdpdGhIaWdobGlnaHQoY29tcG9uZW50Tm9kZSk7XG5cbiAgcmV0dXJuIDxSb3V0ZUNvbXBvbmVudCByZWRpcmVjdFRvUGF0aG5hbWU9e3BhdGhuYW1lfSBjb250ZW50PXtjb250ZW50Mn0gLz47XG59O1xuXG5leHBvcnQgZGVmYXVsdCBSb3V0ZUNvbXBvbmVudFdyYXBwZXI7XG4iXX0=
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { type RoutingContextType, type AnyRoute, type PreparedAccess } from '../types.js';
|
|
2
2
|
import { type InstrumentationAPI } from '../instrumentation/Instrumentation.js';
|
|
3
|
-
export type CreateRouterReturn<R extends AnyRoute[]> = {
|
|
3
|
+
export type CreateRouterReturn<TContext, R extends AnyRoute<TContext>[]> = {
|
|
4
4
|
cleanup: () => void;
|
|
5
|
-
context: RoutingContextType<any> & PreparedAccess<R>;
|
|
5
|
+
context: RoutingContextType<any, any, any, TContext> & PreparedAccess<R>;
|
|
6
6
|
};
|
|
7
|
-
export type CreateRouterOptions = {
|
|
7
|
+
export type CreateRouterOptions<TContext> = {
|
|
8
8
|
instrumentations?: InstrumentationAPI[];
|
|
9
|
+
context?: TContext | (() => TContext);
|
|
10
|
+
getContext?: () => TContext;
|
|
9
11
|
};
|
|
10
|
-
export default function createRouter<R extends AnyRoute[]>(routes: [...R] | AnyRoute[], options?: CreateRouterOptions): CreateRouterReturn<R extends AnyRoute[] ? R : AnyRoute[]>;
|
|
12
|
+
export default function createRouter<TContext = unknown, R extends AnyRoute<TContext>[] = AnyRoute<TContext>[]>(routes: [...R] | AnyRoute<TContext>[], options?: CreateRouterOptions<TContext>): CreateRouterReturn<TContext, R extends AnyRoute<TContext>[] ? R : AnyRoute<TContext>[]>;
|
|
11
13
|
//# sourceMappingURL=createRouter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/createRouter.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,QAAQ,EACb,KAAK,cAAc,EAGpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,kBAAkB,EAKxB,MAAM,uCAAuC,CAAC;AAM/C,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"createRouter.d.ts","sourceRoot":"","sources":["../../../src/routing/createRouter.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,kBAAkB,EAEvB,KAAK,QAAQ,EACb,KAAK,cAAc,EAGpB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,kBAAkB,EAKxB,MAAM,uCAAuC,CAAC;AAM/C,MAAM,MAAM,kBAAkB,CAAC,QAAQ,EAAE,CAAC,SAAS,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI;IAEzE,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,OAAO,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;CAC1E,CAAC;AAwCF,MAAM,MAAM,mBAAmB,CAAC,QAAQ,IAAI;IAE1C,gBAAgB,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAExC,OAAO,CAAC,EAAE,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,CAAC;IAEtC,UAAU,CAAC,EAAE,MAAM,QAAQ,CAAC;CAC7B,CAAC;AASF,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,QAAQ,GAAG,OAAO,EAClB,CAAC,SAAS,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAErD,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,EACrC,OAAO,GAAE,mBAAmB,CAAC,QAAQ,CAAM,GAC1C,kBAAkB,CACnB,QAAQ,EACR,CAAC,SAAS,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAC1D,CAkwBA"}
|