@analogjs/router 0.1.0-alpha.5 → 0.1.0-alpha.6

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/esm2020/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
1
  export { routes } from './lib/routes';
2
2
  export { defineRouteMeta, injectActivatedRoute, injectRouter, } from './lib/define-route';
3
- export { provideFileRouter } from './lib/provide-file-routes';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9yb3V0ZXIvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUNMLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsWUFBWSxHQUNiLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyByb3V0ZXMgfSBmcm9tICcuL2xpYi9yb3V0ZXMnO1xuZXhwb3J0IHtcbiAgZGVmaW5lUm91dGVNZXRhLFxuICBpbmplY3RBY3RpdmF0ZWRSb3V0ZSxcbiAgaW5qZWN0Um91dGVyLFxufSBmcm9tICcuL2xpYi9kZWZpbmUtcm91dGUnO1xuZXhwb3J0IHsgUm91dGVNZXRhIH0gZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCB7IHByb3ZpZGVGaWxlUm91dGVyIH0gZnJvbSAnLi9saWIvcHJvdmlkZS1maWxlLXJvdXRlcyc7XG4iXX0=
3
+ export { provideFileRouter } from './lib/provide-file-router';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9yb3V0ZXIvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUNMLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsWUFBWSxHQUNiLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyByb3V0ZXMgfSBmcm9tICcuL2xpYi9yb3V0ZXMnO1xuZXhwb3J0IHtcbiAgZGVmaW5lUm91dGVNZXRhLFxuICBpbmplY3RBY3RpdmF0ZWRSb3V0ZSxcbiAgaW5qZWN0Um91dGVyLFxufSBmcm9tICcuL2xpYi9kZWZpbmUtcm91dGUnO1xuZXhwb3J0IHsgUm91dGVNZXRhIH0gZnJvbSAnLi9saWIvbW9kZWxzJztcbmV4cG9ydCB7IHByb3ZpZGVGaWxlUm91dGVyIH0gZnJvbSAnLi9saWIvcHJvdmlkZS1maWxlLXJvdXRlcic7XG5leHBvcnQgeyBNZXRhVGFnIH0gZnJvbSAnLi9saWIvbWV0YS10YWdzJztcbiJdfQ==
@@ -0,0 +1,50 @@
1
+ import { inject } from '@angular/core';
2
+ import { Meta } from '@angular/platform-browser';
3
+ import { NavigationEnd, Router } from '@angular/router';
4
+ import { filter } from 'rxjs/operators';
5
+ export const ROUTE_META_TAGS_KEY = Symbol('@analogjs/router Route Meta Tags Key');
6
+ const CHARSET_KEY = 'charset';
7
+ const HTTP_EQUIV_KEY = 'httpEquiv';
8
+ // httpEquiv selector key needs to be in kebab case format
9
+ const HTTP_EQUIV_SELECTOR_KEY = 'http-equiv';
10
+ const NAME_KEY = 'name';
11
+ const PROPERTY_KEY = 'property';
12
+ const CONTENT_KEY = 'content';
13
+ export function updateMetaTagsOnRouteChange() {
14
+ const router = inject(Router);
15
+ const metaService = inject(Meta);
16
+ router.events
17
+ .pipe(filter((event) => event instanceof NavigationEnd))
18
+ .subscribe(() => {
19
+ const metaTagMap = getMetaTagMap(router.routerState.snapshot.root);
20
+ for (const metaTagSelector in metaTagMap) {
21
+ const metaTag = metaTagMap[metaTagSelector];
22
+ metaService.updateTag(metaTag, metaTagSelector);
23
+ }
24
+ });
25
+ }
26
+ function getMetaTagMap(route) {
27
+ const metaTagMap = {};
28
+ let currentRoute = route;
29
+ while (currentRoute) {
30
+ const metaTags = currentRoute.data[ROUTE_META_TAGS_KEY] ?? [];
31
+ for (const metaTag of metaTags) {
32
+ metaTagMap[getMetaTagSelector(metaTag)] = metaTag;
33
+ }
34
+ currentRoute = currentRoute.firstChild;
35
+ }
36
+ return metaTagMap;
37
+ }
38
+ function getMetaTagSelector(metaTag) {
39
+ if (metaTag.name) {
40
+ return `${NAME_KEY}="${metaTag.name}"`;
41
+ }
42
+ if (metaTag.property) {
43
+ return `${PROPERTY_KEY}="${metaTag.property}"`;
44
+ }
45
+ if (metaTag.httpEquiv) {
46
+ return `${HTTP_EQUIV_SELECTOR_KEY}="${metaTag.httpEquiv}"`;
47
+ }
48
+ return CHARSET_KEY;
49
+ }
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS10YWdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvbWV0YS10YWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBK0IsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RSxPQUFPLEVBQTBCLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUN2QyxzQ0FBc0MsQ0FDdkMsQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQztBQUM5QixNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUM7QUFDbkMsMERBQTBEO0FBQzFELE1BQU0sdUJBQXVCLEdBQUcsWUFBWSxDQUFDO0FBQzdDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQztBQUN4QixNQUFNLFlBQVksR0FBRyxVQUFVLENBQUM7QUFDaEMsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBOEI5QixNQUFNLFVBQVUsMkJBQTJCO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFakMsTUFBTSxDQUFDLE1BQU07U0FDVixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLENBQUM7U0FDdkQsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNkLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuRSxLQUFLLE1BQU0sZUFBZSxJQUFJLFVBQVUsRUFBRTtZQUN4QyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQ3hCLGVBQWtDLENBQ3RCLENBQUM7WUFDZixXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztTQUNqRDtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLEtBQTZCO0lBQ2xELE1BQU0sVUFBVSxHQUFHLEVBQWdCLENBQUM7SUFDcEMsSUFBSSxZQUFZLEdBQWtDLEtBQUssQ0FBQztJQUV4RCxPQUFPLFlBQVksRUFBRTtRQUNuQixNQUFNLFFBQVEsR0FBYyxZQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pFLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFO1lBQzlCLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztTQUNuRDtRQUVELFlBQVksR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDO0tBQ3hDO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsT0FBZ0I7SUFDMUMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1FBQ2hCLE9BQU8sR0FBRyxRQUFRLEtBQUssT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDO0tBQ3hDO0lBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1FBQ3BCLE9BQU8sR0FBRyxZQUFZLEtBQUssT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDO0tBQ2hEO0lBRUQsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1FBQ3JCLE9BQU8sR0FBRyx1QkFBdUIsS0FBSyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUM7S0FDNUQ7SUFFRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhLCBNZXRhRGVmaW5pdGlvbiBhcyBOZ01ldGFUYWcgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBST1VURV9NRVRBX1RBR1NfS0VZID0gU3ltYm9sKFxuICAnQGFuYWxvZ2pzL3JvdXRlciBSb3V0ZSBNZXRhIFRhZ3MgS2V5J1xuKTtcblxuY29uc3QgQ0hBUlNFVF9LRVkgPSAnY2hhcnNldCc7XG5jb25zdCBIVFRQX0VRVUlWX0tFWSA9ICdodHRwRXF1aXYnO1xuLy8gaHR0cEVxdWl2IHNlbGVjdG9yIGtleSBuZWVkcyB0byBiZSBpbiBrZWJhYiBjYXNlIGZvcm1hdFxuY29uc3QgSFRUUF9FUVVJVl9TRUxFQ1RPUl9LRVkgPSAnaHR0cC1lcXVpdic7XG5jb25zdCBOQU1FX0tFWSA9ICduYW1lJztcbmNvbnN0IFBST1BFUlRZX0tFWSA9ICdwcm9wZXJ0eSc7XG5jb25zdCBDT05URU5UX0tFWSA9ICdjb250ZW50JztcblxuZXhwb3J0IHR5cGUgTWV0YVRhZyA9XG4gIHwgKENoYXJzZXRNZXRhVGFnICYgRXhjbHVkZVJlc3RNZXRhVGFnS2V5czx0eXBlb2YgQ0hBUlNFVF9LRVk+KVxuICB8IChIdHRwRXF1aXZNZXRhVGFnICYgRXhjbHVkZVJlc3RNZXRhVGFnS2V5czx0eXBlb2YgSFRUUF9FUVVJVl9LRVk+KVxuICB8IChOYW1lTWV0YVRhZyAmIEV4Y2x1ZGVSZXN0TWV0YVRhZ0tleXM8dHlwZW9mIE5BTUVfS0VZPilcbiAgfCAoUHJvcGVydHlNZXRhVGFnICYgRXhjbHVkZVJlc3RNZXRhVGFnS2V5czx0eXBlb2YgUFJPUEVSVFlfS0VZPik7XG5cbnR5cGUgQ2hhcnNldE1ldGFUYWcgPSB7IFtDSEFSU0VUX0tFWV06IHN0cmluZyB9O1xudHlwZSBIdHRwRXF1aXZNZXRhVGFnID0geyBbSFRUUF9FUVVJVl9LRVldOiBzdHJpbmc7IFtDT05URU5UX0tFWV06IHN0cmluZyB9O1xudHlwZSBOYW1lTWV0YVRhZyA9IHsgW05BTUVfS0VZXTogc3RyaW5nOyBbQ09OVEVOVF9LRVldOiBzdHJpbmcgfTtcbnR5cGUgUHJvcGVydHlNZXRhVGFnID0geyBbUFJPUEVSVFlfS0VZXTogc3RyaW5nOyBbQ09OVEVOVF9LRVldOiBzdHJpbmcgfTtcblxudHlwZSBNZXRhVGFnS2V5ID1cbiAgfCB0eXBlb2YgQ0hBUlNFVF9LRVlcbiAgfCB0eXBlb2YgSFRUUF9FUVVJVl9LRVlcbiAgfCB0eXBlb2YgTkFNRV9LRVlcbiAgfCB0eXBlb2YgUFJPUEVSVFlfS0VZO1xudHlwZSBFeGNsdWRlUmVzdE1ldGFUYWdLZXlzPEtleSBleHRlbmRzIE1ldGFUYWdLZXk+ID0ge1xuICBbSyBpbiBFeGNsdWRlPE1ldGFUYWdLZXksIEtleT5dPzogbmV2ZXI7XG59O1xuXG50eXBlIE1ldGFUYWdTZWxlY3RvciA9XG4gIHwgdHlwZW9mIENIQVJTRVRfS0VZXG4gIHwgYCR7XG4gICAgICB8IHR5cGVvZiBIVFRQX0VRVUlWX1NFTEVDVE9SX0tFWVxuICAgICAgfCB0eXBlb2YgTkFNRV9LRVlcbiAgICAgIHwgdHlwZW9mIFBST1BFUlRZX0tFWX09XCIke3N0cmluZ31cImA7XG50eXBlIE1ldGFUYWdNYXAgPSBSZWNvcmQ8TWV0YVRhZ1NlbGVjdG9yLCBNZXRhVGFnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZU1ldGFUYWdzT25Sb3V0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIGNvbnN0IG1ldGFTZXJ2aWNlID0gaW5qZWN0KE1ldGEpO1xuXG4gIHJvdXRlci5ldmVudHNcbiAgICAucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgbWV0YVRhZ01hcCA9IGdldE1ldGFUYWdNYXAocm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnJvb3QpO1xuXG4gICAgICBmb3IgKGNvbnN0IG1ldGFUYWdTZWxlY3RvciBpbiBtZXRhVGFnTWFwKSB7XG4gICAgICAgIGNvbnN0IG1ldGFUYWcgPSBtZXRhVGFnTWFwW1xuICAgICAgICAgIG1ldGFUYWdTZWxlY3RvciBhcyBNZXRhVGFnU2VsZWN0b3JcbiAgICAgICAgXSBhcyBOZ01ldGFUYWc7XG4gICAgICAgIG1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyhtZXRhVGFnLCBtZXRhVGFnU2VsZWN0b3IpO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRNZXRhVGFnTWFwKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogTWV0YVRhZ01hcCB7XG4gIGNvbnN0IG1ldGFUYWdNYXAgPSB7fSBhcyBNZXRhVGFnTWFwO1xuICBsZXQgY3VycmVudFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbCA9IHJvdXRlO1xuXG4gIHdoaWxlIChjdXJyZW50Um91dGUpIHtcbiAgICBjb25zdCBtZXRhVGFnczogTWV0YVRhZ1tdID0gY3VycmVudFJvdXRlLmRhdGFbUk9VVEVfTUVUQV9UQUdTX0tFWV0gPz8gW107XG4gICAgZm9yIChjb25zdCBtZXRhVGFnIG9mIG1ldGFUYWdzKSB7XG4gICAgICBtZXRhVGFnTWFwW2dldE1ldGFUYWdTZWxlY3RvcihtZXRhVGFnKV0gPSBtZXRhVGFnO1xuICAgIH1cblxuICAgIGN1cnJlbnRSb3V0ZSA9IGN1cnJlbnRSb3V0ZS5maXJzdENoaWxkO1xuICB9XG5cbiAgcmV0dXJuIG1ldGFUYWdNYXA7XG59XG5cbmZ1bmN0aW9uIGdldE1ldGFUYWdTZWxlY3RvcihtZXRhVGFnOiBNZXRhVGFnKTogTWV0YVRhZ1NlbGVjdG9yIHtcbiAgaWYgKG1ldGFUYWcubmFtZSkge1xuICAgIHJldHVybiBgJHtOQU1FX0tFWX09XCIke21ldGFUYWcubmFtZX1cImA7XG4gIH1cblxuICBpZiAobWV0YVRhZy5wcm9wZXJ0eSkge1xuICAgIHJldHVybiBgJHtQUk9QRVJUWV9LRVl9PVwiJHttZXRhVGFnLnByb3BlcnR5fVwiYDtcbiAgfVxuXG4gIGlmIChtZXRhVGFnLmh0dHBFcXVpdikge1xuICAgIHJldHVybiBgJHtIVFRQX0VRVUlWX1NFTEVDVE9SX0tFWX09XCIke21ldGFUYWcuaHR0cEVxdWl2fVwiYDtcbiAgfVxuXG4gIHJldHVybiBDSEFSU0VUX0tFWTtcbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDYW5BY3RpdmF0ZUNoaWxkRm4sXG4gIENhbkFjdGl2YXRlRm4sXG4gIENhbkRlYWN0aXZhdGVGbixcbiAgQ2FuTWF0Y2hGbixcbiAgUmVzb2x2ZUZuLFxuICBSb3V0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgZGVmaW5lUm91dGVNZXRhIH0gZnJvbSAnLi9kZWZpbmUtcm91dGUnO1xuXG50eXBlIE9taXR0ZWRSb3V0ZVByb3BzID1cbiAgfCAncGF0aCdcbiAgfCAncGF0aE1hdGNoJ1xuICB8ICdtYXRjaGVyJ1xuICB8ICdyZWRpcmVjdFRvJ1xuICB8ICdjb21wb25lbnQnXG4gIHwgJ2xvYWRDb21wb25lbnQnXG4gIHwgJ2NoaWxkcmVuJ1xuICB8ICdsb2FkQ2hpbGRyZW4nXG4gIHwgJ2NhbkxvYWQnXG4gIHwgJ291dGxldCc7XG5cbmludGVyZmFjZSBEZWZhdWx0Um91dGVNZXRhIGV4dGVuZHMgT21pdDxSb3V0ZSwgT21pdHRlZFJvdXRlUHJvcHM+IHtcbiAgY2FuQWN0aXZhdGU/OiBDYW5BY3RpdmF0ZUZuW107XG4gIGNhbkFjdGl2YXRlQ2hpbGQ/OiBDYW5BY3RpdmF0ZUNoaWxkRm5bXTtcbiAgY2FuRGVhY3RpdmF0ZT86IENhbkRlYWN0aXZhdGVGbjx1bmtub3duPltdO1xuICBjYW5NYXRjaD86IENhbk1hdGNoRm5bXTtcbiAgcmVzb2x2ZT86IHsgW2tleTogc3RyaW5nIHwgc3ltYm9sXTogUmVzb2x2ZUZuPHVua25vd24+IH07XG4gIHRpdGxlPzogc3RyaW5nIHwgUmVzb2x2ZUZuPHN0cmluZz47XG59XG5cbmludGVyZmFjZSBSZWRpcmVjdFJvdXRlTWV0YSB7XG4gIHJlZGlyZWN0VG86IHN0cmluZztcbiAgcGF0aE1hdGNoPzogUm91dGVbJ3BhdGhNYXRjaCddO1xufVxuXG5leHBvcnQgdHlwZSBSb3V0ZU1ldGEgPVxuICAvLyBlbmZvcmNlIGV4Y2x1c2l2ZSB1bmlvblxuICAoRGVmYXVsdFJvdXRlTWV0YSAmIHsgcmVkaXJlY3RUbz86IG5ldmVyIH0pIHwgUmVkaXJlY3RSb3V0ZU1ldGE7XG5cbmV4cG9ydCB0eXBlIFJvdXRlRXhwb3J0ID0ge1xuICBkZWZhdWx0OiBUeXBlPHVua25vd24+O1xuICByb3V0ZU1ldGE/OiBSb3V0ZU1ldGEgfCBSZXR1cm5UeXBlPHR5cGVvZiBkZWZpbmVSb3V0ZU1ldGE+O1xufTtcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvbW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDYW5BY3RpdmF0ZUNoaWxkRm4sXG4gIENhbkFjdGl2YXRlRm4sXG4gIENhbkRlYWN0aXZhdGVGbixcbiAgQ2FuTWF0Y2hGbixcbiAgUmVzb2x2ZUZuLFxuICBSb3V0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgZGVmaW5lUm91dGVNZXRhIH0gZnJvbSAnLi9kZWZpbmUtcm91dGUnO1xuaW1wb3J0IHsgTWV0YVRhZyB9IGZyb20gJy4vbWV0YS10YWdzJztcblxudHlwZSBPbWl0dGVkUm91dGVQcm9wcyA9XG4gIHwgJ3BhdGgnXG4gIHwgJ21hdGNoZXInXG4gIHwgJ2NvbXBvbmVudCdcbiAgfCAnbG9hZENvbXBvbmVudCdcbiAgfCAnY2hpbGRyZW4nXG4gIHwgJ2xvYWRDaGlsZHJlbidcbiAgfCAnY2FuTG9hZCdcbiAgfCAnb3V0bGV0JztcblxuZXhwb3J0IHR5cGUgUm91dGVDb25maWcgPSBPbWl0PFJvdXRlLCBPbWl0dGVkUm91dGVQcm9wcz47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVmYXVsdFJvdXRlTWV0YVxuICBleHRlbmRzIE9taXQ8Um91dGUsIE9taXR0ZWRSb3V0ZVByb3BzIHwga2V5b2YgUmVkaXJlY3RSb3V0ZU1ldGE+IHtcbiAgY2FuQWN0aXZhdGU/OiBDYW5BY3RpdmF0ZUZuW107XG4gIGNhbkFjdGl2YXRlQ2hpbGQ/OiBDYW5BY3RpdmF0ZUNoaWxkRm5bXTtcbiAgY2FuRGVhY3RpdmF0ZT86IENhbkRlYWN0aXZhdGVGbjx1bmtub3duPltdO1xuICBjYW5NYXRjaD86IENhbk1hdGNoRm5bXTtcbiAgcmVzb2x2ZT86IHsgW2tleTogc3RyaW5nIHwgc3ltYm9sXTogUmVzb2x2ZUZuPHVua25vd24+IH07XG4gIHRpdGxlPzogc3RyaW5nIHwgUmVzb2x2ZUZuPHN0cmluZz47XG4gIG1ldGE/OiBNZXRhVGFnW10gfCBSZXNvbHZlRm48TWV0YVRhZ1tdPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWRpcmVjdFJvdXRlTWV0YSB7XG4gIHJlZGlyZWN0VG86IHN0cmluZztcbiAgcGF0aE1hdGNoPzogUm91dGVbJ3BhdGhNYXRjaCddO1xufVxuXG5leHBvcnQgdHlwZSBSb3V0ZU1ldGEgPVxuICAvLyBlbmZvcmNlIGV4Y2x1c2l2ZSB1bmlvblxuICAoRGVmYXVsdFJvdXRlTWV0YSAmIHsgcmVkaXJlY3RUbz86IG5ldmVyIH0pIHwgUmVkaXJlY3RSb3V0ZU1ldGE7XG5cbmV4cG9ydCB0eXBlIFJvdXRlRXhwb3J0ID0ge1xuICBkZWZhdWx0OiBUeXBlPHVua25vd24+O1xuICByb3V0ZU1ldGE/OiBSb3V0ZU1ldGEgfCBSZXR1cm5UeXBlPHR5cGVvZiBkZWZpbmVSb3V0ZU1ldGE+O1xufTtcbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { ENVIRONMENT_INITIALIZER, makeEnvironmentProviders, } from '@angular/core';
2
+ import { provideRouter } from '@angular/router';
3
+ import { routes } from './routes';
4
+ import { updateMetaTagsOnRouteChange } from './meta-tags';
5
+ /**
6
+ * Sets up providers for the Angular router, and registers
7
+ * file-based routes. Additional features can be provided
8
+ * to further configure the behavior of the router.
9
+ *
10
+ * @param features
11
+ * @returns Providers and features to configure the router with routes
12
+ */
13
+ export function provideFileRouter(...features) {
14
+ return makeEnvironmentProviders([
15
+ // TODO: remove type casting after Angular >=15.1.1 upgrade
16
+ // https://github.com/angular/angular/pull/48720
17
+ provideRouter(routes, ...features).ɵproviders,
18
+ {
19
+ provide: ENVIRONMENT_INITIALIZER,
20
+ multi: true,
21
+ useValue: () => updateMetaTagsOnRouteChange(),
22
+ },
23
+ ]);
24
+ }
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1maWxlLXJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3JvdXRlci9zcmMvbGliL3Byb3ZpZGUtZmlsZS1yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2Qix3QkFBd0IsR0FFekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixHQUFHLFFBQTBCO0lBRTdCLE9BQU8sd0JBQXdCLENBQUM7UUFDOUIsMkRBQTJEO1FBQzNELGdEQUFnRDtRQUU5QyxhQUFhLENBQUMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUdsQyxDQUFDLFVBQVU7UUFDWjtZQUNFLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsMkJBQTJCLEVBQUU7U0FDOUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gIEVudmlyb25tZW50UHJvdmlkZXJzLFxuICBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIFByb3ZpZGVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHByb3ZpZGVSb3V0ZXIsIFJvdXRlckZlYXR1cmVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgcm91dGVzIH0gZnJvbSAnLi9yb3V0ZXMnO1xuaW1wb3J0IHsgdXBkYXRlTWV0YVRhZ3NPblJvdXRlQ2hhbmdlIH0gZnJvbSAnLi9tZXRhLXRhZ3MnO1xuXG4vKipcbiAqIFNldHMgdXAgcHJvdmlkZXJzIGZvciB0aGUgQW5ndWxhciByb3V0ZXIsIGFuZCByZWdpc3RlcnNcbiAqIGZpbGUtYmFzZWQgcm91dGVzLiBBZGRpdGlvbmFsIGZlYXR1cmVzIGNhbiBiZSBwcm92aWRlZFxuICogdG8gZnVydGhlciBjb25maWd1cmUgdGhlIGJlaGF2aW9yIG9mIHRoZSByb3V0ZXIuXG4gKlxuICogQHBhcmFtIGZlYXR1cmVzXG4gKiBAcmV0dXJucyBQcm92aWRlcnMgYW5kIGZlYXR1cmVzIHRvIGNvbmZpZ3VyZSB0aGUgcm91dGVyIHdpdGggcm91dGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRmlsZVJvdXRlcihcbiAgLi4uZmVhdHVyZXM6IFJvdXRlckZlYXR1cmVzW11cbik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgLy8gVE9ETzogcmVtb3ZlIHR5cGUgY2FzdGluZyBhZnRlciBBbmd1bGFyID49MTUuMS4xIHVwZ3JhZGVcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL3B1bGwvNDg3MjBcbiAgICAoXG4gICAgICBwcm92aWRlUm91dGVyKHJvdXRlcywgLi4uZmVhdHVyZXMpIGFzIHVua25vd24gYXMge1xuICAgICAgICDJtXByb3ZpZGVyczogUHJvdmlkZXJbXTtcbiAgICAgIH1cbiAgICApLsm1cHJvdmlkZXJzLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VWYWx1ZTogKCkgPT4gdXBkYXRlTWV0YVRhZ3NPblJvdXRlQ2hhbmdlKCksXG4gICAgfSxcbiAgXSk7XG59XG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { ROUTE_META_TAGS_KEY } from './meta-tags';
2
+ export function toRouteConfig(routeMeta) {
3
+ if (!routeMeta) {
4
+ return {};
5
+ }
6
+ if (isRedirectRouteMeta(routeMeta)) {
7
+ return routeMeta;
8
+ }
9
+ const { meta, ...routeConfig } = routeMeta;
10
+ if (Array.isArray(meta)) {
11
+ routeConfig.data = { ...routeConfig.data, [ROUTE_META_TAGS_KEY]: meta };
12
+ }
13
+ else if (typeof meta === 'function') {
14
+ routeConfig.resolve = {
15
+ ...routeConfig.resolve,
16
+ [ROUTE_META_TAGS_KEY]: meta,
17
+ };
18
+ }
19
+ return routeConfig;
20
+ }
21
+ function isRedirectRouteMeta(routeMeta) {
22
+ return !!routeMeta.redirectTo;
23
+ }
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvcm91dGUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsRCxNQUFNLFVBQVUsYUFBYSxDQUFDLFNBQWdDO0lBQzVELElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDZCxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsSUFBSSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUNsQyxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxXQUFXLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFFM0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3ZCLFdBQVcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO0tBQ3pFO1NBQU0sSUFBSSxPQUFPLElBQUksS0FBSyxVQUFVLEVBQUU7UUFDckMsV0FBVyxDQUFDLE9BQU8sR0FBRztZQUNwQixHQUFHLFdBQVcsQ0FBQyxPQUFPO1lBQ3RCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxJQUFJO1NBQzVCLENBQUM7S0FDSDtJQUVELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUMxQixTQUFvQjtJQUVwQixPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWRpcmVjdFJvdXRlTWV0YSwgUm91dGVDb25maWcsIFJvdXRlTWV0YSB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IFJPVVRFX01FVEFfVEFHU19LRVkgfSBmcm9tICcuL21ldGEtdGFncyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1JvdXRlQ29uZmlnKHJvdXRlTWV0YTogUm91dGVNZXRhIHwgdW5kZWZpbmVkKTogUm91dGVDb25maWcge1xuICBpZiAoIXJvdXRlTWV0YSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGlmIChpc1JlZGlyZWN0Um91dGVNZXRhKHJvdXRlTWV0YSkpIHtcbiAgICByZXR1cm4gcm91dGVNZXRhO1xuICB9XG5cbiAgY29uc3QgeyBtZXRhLCAuLi5yb3V0ZUNvbmZpZyB9ID0gcm91dGVNZXRhO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KG1ldGEpKSB7XG4gICAgcm91dGVDb25maWcuZGF0YSA9IHsgLi4ucm91dGVDb25maWcuZGF0YSwgW1JPVVRFX01FVEFfVEFHU19LRVldOiBtZXRhIH07XG4gIH0gZWxzZSBpZiAodHlwZW9mIG1ldGEgPT09ICdmdW5jdGlvbicpIHtcbiAgICByb3V0ZUNvbmZpZy5yZXNvbHZlID0ge1xuICAgICAgLi4ucm91dGVDb25maWcucmVzb2x2ZSxcbiAgICAgIFtST1VURV9NRVRBX1RBR1NfS0VZXTogbWV0YSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHJvdXRlQ29uZmlnO1xufVxuXG5mdW5jdGlvbiBpc1JlZGlyZWN0Um91dGVNZXRhKFxuICByb3V0ZU1ldGE6IFJvdXRlTWV0YVxuKTogcm91dGVNZXRhIGlzIFJlZGlyZWN0Um91dGVNZXRhIHtcbiAgcmV0dXJuICEhcm91dGVNZXRhLnJlZGlyZWN0VG87XG59XG4iXX0=
@@ -1,16 +1,12 @@
1
1
  /// <reference types="vite/client" />
2
+ import { toRouteConfig } from './route-config';
2
3
  const FILES = import.meta.glob([
3
4
  '/app/routes/**/*.ts',
4
5
  '/src/app/routes/**/*.ts',
5
6
  ]);
6
- const CONTENT_FILES_GLOB = import.meta.glob(['/src/app/routes/**/*.md'], { as: 'raw', eager: true });
7
- const CONTENT_FILES = Object.keys(CONTENT_FILES_GLOB).reduce((curr, key) => {
8
- curr = {
9
- ...curr,
10
- [key]: () => Promise.resolve(CONTENT_FILES_GLOB[key]),
11
- };
12
- return curr;
13
- }, {});
7
+ const CONTENT_FILES = import.meta.glob(['/src/app/routes/**/*.md'], {
8
+ as: 'raw',
9
+ });
14
10
  /**
15
11
  * Function used to parse list of files and return
16
12
  * configuration of routes.
@@ -58,7 +54,7 @@ export function getRoutes(files) {
58
54
  {
59
55
  path: '',
60
56
  component: m.default,
61
- ...m.routeMeta,
57
+ ...toRouteConfig(m.routeMeta),
62
58
  },
63
59
  ]),
64
60
  };
@@ -84,7 +80,7 @@ export function getRoutes(files) {
84
80
  {
85
81
  path: '',
86
82
  component: m.default,
87
- ...m.routeMeta,
83
+ ...toRouteConfig(m.routeMeta),
88
84
  },
89
85
  ]),
90
86
  });
@@ -101,7 +97,7 @@ export function getRoutes(files) {
101
97
  {
102
98
  path: '',
103
99
  component: m.default,
104
- ...m.routeMeta,
100
+ ...toRouteConfig(m.routeMeta),
105
101
  },
106
102
  ]),
107
103
  });
@@ -113,7 +109,7 @@ export function getRoutes(files) {
113
109
  {
114
110
  path: '',
115
111
  children: parent._children,
116
- ...m.routeMeta,
112
+ ...toRouteConfig(m.routeMeta),
117
113
  },
118
114
  ];
119
115
  });
@@ -125,4 +121,4 @@ export function getRoutes(files) {
125
121
  return routeConfigs;
126
122
  }
127
123
  export const routes = [...getRoutes({ ...FILES, ...CONTENT_FILES })];
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFxQztBQU1yQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBYztJQUMxQyxxQkFBcUI7SUFDckIseUJBQXlCO0NBQzFCLENBQUMsQ0FBQztBQUVILE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3pDLENBQUMseUJBQXlCLENBQUMsRUFDM0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FDM0IsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUErQyxNQUFNLENBQUMsSUFBSSxDQUMzRSxrQkFBa0IsQ0FDbkIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDckIsSUFBSSxHQUFHO1FBQ0wsR0FBRyxJQUFJO1FBQ1AsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3RELENBQUM7SUFFRixPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVQOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBaUQ7SUFDekUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV0RSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUNoQyxDQUFDLE1BQWUsRUFBRSxHQUFXLEVBQUUsRUFBRTtRQUMvQixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUNoQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN2QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQjtnQkFDNUIsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUU7aUJBQ3JDO2FBQ0YsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVmLE1BQU0sUUFBUSxHQUFHLEdBQUc7YUFDakIsT0FBTyxDQUFDLCtDQUErQyxFQUFFLEVBQUUsQ0FBQzthQUM1RCxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQzthQUM1QixPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQzthQUMvQixLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ1YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5CLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3pDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN2RSxNQUFNLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztZQUN0QixNQUFNLFVBQVUsR0FBRyxJQUFJLEtBQUssSUFBSSxDQUFDO1lBQ2pDLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDOUMsTUFBTSxJQUFJLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQztZQUN6QixNQUFNLElBQUksR0FBRyxLQUFLLEtBQUssUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDbEUsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDNUIsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7WUFFdkUsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckMsSUFBSSxPQUFPO29CQUFFLE9BQU8sTUFBTSxDQUFDO2dCQUUzQixNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztnQkFDbkMsSUFBSSxJQUFJLEVBQUU7b0JBQ1IsTUFBTSxRQUFRLEdBQUc7d0JBQ2YsSUFBSTt3QkFDSixTQUFTO3dCQUNULE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUU7d0JBQ3ZCLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FDakIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQzs0QkFDbkI7Z0NBQ0UsSUFBSSxFQUFFLEVBQUU7Z0NBQ1IsU0FBUyxFQUFFLENBQUMsQ0FBQyxPQUFPO2dDQUNwQixHQUFHLENBQUMsQ0FBQyxTQUFTOzZCQUNmO3lCQUNGLENBQUM7cUJBQ0wsQ0FBQztvQkFFRixNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFpQixDQUFDLENBQUM7b0JBQ3BDLE9BQU8sTUFBTSxDQUFDO2lCQUNmO2FBQ0Y7WUFFRCxJQUFJLElBQUksSUFBSSxJQUFJLEVBQUU7Z0JBQ2hCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNqRCxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO2dCQUVqRSxJQUFJLEtBQUssRUFBRTtvQkFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRTt3QkFDcEIsS0FBSyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7cUJBQ3RCO29CQUVELEtBQUssQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO2lCQUM3QjtxQkFBTTtvQkFDTCxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDaEIsSUFBSTt3QkFDSixTQUFTO3dCQUNULE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLEVBQUU7d0JBQ3ZCLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FDakIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQzs0QkFDbkI7Z0NBQ0UsSUFBSSxFQUFFLEVBQUU7Z0NBQ1IsU0FBUyxFQUFFLENBQUMsQ0FBQyxPQUFPO2dDQUNwQixHQUFHLENBQUMsQ0FBQyxTQUFTOzZCQUNmO3lCQUNGLENBQUM7cUJBQ0wsQ0FBQyxDQUFDO2lCQUNKO2dCQUVELE9BQU8sQ0FDTCxLQUFLO29CQUNKLE9BQU8sRUFBRSxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQVcsQ0FDcEUsQ0FBQzthQUNIO1lBRUQsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMxQixJQUFJO29CQUNKLFNBQVM7b0JBQ1QsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRTtvQkFDdkIsWUFBWSxFQUFFLEdBQUcsRUFBRSxDQUNqQixNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO3dCQUNuQjs0QkFDRSxJQUFJLEVBQUUsRUFBRTs0QkFDUixTQUFTLEVBQUUsQ0FBQyxDQUFDLE9BQU87NEJBQ3BCLEdBQUcsQ0FBQyxDQUFDLFNBQVM7eUJBQ2Y7cUJBQ0YsQ0FBQztpQkFDTCxDQUFDLENBQUM7YUFDSjtZQUVELElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtnQkFDcEIsTUFBTSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUUsQ0FDMUIsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2RCxNQUFNLENBQUMsWUFBWSxHQUFHLEdBQUcsRUFBRSxDQUN6QixNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBYyxFQUFFLEVBQUU7b0JBQ3ZDLE9BQU87d0JBQ0w7NEJBQ0UsSUFBSSxFQUFFLEVBQUU7NEJBQ1IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTOzRCQUMxQixHQUFHLENBQUMsQ0FBQyxTQUFTO3lCQUNmO3FCQUNGLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQUM7YUFDTjtZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsRUFBRSxFQUF1RSxDQUFDLENBQUM7UUFFNUUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxFQUNELEVBQUUsQ0FDSCxDQUFDO0lBRUYsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBWSxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSB0eXBlcz1cInZpdGUvY2xpZW50XCIgLz5cblxuaW1wb3J0IHR5cGUgeyBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IFJvdXRlRXhwb3J0IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5jb25zdCBGSUxFUyA9IGltcG9ydC5tZXRhLmdsb2I8Um91dGVFeHBvcnQ+KFtcbiAgJy9hcHAvcm91dGVzLyoqLyoudHMnLFxuICAnL3NyYy9hcHAvcm91dGVzLyoqLyoudHMnLFxuXSk7XG5cbmNvbnN0IENPTlRFTlRfRklMRVNfR0xPQiA9IGltcG9ydC5tZXRhLmdsb2I8Um91dGVFeHBvcnQ+KFxuICBbJy9zcmMvYXBwL3JvdXRlcy8qKi8qLm1kJ10sXG4gIHsgYXM6ICdyYXcnLCBlYWdlcjogdHJ1ZSB9XG4pO1xuXG5jb25zdCBDT05URU5UX0ZJTEVTOiBSZWNvcmQ8c3RyaW5nLCAoKSA9PiBQcm9taXNlPFJvdXRlRXhwb3J0Pj4gPSBPYmplY3Qua2V5cyhcbiAgQ09OVEVOVF9GSUxFU19HTE9CXG4pLnJlZHVjZSgoY3Vyciwga2V5KSA9PiB7XG4gIGN1cnIgPSB7XG4gICAgLi4uY3VycixcbiAgICBba2V5XTogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKENPTlRFTlRfRklMRVNfR0xPQltrZXldKSxcbiAgfTtcblxuICByZXR1cm4gY3Vycjtcbn0sIHt9KTtcblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIHRvIHBhcnNlIGxpc3Qgb2YgZmlsZXMgYW5kIHJldHVyblxuICogY29uZmlndXJhdGlvbiBvZiByb3V0ZXMuXG4gKlxuICogQHBhcmFtIGZpbGVzXG4gKiBAcmV0dXJucyBBcnJheSBvZiByb3V0ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvdXRlcyhmaWxlczogUmVjb3JkPHN0cmluZywgKCkgPT4gUHJvbWlzZTxSb3V0ZUV4cG9ydD4+KSB7XG4gIGNvbnN0IFJPVVRFUyA9IE9iamVjdC5rZXlzKGZpbGVzKS5zb3J0KChhLCBiKSA9PiBhLmxlbmd0aCAtIGIubGVuZ3RoKTtcblxuICBjb25zdCByb3V0ZUNvbmZpZ3MgPSBST1VURVMucmVkdWNlPFJvdXRlW10+KFxuICAgIChyb3V0ZXM6IFJvdXRlW10sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBtb2R1bGUgPSBrZXkuZW5kc1dpdGgoJy5tZCcpXG4gICAgICAgID8gKCkgPT5cbiAgICAgICAgICAgIGltcG9ydCgnQGFuYWxvZ2pzL2NvbnRlbnQnKS50aGVuKChtKSA9PiAoe1xuICAgICAgICAgICAgICBkZWZhdWx0OiBtLk1hcmtkb3duQ29tcG9uZW50LFxuICAgICAgICAgICAgICByb3V0ZU1ldGE6IHtcbiAgICAgICAgICAgICAgICBkYXRhOiB7IF9hbmFsb2dDb250ZW50OiBmaWxlc1trZXldIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgOiBmaWxlc1trZXldO1xuXG4gICAgICBjb25zdCBzZWdtZW50cyA9IGtleVxuICAgICAgICAucmVwbGFjZSgvXlxcLyguKj8pXFwvcm91dGVzfFxcL2FwcFxcL3JvdXRlc3xcXC4oanN8dHN8bWQpJC9nLCAnJylcbiAgICAgICAgLnJlcGxhY2UoL1xcW1xcLnszfS4rXFxdLywgJyoqJylcbiAgICAgICAgLnJlcGxhY2UoL1xcWyhbXlxcXV0rKVxcXS9nLCAnOiQxJylcbiAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKTtcblxuICAgICAgc2VnbWVudHMucmVkdWNlKChwYXJlbnQsIHNlZ21lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBzZWdtZW50LnJlcGxhY2UoL2luZGV4fF5cXCguKj9cXCkkL2csICcnKS5yZXBsYWNlKCcuJywgJy8nKTtcbiAgICAgICAgY29uc3QgaXNJbmRleCA9ICFwYXRoO1xuICAgICAgICBjb25zdCBpc0NhdGNoYWxsID0gcGF0aCA9PT0gJyoqJztcbiAgICAgICAgY29uc3QgcGF0aE1hdGNoID0gaXNJbmRleCA/ICdmdWxsJyA6ICdwcmVmaXgnO1xuICAgICAgICBjb25zdCByb290ID0gaW5kZXggPT09IDA7XG4gICAgICAgIGNvbnN0IGxlYWYgPSBpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoIC0gMSAmJiBzZWdtZW50cy5sZW5ndGggPiAxO1xuICAgICAgICBjb25zdCBub2RlID0gIXJvb3QgJiYgIWxlYWY7XG4gICAgICAgIGNvbnN0IGluc2VydCA9IC9eXFx3fFxcLy8udGVzdChwYXRoKSAmJiAhaXNDYXRjaGFsbCA/ICd1bnNoaWZ0JyA6ICdwdXNoJztcblxuICAgICAgICBpZiAocm9vdCkge1xuICAgICAgICAgIGNvbnN0IGR5bmFtaWMgPSBwYXRoLnN0YXJ0c1dpdGgoJzonKTtcbiAgICAgICAgICBpZiAoZHluYW1pYykgcmV0dXJuIHBhcmVudDtcblxuICAgICAgICAgIGNvbnN0IGxhc3QgPSBzZWdtZW50cy5sZW5ndGggPT09IDE7XG4gICAgICAgICAgaWYgKGxhc3QpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1JvdXRlID0ge1xuICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICBwYXRoTWF0Y2gsXG4gICAgICAgICAgICAgIF9tb2R1bGU6ICgpID0+IG1vZHVsZSgpLFxuICAgICAgICAgICAgICBsb2FkQ2hpbGRyZW46ICgpID0+XG4gICAgICAgICAgICAgICAgbW9kdWxlKCkudGhlbigobSkgPT4gW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBtLmRlZmF1bHQsXG4gICAgICAgICAgICAgICAgICAgIC4uLm0ucm91dGVNZXRhLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJvdXRlcz8uW2luc2VydF0obmV3Um91dGUgYXMgUm91dGUpO1xuICAgICAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocm9vdCB8fCBub2RlKSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudCA9IHJvb3QgPyByb3V0ZXMgOiBwYXJlbnQuX2NoaWxkcmVuO1xuICAgICAgICAgIGNvbnN0IGZvdW5kID0gY3VycmVudD8uZmluZCgocm91dGU6IGFueSkgPT4gcm91dGUucGF0aCA9PT0gcGF0aCk7XG5cbiAgICAgICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgICAgIGlmICghZm91bmQuX2NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgIGZvdW5kLl9jaGlsZHJlbiA9IFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3VuZC5wYXRoTWF0Y2ggPSBwYXRoTWF0Y2g7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnQ/LltpbnNlcnRdKHtcbiAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgcGF0aE1hdGNoLFxuICAgICAgICAgICAgICBfbW9kdWxlOiAoKSA9PiBtb2R1bGUoKSxcbiAgICAgICAgICAgICAgbG9hZENoaWxkcmVuOiAoKSA9PlxuICAgICAgICAgICAgICAgIG1vZHVsZSgpLnRoZW4oKG0pID0+IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogJycsXG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogbS5kZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgICAuLi5tLnJvdXRlTWV0YSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgZm91bmQgfHxcbiAgICAgICAgICAgIChjdXJyZW50Py5baW5zZXJ0ID09PSAndW5zaGlmdCcgPyAwIDogY3VycmVudC5sZW5ndGggLSAxXSBhcyBSb3V0ZSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxlYWYpIHtcbiAgICAgICAgICBwYXJlbnQ/Ll9jaGlsZHJlbj8uW2luc2VydF0oe1xuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIHBhdGhNYXRjaCxcbiAgICAgICAgICAgIF9tb2R1bGU6ICgpID0+IG1vZHVsZSgpLFxuICAgICAgICAgICAgbG9hZENoaWxkcmVuOiAoKSA9PlxuICAgICAgICAgICAgICBtb2R1bGUoKS50aGVuKChtKSA9PiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgcGF0aDogJycsXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IG0uZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgIC4uLm0ucm91dGVNZXRhLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcmVudC5fY2hpbGRyZW4pIHtcbiAgICAgICAgICBwYXJlbnQubG9hZENvbXBvbmVudCA9ICgpID0+XG4gICAgICAgICAgICBwYXJlbnQuX21vZHVsZSgpLnRoZW4oKG06IFJvdXRlRXhwb3J0KSA9PiBtLmRlZmF1bHQpO1xuICAgICAgICAgIHBhcmVudC5sb2FkQ2hpbGRyZW4gPSAoKSA9PlxuICAgICAgICAgICAgcGFyZW50Ll9tb2R1bGUoKS50aGVuKChtOiBSb3V0ZUV4cG9ydCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHBhcmVudC5fY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgICAuLi5tLnJvdXRlTWV0YSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgICAgfSwge30gYXMgUm91dGUgJiB7IF9tb2R1bGU6ICgpID0+IFByb21pc2U8Um91dGVFeHBvcnQ+OyBfY2hpbGRyZW46IGFueVtdIH0pO1xuXG4gICAgICByZXR1cm4gcm91dGVzO1xuICAgIH0sXG4gICAgW11cbiAgKTtcblxuICByZXR1cm4gcm91dGVDb25maWdzO1xufVxuXG5leHBvcnQgY29uc3Qgcm91dGVzOiBSb3V0ZVtdID0gWy4uLmdldFJvdXRlcyh7IC4uLkZJTEVTLCAuLi5DT05URU5UX0ZJTEVTIH0pXTtcbiJdfQ==
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFxQztBQUtyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWM7SUFDMUMscUJBQXFCO0lBQ3JCLHlCQUF5QjtDQUMxQixDQUFDLENBQUM7QUFFSCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBUyxDQUFDLHlCQUF5QixDQUFDLEVBQUU7SUFDMUUsRUFBRSxFQUFFLEtBQUs7Q0FDVixDQUFDLENBQUM7QUFFSDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUN2QixLQUEwRDtJQUUxRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXRFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQ2hDLENBQUMsTUFBZSxFQUFFLEdBQVcsRUFBRSxFQUFFO1FBQy9CLE1BQU0sTUFBTSxHQUErQixHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUM1RCxDQUFDLENBQUMsR0FBRyxFQUFFLENBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN2QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQjtnQkFDNUIsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsR0FB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QUMxQixNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sQ0FBQyxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQ3pCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFjLEVBQUUsRUFBRTtvQkFDdkMsT0FBTzt3QkFDTDs0QkFDRSxJQUFJLEVBQUUsRUFBRTs0QkFDUixRQUFRLEVBQUUsTUFBTSxDQUFDLFNBQVM7NEJBQzFCLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFrQyxDQUFDO3lCQUN2RDtxQkFDRixDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO2FBQ047WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLEVBQUUsRUFBdUUsQ0FBQyxDQUFDO1FBRTVFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsRUFDRCxFQUFFLENBQ0gsQ0FBQztJQUVGLE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQVksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ2aXRlL2NsaWVudFwiIC8+XG5cbmltcG9ydCB0eXBlIHsgUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBSb3V0ZUV4cG9ydCwgUm91dGVNZXRhIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgdG9Sb3V0ZUNvbmZpZyB9IGZyb20gJy4vcm91dGUtY29uZmlnJztcblxuY29uc3QgRklMRVMgPSBpbXBvcnQubWV0YS5nbG9iPFJvdXRlRXhwb3J0PihbXG4gICcvYXBwL3JvdXRlcy8qKi8qLnRzJyxcbiAgJy9zcmMvYXBwL3JvdXRlcy8qKi8qLnRzJyxcbl0pO1xuXG5jb25zdCBDT05URU5UX0ZJTEVTID0gaW1wb3J0Lm1ldGEuZ2xvYjxzdHJpbmc+KFsnL3NyYy9hcHAvcm91dGVzLyoqLyoubWQnXSwge1xuICBhczogJ3JhdycsXG59KTtcblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIHRvIHBhcnNlIGxpc3Qgb2YgZmlsZXMgYW5kIHJldHVyblxuICogY29uZmlndXJhdGlvbiBvZiByb3V0ZXMuXG4gKlxuICogQHBhcmFtIGZpbGVzXG4gKiBAcmV0dXJucyBBcnJheSBvZiByb3V0ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvdXRlcyhcbiAgZmlsZXM6IFJlY29yZDxzdHJpbmcsICgpID0+IFByb21pc2U8Um91dGVFeHBvcnQgfCBzdHJpbmc+PlxuKSB7XG4gIGNvbnN0IFJPVVRFUyA9IE9iamVjdC5rZXlzKGZpbGVzKS5zb3J0KChhLCBiKSA9PiBhLmxlbmd0aCAtIGIubGVuZ3RoKTtcblxuICBjb25zdCByb3V0ZUNvbmZpZ3MgPSBST1VURVMucmVkdWNlPFJvdXRlW10+KFxuICAgIChyb3V0ZXM6IFJvdXRlW10sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBtb2R1bGU6ICgpID0+IFByb21pc2U8Um91dGVFeHBvcnQ+ID0ga2V5LmVuZHNXaXRoKCcubWQnKVxuICAgICAgICA/ICgpID0+XG4gICAgICAgICAgICBpbXBvcnQoJ0BhbmFsb2dqcy9jb250ZW50JykudGhlbigobSkgPT4gKHtcbiAgICAgICAgICAgICAgZGVmYXVsdDogbS5NYXJrZG93bkNvbXBvbmVudCxcbiAgICAgICAgICAgICAgcm91dGVNZXRhOiB7XG4gICAgICAgICAgICAgICAgZGF0YTogeyBfYW5hbG9nQ29udGVudDogZmlsZXNba2V5XSB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSkpXG4gICAgICAgIDogKGZpbGVzW2tleV0gYXMgKCkgPT4gUHJvbWlzZTxSb3V0ZUV4cG9ydD4pO1xuXG4gICAgICBjb25zdCBzZWdtZW50cyA9IGtleVxuICAgICAgICAucmVwbGFjZSgvXlxcLyguKj8pXFwvcm91dGVzfFxcL2FwcFxcL3JvdXRlc3xcXC4oanN8dHN8bWQpJC9nLCAnJylcbiAgICAgICAgLnJlcGxhY2UoL1xcW1xcLnszfS4rXFxdLywgJyoqJylcbiAgICAgICAgLnJlcGxhY2UoL1xcWyhbXlxcXV0rKVxcXS9nLCAnOiQxJylcbiAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKTtcblxuICAgICAgc2VnbWVudHMucmVkdWNlKChwYXJlbnQsIHNlZ21lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBzZWdtZW50LnJlcGxhY2UoL2luZGV4fF5cXCguKj9cXCkkL2csICcnKS5yZXBsYWNlKCcuJywgJy8nKTtcbiAgICAgICAgY29uc3QgaXNJbmRleCA9ICFwYXRoO1xuICAgICAgICBjb25zdCBpc0NhdGNoYWxsID0gcGF0aCA9PT0gJyoqJztcbiAgICAgICAgY29uc3QgcGF0aE1hdGNoID0gaXNJbmRleCA/ICdmdWxsJyA6ICdwcmVmaXgnO1xuICAgICAgICBjb25zdCByb290ID0gaW5kZXggPT09IDA7XG4gICAgICAgIGNvbnN0IGxlYWYgPSBpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoIC0gMSAmJiBzZWdtZW50cy5sZW5ndGggPiAxO1xuICAgICAgICBjb25zdCBub2RlID0gIXJvb3QgJiYgIWxlYWY7XG4gICAgICAgIGNvbnN0IGluc2VydCA9IC9eXFx3fFxcLy8udGVzdChwYXRoKSAmJiAhaXNDYXRjaGFsbCA/ICd1bnNoaWZ0JyA6ICdwdXNoJztcblxuICAgICAgICBpZiAocm9vdCkge1xuICAgICAgICAgIGNvbnN0IGR5bmFtaWMgPSBwYXRoLnN0YXJ0c1dpdGgoJzonKTtcbiAgICAgICAgICBpZiAoZHluYW1pYykgcmV0dXJuIHBhcmVudDtcblxuICAgICAgICAgIGNvbnN0IGxhc3QgPSBzZWdtZW50cy5sZW5ndGggPT09IDE7XG4gICAgICAgICAgaWYgKGxhc3QpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1JvdXRlID0ge1xuICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICBwYXRoTWF0Y2gsXG4gICAgICAgICAgICAgIF9tb2R1bGU6ICgpID0+IG1vZHVsZSgpLFxuICAgICAgICAgICAgICBsb2FkQ2hpbGRyZW46ICgpID0+XG4gICAgICAgICAgICAgICAgbW9kdWxlKCkudGhlbigobSkgPT4gW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBtLmRlZmF1bHQsXG4gICAgICAgICAgICAgICAgICAgIC4uLnRvUm91dGVDb25maWcobS5yb3V0ZU1ldGEgYXMgUm91dGVNZXRhIHwgdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByb3V0ZXM/LltpbnNlcnRdKG5ld1JvdXRlIGFzIFJvdXRlKTtcbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJvb3QgfHwgbm9kZSkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSByb290ID8gcm91dGVzIDogcGFyZW50Ll9jaGlsZHJlbjtcbiAgICAgICAgICBjb25zdCBmb3VuZCA9IGN1cnJlbnQ/LmZpbmQoKHJvdXRlOiBhbnkpID0+IHJvdXRlLnBhdGggPT09IHBhdGgpO1xuXG4gICAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgICBpZiAoIWZvdW5kLl9jaGlsZHJlbikge1xuICAgICAgICAgICAgICBmb3VuZC5fY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm91bmQucGF0aE1hdGNoID0gcGF0aE1hdGNoO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50Py5baW5zZXJ0XSh7XG4gICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgIHBhdGhNYXRjaCxcbiAgICAgICAgICAgICAgX21vZHVsZTogKCkgPT4gbW9kdWxlKCksXG4gICAgICAgICAgICAgIGxvYWRDaGlsZHJlbjogKCkgPT5cbiAgICAgICAgICAgICAgICBtb2R1bGUoKS50aGVuKChtKSA9PiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IG0uZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgICAgLi4udG9Sb3V0ZUNvbmZpZyhtLnJvdXRlTWV0YSBhcyBSb3V0ZU1ldGEgfCB1bmRlZmluZWQpLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBmb3VuZCB8fFxuICAgICAgICAgICAgKGN1cnJlbnQ/LltpbnNlcnQgPT09ICd1bnNoaWZ0JyA/IDAgOiBjdXJyZW50Lmxlbmd0aCAtIDFdIGFzIFJvdXRlKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGVhZikge1xuICAgICAgICAgIHBhcmVudD8uX2NoaWxkcmVuPy5baW5zZXJ0XSh7XG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgcGF0aE1hdGNoLFxuICAgICAgICAgICAgX21vZHVsZTogKCkgPT4gbW9kdWxlKCksXG4gICAgICAgICAgICBsb2FkQ2hpbGRyZW46ICgpID0+XG4gICAgICAgICAgICAgIG1vZHVsZSgpLnRoZW4oKG0pID0+IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogbS5kZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgLi4udG9Sb3V0ZUNvbmZpZyhtLnJvdXRlTWV0YSBhcyBSb3V0ZU1ldGEgfCB1bmRlZmluZWQpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcmVudC5fY2hpbGRyZW4pIHtcbiAgICAgICAgICBwYXJlbnQubG9hZENvbXBvbmVudCA9ICgpID0+XG4gICAgICAgICAgICBwYXJlbnQuX21vZHVsZSgpLnRoZW4oKG06IFJvdXRlRXhwb3J0KSA9PiBtLmRlZmF1bHQpO1xuICAgICAgICAgIHBhcmVudC5sb2FkQ2hpbGRyZW4gPSAoKSA9PlxuICAgICAgICAgICAgcGFyZW50Ll9tb2R1bGUoKS50aGVuKChtOiBSb3V0ZUV4cG9ydCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHBhcmVudC5fY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgICAuLi50b1JvdXRlQ29uZmlnKG0ucm91dGVNZXRhIGFzIFJvdXRlTWV0YSB8IHVuZGVmaW5lZCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgIH0sIHt9IGFzIFJvdXRlICYgeyBfbW9kdWxlOiAoKSA9PiBQcm9taXNlPFJvdXRlRXhwb3J0PjsgX2NoaWxkcmVuOiBhbnlbXSB9KTtcblxuICAgICAgcmV0dXJuIHJvdXRlcztcbiAgICB9LFxuICAgIFtdXG4gICk7XG5cbiAgcmV0dXJuIHJvdXRlQ29uZmlncztcbn1cblxuZXhwb3J0IGNvbnN0IHJvdXRlczogUm91dGVbXSA9IFsuLi5nZXRSb3V0ZXMoeyAuLi5GSUxFUywgLi4uQ09OVEVOVF9GSUxFUyB9KV07XG4iXX0=
@@ -1,16 +1,84 @@
1
- import { inject } from '@angular/core';
2
- import { Router, ActivatedRoute, provideRouter } from '@angular/router';
1
+ import { __rest } from 'tslib';
2
+ import { inject, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER } from '@angular/core';
3
+ import { Meta } from '@angular/platform-browser';
4
+ import { Router, NavigationEnd, ActivatedRoute, provideRouter } from '@angular/router';
5
+ import { filter } from 'rxjs/operators';
6
+
7
+ const ROUTE_META_TAGS_KEY = Symbol('@analogjs/router Route Meta Tags Key');
8
+ const CHARSET_KEY = 'charset';
9
+ const HTTP_EQUIV_KEY = 'httpEquiv';
10
+ // httpEquiv selector key needs to be in kebab case format
11
+ const HTTP_EQUIV_SELECTOR_KEY = 'http-equiv';
12
+ const NAME_KEY = 'name';
13
+ const PROPERTY_KEY = 'property';
14
+ const CONTENT_KEY = 'content';
15
+ function updateMetaTagsOnRouteChange() {
16
+ const router = inject(Router);
17
+ const metaService = inject(Meta);
18
+ router.events
19
+ .pipe(filter((event) => event instanceof NavigationEnd))
20
+ .subscribe(() => {
21
+ const metaTagMap = getMetaTagMap(router.routerState.snapshot.root);
22
+ for (const metaTagSelector in metaTagMap) {
23
+ const metaTag = metaTagMap[metaTagSelector];
24
+ metaService.updateTag(metaTag, metaTagSelector);
25
+ }
26
+ });
27
+ }
28
+ function getMetaTagMap(route) {
29
+ var _a;
30
+ const metaTagMap = {};
31
+ let currentRoute = route;
32
+ while (currentRoute) {
33
+ const metaTags = (_a = currentRoute.data[ROUTE_META_TAGS_KEY]) !== null && _a !== void 0 ? _a : [];
34
+ for (const metaTag of metaTags) {
35
+ metaTagMap[getMetaTagSelector(metaTag)] = metaTag;
36
+ }
37
+ currentRoute = currentRoute.firstChild;
38
+ }
39
+ return metaTagMap;
40
+ }
41
+ function getMetaTagSelector(metaTag) {
42
+ if (metaTag.name) {
43
+ return `${NAME_KEY}="${metaTag.name}"`;
44
+ }
45
+ if (metaTag.property) {
46
+ return `${PROPERTY_KEY}="${metaTag.property}"`;
47
+ }
48
+ if (metaTag.httpEquiv) {
49
+ return `${HTTP_EQUIV_SELECTOR_KEY}="${metaTag.httpEquiv}"`;
50
+ }
51
+ return CHARSET_KEY;
52
+ }
53
+
54
+ function toRouteConfig(routeMeta) {
55
+ if (!routeMeta) {
56
+ return {};
57
+ }
58
+ if (isRedirectRouteMeta(routeMeta)) {
59
+ return routeMeta;
60
+ }
61
+ const { meta } = routeMeta, routeConfig = __rest(routeMeta, ["meta"]);
62
+ if (Array.isArray(meta)) {
63
+ routeConfig.data = Object.assign(Object.assign({}, routeConfig.data), { [ROUTE_META_TAGS_KEY]: meta });
64
+ }
65
+ else if (typeof meta === 'function') {
66
+ routeConfig.resolve = Object.assign(Object.assign({}, routeConfig.resolve), { [ROUTE_META_TAGS_KEY]: meta });
67
+ }
68
+ return routeConfig;
69
+ }
70
+ function isRedirectRouteMeta(routeMeta) {
71
+ return !!routeMeta.redirectTo;
72
+ }
3
73
 
4
74
  /// <reference types="vite/client" />
5
75
  const FILES = import.meta.glob([
6
76
  '/app/routes/**/*.ts',
7
77
  '/src/app/routes/**/*.ts',
8
78
  ]);
9
- const CONTENT_FILES_GLOB = import.meta.glob(['/src/app/routes/**/*.md'], { as: 'raw', eager: true });
10
- const CONTENT_FILES = Object.keys(CONTENT_FILES_GLOB).reduce((curr, key) => {
11
- curr = Object.assign(Object.assign({}, curr), { [key]: () => Promise.resolve(CONTENT_FILES_GLOB[key]) });
12
- return curr;
13
- }, {});
79
+ const CONTENT_FILES = import.meta.glob(['/src/app/routes/**/*.md'], {
80
+ as: 'raw',
81
+ });
14
82
  /**
15
83
  * Function used to parse list of files and return
16
84
  * configuration of routes.
@@ -56,7 +124,7 @@ function getRoutes(files) {
56
124
  pathMatch,
57
125
  _module: () => module(),
58
126
  loadChildren: () => module().then((m) => [
59
- Object.assign({ path: '', component: m.default }, m.routeMeta),
127
+ Object.assign({ path: '', component: m.default }, toRouteConfig(m.routeMeta)),
60
128
  ]),
61
129
  };
62
130
  routes === null || routes === void 0 ? void 0 : routes[insert](newRoute);
@@ -78,7 +146,7 @@ function getRoutes(files) {
78
146
  pathMatch,
79
147
  _module: () => module(),
80
148
  loadChildren: () => module().then((m) => [
81
- Object.assign({ path: '', component: m.default }, m.routeMeta),
149
+ Object.assign({ path: '', component: m.default }, toRouteConfig(m.routeMeta)),
82
150
  ]),
83
151
  });
84
152
  }
@@ -91,7 +159,7 @@ function getRoutes(files) {
91
159
  pathMatch,
92
160
  _module: () => module(),
93
161
  loadChildren: () => module().then((m) => [
94
- Object.assign({ path: '', component: m.default }, m.routeMeta),
162
+ Object.assign({ path: '', component: m.default }, toRouteConfig(m.routeMeta)),
95
163
  ]),
96
164
  });
97
165
  }
@@ -99,7 +167,7 @@ function getRoutes(files) {
99
167
  parent.loadComponent = () => parent._module().then((m) => m.default);
100
168
  parent.loadChildren = () => parent._module().then((m) => {
101
169
  return [
102
- Object.assign({ path: '', children: parent._children }, m.routeMeta),
170
+ Object.assign({ path: '', children: parent._children }, toRouteConfig(m.routeMeta)),
103
171
  ];
104
172
  });
105
173
  }
@@ -167,9 +235,18 @@ const injectActivatedRoute = () => {
167
235
  * @param features
168
236
  * @returns Providers and features to configure the router with routes
169
237
  */
170
- const provideFileRouter = (...features) => {
171
- return provideRouter(routes, ...features);
172
- };
238
+ function provideFileRouter(...features) {
239
+ return makeEnvironmentProviders([
240
+ // TODO: remove type casting after Angular >=15.1.1 upgrade
241
+ // https://github.com/angular/angular/pull/48720
242
+ provideRouter(routes, ...features).ɵproviders,
243
+ {
244
+ provide: ENVIRONMENT_INITIALIZER,
245
+ multi: true,
246
+ useValue: () => updateMetaTagsOnRouteChange(),
247
+ },
248
+ ]);
249
+ }
173
250
 
174
251
  /**
175
252
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"analogjs-router.mjs","sources":["../esm2020/lib/routes.mjs","../esm2020/lib/define-route.mjs","../esm2020/lib/provide-file-routes.mjs","../esm2020/analogjs-router.mjs"],"sourcesContent":["/// <reference types=\"vite/client\" />\nconst FILES = import.meta.glob([\n '/app/routes/**/*.ts',\n '/src/app/routes/**/*.ts',\n]);\nconst CONTENT_FILES_GLOB = import.meta.glob(['/src/app/routes/**/*.md'], { as: 'raw', eager: true });\nconst CONTENT_FILES = Object.keys(CONTENT_FILES_GLOB).reduce((curr, key) => {\n curr = {\n ...curr,\n [key]: () => Promise.resolve(CONTENT_FILES_GLOB[key]),\n };\n return curr;\n}, {});\n/**\n * Function used to parse list of files and return\n * configuration of routes.\n *\n * @param files\n * @returns Array of routes\n */\nexport function getRoutes(files) {\n const ROUTES = Object.keys(files).sort((a, b) => a.length - b.length);\n const routeConfigs = ROUTES.reduce((routes, key) => {\n const module = key.endsWith('.md')\n ? () => import('@analogjs/content').then((m) => ({\n default: m.MarkdownComponent,\n routeMeta: {\n data: { _analogContent: files[key] },\n },\n }))\n : files[key];\n const segments = key\n .replace(/^\\/(.*?)\\/routes|\\/app\\/routes|\\.(js|ts|md)$/g, '')\n .replace(/\\[\\.{3}.+\\]/, '**')\n .replace(/\\[([^\\]]+)\\]/g, ':$1')\n .split('/')\n .filter(Boolean);\n segments.reduce((parent, segment, index) => {\n const path = segment.replace(/index|^\\(.*?\\)$/g, '').replace('.', '/');\n const isIndex = !path;\n const isCatchall = path === '**';\n const pathMatch = isIndex ? 'full' : 'prefix';\n const root = index === 0;\n const leaf = index === segments.length - 1 && segments.length > 1;\n const node = !root && !leaf;\n const insert = /^\\w|\\//.test(path) && !isCatchall ? 'unshift' : 'push';\n if (root) {\n const dynamic = path.startsWith(':');\n if (dynamic)\n return parent;\n const last = segments.length === 1;\n if (last) {\n const newRoute = {\n path,\n pathMatch,\n _module: () => module(),\n loadChildren: () => module().then((m) => [\n {\n path: '',\n component: m.default,\n ...m.routeMeta,\n },\n ]),\n };\n routes?.[insert](newRoute);\n return parent;\n }\n }\n if (root || node) {\n const current = root ? routes : parent._children;\n const found = current?.find((route) => route.path === path);\n if (found) {\n if (!found._children) {\n found._children = [];\n }\n found.pathMatch = pathMatch;\n }\n else {\n current?.[insert]({\n path,\n pathMatch,\n _module: () => module(),\n loadChildren: () => module().then((m) => [\n {\n path: '',\n component: m.default,\n ...m.routeMeta,\n },\n ]),\n });\n }\n return (found ||\n current?.[insert === 'unshift' ? 0 : current.length - 1]);\n }\n if (leaf) {\n parent?._children?.[insert]({\n path,\n pathMatch,\n _module: () => module(),\n loadChildren: () => module().then((m) => [\n {\n path: '',\n component: m.default,\n ...m.routeMeta,\n },\n ]),\n });\n }\n if (parent._children) {\n parent.loadComponent = () => parent._module().then((m) => m.default);\n parent.loadChildren = () => parent._module().then((m) => {\n return [\n {\n path: '',\n children: parent._children,\n ...m.routeMeta,\n },\n ];\n });\n }\n return parent;\n }, {});\n return routes;\n }, []);\n return routeConfigs;\n}\nexport const routes = [...getRoutes({ ...FILES, ...CONTENT_FILES })];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFxQztBQU1yQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBYztJQUMxQyxxQkFBcUI7SUFDckIseUJBQXlCO0NBQzFCLENBQUMsQ0FBQztBQUVILE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3pDLENBQUMseUJBQXlCLENBQUMsRUFDM0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FDM0IsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUErQyxNQUFNLENBQUMsSUFBSSxDQUMzRSxrQkFBa0IsQ0FDbkIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDckIsSUFBSSxHQUFHO1FBQ0wsR0FBRyxJQUFJO1FBQ1AsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3RELENBQUM7SUFFRixPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVQOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBaUQ7SUFDekUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV0RSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUNoQyxDQUFDLE1BQWUsRUFBRSxH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QUUsRUFBRSxDQUFDO3dCQUNuQjs0QkFDRSxJQUFJLEVBQUUsRUFBRTs0QkFDUixTQUFTLEVBQUUsQ0FBQyxDQUFDLE9BQU87NEJBQ3BCLEdBQUcsQ0FBQyxDQUFDLFNBQVM7eUJBQ2Y7cUJBQ0YsQ0FBQztpQkFDTCxDQUFDLENBQUM7YUFDSjtZQUVELElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtnQkFDcEIsTUFBTSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUUsQ0FDMUIsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2RCxNQUFNLENBQUMsWUFBWSxHQUFHLEdBQUcsRUFBRSxDQUN6QixNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBYyxFQUFFLEVBQUU7b0JBQ3ZDLE9BQU87d0JBQ0w7NEJBQ0UsSUFBSSxFQUFFLEVBQUU7NEJBQ1IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTOzRCQUMxQixHQUFHLENBQUMsQ0FBQyxTQUFTO3lCQUNmO3FCQUNGLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQUM7YUFDTjtZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsRUFBRSxFQUF1RSxDQUFDLENBQUM7UUFFNUUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxFQUNELEVBQUUsQ0FDSCxDQUFDO0lBRUYsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBWSxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSB0eXBlcz1cInZpdGUvY2xpZW50XCIgLz5cblxuaW1wb3J0IHR5cGUgeyBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IFJvdXRlRXhwb3J0IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5jb25zdCBGSUxFUyA9IGltcG9ydC5tZXRhLmdsb2I8Um91dGVFeHBvcnQ+KFtcbiAgJy9hcHAvcm91dGVzLyoqLyoudHMnLFxuICAnL3NyYy9hcHAvcm91dGVzLyoqLyoudHMnLFxuXSk7XG5cbmNvbnN0IENPTlRFTlRfRklMRVNfR0xPQiA9IGltcG9ydC5tZXRhLmdsb2I8Um91dGVFeHBvcnQ+KFxuICBbJy9zcmMvYXBwL3JvdXRlcy8qKi8qLm1kJ10sXG4gIHsgYXM6ICdyYXcnLCBlYWdlcjogdHJ1ZSB9XG4pO1xuXG5jb25zdCBDT05URU5UX0ZJTEVTOiBSZWNvcmQ8c3RyaW5nLCAoKSA9PiBQcm9taXNlPFJvdXRlRXhwb3J0Pj4gPSBPYmplY3Qua2V5cyhcbiAgQ09OVEVOVF9GSUxFU19HTE9CXG4pLnJlZHVjZSgoY3Vyciwga2V5KSA9PiB7XG4gIGN1cnIgPSB7XG4gICAgLi4uY3VycixcbiAgICBba2V5XTogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKENPTlRFTlRfRklMRVNfR0xPQltrZXldKSxcbiAgfTtcblxuICByZXR1cm4gY3Vycjtcbn0sIHt9KTtcblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIHRvIHBhcnNlIGxpc3Qgb2YgZmlsZXMgYW5kIHJldHVyblxuICogY29uZmlndXJhdGlvbiBvZiByb3V0ZXMuXG4gKlxuICogQHBhcmFtIGZpbGVzXG4gKiBAcmV0dXJucyBBcnJheSBvZiByb3V0ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvdXRlcyhmaWxlczogUmVjb3JkPHN0cmluZywgKCkgPT4gUHJvbWlzZTxSb3V0ZUV4cG9ydD4+KSB7XG4gIGNvbnN0IFJPVVRFUyA9IE9iamVjdC5rZXlzKGZpbGVzKS5zb3J0KChhLCBiKSA9PiBhLmxlbmd0aCAtIGIubGVuZ3RoKTtcblxuICBjb25zdCByb3V0ZUNvbmZpZ3MgPSBST1VURVMucmVkdWNlPFJvdXRlW10+KFxuICAgIChyb3V0ZXM6IFJvdXRlW10sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBtb2R1bGUgPSBrZXkuZW5kc1dpdGgoJy5tZCcpXG4gICAgICAgID8gKCkgPT5cbiAgICAgICAgICAgIGltcG9ydCgnQGFuYWxvZ2pzL2NvbnRlbnQnKS50aGVuKChtKSA9PiAoe1xuICAgICAgICAgICAgICBkZWZhdWx0OiBtLk1hcmtkb3duQ29tcG9uZW50LFxuICAgICAgICAgICAgICByb3V0ZU1ldGE6IHtcbiAgICAgICAgICAgICAgICBkYXRhOiB7IF9hbmFsb2dDb250ZW50OiBmaWxlc1trZXldIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgOiBmaWxlc1trZXldO1xuXG4gICAgICBjb25zdCBzZWdtZW50cyA9IGtleVxuICAgICAgICAucmVwbGFjZSgvXlxcLyguKj8pXFwvcm91dGVzfFxcL2FwcFxcL3JvdXRlc3xcXC4oanN8dHN8bWQpJC9nLCAnJylcbiAgICAgICAgLnJlcGxhY2UoL1xcW1xcLnszfS4rXFxdLywgJyoqJylcbiAgICAgICAgLnJlcGxhY2UoL1xcWyhbXlxcXV0rKVxcXS9nLCAnOiQxJylcbiAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKTtcblxuICAgICAgc2VnbWVudHMucmVkdWNlKChwYXJlbnQsIHNlZ21lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBzZWdtZW50LnJlcGxhY2UoL2luZGV4fF5cXCguKj9cXCkkL2csICcnKS5yZXBsYWNlKCcuJywgJy8nKTtcbiAgICAgICAgY29uc3QgaXNJbmRleCA9ICFwYXRoO1xuICAgICAgICBjb25zdCBpc0NhdGNoYWxsID0gcGF0aCA9PT0gJyoqJztcbiAgICAgICAgY29uc3QgcGF0aE1hdGNoID0gaXNJbmRleCA/ICdmdWxsJyA6ICdwcmVmaXgnO1xuICAgICAgICBjb25zdCByb290ID0gaW5kZXggPT09IDA7XG4gICAgICAgIGNvbnN0IGxlYWYgPSBpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoIC0gMSAmJiBzZWdtZW50cy5sZW5ndGggPiAxO1xuICAgICAgICBjb25zdCBub2RlID0gIXJvb3QgJiYgIWxlYWY7XG4gICAgICAgIGNvbnN0IGluc2VydCA9IC9eXFx3fFxcLy8udGVzdChwYXRoKSAmJiAhaXNDYXRjaGFsbCA/ICd1bnNoaWZ0JyA6ICdwdXNoJztcblxuICAgICAgICBpZiAocm9vdCkge1xuICAgICAgICAgIGNvbnN0IGR5bmFtaWMgPSBwYXRoLnN0YXJ0c1dpdGgoJzonKTtcbiAgICAgICAgICBpZiAoZHluYW1pYykgcmV0dXJuIHBhcmVudDtcblxuICAgICAgICAgIGNvbnN0IGxhc3QgPSBzZWdtZW50cy5sZW5ndGggPT09IDE7XG4gICAgICAgICAgaWYgKGxhc3QpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1JvdXRlID0ge1xuICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICBwYXRoTWF0Y2gsXG4gICAgICAgICAgICAgIF9tb2R1bGU6ICgpID0+IG1vZHVsZSgpLFxuICAgICAgICAgICAgICBsb2FkQ2hpbGRyZW46ICgpID0+XG4gICAgICAgICAgICAgICAgbW9kdWxlKCkudGhlbigobSkgPT4gW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBtLmRlZmF1bHQsXG4gICAgICAgICAgICAgICAgICAgIC4uLm0ucm91dGVNZXRhLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJvdXRlcz8uW2luc2VydF0obmV3Um91dGUgYXMgUm91dGUpO1xuICAgICAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocm9vdCB8fCBub2RlKSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudCA9IHJvb3QgPyByb3V0ZXMgOiBwYXJlbnQuX2NoaWxkcmVuO1xuICAgICAgICAgIGNvbnN0IGZvdW5kID0gY3VycmVudD8uZmluZCgocm91dGU6IGFueSkgPT4gcm91dGUucGF0aCA9PT0gcGF0aCk7XG5cbiAgICAgICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgICAgIGlmICghZm91bmQuX2NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgIGZvdW5kLl9jaGlsZHJlbiA9IFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3VuZC5wYXRoTWF0Y2ggPSBwYXRoTWF0Y2g7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnQ/LltpbnNlcnRdKHtcbiAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgcGF0aE1hdGNoLFxuICAgICAgICAgICAgICBfbW9kdWxlOiAoKSA9PiBtb2R1bGUoKSxcbiAgICAgICAgICAgICAgbG9hZENoaWxkcmVuOiAoKSA9PlxuICAgICAgICAgICAgICAgIG1vZHVsZSgpLnRoZW4oKG0pID0+IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogJycsXG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogbS5kZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgICAuLi5tLnJvdXRlTWV0YSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgZm91bmQgfHxcbiAgICAgICAgICAgIChjdXJyZW50Py5baW5zZXJ0ID09PSAndW5zaGlmdCcgPyAwIDogY3VycmVudC5sZW5ndGggLSAxXSBhcyBSb3V0ZSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxlYWYpIHtcbiAgICAgICAgICBwYXJlbnQ/Ll9jaGlsZHJlbj8uW2luc2VydF0oe1xuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIHBhdGhNYXRjaCxcbiAgICAgICAgICAgIF9tb2R1bGU6ICgpID0+IG1vZHVsZSgpLFxuICAgICAgICAgICAgbG9hZENoaWxkcmVuOiAoKSA9PlxuICAgICAgICAgICAgICBtb2R1bGUoKS50aGVuKChtKSA9PiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgcGF0aDogJycsXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IG0uZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgIC4uLm0ucm91dGVNZXRhLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcmVudC5fY2hpbGRyZW4pIHtcbiAgICAgICAgICBwYXJlbnQubG9hZENvbXBvbmVudCA9ICgpID0+XG4gICAgICAgICAgICBwYXJlbnQuX21vZHVsZSgpLnRoZW4oKG06IFJvdXRlRXhwb3J0KSA9PiBtLmRlZmF1bHQpO1xuICAgICAgICAgIHBhcmVudC5sb2FkQ2hpbGRyZW4gPSAoKSA9PlxuICAgICAgICAgICAgcGFyZW50Ll9tb2R1bGUoKS50aGVuKChtOiBSb3V0ZUV4cG9ydCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHBhcmVudC5fY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgICAuLi5tLnJvdXRlTWV0YSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgICAgfSwge30gYXMgUm91dGUgJiB7IF9tb2R1bGU6ICgpID0+IFByb21pc2U8Um91dGVFeHBvcnQ+OyBfY2hpbGRyZW46IGFueVtdIH0pO1xuXG4gICAgICByZXR1cm4gcm91dGVzO1xuICAgIH0sXG4gICAgW11cbiAgKTtcblxuICByZXR1cm4gcm91dGVDb25maWdzO1xufVxuXG5leHBvcnQgY29uc3Qgcm91dGVzOiBSb3V0ZVtdID0gWy4uLmdldFJvdXRlcyh7IC4uLkZJTEVTLCAuLi5DT05URU5UX0ZJTEVTIH0pXTtcbiJdfQ==","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ActivatedRoute } from '@angular/router';\n/**\n * @deprecated Use `RouteMeta` type instead.\n * For more info see: https://github.com/analogjs/analog/issues/223\n *\n * Defines additional route config metadata. This\n * object is merged into the route config with\n * the predefined file-based route.\n *\n * @usageNotes\n *\n * ```\n * import { Component } from '@angular/core';\n * import { defineRouteMeta } from '@analogjs/router';\n *\n * export const routeMeta = defineRouteMeta({\n * title: 'Welcome'\n * });\n *\n * @Component({\n * template: `Home`,\n * standalone: true,\n * })\n * export default class HomeComponent {}\n * ```\n *\n * @param route\n * @returns\n */\nexport const defineRouteMeta = (route) => {\n return route;\n};\n/**\n * Returns the instance of Angular Router\n *\n * @returns The router\n */\nexport const injectRouter = () => {\n return inject(Router);\n};\n/**\n * Returns the instance of the Activate Route for the component\n *\n * @returns The activated route\n */\nexport const injectActivatedRoute = () => {\n return inject(ActivatedRoute);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lLXJvdXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvZGVmaW5lLXJvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFvQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFXakQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQXNCLEVBQUUsRUFBRTtJQUN4RCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFO0lBQy9CLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUU7SUFDdkMsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZSBhcyBOZ1JvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG50eXBlIFJvdXRlT21pdHRlZCA9XG4gIHwgJ2NvbXBvbmVudCdcbiAgfCAnbG9hZENvbXBvbmVudCdcbiAgfCAnbG9hZENoaWxkcmVuJ1xuICB8ICdwYXRoJ1xuICB8ICdwYXRoTWF0Y2gnO1xuXG50eXBlIFJlc3RyaWN0ZWRSb3V0ZSA9IE9taXQ8TmdSb3V0ZSwgUm91dGVPbWl0dGVkPjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYFJvdXRlTWV0YWAgdHlwZSBpbnN0ZWFkLlxuICogRm9yIG1vcmUgaW5mbyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmFsb2dqcy9hbmFsb2cvaXNzdWVzLzIyM1xuICpcbiAqIERlZmluZXMgYWRkaXRpb25hbCByb3V0ZSBjb25maWcgbWV0YWRhdGEuIFRoaXNcbiAqIG9iamVjdCBpcyBtZXJnZWQgaW50byB0aGUgcm91dGUgY29uZmlnIHdpdGhcbiAqIHRoZSBwcmVkZWZpbmVkIGZpbGUtYmFzZWQgcm91dGUuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqXG4gKiBgYGBcbiAqIGltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICogaW1wb3J0IHsgZGVmaW5lUm91dGVNZXRhIH0gZnJvbSAnQGFuYWxvZ2pzL3JvdXRlcic7XG4gKlxuICogIGV4cG9ydCBjb25zdCByb3V0ZU1ldGEgPSBkZWZpbmVSb3V0ZU1ldGEoe1xuICogICAgdGl0bGU6ICdXZWxjb21lJ1xuICogIH0pO1xuICpcbiAqIEBDb21wb25lbnQoe1xuICogICB0ZW1wbGF0ZTogYEhvbWVgLFxuICogICBzdGFuZGFsb25lOiB0cnVlLFxuICogfSlcbiAqIGV4cG9ydCBkZWZhdWx0IGNsYXNzIEhvbWVDb21wb25lbnQge31cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSByb3V0ZVxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmluZVJvdXRlTWV0YSA9IChyb3V0ZTogUmVzdHJpY3RlZFJvdXRlKSA9PiB7XG4gIHJldHVybiByb3V0ZTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgQW5ndWxhciBSb3V0ZXJcbiAqXG4gKiBAcmV0dXJucyBUaGUgcm91dGVyXG4gKi9cbmV4cG9ydCBjb25zdCBpbmplY3RSb3V0ZXIgPSAoKSA9PiB7XG4gIHJldHVybiBpbmplY3QoUm91dGVyKTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgdGhlIEFjdGl2YXRlIFJvdXRlIGZvciB0aGUgY29tcG9uZW50XG4gKlxuICogQHJldHVybnMgVGhlIGFjdGl2YXRlZCByb3V0ZVxuICovXG5leHBvcnQgY29uc3QgaW5qZWN0QWN0aXZhdGVkUm91dGUgPSAoKSA9PiB7XG4gIHJldHVybiBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xufTtcbiJdfQ==","import { provideRouter } from '@angular/router';\nimport { routes } from './routes';\n/**\n * Sets up providers for the Angular router, and registers\n * file-based routes. Additional features can be provided\n * to further configure the behavior of the router.\n *\n * @param features\n * @returns Providers and features to configure the router with routes\n */\nexport const provideFileRouter = (...features) => {\n return provideRouter(routes, ...features);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1maWxlLXJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3JvdXRlci9zcmMvbGliL3Byb3ZpZGUtZmlsZS1yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsUUFBMEIsRUFBRSxFQUFFO0lBQ2pFLE9BQU8sYUFBYSxDQUFDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb3ZpZGVSb3V0ZXIsIFJvdXRlckZlYXR1cmVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHJvdXRlcyB9IGZyb20gJy4vcm91dGVzJztcblxuLyoqXG4gKiBTZXRzIHVwIHByb3ZpZGVycyBmb3IgdGhlIEFuZ3VsYXIgcm91dGVyLCBhbmQgcmVnaXN0ZXJzXG4gKiBmaWxlLWJhc2VkIHJvdXRlcy4gQWRkaXRpb25hbCBmZWF0dXJlcyBjYW4gYmUgcHJvdmlkZWRcbiAqIHRvIGZ1cnRoZXIgY29uZmlndXJlIHRoZSBiZWhhdmlvciBvZiB0aGUgcm91dGVyLlxuICpcbiAqIEBwYXJhbSBmZWF0dXJlc1xuICogQHJldHVybnMgUHJvdmlkZXJzIGFuZCBmZWF0dXJlcyB0byBjb25maWd1cmUgdGhlIHJvdXRlciB3aXRoIHJvdXRlc1xuICovXG5leHBvcnQgY29uc3QgcHJvdmlkZUZpbGVSb3V0ZXIgPSAoLi4uZmVhdHVyZXM6IFJvdXRlckZlYXR1cmVzW10pID0+IHtcbiAgcmV0dXJuIHByb3ZpZGVSb3V0ZXIocm91dGVzLCAuLi5mZWF0dXJlcyk7XG59O1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbG9nanMtcm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9hbmFsb2dqcy1yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analogjs-router.mjs","sources":["../esm2020/lib/meta-tags.mjs","../esm2020/lib/route-config.mjs","../esm2020/lib/routes.mjs","../esm2020/lib/define-route.mjs","../esm2020/lib/provide-file-router.mjs","../esm2020/analogjs-router.mjs"],"sourcesContent":["import { inject } from '@angular/core';\nimport { Meta } from '@angular/platform-browser';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nexport const ROUTE_META_TAGS_KEY = Symbol('@analogjs/router Route Meta Tags Key');\nconst CHARSET_KEY = 'charset';\nconst HTTP_EQUIV_KEY = 'httpEquiv';\n// httpEquiv selector key needs to be in kebab case format\nconst HTTP_EQUIV_SELECTOR_KEY = 'http-equiv';\nconst NAME_KEY = 'name';\nconst PROPERTY_KEY = 'property';\nconst CONTENT_KEY = 'content';\nexport function updateMetaTagsOnRouteChange() {\n const router = inject(Router);\n const metaService = inject(Meta);\n router.events\n .pipe(filter((event) => event instanceof NavigationEnd))\n .subscribe(() => {\n const metaTagMap = getMetaTagMap(router.routerState.snapshot.root);\n for (const metaTagSelector in metaTagMap) {\n const metaTag = metaTagMap[metaTagSelector];\n metaService.updateTag(metaTag, metaTagSelector);\n }\n });\n}\nfunction getMetaTagMap(route) {\n const metaTagMap = {};\n let currentRoute = route;\n while (currentRoute) {\n const metaTags = currentRoute.data[ROUTE_META_TAGS_KEY] ?? [];\n for (const metaTag of metaTags) {\n metaTagMap[getMetaTagSelector(metaTag)] = metaTag;\n }\n currentRoute = currentRoute.firstChild;\n }\n return metaTagMap;\n}\nfunction getMetaTagSelector(metaTag) {\n if (metaTag.name) {\n return `${NAME_KEY}=\"${metaTag.name}\"`;\n }\n if (metaTag.property) {\n return `${PROPERTY_KEY}=\"${metaTag.property}\"`;\n }\n if (metaTag.httpEquiv) {\n return `${HTTP_EQUIV_SELECTOR_KEY}=\"${metaTag.httpEquiv}\"`;\n }\n return CHARSET_KEY;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS10YWdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvbWV0YS10YWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBK0IsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RSxPQUFPLEVBQTBCLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUN2QyxzQ0FBc0MsQ0FDdkMsQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQztBQUM5QixNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUM7QUFDbkMsMERBQTBEO0FBQzFELE1BQU0sdUJBQXVCLEdBQUcsWUFBWSxDQUFDO0FBQzdDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQztBQUN4QixNQUFNLFlBQVksR0FBRyxVQUFVLENBQUM7QUFDaEMsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBOEI5QixNQUFNLFVBQVUsMkJBQTJCO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFakMsTUFBTSxDQUFDLE1BQU07U0FDVixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLENBQUM7U0FDdkQsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNkLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuRSxLQUFLLE1BQU0sZUFBZSxJQUFJLFVBQVUsRUFBRTtZQUN4QyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQ3hCLGVBQWtDLENBQ3RCLENBQUM7WUFDZixXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztTQUNqRDtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLEtBQTZCO0lBQ2xELE1BQU0sVUFBVSxHQUFHLEVBQWdCLENBQUM7SUFDcEMsSUFBSSxZQUFZLEdBQWtDLEtBQUssQ0FBQztJQUV4RCxPQUFPLFlBQVksRUFBRTtRQUNuQixNQUFNLFFBQVEsR0FBYyxZQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pFLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFO1lBQzlCLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztTQUNuRDtRQUVELFlBQVksR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDO0tBQ3hDO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsT0FBZ0I7SUFDMUMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1FBQ2hCLE9BQU8sR0FBRyxRQUFRLEtBQUssT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDO0tBQ3hDO0lBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1FBQ3BCLE9BQU8sR0FBRyxZQUFZLEtBQUssT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDO0tBQ2hEO0lBRUQsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1FBQ3JCLE9BQU8sR0FBRyx1QkFBdUIsS0FBSyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUM7S0FDNUQ7SUFFRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhLCBNZXRhRGVmaW5pdGlvbiBhcyBOZ01ldGFUYWcgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBST1VURV9NRVRBX1RBR1NfS0VZID0gU3ltYm9sKFxuICAnQGFuYWxvZ2pzL3JvdXRlciBSb3V0ZSBNZXRhIFRhZ3MgS2V5J1xuKTtcblxuY29uc3QgQ0hBUlNFVF9LRVkgPSAnY2hhcnNldCc7XG5jb25zdCBIVFRQX0VRVUlWX0tFWSA9ICdodHRwRXF1aXYnO1xuLy8gaHR0cEVxdWl2IHNlbGVjdG9yIGtleSBuZWVkcyB0byBiZSBpbiBrZWJhYiBjYXNlIGZvcm1hdFxuY29uc3QgSFRUUF9FUVVJVl9TRUxFQ1RPUl9LRVkgPSAnaHR0cC1lcXVpdic7XG5jb25zdCBOQU1FX0tFWSA9ICduYW1lJztcbmNvbnN0IFBST1BFUlRZX0tFWSA9ICdwcm9wZXJ0eSc7XG5jb25zdCBDT05URU5UX0tFWSA9ICdjb250ZW50JztcblxuZXhwb3J0IHR5cGUgTWV0YVRhZyA9XG4gIHwgKENoYXJzZXRNZXRhVGFnICYgRXhjbHVkZVJlc3RNZXRhVGFnS2V5czx0eXBlb2YgQ0hBUlNFVF9LRVk+KVxuICB8IChIdHRwRXF1aXZNZXRhVGFnICYgRXhjbHVkZVJlc3RNZXRhVGFnS2V5czx0eXBlb2YgSFRUUF9FUVVJVl9LRVk+KVxuICB8IChOYW1lTWV0YVRhZyAmIEV4Y2x1ZGVSZXN0TWV0YVRhZ0tleXM8dHlwZW9mIE5BTUVfS0VZPilcbiAgfCAoUHJvcGVydHlNZXRhVGFnICYgRXhjbHVkZVJlc3RNZXRhVGFnS2V5czx0eXBlb2YgUFJPUEVSVFlfS0VZPik7XG5cbnR5cGUgQ2hhcnNldE1ldGFUYWcgPSB7IFtDSEFSU0VUX0tFWV06IHN0cmluZyB9O1xudHlwZSBIdHRwRXF1aXZNZXRhVGFnID0geyBbSFRUUF9FUVVJVl9LRVldOiBzdHJpbmc7IFtDT05URU5UX0tFWV06IHN0cmluZyB9O1xudHlwZSBOYW1lTWV0YVRhZyA9IHsgW05BTUVfS0VZXTogc3RyaW5nOyBbQ09OVEVOVF9LRVldOiBzdHJpbmcgfTtcbnR5cGUgUHJvcGVydHlNZXRhVGFnID0geyBbUFJPUEVSVFlfS0VZXTogc3RyaW5nOyBbQ09OVEVOVF9LRVldOiBzdHJpbmcgfTtcblxudHlwZSBNZXRhVGFnS2V5ID1cbiAgfCB0eXBlb2YgQ0hBUlNFVF9LRVlcbiAgfCB0eXBlb2YgSFRUUF9FUVVJVl9LRVlcbiAgfCB0eXBlb2YgTkFNRV9LRVlcbiAgfCB0eXBlb2YgUFJPUEVSVFlfS0VZO1xudHlwZSBFeGNsdWRlUmVzdE1ldGFUYWdLZXlzPEtleSBleHRlbmRzIE1ldGFUYWdLZXk+ID0ge1xuICBbSyBpbiBFeGNsdWRlPE1ldGFUYWdLZXksIEtleT5dPzogbmV2ZXI7XG59O1xuXG50eXBlIE1ldGFUYWdTZWxlY3RvciA9XG4gIHwgdHlwZW9mIENIQVJTRVRfS0VZXG4gIHwgYCR7XG4gICAgICB8IHR5cGVvZiBIVFRQX0VRVUlWX1NFTEVDVE9SX0tFWVxuICAgICAgfCB0eXBlb2YgTkFNRV9LRVlcbiAgICAgIHwgdHlwZW9mIFBST1BFUlRZX0tFWX09XCIke3N0cmluZ31cImA7XG50eXBlIE1ldGFUYWdNYXAgPSBSZWNvcmQ8TWV0YVRhZ1NlbGVjdG9yLCBNZXRhVGFnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZU1ldGFUYWdzT25Sb3V0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIGNvbnN0IG1ldGFTZXJ2aWNlID0gaW5qZWN0KE1ldGEpO1xuXG4gIHJvdXRlci5ldmVudHNcbiAgICAucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgbWV0YVRhZ01hcCA9IGdldE1ldGFUYWdNYXAocm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnJvb3QpO1xuXG4gICAgICBmb3IgKGNvbnN0IG1ldGFUYWdTZWxlY3RvciBpbiBtZXRhVGFnTWFwKSB7XG4gICAgICAgIGNvbnN0IG1ldGFUYWcgPSBtZXRhVGFnTWFwW1xuICAgICAgICAgIG1ldGFUYWdTZWxlY3RvciBhcyBNZXRhVGFnU2VsZWN0b3JcbiAgICAgICAgXSBhcyBOZ01ldGFUYWc7XG4gICAgICAgIG1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyhtZXRhVGFnLCBtZXRhVGFnU2VsZWN0b3IpO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRNZXRhVGFnTWFwKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogTWV0YVRhZ01hcCB7XG4gIGNvbnN0IG1ldGFUYWdNYXAgPSB7fSBhcyBNZXRhVGFnTWFwO1xuICBsZXQgY3VycmVudFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbCA9IHJvdXRlO1xuXG4gIHdoaWxlIChjdXJyZW50Um91dGUpIHtcbiAgICBjb25zdCBtZXRhVGFnczogTWV0YVRhZ1tdID0gY3VycmVudFJvdXRlLmRhdGFbUk9VVEVfTUVUQV9UQUdTX0tFWV0gPz8gW107XG4gICAgZm9yIChjb25zdCBtZXRhVGFnIG9mIG1ldGFUYWdzKSB7XG4gICAgICBtZXRhVGFnTWFwW2dldE1ldGFUYWdTZWxlY3RvcihtZXRhVGFnKV0gPSBtZXRhVGFnO1xuICAgIH1cblxuICAgIGN1cnJlbnRSb3V0ZSA9IGN1cnJlbnRSb3V0ZS5maXJzdENoaWxkO1xuICB9XG5cbiAgcmV0dXJuIG1ldGFUYWdNYXA7XG59XG5cbmZ1bmN0aW9uIGdldE1ldGFUYWdTZWxlY3RvcihtZXRhVGFnOiBNZXRhVGFnKTogTWV0YVRhZ1NlbGVjdG9yIHtcbiAgaWYgKG1ldGFUYWcubmFtZSkge1xuICAgIHJldHVybiBgJHtOQU1FX0tFWX09XCIke21ldGFUYWcubmFtZX1cImA7XG4gIH1cblxuICBpZiAobWV0YVRhZy5wcm9wZXJ0eSkge1xuICAgIHJldHVybiBgJHtQUk9QRVJUWV9LRVl9PVwiJHttZXRhVGFnLnByb3BlcnR5fVwiYDtcbiAgfVxuXG4gIGlmIChtZXRhVGFnLmh0dHBFcXVpdikge1xuICAgIHJldHVybiBgJHtIVFRQX0VRVUlWX1NFTEVDVE9SX0tFWX09XCIke21ldGFUYWcuaHR0cEVxdWl2fVwiYDtcbiAgfVxuXG4gIHJldHVybiBDSEFSU0VUX0tFWTtcbn1cbiJdfQ==","import { ROUTE_META_TAGS_KEY } from './meta-tags';\nexport function toRouteConfig(routeMeta) {\n if (!routeMeta) {\n return {};\n }\n if (isRedirectRouteMeta(routeMeta)) {\n return routeMeta;\n }\n const { meta, ...routeConfig } = routeMeta;\n if (Array.isArray(meta)) {\n routeConfig.data = { ...routeConfig.data, [ROUTE_META_TAGS_KEY]: meta };\n }\n else if (typeof meta === 'function') {\n routeConfig.resolve = {\n ...routeConfig.resolve,\n [ROUTE_META_TAGS_KEY]: meta,\n };\n }\n return routeConfig;\n}\nfunction isRedirectRouteMeta(routeMeta) {\n return !!routeMeta.redirectTo;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvcm91dGUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsRCxNQUFNLFVBQVUsYUFBYSxDQUFDLFNBQWdDO0lBQzVELElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDZCxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsSUFBSSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUNsQyxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxXQUFXLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFFM0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3ZCLFdBQVcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO0tBQ3pFO1NBQU0sSUFBSSxPQUFPLElBQUksS0FBSyxVQUFVLEVBQUU7UUFDckMsV0FBVyxDQUFDLE9BQU8sR0FBRztZQUNwQixHQUFHLFdBQVcsQ0FBQyxPQUFPO1lBQ3RCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxJQUFJO1NBQzVCLENBQUM7S0FDSDtJQUVELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUMxQixTQUFvQjtJQUVwQixPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWRpcmVjdFJvdXRlTWV0YSwgUm91dGVDb25maWcsIFJvdXRlTWV0YSB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IFJPVVRFX01FVEFfVEFHU19LRVkgfSBmcm9tICcuL21ldGEtdGFncyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1JvdXRlQ29uZmlnKHJvdXRlTWV0YTogUm91dGVNZXRhIHwgdW5kZWZpbmVkKTogUm91dGVDb25maWcge1xuICBpZiAoIXJvdXRlTWV0YSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGlmIChpc1JlZGlyZWN0Um91dGVNZXRhKHJvdXRlTWV0YSkpIHtcbiAgICByZXR1cm4gcm91dGVNZXRhO1xuICB9XG5cbiAgY29uc3QgeyBtZXRhLCAuLi5yb3V0ZUNvbmZpZyB9ID0gcm91dGVNZXRhO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KG1ldGEpKSB7XG4gICAgcm91dGVDb25maWcuZGF0YSA9IHsgLi4ucm91dGVDb25maWcuZGF0YSwgW1JPVVRFX01FVEFfVEFHU19LRVldOiBtZXRhIH07XG4gIH0gZWxzZSBpZiAodHlwZW9mIG1ldGEgPT09ICdmdW5jdGlvbicpIHtcbiAgICByb3V0ZUNvbmZpZy5yZXNvbHZlID0ge1xuICAgICAgLi4ucm91dGVDb25maWcucmVzb2x2ZSxcbiAgICAgIFtST1VURV9NRVRBX1RBR1NfS0VZXTogbWV0YSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHJvdXRlQ29uZmlnO1xufVxuXG5mdW5jdGlvbiBpc1JlZGlyZWN0Um91dGVNZXRhKFxuICByb3V0ZU1ldGE6IFJvdXRlTWV0YVxuKTogcm91dGVNZXRhIGlzIFJlZGlyZWN0Um91dGVNZXRhIHtcbiAgcmV0dXJuICEhcm91dGVNZXRhLnJlZGlyZWN0VG87XG59XG4iXX0=","/// <reference types=\"vite/client\" />\nimport { toRouteConfig } from './route-config';\nconst FILES = import.meta.glob([\n '/app/routes/**/*.ts',\n '/src/app/routes/**/*.ts',\n]);\nconst CONTENT_FILES = import.meta.glob(['/src/app/routes/**/*.md'], {\n as: 'raw',\n});\n/**\n * Function used to parse list of files and return\n * configuration of routes.\n *\n * @param files\n * @returns Array of routes\n */\nexport function getRoutes(files) {\n const ROUTES = Object.keys(files).sort((a, b) => a.length - b.length);\n const routeConfigs = ROUTES.reduce((routes, key) => {\n const module = key.endsWith('.md')\n ? () => import('@analogjs/content').then((m) => ({\n default: m.MarkdownComponent,\n routeMeta: {\n data: { _analogContent: files[key] },\n },\n }))\n : files[key];\n const segments = key\n .replace(/^\\/(.*?)\\/routes|\\/app\\/routes|\\.(js|ts|md)$/g, '')\n .replace(/\\[\\.{3}.+\\]/, '**')\n .replace(/\\[([^\\]]+)\\]/g, ':$1')\n .split('/')\n .filter(Boolean);\n segments.reduce((parent, segment, index) => {\n const path = segment.replace(/index|^\\(.*?\\)$/g, '').replace('.', '/');\n const isIndex = !path;\n const isCatchall = path === '**';\n const pathMatch = isIndex ? 'full' : 'prefix';\n const root = index === 0;\n const leaf = index === segments.length - 1 && segments.length > 1;\n const node = !root && !leaf;\n const insert = /^\\w|\\//.test(path) && !isCatchall ? 'unshift' : 'push';\n if (root) {\n const dynamic = path.startsWith(':');\n if (dynamic)\n return parent;\n const last = segments.length === 1;\n if (last) {\n const newRoute = {\n path,\n pathMatch,\n _module: () => module(),\n loadChildren: () => module().then((m) => [\n {\n path: '',\n component: m.default,\n ...toRouteConfig(m.routeMeta),\n },\n ]),\n };\n routes?.[insert](newRoute);\n return parent;\n }\n }\n if (root || node) {\n const current = root ? routes : parent._children;\n const found = current?.find((route) => route.path === path);\n if (found) {\n if (!found._children) {\n found._children = [];\n }\n found.pathMatch = pathMatch;\n }\n else {\n current?.[insert]({\n path,\n pathMatch,\n _module: () => module(),\n loadChildren: () => module().then((m) => [\n {\n path: '',\n component: m.default,\n ...toRouteConfig(m.routeMeta),\n },\n ]),\n });\n }\n return (found ||\n current?.[insert === 'unshift' ? 0 : current.length - 1]);\n }\n if (leaf) {\n parent?._children?.[insert]({\n path,\n pathMatch,\n _module: () => module(),\n loadChildren: () => module().then((m) => [\n {\n path: '',\n component: m.default,\n ...toRouteConfig(m.routeMeta),\n },\n ]),\n });\n }\n if (parent._children) {\n parent.loadComponent = () => parent._module().then((m) => m.default);\n parent.loadChildren = () => parent._module().then((m) => {\n return [\n {\n path: '',\n children: parent._children,\n ...toRouteConfig(m.routeMeta),\n },\n ];\n });\n }\n return parent;\n }, {});\n return routes;\n }, []);\n return routeConfigs;\n}\nexport const routes = [...getRoutes({ ...FILES, ...CONTENT_FILES })];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFxQztBQUtyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWM7SUFDMUMscUJBQXFCO0lBQ3JCLHlCQUF5QjtDQUMxQixDQUFDLENBQUM7QUFFSCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBUyxDQUFDLHlCQUF5QixDQUFDLEVBQUU7SUFDMUUsRUFBRSxFQUFFLEtBQUs7Q0FDVixDQUFDLENBQUM7QUFFSDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUN2QixLQUEwRDtJQUUxRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXRFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQ2hDLENBQUMsTUFBZSxFQUFFLEdBQVcsRUFBRSxFQUFFO1FBQy9CLE1BQU0sTUFBTSxHQUErQixHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUM1RCxDQUFDLENBQUMsR0FBRyxFQUFFLENBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN2QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQjtnQkFDNUIsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsR0FB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QUMxQixNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sQ0FBQyxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQ3pCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFjLEVBQUUsRUFBRTtvQkFDdkMsT0FBTzt3QkFDTDs0QkFDRSxJQUFJLEVBQUUsRUFBRTs0QkFDUixRQUFRLEVBQUUsTUFBTSxDQUFDLFNBQVM7NEJBQzFCLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFrQyxDQUFDO3lCQUN2RDtxQkFDRixDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO2FBQ047WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLEVBQUUsRUFBdUUsQ0FBQyxDQUFDO1FBRTVFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsRUFDRCxFQUFFLENBQ0gsQ0FBQztJQUVGLE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQVksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ2aXRlL2NsaWVudFwiIC8+XG5cbmltcG9ydCB0eXBlIHsgUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBSb3V0ZUV4cG9ydCwgUm91dGVNZXRhIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgdG9Sb3V0ZUNvbmZpZyB9IGZyb20gJy4vcm91dGUtY29uZmlnJztcblxuY29uc3QgRklMRVMgPSBpbXBvcnQubWV0YS5nbG9iPFJvdXRlRXhwb3J0PihbXG4gICcvYXBwL3JvdXRlcy8qKi8qLnRzJyxcbiAgJy9zcmMvYXBwL3JvdXRlcy8qKi8qLnRzJyxcbl0pO1xuXG5jb25zdCBDT05URU5UX0ZJTEVTID0gaW1wb3J0Lm1ldGEuZ2xvYjxzdHJpbmc+KFsnL3NyYy9hcHAvcm91dGVzLyoqLyoubWQnXSwge1xuICBhczogJ3JhdycsXG59KTtcblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIHRvIHBhcnNlIGxpc3Qgb2YgZmlsZXMgYW5kIHJldHVyblxuICogY29uZmlndXJhdGlvbiBvZiByb3V0ZXMuXG4gKlxuICogQHBhcmFtIGZpbGVzXG4gKiBAcmV0dXJucyBBcnJheSBvZiByb3V0ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvdXRlcyhcbiAgZmlsZXM6IFJlY29yZDxzdHJpbmcsICgpID0+IFByb21pc2U8Um91dGVFeHBvcnQgfCBzdHJpbmc+PlxuKSB7XG4gIGNvbnN0IFJPVVRFUyA9IE9iamVjdC5rZXlzKGZpbGVzKS5zb3J0KChhLCBiKSA9PiBhLmxlbmd0aCAtIGIubGVuZ3RoKTtcblxuICBjb25zdCByb3V0ZUNvbmZpZ3MgPSBST1VURVMucmVkdWNlPFJvdXRlW10+KFxuICAgIChyb3V0ZXM6IFJvdXRlW10sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBtb2R1bGU6ICgpID0+IFByb21pc2U8Um91dGVFeHBvcnQ+ID0ga2V5LmVuZHNXaXRoKCcubWQnKVxuICAgICAgICA/ICgpID0+XG4gICAgICAgICAgICBpbXBvcnQoJ0BhbmFsb2dqcy9jb250ZW50JykudGhlbigobSkgPT4gKHtcbiAgICAgICAgICAgICAgZGVmYXVsdDogbS5NYXJrZG93bkNvbXBvbmVudCxcbiAgICAgICAgICAgICAgcm91dGVNZXRhOiB7XG4gICAgICAgICAgICAgICAgZGF0YTogeyBfYW5hbG9nQ29udGVudDogZmlsZXNba2V5XSB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSkpXG4gICAgICAgIDogKGZpbGVzW2tleV0gYXMgKCkgPT4gUHJvbWlzZTxSb3V0ZUV4cG9ydD4pO1xuXG4gICAgICBjb25zdCBzZWdtZW50cyA9IGtleVxuICAgICAgICAucmVwbGFjZSgvXlxcLyguKj8pXFwvcm91dGVzfFxcL2FwcFxcL3JvdXRlc3xcXC4oanN8dHN8bWQpJC9nLCAnJylcbiAgICAgICAgLnJlcGxhY2UoL1xcW1xcLnszfS4rXFxdLywgJyoqJylcbiAgICAgICAgLnJlcGxhY2UoL1xcWyhbXlxcXV0rKVxcXS9nLCAnOiQxJylcbiAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKTtcblxuICAgICAgc2VnbWVudHMucmVkdWNlKChwYXJlbnQsIHNlZ21lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBzZWdtZW50LnJlcGxhY2UoL2luZGV4fF5cXCguKj9cXCkkL2csICcnKS5yZXBsYWNlKCcuJywgJy8nKTtcbiAgICAgICAgY29uc3QgaXNJbmRleCA9ICFwYXRoO1xuICAgICAgICBjb25zdCBpc0NhdGNoYWxsID0gcGF0aCA9PT0gJyoqJztcbiAgICAgICAgY29uc3QgcGF0aE1hdGNoID0gaXNJbmRleCA/ICdmdWxsJyA6ICdwcmVmaXgnO1xuICAgICAgICBjb25zdCByb290ID0gaW5kZXggPT09IDA7XG4gICAgICAgIGNvbnN0IGxlYWYgPSBpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoIC0gMSAmJiBzZWdtZW50cy5sZW5ndGggPiAxO1xuICAgICAgICBjb25zdCBub2RlID0gIXJvb3QgJiYgIWxlYWY7XG4gICAgICAgIGNvbnN0IGluc2VydCA9IC9eXFx3fFxcLy8udGVzdChwYXRoKSAmJiAhaXNDYXRjaGFsbCA/ICd1bnNoaWZ0JyA6ICdwdXNoJztcblxuICAgICAgICBpZiAocm9vdCkge1xuICAgICAgICAgIGNvbnN0IGR5bmFtaWMgPSBwYXRoLnN0YXJ0c1dpdGgoJzonKTtcbiAgICAgICAgICBpZiAoZHluYW1pYykgcmV0dXJuIHBhcmVudDtcblxuICAgICAgICAgIGNvbnN0IGxhc3QgPSBzZWdtZW50cy5sZW5ndGggPT09IDE7XG4gICAgICAgICAgaWYgKGxhc3QpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1JvdXRlID0ge1xuICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICBwYXRoTWF0Y2gsXG4gICAgICAgICAgICAgIF9tb2R1bGU6ICgpID0+IG1vZHVsZSgpLFxuICAgICAgICAgICAgICBsb2FkQ2hpbGRyZW46ICgpID0+XG4gICAgICAgICAgICAgICAgbW9kdWxlKCkudGhlbigobSkgPT4gW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBtLmRlZmF1bHQsXG4gICAgICAgICAgICAgICAgICAgIC4uLnRvUm91dGVDb25maWcobS5yb3V0ZU1ldGEgYXMgUm91dGVNZXRhIHwgdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByb3V0ZXM/LltpbnNlcnRdKG5ld1JvdXRlIGFzIFJvdXRlKTtcbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJvb3QgfHwgbm9kZSkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSByb290ID8gcm91dGVzIDogcGFyZW50Ll9jaGlsZHJlbjtcbiAgICAgICAgICBjb25zdCBmb3VuZCA9IGN1cnJlbnQ/LmZpbmQoKHJvdXRlOiBhbnkpID0+IHJvdXRlLnBhdGggPT09IHBhdGgpO1xuXG4gICAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgICBpZiAoIWZvdW5kLl9jaGlsZHJlbikge1xuICAgICAgICAgICAgICBmb3VuZC5fY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm91bmQucGF0aE1hdGNoID0gcGF0aE1hdGNoO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50Py5baW5zZXJ0XSh7XG4gICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgIHBhdGhNYXRjaCxcbiAgICAgICAgICAgICAgX21vZHVsZTogKCkgPT4gbW9kdWxlKCksXG4gICAgICAgICAgICAgIGxvYWRDaGlsZHJlbjogKCkgPT5cbiAgICAgICAgICAgICAgICBtb2R1bGUoKS50aGVuKChtKSA9PiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IG0uZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgICAgLi4udG9Sb3V0ZUNvbmZpZyhtLnJvdXRlTWV0YSBhcyBSb3V0ZU1ldGEgfCB1bmRlZmluZWQpLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBmb3VuZCB8fFxuICAgICAgICAgICAgKGN1cnJlbnQ/LltpbnNlcnQgPT09ICd1bnNoaWZ0JyA/IDAgOiBjdXJyZW50Lmxlbmd0aCAtIDFdIGFzIFJvdXRlKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGVhZikge1xuICAgICAgICAgIHBhcmVudD8uX2NoaWxkcmVuPy5baW5zZXJ0XSh7XG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgcGF0aE1hdGNoLFxuICAgICAgICAgICAgX21vZHVsZTogKCkgPT4gbW9kdWxlKCksXG4gICAgICAgICAgICBsb2FkQ2hpbGRyZW46ICgpID0+XG4gICAgICAgICAgICAgIG1vZHVsZSgpLnRoZW4oKG0pID0+IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogbS5kZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgLi4udG9Sb3V0ZUNvbmZpZyhtLnJvdXRlTWV0YSBhcyBSb3V0ZU1ldGEgfCB1bmRlZmluZWQpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcmVudC5fY2hpbGRyZW4pIHtcbiAgICAgICAgICBwYXJlbnQubG9hZENvbXBvbmVudCA9ICgpID0+XG4gICAgICAgICAgICBwYXJlbnQuX21vZHVsZSgpLnRoZW4oKG06IFJvdXRlRXhwb3J0KSA9PiBtLmRlZmF1bHQpO1xuICAgICAgICAgIHBhcmVudC5sb2FkQ2hpbGRyZW4gPSAoKSA9PlxuICAgICAgICAgICAgcGFyZW50Ll9tb2R1bGUoKS50aGVuKChtOiBSb3V0ZUV4cG9ydCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHBhcmVudC5fY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgICAuLi50b1JvdXRlQ29uZmlnKG0ucm91dGVNZXRhIGFzIFJvdXRlTWV0YSB8IHVuZGVmaW5lZCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgIH0sIHt9IGFzIFJvdXRlICYgeyBfbW9kdWxlOiAoKSA9PiBQcm9taXNlPFJvdXRlRXhwb3J0PjsgX2NoaWxkcmVuOiBhbnlbXSB9KTtcblxuICAgICAgcmV0dXJuIHJvdXRlcztcbiAgICB9LFxuICAgIFtdXG4gICk7XG5cbiAgcmV0dXJuIHJvdXRlQ29uZmlncztcbn1cblxuZXhwb3J0IGNvbnN0IHJvdXRlczogUm91dGVbXSA9IFsuLi5nZXRSb3V0ZXMoeyAuLi5GSUxFUywgLi4uQ09OVEVOVF9GSUxFUyB9KV07XG4iXX0=","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ActivatedRoute } from '@angular/router';\n/**\n * @deprecated Use `RouteMeta` type instead.\n * For more info see: https://github.com/analogjs/analog/issues/223\n *\n * Defines additional route config metadata. This\n * object is merged into the route config with\n * the predefined file-based route.\n *\n * @usageNotes\n *\n * ```\n * import { Component } from '@angular/core';\n * import { defineRouteMeta } from '@analogjs/router';\n *\n * export const routeMeta = defineRouteMeta({\n * title: 'Welcome'\n * });\n *\n * @Component({\n * template: `Home`,\n * standalone: true,\n * })\n * export default class HomeComponent {}\n * ```\n *\n * @param route\n * @returns\n */\nexport const defineRouteMeta = (route) => {\n return route;\n};\n/**\n * Returns the instance of Angular Router\n *\n * @returns The router\n */\nexport const injectRouter = () => {\n return inject(Router);\n};\n/**\n * Returns the instance of the Activate Route for the component\n *\n * @returns The activated route\n */\nexport const injectActivatedRoute = () => {\n return inject(ActivatedRoute);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lLXJvdXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvZGVmaW5lLXJvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFvQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFXakQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQXNCLEVBQUUsRUFBRTtJQUN4RCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFO0lBQy9CLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUU7SUFDdkMsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZSBhcyBOZ1JvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG50eXBlIFJvdXRlT21pdHRlZCA9XG4gIHwgJ2NvbXBvbmVudCdcbiAgfCAnbG9hZENvbXBvbmVudCdcbiAgfCAnbG9hZENoaWxkcmVuJ1xuICB8ICdwYXRoJ1xuICB8ICdwYXRoTWF0Y2gnO1xuXG50eXBlIFJlc3RyaWN0ZWRSb3V0ZSA9IE9taXQ8TmdSb3V0ZSwgUm91dGVPbWl0dGVkPjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYFJvdXRlTWV0YWAgdHlwZSBpbnN0ZWFkLlxuICogRm9yIG1vcmUgaW5mbyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmFsb2dqcy9hbmFsb2cvaXNzdWVzLzIyM1xuICpcbiAqIERlZmluZXMgYWRkaXRpb25hbCByb3V0ZSBjb25maWcgbWV0YWRhdGEuIFRoaXNcbiAqIG9iamVjdCBpcyBtZXJnZWQgaW50byB0aGUgcm91dGUgY29uZmlnIHdpdGhcbiAqIHRoZSBwcmVkZWZpbmVkIGZpbGUtYmFzZWQgcm91dGUuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqXG4gKiBgYGBcbiAqIGltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICogaW1wb3J0IHsgZGVmaW5lUm91dGVNZXRhIH0gZnJvbSAnQGFuYWxvZ2pzL3JvdXRlcic7XG4gKlxuICogIGV4cG9ydCBjb25zdCByb3V0ZU1ldGEgPSBkZWZpbmVSb3V0ZU1ldGEoe1xuICogICAgdGl0bGU6ICdXZWxjb21lJ1xuICogIH0pO1xuICpcbiAqIEBDb21wb25lbnQoe1xuICogICB0ZW1wbGF0ZTogYEhvbWVgLFxuICogICBzdGFuZGFsb25lOiB0cnVlLFxuICogfSlcbiAqIGV4cG9ydCBkZWZhdWx0IGNsYXNzIEhvbWVDb21wb25lbnQge31cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSByb3V0ZVxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmluZVJvdXRlTWV0YSA9IChyb3V0ZTogUmVzdHJpY3RlZFJvdXRlKSA9PiB7XG4gIHJldHVybiByb3V0ZTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgQW5ndWxhciBSb3V0ZXJcbiAqXG4gKiBAcmV0dXJucyBUaGUgcm91dGVyXG4gKi9cbmV4cG9ydCBjb25zdCBpbmplY3RSb3V0ZXIgPSAoKSA9PiB7XG4gIHJldHVybiBpbmplY3QoUm91dGVyKTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgdGhlIEFjdGl2YXRlIFJvdXRlIGZvciB0aGUgY29tcG9uZW50XG4gKlxuICogQHJldHVybnMgVGhlIGFjdGl2YXRlZCByb3V0ZVxuICovXG5leHBvcnQgY29uc3QgaW5qZWN0QWN0aXZhdGVkUm91dGUgPSAoKSA9PiB7XG4gIHJldHVybiBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xufTtcbiJdfQ==","import { ENVIRONMENT_INITIALIZER, makeEnvironmentProviders, } from '@angular/core';\nimport { provideRouter } from '@angular/router';\nimport { routes } from './routes';\nimport { updateMetaTagsOnRouteChange } from './meta-tags';\n/**\n * Sets up providers for the Angular router, and registers\n * file-based routes. Additional features can be provided\n * to further configure the behavior of the router.\n *\n * @param features\n * @returns Providers and features to configure the router with routes\n */\nexport function provideFileRouter(...features) {\n return makeEnvironmentProviders([\n // TODO: remove type casting after Angular >=15.1.1 upgrade\n // https://github.com/angular/angular/pull/48720\n provideRouter(routes, ...features).ɵproviders,\n {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useValue: () => updateMetaTagsOnRouteChange(),\n },\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1maWxlLXJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3JvdXRlci9zcmMvbGliL3Byb3ZpZGUtZmlsZS1yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2Qix3QkFBd0IsR0FFekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixHQUFHLFFBQTBCO0lBRTdCLE9BQU8sd0JBQXdCLENBQUM7UUFDOUIsMkRBQTJEO1FBQzNELGdEQUFnRDtRQUU5QyxhQUFhLENBQUMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUdsQyxDQUFDLFVBQVU7UUFDWjtZQUNFLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsMkJBQTJCLEVBQUU7U0FDOUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gIEVudmlyb25tZW50UHJvdmlkZXJzLFxuICBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIFByb3ZpZGVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHByb3ZpZGVSb3V0ZXIsIFJvdXRlckZlYXR1cmVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgcm91dGVzIH0gZnJvbSAnLi9yb3V0ZXMnO1xuaW1wb3J0IHsgdXBkYXRlTWV0YVRhZ3NPblJvdXRlQ2hhbmdlIH0gZnJvbSAnLi9tZXRhLXRhZ3MnO1xuXG4vKipcbiAqIFNldHMgdXAgcHJvdmlkZXJzIGZvciB0aGUgQW5ndWxhciByb3V0ZXIsIGFuZCByZWdpc3RlcnNcbiAqIGZpbGUtYmFzZWQgcm91dGVzLiBBZGRpdGlvbmFsIGZlYXR1cmVzIGNhbiBiZSBwcm92aWRlZFxuICogdG8gZnVydGhlciBjb25maWd1cmUgdGhlIGJlaGF2aW9yIG9mIHRoZSByb3V0ZXIuXG4gKlxuICogQHBhcmFtIGZlYXR1cmVzXG4gKiBAcmV0dXJucyBQcm92aWRlcnMgYW5kIGZlYXR1cmVzIHRvIGNvbmZpZ3VyZSB0aGUgcm91dGVyIHdpdGggcm91dGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRmlsZVJvdXRlcihcbiAgLi4uZmVhdHVyZXM6IFJvdXRlckZlYXR1cmVzW11cbik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgLy8gVE9ETzogcmVtb3ZlIHR5cGUgY2FzdGluZyBhZnRlciBBbmd1bGFyID49MTUuMS4xIHVwZ3JhZGVcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL3B1bGwvNDg3MjBcbiAgICAoXG4gICAgICBwcm92aWRlUm91dGVyKHJvdXRlcywgLi4uZmVhdHVyZXMpIGFzIHVua25vd24gYXMge1xuICAgICAgICDJtXByb3ZpZGVyczogUHJvdmlkZXJbXTtcbiAgICAgIH1cbiAgICApLsm1cHJvdmlkZXJzLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VWYWx1ZTogKCkgPT4gdXBkYXRlTWV0YVRhZ3NPblJvdXRlQ2hhbmdlKCksXG4gICAgfSxcbiAgXSk7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbG9nanMtcm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9hbmFsb2dqcy1yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
@@ -1,19 +1,85 @@
1
- import { inject } from '@angular/core';
2
- import { Router, ActivatedRoute, provideRouter } from '@angular/router';
1
+ import { inject, makeEnvironmentProviders, ENVIRONMENT_INITIALIZER } from '@angular/core';
2
+ import { Meta } from '@angular/platform-browser';
3
+ import { Router, NavigationEnd, ActivatedRoute, provideRouter } from '@angular/router';
4
+ import { filter } from 'rxjs/operators';
5
+
6
+ const ROUTE_META_TAGS_KEY = Symbol('@analogjs/router Route Meta Tags Key');
7
+ const CHARSET_KEY = 'charset';
8
+ const HTTP_EQUIV_KEY = 'httpEquiv';
9
+ // httpEquiv selector key needs to be in kebab case format
10
+ const HTTP_EQUIV_SELECTOR_KEY = 'http-equiv';
11
+ const NAME_KEY = 'name';
12
+ const PROPERTY_KEY = 'property';
13
+ const CONTENT_KEY = 'content';
14
+ function updateMetaTagsOnRouteChange() {
15
+ const router = inject(Router);
16
+ const metaService = inject(Meta);
17
+ router.events
18
+ .pipe(filter((event) => event instanceof NavigationEnd))
19
+ .subscribe(() => {
20
+ const metaTagMap = getMetaTagMap(router.routerState.snapshot.root);
21
+ for (const metaTagSelector in metaTagMap) {
22
+ const metaTag = metaTagMap[metaTagSelector];
23
+ metaService.updateTag(metaTag, metaTagSelector);
24
+ }
25
+ });
26
+ }
27
+ function getMetaTagMap(route) {
28
+ const metaTagMap = {};
29
+ let currentRoute = route;
30
+ while (currentRoute) {
31
+ const metaTags = currentRoute.data[ROUTE_META_TAGS_KEY] ?? [];
32
+ for (const metaTag of metaTags) {
33
+ metaTagMap[getMetaTagSelector(metaTag)] = metaTag;
34
+ }
35
+ currentRoute = currentRoute.firstChild;
36
+ }
37
+ return metaTagMap;
38
+ }
39
+ function getMetaTagSelector(metaTag) {
40
+ if (metaTag.name) {
41
+ return `${NAME_KEY}="${metaTag.name}"`;
42
+ }
43
+ if (metaTag.property) {
44
+ return `${PROPERTY_KEY}="${metaTag.property}"`;
45
+ }
46
+ if (metaTag.httpEquiv) {
47
+ return `${HTTP_EQUIV_SELECTOR_KEY}="${metaTag.httpEquiv}"`;
48
+ }
49
+ return CHARSET_KEY;
50
+ }
51
+
52
+ function toRouteConfig(routeMeta) {
53
+ if (!routeMeta) {
54
+ return {};
55
+ }
56
+ if (isRedirectRouteMeta(routeMeta)) {
57
+ return routeMeta;
58
+ }
59
+ const { meta, ...routeConfig } = routeMeta;
60
+ if (Array.isArray(meta)) {
61
+ routeConfig.data = { ...routeConfig.data, [ROUTE_META_TAGS_KEY]: meta };
62
+ }
63
+ else if (typeof meta === 'function') {
64
+ routeConfig.resolve = {
65
+ ...routeConfig.resolve,
66
+ [ROUTE_META_TAGS_KEY]: meta,
67
+ };
68
+ }
69
+ return routeConfig;
70
+ }
71
+ function isRedirectRouteMeta(routeMeta) {
72
+ return !!routeMeta.redirectTo;
73
+ }
3
74
 
4
75
  /// <reference types="vite/client" />
5
76
  const FILES = import.meta.glob([
6
77
  '/app/routes/**/*.ts',
7
78
  '/src/app/routes/**/*.ts',
8
79
  ]);
9
- const CONTENT_FILES_GLOB = import.meta.glob(['/src/app/routes/**/*.md'], { as: 'raw', eager: true });
10
- const CONTENT_FILES = Object.keys(CONTENT_FILES_GLOB).reduce((curr, key) => {
11
- curr = {
12
- ...curr,
13
- [key]: () => Promise.resolve(CONTENT_FILES_GLOB[key]),
14
- };
15
- return curr;
16
- }, {});
80
+ const CONTENT_FILES = import.meta.glob(['/src/app/routes/**/*.md'], {
81
+ as: 'raw',
82
+ });
17
83
  /**
18
84
  * Function used to parse list of files and return
19
85
  * configuration of routes.
@@ -61,7 +127,7 @@ function getRoutes(files) {
61
127
  {
62
128
  path: '',
63
129
  component: m.default,
64
- ...m.routeMeta,
130
+ ...toRouteConfig(m.routeMeta),
65
131
  },
66
132
  ]),
67
133
  };
@@ -87,7 +153,7 @@ function getRoutes(files) {
87
153
  {
88
154
  path: '',
89
155
  component: m.default,
90
- ...m.routeMeta,
156
+ ...toRouteConfig(m.routeMeta),
91
157
  },
92
158
  ]),
93
159
  });
@@ -104,7 +170,7 @@ function getRoutes(files) {
104
170
  {
105
171
  path: '',
106
172
  component: m.default,
107
- ...m.routeMeta,
173
+ ...toRouteConfig(m.routeMeta),
108
174
  },
109
175
  ]),
110
176
  });
@@ -116,7 +182,7 @@ function getRoutes(files) {
116
182
  {
117
183
  path: '',
118
184
  children: parent._children,
119
- ...m.routeMeta,
185
+ ...toRouteConfig(m.routeMeta),
120
186
  },
121
187
  ];
122
188
  });
@@ -185,9 +251,18 @@ const injectActivatedRoute = () => {
185
251
  * @param features
186
252
  * @returns Providers and features to configure the router with routes
187
253
  */
188
- const provideFileRouter = (...features) => {
189
- return provideRouter(routes, ...features);
190
- };
254
+ function provideFileRouter(...features) {
255
+ return makeEnvironmentProviders([
256
+ // TODO: remove type casting after Angular >=15.1.1 upgrade
257
+ // https://github.com/angular/angular/pull/48720
258
+ provideRouter(routes, ...features).ɵproviders,
259
+ {
260
+ provide: ENVIRONMENT_INITIALIZER,
261
+ multi: true,
262
+ useValue: () => updateMetaTagsOnRouteChange(),
263
+ },
264
+ ]);
265
+ }
191
266
 
192
267
  /**
193
268
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"analogjs-router.mjs","sources":["../esm2020/lib/routes.mjs","../esm2020/lib/define-route.mjs","../esm2020/lib/provide-file-routes.mjs","../esm2020/analogjs-router.mjs"],"sourcesContent":["/// <reference types=\"vite/client\" />\nconst FILES = import.meta.glob([\n '/app/routes/**/*.ts',\n '/src/app/routes/**/*.ts',\n]);\nconst CONTENT_FILES_GLOB = import.meta.glob(['/src/app/routes/**/*.md'], { as: 'raw', eager: true });\nconst CONTENT_FILES = Object.keys(CONTENT_FILES_GLOB).reduce((curr, key) => {\n curr = {\n ...curr,\n [key]: () => Promise.resolve(CONTENT_FILES_GLOB[key]),\n };\n return curr;\n}, {});\n/**\n * Function used to parse list of files and return\n * configuration of routes.\n *\n * @param files\n * @returns Array of routes\n */\nexport function getRoutes(files) {\n const ROUTES = Object.keys(files).sort((a, b) => a.length - b.length);\n const routeConfigs = ROUTES.reduce((routes, key) => {\n const module = key.endsWith('.md')\n ? () => import('@analogjs/content').then((m) => ({\n default: m.MarkdownComponent,\n routeMeta: {\n data: { _analogContent: files[key] },\n },\n }))\n : files[key];\n const segments = key\n .replace(/^\\/(.*?)\\/routes|\\/app\\/routes|\\.(js|ts|md)$/g, '')\n .replace(/\\[\\.{3}.+\\]/, '**')\n .replace(/\\[([^\\]]+)\\]/g, ':$1')\n .split('/')\n .filter(Boolean);\n segments.reduce((parent, segment, index) => {\n const path = segment.replace(/index|^\\(.*?\\)$/g, '').replace('.', '/');\n const isIndex = !path;\n const isCatchall = path === '**';\n const pathMatch = isIndex ? 'full' : 'prefix';\n const root = index === 0;\n const leaf = index === segments.length - 1 && segments.length > 1;\n const node = !root && !leaf;\n const insert = /^\\w|\\//.test(path) && !isCatchall ? 'unshift' : 'push';\n if (root) {\n const dynamic = path.startsWith(':');\n if (dynamic)\n return parent;\n const last = segments.length === 1;\n if (last) {\n const newRoute = {\n path,\n pathMatch,\n _module: () => module(),\n loadChildren: () => module().then((m) => [\n {\n path: '',\n component: m.default,\n ...m.routeMeta,\n },\n ]),\n };\n routes?.[insert](newRoute);\n return parent;\n }\n }\n if (root || node) {\n const current = root ? routes : parent._children;\n const found = current?.find((route) => route.path === path);\n if (found) {\n if (!found._children) {\n found._children = [];\n }\n found.pathMatch = pathMatch;\n }\n else {\n current?.[insert]({\n path,\n pathMatch,\n _module: () => module(),\n loadChildren: () => module().then((m) => [\n {\n path: '',\n component: m.default,\n ...m.routeMeta,\n },\n ]),\n });\n }\n return (found ||\n current?.[insert === 'unshift' ? 0 : current.length - 1]);\n }\n if (leaf) {\n parent?._children?.[insert]({\n path,\n pathMatch,\n _module: () => module(),\n loadChildren: () => module().then((m) => [\n {\n path: '',\n component: m.default,\n ...m.routeMeta,\n },\n ]),\n });\n }\n if (parent._children) {\n parent.loadComponent = () => parent._module().then((m) => m.default);\n parent.loadChildren = () => parent._module().then((m) => {\n return [\n {\n path: '',\n children: parent._children,\n ...m.routeMeta,\n },\n ];\n });\n }\n return parent;\n }, {});\n return routes;\n }, []);\n return routeConfigs;\n}\nexport const routes = [...getRoutes({ ...FILES, ...CONTENT_FILES })];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFxQztBQU1yQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBYztJQUMxQyxxQkFBcUI7SUFDckIseUJBQXlCO0NBQzFCLENBQUMsQ0FBQztBQUVILE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3pDLENBQUMseUJBQXlCLENBQUMsRUFDM0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FDM0IsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUErQyxNQUFNLENBQUMsSUFBSSxDQUMzRSxrQkFBa0IsQ0FDbkIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUU7SUFDckIsSUFBSSxHQUFHO1FBQ0wsR0FBRyxJQUFJO1FBQ1AsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3RELENBQUM7SUFFRixPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUVQOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxTQUFTLENBQUMsS0FBaUQ7SUFDekUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV0RSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUNoQyxDQUFDLE1BQWUsRUFBRSxH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QUUsRUFBRSxDQUFDO3dCQUNuQjs0QkFDRSxJQUFJLEVBQUUsRUFBRTs0QkFDUixTQUFTLEVBQUUsQ0FBQyxDQUFDLE9BQU87NEJBQ3BCLEdBQUcsQ0FBQyxDQUFDLFNBQVM7eUJBQ2Y7cUJBQ0YsQ0FBQztpQkFDTCxDQUFDLENBQUM7YUFDSjtZQUVELElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRTtnQkFDcEIsTUFBTSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUUsQ0FDMUIsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN2RCxNQUFNLENBQUMsWUFBWSxHQUFHLEdBQUcsRUFBRSxDQUN6QixNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBYyxFQUFFLEVBQUU7b0JBQ3ZDLE9BQU87d0JBQ0w7NEJBQ0UsSUFBSSxFQUFFLEVBQUU7NEJBQ1IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxTQUFTOzRCQUMxQixHQUFHLENBQUMsQ0FBQyxTQUFTO3lCQUNmO3FCQUNGLENBQUM7Z0JBQ0osQ0FBQyxDQUFDLENBQUM7YUFDTjtZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsRUFBRSxFQUF1RSxDQUFDLENBQUM7UUFFNUUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxFQUNELEVBQUUsQ0FDSCxDQUFDO0lBRUYsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBWSxDQUFDLEdBQUcsU0FBUyxDQUFDLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLy8gPHJlZmVyZW5jZSB0eXBlcz1cInZpdGUvY2xpZW50XCIgLz5cblxuaW1wb3J0IHR5cGUgeyBSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IFJvdXRlRXhwb3J0IH0gZnJvbSAnLi9tb2RlbHMnO1xuXG5jb25zdCBGSUxFUyA9IGltcG9ydC5tZXRhLmdsb2I8Um91dGVFeHBvcnQ+KFtcbiAgJy9hcHAvcm91dGVzLyoqLyoudHMnLFxuICAnL3NyYy9hcHAvcm91dGVzLyoqLyoudHMnLFxuXSk7XG5cbmNvbnN0IENPTlRFTlRfRklMRVNfR0xPQiA9IGltcG9ydC5tZXRhLmdsb2I8Um91dGVFeHBvcnQ+KFxuICBbJy9zcmMvYXBwL3JvdXRlcy8qKi8qLm1kJ10sXG4gIHsgYXM6ICdyYXcnLCBlYWdlcjogdHJ1ZSB9XG4pO1xuXG5jb25zdCBDT05URU5UX0ZJTEVTOiBSZWNvcmQ8c3RyaW5nLCAoKSA9PiBQcm9taXNlPFJvdXRlRXhwb3J0Pj4gPSBPYmplY3Qua2V5cyhcbiAgQ09OVEVOVF9GSUxFU19HTE9CXG4pLnJlZHVjZSgoY3Vyciwga2V5KSA9PiB7XG4gIGN1cnIgPSB7XG4gICAgLi4uY3VycixcbiAgICBba2V5XTogKCkgPT4gUHJvbWlzZS5yZXNvbHZlKENPTlRFTlRfRklMRVNfR0xPQltrZXldKSxcbiAgfTtcblxuICByZXR1cm4gY3Vycjtcbn0sIHt9KTtcblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIHRvIHBhcnNlIGxpc3Qgb2YgZmlsZXMgYW5kIHJldHVyblxuICogY29uZmlndXJhdGlvbiBvZiByb3V0ZXMuXG4gKlxuICogQHBhcmFtIGZpbGVzXG4gKiBAcmV0dXJucyBBcnJheSBvZiByb3V0ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvdXRlcyhmaWxlczogUmVjb3JkPHN0cmluZywgKCkgPT4gUHJvbWlzZTxSb3V0ZUV4cG9ydD4+KSB7XG4gIGNvbnN0IFJPVVRFUyA9IE9iamVjdC5rZXlzKGZpbGVzKS5zb3J0KChhLCBiKSA9PiBhLmxlbmd0aCAtIGIubGVuZ3RoKTtcblxuICBjb25zdCByb3V0ZUNvbmZpZ3MgPSBST1VURVMucmVkdWNlPFJvdXRlW10+KFxuICAgIChyb3V0ZXM6IFJvdXRlW10sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBtb2R1bGUgPSBrZXkuZW5kc1dpdGgoJy5tZCcpXG4gICAgICAgID8gKCkgPT5cbiAgICAgICAgICAgIGltcG9ydCgnQGFuYWxvZ2pzL2NvbnRlbnQnKS50aGVuKChtKSA9PiAoe1xuICAgICAgICAgICAgICBkZWZhdWx0OiBtLk1hcmtkb3duQ29tcG9uZW50LFxuICAgICAgICAgICAgICByb3V0ZU1ldGE6IHtcbiAgICAgICAgICAgICAgICBkYXRhOiB7IF9hbmFsb2dDb250ZW50OiBmaWxlc1trZXldIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSlcbiAgICAgICAgOiBmaWxlc1trZXldO1xuXG4gICAgICBjb25zdCBzZWdtZW50cyA9IGtleVxuICAgICAgICAucmVwbGFjZSgvXlxcLyguKj8pXFwvcm91dGVzfFxcL2FwcFxcL3JvdXRlc3xcXC4oanN8dHN8bWQpJC9nLCAnJylcbiAgICAgICAgLnJlcGxhY2UoL1xcW1xcLnszfS4rXFxdLywgJyoqJylcbiAgICAgICAgLnJlcGxhY2UoL1xcWyhbXlxcXV0rKVxcXS9nLCAnOiQxJylcbiAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKTtcblxuICAgICAgc2VnbWVudHMucmVkdWNlKChwYXJlbnQsIHNlZ21lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBzZWdtZW50LnJlcGxhY2UoL2luZGV4fF5cXCguKj9cXCkkL2csICcnKS5yZXBsYWNlKCcuJywgJy8nKTtcbiAgICAgICAgY29uc3QgaXNJbmRleCA9ICFwYXRoO1xuICAgICAgICBjb25zdCBpc0NhdGNoYWxsID0gcGF0aCA9PT0gJyoqJztcbiAgICAgICAgY29uc3QgcGF0aE1hdGNoID0gaXNJbmRleCA/ICdmdWxsJyA6ICdwcmVmaXgnO1xuICAgICAgICBjb25zdCByb290ID0gaW5kZXggPT09IDA7XG4gICAgICAgIGNvbnN0IGxlYWYgPSBpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoIC0gMSAmJiBzZWdtZW50cy5sZW5ndGggPiAxO1xuICAgICAgICBjb25zdCBub2RlID0gIXJvb3QgJiYgIWxlYWY7XG4gICAgICAgIGNvbnN0IGluc2VydCA9IC9eXFx3fFxcLy8udGVzdChwYXRoKSAmJiAhaXNDYXRjaGFsbCA/ICd1bnNoaWZ0JyA6ICdwdXNoJztcblxuICAgICAgICBpZiAocm9vdCkge1xuICAgICAgICAgIGNvbnN0IGR5bmFtaWMgPSBwYXRoLnN0YXJ0c1dpdGgoJzonKTtcbiAgICAgICAgICBpZiAoZHluYW1pYykgcmV0dXJuIHBhcmVudDtcblxuICAgICAgICAgIGNvbnN0IGxhc3QgPSBzZWdtZW50cy5sZW5ndGggPT09IDE7XG4gICAgICAgICAgaWYgKGxhc3QpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1JvdXRlID0ge1xuICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICBwYXRoTWF0Y2gsXG4gICAgICAgICAgICAgIF9tb2R1bGU6ICgpID0+IG1vZHVsZSgpLFxuICAgICAgICAgICAgICBsb2FkQ2hpbGRyZW46ICgpID0+XG4gICAgICAgICAgICAgICAgbW9kdWxlKCkudGhlbigobSkgPT4gW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBtLmRlZmF1bHQsXG4gICAgICAgICAgICAgICAgICAgIC4uLm0ucm91dGVNZXRhLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJvdXRlcz8uW2luc2VydF0obmV3Um91dGUgYXMgUm91dGUpO1xuICAgICAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocm9vdCB8fCBub2RlKSB7XG4gICAgICAgICAgY29uc3QgY3VycmVudCA9IHJvb3QgPyByb3V0ZXMgOiBwYXJlbnQuX2NoaWxkcmVuO1xuICAgICAgICAgIGNvbnN0IGZvdW5kID0gY3VycmVudD8uZmluZCgocm91dGU6IGFueSkgPT4gcm91dGUucGF0aCA9PT0gcGF0aCk7XG5cbiAgICAgICAgICBpZiAoZm91bmQpIHtcbiAgICAgICAgICAgIGlmICghZm91bmQuX2NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgIGZvdW5kLl9jaGlsZHJlbiA9IFtdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3VuZC5wYXRoTWF0Y2ggPSBwYXRoTWF0Y2g7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnQ/LltpbnNlcnRdKHtcbiAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgcGF0aE1hdGNoLFxuICAgICAgICAgICAgICBfbW9kdWxlOiAoKSA9PiBtb2R1bGUoKSxcbiAgICAgICAgICAgICAgbG9hZENoaWxkcmVuOiAoKSA9PlxuICAgICAgICAgICAgICAgIG1vZHVsZSgpLnRoZW4oKG0pID0+IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogJycsXG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogbS5kZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgICAuLi5tLnJvdXRlTWV0YSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgZm91bmQgfHxcbiAgICAgICAgICAgIChjdXJyZW50Py5baW5zZXJ0ID09PSAndW5zaGlmdCcgPyAwIDogY3VycmVudC5sZW5ndGggLSAxXSBhcyBSb3V0ZSlcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGxlYWYpIHtcbiAgICAgICAgICBwYXJlbnQ/Ll9jaGlsZHJlbj8uW2luc2VydF0oe1xuICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgIHBhdGhNYXRjaCxcbiAgICAgICAgICAgIF9tb2R1bGU6ICgpID0+IG1vZHVsZSgpLFxuICAgICAgICAgICAgbG9hZENoaWxkcmVuOiAoKSA9PlxuICAgICAgICAgICAgICBtb2R1bGUoKS50aGVuKChtKSA9PiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgcGF0aDogJycsXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IG0uZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgIC4uLm0ucm91dGVNZXRhLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcmVudC5fY2hpbGRyZW4pIHtcbiAgICAgICAgICBwYXJlbnQubG9hZENvbXBvbmVudCA9ICgpID0+XG4gICAgICAgICAgICBwYXJlbnQuX21vZHVsZSgpLnRoZW4oKG06IFJvdXRlRXhwb3J0KSA9PiBtLmRlZmF1bHQpO1xuICAgICAgICAgIHBhcmVudC5sb2FkQ2hpbGRyZW4gPSAoKSA9PlxuICAgICAgICAgICAgcGFyZW50Ll9tb2R1bGUoKS50aGVuKChtOiBSb3V0ZUV4cG9ydCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHBhcmVudC5fY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgICAuLi5tLnJvdXRlTWV0YSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgICAgfSwge30gYXMgUm91dGUgJiB7IF9tb2R1bGU6ICgpID0+IFByb21pc2U8Um91dGVFeHBvcnQ+OyBfY2hpbGRyZW46IGFueVtdIH0pO1xuXG4gICAgICByZXR1cm4gcm91dGVzO1xuICAgIH0sXG4gICAgW11cbiAgKTtcblxuICByZXR1cm4gcm91dGVDb25maWdzO1xufVxuXG5leHBvcnQgY29uc3Qgcm91dGVzOiBSb3V0ZVtdID0gWy4uLmdldFJvdXRlcyh7IC4uLkZJTEVTLCAuLi5DT05URU5UX0ZJTEVTIH0pXTtcbiJdfQ==","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ActivatedRoute } from '@angular/router';\n/**\n * @deprecated Use `RouteMeta` type instead.\n * For more info see: https://github.com/analogjs/analog/issues/223\n *\n * Defines additional route config metadata. This\n * object is merged into the route config with\n * the predefined file-based route.\n *\n * @usageNotes\n *\n * ```\n * import { Component } from '@angular/core';\n * import { defineRouteMeta } from '@analogjs/router';\n *\n * export const routeMeta = defineRouteMeta({\n * title: 'Welcome'\n * });\n *\n * @Component({\n * template: `Home`,\n * standalone: true,\n * })\n * export default class HomeComponent {}\n * ```\n *\n * @param route\n * @returns\n */\nexport const defineRouteMeta = (route) => {\n return route;\n};\n/**\n * Returns the instance of Angular Router\n *\n * @returns The router\n */\nexport const injectRouter = () => {\n return inject(Router);\n};\n/**\n * Returns the instance of the Activate Route for the component\n *\n * @returns The activated route\n */\nexport const injectActivatedRoute = () => {\n return inject(ActivatedRoute);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lLXJvdXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvZGVmaW5lLXJvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFvQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFXakQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQXNCLEVBQUUsRUFBRTtJQUN4RCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFO0lBQy9CLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUU7SUFDdkMsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZSBhcyBOZ1JvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG50eXBlIFJvdXRlT21pdHRlZCA9XG4gIHwgJ2NvbXBvbmVudCdcbiAgfCAnbG9hZENvbXBvbmVudCdcbiAgfCAnbG9hZENoaWxkcmVuJ1xuICB8ICdwYXRoJ1xuICB8ICdwYXRoTWF0Y2gnO1xuXG50eXBlIFJlc3RyaWN0ZWRSb3V0ZSA9IE9taXQ8TmdSb3V0ZSwgUm91dGVPbWl0dGVkPjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYFJvdXRlTWV0YWAgdHlwZSBpbnN0ZWFkLlxuICogRm9yIG1vcmUgaW5mbyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmFsb2dqcy9hbmFsb2cvaXNzdWVzLzIyM1xuICpcbiAqIERlZmluZXMgYWRkaXRpb25hbCByb3V0ZSBjb25maWcgbWV0YWRhdGEuIFRoaXNcbiAqIG9iamVjdCBpcyBtZXJnZWQgaW50byB0aGUgcm91dGUgY29uZmlnIHdpdGhcbiAqIHRoZSBwcmVkZWZpbmVkIGZpbGUtYmFzZWQgcm91dGUuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqXG4gKiBgYGBcbiAqIGltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICogaW1wb3J0IHsgZGVmaW5lUm91dGVNZXRhIH0gZnJvbSAnQGFuYWxvZ2pzL3JvdXRlcic7XG4gKlxuICogIGV4cG9ydCBjb25zdCByb3V0ZU1ldGEgPSBkZWZpbmVSb3V0ZU1ldGEoe1xuICogICAgdGl0bGU6ICdXZWxjb21lJ1xuICogIH0pO1xuICpcbiAqIEBDb21wb25lbnQoe1xuICogICB0ZW1wbGF0ZTogYEhvbWVgLFxuICogICBzdGFuZGFsb25lOiB0cnVlLFxuICogfSlcbiAqIGV4cG9ydCBkZWZhdWx0IGNsYXNzIEhvbWVDb21wb25lbnQge31cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSByb3V0ZVxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmluZVJvdXRlTWV0YSA9IChyb3V0ZTogUmVzdHJpY3RlZFJvdXRlKSA9PiB7XG4gIHJldHVybiByb3V0ZTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgQW5ndWxhciBSb3V0ZXJcbiAqXG4gKiBAcmV0dXJucyBUaGUgcm91dGVyXG4gKi9cbmV4cG9ydCBjb25zdCBpbmplY3RSb3V0ZXIgPSAoKSA9PiB7XG4gIHJldHVybiBpbmplY3QoUm91dGVyKTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgdGhlIEFjdGl2YXRlIFJvdXRlIGZvciB0aGUgY29tcG9uZW50XG4gKlxuICogQHJldHVybnMgVGhlIGFjdGl2YXRlZCByb3V0ZVxuICovXG5leHBvcnQgY29uc3QgaW5qZWN0QWN0aXZhdGVkUm91dGUgPSAoKSA9PiB7XG4gIHJldHVybiBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xufTtcbiJdfQ==","import { provideRouter } from '@angular/router';\nimport { routes } from './routes';\n/**\n * Sets up providers for the Angular router, and registers\n * file-based routes. Additional features can be provided\n * to further configure the behavior of the router.\n *\n * @param features\n * @returns Providers and features to configure the router with routes\n */\nexport const provideFileRouter = (...features) => {\n return provideRouter(routes, ...features);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1maWxlLXJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3JvdXRlci9zcmMvbGliL3Byb3ZpZGUtZmlsZS1yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsUUFBMEIsRUFBRSxFQUFFO0lBQ2pFLE9BQU8sYUFBYSxDQUFDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb3ZpZGVSb3V0ZXIsIFJvdXRlckZlYXR1cmVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHJvdXRlcyB9IGZyb20gJy4vcm91dGVzJztcblxuLyoqXG4gKiBTZXRzIHVwIHByb3ZpZGVycyBmb3IgdGhlIEFuZ3VsYXIgcm91dGVyLCBhbmQgcmVnaXN0ZXJzXG4gKiBmaWxlLWJhc2VkIHJvdXRlcy4gQWRkaXRpb25hbCBmZWF0dXJlcyBjYW4gYmUgcHJvdmlkZWRcbiAqIHRvIGZ1cnRoZXIgY29uZmlndXJlIHRoZSBiZWhhdmlvciBvZiB0aGUgcm91dGVyLlxuICpcbiAqIEBwYXJhbSBmZWF0dXJlc1xuICogQHJldHVybnMgUHJvdmlkZXJzIGFuZCBmZWF0dXJlcyB0byBjb25maWd1cmUgdGhlIHJvdXRlciB3aXRoIHJvdXRlc1xuICovXG5leHBvcnQgY29uc3QgcHJvdmlkZUZpbGVSb3V0ZXIgPSAoLi4uZmVhdHVyZXM6IFJvdXRlckZlYXR1cmVzW10pID0+IHtcbiAgcmV0dXJuIHByb3ZpZGVSb3V0ZXIocm91dGVzLCAuLi5mZWF0dXJlcyk7XG59O1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbG9nanMtcm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9hbmFsb2dqcy1yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analogjs-router.mjs","sources":["../esm2020/lib/meta-tags.mjs","../esm2020/lib/route-config.mjs","../esm2020/lib/routes.mjs","../esm2020/lib/define-route.mjs","../esm2020/lib/provide-file-router.mjs","../esm2020/analogjs-router.mjs"],"sourcesContent":["import { inject } from '@angular/core';\nimport { Meta } from '@angular/platform-browser';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nexport const ROUTE_META_TAGS_KEY = Symbol('@analogjs/router Route Meta Tags Key');\nconst CHARSET_KEY = 'charset';\nconst HTTP_EQUIV_KEY = 'httpEquiv';\n// httpEquiv selector key needs to be in kebab case format\nconst HTTP_EQUIV_SELECTOR_KEY = 'http-equiv';\nconst NAME_KEY = 'name';\nconst PROPERTY_KEY = 'property';\nconst CONTENT_KEY = 'content';\nexport function updateMetaTagsOnRouteChange() {\n const router = inject(Router);\n const metaService = inject(Meta);\n router.events\n .pipe(filter((event) => event instanceof NavigationEnd))\n .subscribe(() => {\n const metaTagMap = getMetaTagMap(router.routerState.snapshot.root);\n for (const metaTagSelector in metaTagMap) {\n const metaTag = metaTagMap[metaTagSelector];\n metaService.updateTag(metaTag, metaTagSelector);\n }\n });\n}\nfunction getMetaTagMap(route) {\n const metaTagMap = {};\n let currentRoute = route;\n while (currentRoute) {\n const metaTags = currentRoute.data[ROUTE_META_TAGS_KEY] ?? [];\n for (const metaTag of metaTags) {\n metaTagMap[getMetaTagSelector(metaTag)] = metaTag;\n }\n currentRoute = currentRoute.firstChild;\n }\n return metaTagMap;\n}\nfunction getMetaTagSelector(metaTag) {\n if (metaTag.name) {\n return `${NAME_KEY}=\"${metaTag.name}\"`;\n }\n if (metaTag.property) {\n return `${PROPERTY_KEY}=\"${metaTag.property}\"`;\n }\n if (metaTag.httpEquiv) {\n return `${HTTP_EQUIV_SELECTOR_KEY}=\"${metaTag.httpEquiv}\"`;\n }\n return CHARSET_KEY;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YS10YWdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvbWV0YS10YWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLElBQUksRUFBK0IsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RSxPQUFPLEVBQTBCLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSxDQUN2QyxzQ0FBc0MsQ0FDdkMsQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHLFNBQVMsQ0FBQztBQUM5QixNQUFNLGNBQWMsR0FBRyxXQUFXLENBQUM7QUFDbkMsMERBQTBEO0FBQzFELE1BQU0sdUJBQXVCLEdBQUcsWUFBWSxDQUFDO0FBQzdDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQztBQUN4QixNQUFNLFlBQVksR0FBRyxVQUFVLENBQUM7QUFDaEMsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDO0FBOEI5QixNQUFNLFVBQVUsMkJBQTJCO0lBQ3pDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFakMsTUFBTSxDQUFDLE1BQU07U0FDVixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxDQUFDLENBQUM7U0FDdkQsU0FBUyxDQUFDLEdBQUcsRUFBRTtRQUNkLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuRSxLQUFLLE1BQU0sZUFBZSxJQUFJLFVBQVUsRUFBRTtZQUN4QyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQ3hCLGVBQWtDLENBQ3RCLENBQUM7WUFDZixXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztTQUNqRDtJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLEtBQTZCO0lBQ2xELE1BQU0sVUFBVSxHQUFHLEVBQWdCLENBQUM7SUFDcEMsSUFBSSxZQUFZLEdBQWtDLEtBQUssQ0FBQztJQUV4RCxPQUFPLFlBQVksRUFBRTtRQUNuQixNQUFNLFFBQVEsR0FBYyxZQUFZLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pFLEtBQUssTUFBTSxPQUFPLElBQUksUUFBUSxFQUFFO1lBQzlCLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztTQUNuRDtRQUVELFlBQVksR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDO0tBQ3hDO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsT0FBZ0I7SUFDMUMsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFO1FBQ2hCLE9BQU8sR0FBRyxRQUFRLEtBQUssT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDO0tBQ3hDO0lBRUQsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO1FBQ3BCLE9BQU8sR0FBRyxZQUFZLEtBQUssT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDO0tBQ2hEO0lBRUQsSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1FBQ3JCLE9BQU8sR0FBRyx1QkFBdUIsS0FBSyxPQUFPLENBQUMsU0FBUyxHQUFHLENBQUM7S0FDNUQ7SUFFRCxPQUFPLFdBQVcsQ0FBQztBQUNyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZXRhLCBNZXRhRGVmaW5pdGlvbiBhcyBOZ01ldGFUYWcgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBST1VURV9NRVRBX1RBR1NfS0VZID0gU3ltYm9sKFxuICAnQGFuYWxvZ2pzL3JvdXRlciBSb3V0ZSBNZXRhIFRhZ3MgS2V5J1xuKTtcblxuY29uc3QgQ0hBUlNFVF9LRVkgPSAnY2hhcnNldCc7XG5jb25zdCBIVFRQX0VRVUlWX0tFWSA9ICdodHRwRXF1aXYnO1xuLy8gaHR0cEVxdWl2IHNlbGVjdG9yIGtleSBuZWVkcyB0byBiZSBpbiBrZWJhYiBjYXNlIGZvcm1hdFxuY29uc3QgSFRUUF9FUVVJVl9TRUxFQ1RPUl9LRVkgPSAnaHR0cC1lcXVpdic7XG5jb25zdCBOQU1FX0tFWSA9ICduYW1lJztcbmNvbnN0IFBST1BFUlRZX0tFWSA9ICdwcm9wZXJ0eSc7XG5jb25zdCBDT05URU5UX0tFWSA9ICdjb250ZW50JztcblxuZXhwb3J0IHR5cGUgTWV0YVRhZyA9XG4gIHwgKENoYXJzZXRNZXRhVGFnICYgRXhjbHVkZVJlc3RNZXRhVGFnS2V5czx0eXBlb2YgQ0hBUlNFVF9LRVk+KVxuICB8IChIdHRwRXF1aXZNZXRhVGFnICYgRXhjbHVkZVJlc3RNZXRhVGFnS2V5czx0eXBlb2YgSFRUUF9FUVVJVl9LRVk+KVxuICB8IChOYW1lTWV0YVRhZyAmIEV4Y2x1ZGVSZXN0TWV0YVRhZ0tleXM8dHlwZW9mIE5BTUVfS0VZPilcbiAgfCAoUHJvcGVydHlNZXRhVGFnICYgRXhjbHVkZVJlc3RNZXRhVGFnS2V5czx0eXBlb2YgUFJPUEVSVFlfS0VZPik7XG5cbnR5cGUgQ2hhcnNldE1ldGFUYWcgPSB7IFtDSEFSU0VUX0tFWV06IHN0cmluZyB9O1xudHlwZSBIdHRwRXF1aXZNZXRhVGFnID0geyBbSFRUUF9FUVVJVl9LRVldOiBzdHJpbmc7IFtDT05URU5UX0tFWV06IHN0cmluZyB9O1xudHlwZSBOYW1lTWV0YVRhZyA9IHsgW05BTUVfS0VZXTogc3RyaW5nOyBbQ09OVEVOVF9LRVldOiBzdHJpbmcgfTtcbnR5cGUgUHJvcGVydHlNZXRhVGFnID0geyBbUFJPUEVSVFlfS0VZXTogc3RyaW5nOyBbQ09OVEVOVF9LRVldOiBzdHJpbmcgfTtcblxudHlwZSBNZXRhVGFnS2V5ID1cbiAgfCB0eXBlb2YgQ0hBUlNFVF9LRVlcbiAgfCB0eXBlb2YgSFRUUF9FUVVJVl9LRVlcbiAgfCB0eXBlb2YgTkFNRV9LRVlcbiAgfCB0eXBlb2YgUFJPUEVSVFlfS0VZO1xudHlwZSBFeGNsdWRlUmVzdE1ldGFUYWdLZXlzPEtleSBleHRlbmRzIE1ldGFUYWdLZXk+ID0ge1xuICBbSyBpbiBFeGNsdWRlPE1ldGFUYWdLZXksIEtleT5dPzogbmV2ZXI7XG59O1xuXG50eXBlIE1ldGFUYWdTZWxlY3RvciA9XG4gIHwgdHlwZW9mIENIQVJTRVRfS0VZXG4gIHwgYCR7XG4gICAgICB8IHR5cGVvZiBIVFRQX0VRVUlWX1NFTEVDVE9SX0tFWVxuICAgICAgfCB0eXBlb2YgTkFNRV9LRVlcbiAgICAgIHwgdHlwZW9mIFBST1BFUlRZX0tFWX09XCIke3N0cmluZ31cImA7XG50eXBlIE1ldGFUYWdNYXAgPSBSZWNvcmQ8TWV0YVRhZ1NlbGVjdG9yLCBNZXRhVGFnPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZU1ldGFUYWdzT25Sb3V0ZUNoYW5nZSgpOiB2b2lkIHtcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIGNvbnN0IG1ldGFTZXJ2aWNlID0gaW5qZWN0KE1ldGEpO1xuXG4gIHJvdXRlci5ldmVudHNcbiAgICAucGlwZShmaWx0ZXIoKGV2ZW50KSA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpKVxuICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgbWV0YVRhZ01hcCA9IGdldE1ldGFUYWdNYXAocm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnJvb3QpO1xuXG4gICAgICBmb3IgKGNvbnN0IG1ldGFUYWdTZWxlY3RvciBpbiBtZXRhVGFnTWFwKSB7XG4gICAgICAgIGNvbnN0IG1ldGFUYWcgPSBtZXRhVGFnTWFwW1xuICAgICAgICAgIG1ldGFUYWdTZWxlY3RvciBhcyBNZXRhVGFnU2VsZWN0b3JcbiAgICAgICAgXSBhcyBOZ01ldGFUYWc7XG4gICAgICAgIG1ldGFTZXJ2aWNlLnVwZGF0ZVRhZyhtZXRhVGFnLCBtZXRhVGFnU2VsZWN0b3IpO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRNZXRhVGFnTWFwKHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90KTogTWV0YVRhZ01hcCB7XG4gIGNvbnN0IG1ldGFUYWdNYXAgPSB7fSBhcyBNZXRhVGFnTWFwO1xuICBsZXQgY3VycmVudFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgbnVsbCA9IHJvdXRlO1xuXG4gIHdoaWxlIChjdXJyZW50Um91dGUpIHtcbiAgICBjb25zdCBtZXRhVGFnczogTWV0YVRhZ1tdID0gY3VycmVudFJvdXRlLmRhdGFbUk9VVEVfTUVUQV9UQUdTX0tFWV0gPz8gW107XG4gICAgZm9yIChjb25zdCBtZXRhVGFnIG9mIG1ldGFUYWdzKSB7XG4gICAgICBtZXRhVGFnTWFwW2dldE1ldGFUYWdTZWxlY3RvcihtZXRhVGFnKV0gPSBtZXRhVGFnO1xuICAgIH1cblxuICAgIGN1cnJlbnRSb3V0ZSA9IGN1cnJlbnRSb3V0ZS5maXJzdENoaWxkO1xuICB9XG5cbiAgcmV0dXJuIG1ldGFUYWdNYXA7XG59XG5cbmZ1bmN0aW9uIGdldE1ldGFUYWdTZWxlY3RvcihtZXRhVGFnOiBNZXRhVGFnKTogTWV0YVRhZ1NlbGVjdG9yIHtcbiAgaWYgKG1ldGFUYWcubmFtZSkge1xuICAgIHJldHVybiBgJHtOQU1FX0tFWX09XCIke21ldGFUYWcubmFtZX1cImA7XG4gIH1cblxuICBpZiAobWV0YVRhZy5wcm9wZXJ0eSkge1xuICAgIHJldHVybiBgJHtQUk9QRVJUWV9LRVl9PVwiJHttZXRhVGFnLnByb3BlcnR5fVwiYDtcbiAgfVxuXG4gIGlmIChtZXRhVGFnLmh0dHBFcXVpdikge1xuICAgIHJldHVybiBgJHtIVFRQX0VRVUlWX1NFTEVDVE9SX0tFWX09XCIke21ldGFUYWcuaHR0cEVxdWl2fVwiYDtcbiAgfVxuXG4gIHJldHVybiBDSEFSU0VUX0tFWTtcbn1cbiJdfQ==","import { ROUTE_META_TAGS_KEY } from './meta-tags';\nexport function toRouteConfig(routeMeta) {\n if (!routeMeta) {\n return {};\n }\n if (isRedirectRouteMeta(routeMeta)) {\n return routeMeta;\n }\n const { meta, ...routeConfig } = routeMeta;\n if (Array.isArray(meta)) {\n routeConfig.data = { ...routeConfig.data, [ROUTE_META_TAGS_KEY]: meta };\n }\n else if (typeof meta === 'function') {\n routeConfig.resolve = {\n ...routeConfig.resolve,\n [ROUTE_META_TAGS_KEY]: meta,\n };\n }\n return routeConfig;\n}\nfunction isRedirectRouteMeta(routeMeta) {\n return !!routeMeta.redirectTo;\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvcm91dGUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVsRCxNQUFNLFVBQVUsYUFBYSxDQUFDLFNBQWdDO0lBQzVELElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDZCxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsSUFBSSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUNsQyxPQUFPLFNBQVMsQ0FBQztLQUNsQjtJQUVELE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxXQUFXLEVBQUUsR0FBRyxTQUFTLENBQUM7SUFFM0MsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3ZCLFdBQVcsQ0FBQyxJQUFJLEdBQUcsRUFBRSxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO0tBQ3pFO1NBQU0sSUFBSSxPQUFPLElBQUksS0FBSyxVQUFVLEVBQUU7UUFDckMsV0FBVyxDQUFDLE9BQU8sR0FBRztZQUNwQixHQUFHLFdBQVcsQ0FBQyxPQUFPO1lBQ3RCLENBQUMsbUJBQW1CLENBQUMsRUFBRSxJQUFJO1NBQzVCLENBQUM7S0FDSDtJQUVELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUMxQixTQUFvQjtJQUVwQixPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO0FBQ2hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZWRpcmVjdFJvdXRlTWV0YSwgUm91dGVDb25maWcsIFJvdXRlTWV0YSB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IFJPVVRFX01FVEFfVEFHU19LRVkgfSBmcm9tICcuL21ldGEtdGFncyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1JvdXRlQ29uZmlnKHJvdXRlTWV0YTogUm91dGVNZXRhIHwgdW5kZWZpbmVkKTogUm91dGVDb25maWcge1xuICBpZiAoIXJvdXRlTWV0YSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGlmIChpc1JlZGlyZWN0Um91dGVNZXRhKHJvdXRlTWV0YSkpIHtcbiAgICByZXR1cm4gcm91dGVNZXRhO1xuICB9XG5cbiAgY29uc3QgeyBtZXRhLCAuLi5yb3V0ZUNvbmZpZyB9ID0gcm91dGVNZXRhO1xuXG4gIGlmIChBcnJheS5pc0FycmF5KG1ldGEpKSB7XG4gICAgcm91dGVDb25maWcuZGF0YSA9IHsgLi4ucm91dGVDb25maWcuZGF0YSwgW1JPVVRFX01FVEFfVEFHU19LRVldOiBtZXRhIH07XG4gIH0gZWxzZSBpZiAodHlwZW9mIG1ldGEgPT09ICdmdW5jdGlvbicpIHtcbiAgICByb3V0ZUNvbmZpZy5yZXNvbHZlID0ge1xuICAgICAgLi4ucm91dGVDb25maWcucmVzb2x2ZSxcbiAgICAgIFtST1VURV9NRVRBX1RBR1NfS0VZXTogbWV0YSxcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHJvdXRlQ29uZmlnO1xufVxuXG5mdW5jdGlvbiBpc1JlZGlyZWN0Um91dGVNZXRhKFxuICByb3V0ZU1ldGE6IFJvdXRlTWV0YVxuKTogcm91dGVNZXRhIGlzIFJlZGlyZWN0Um91dGVNZXRhIHtcbiAgcmV0dXJuICEhcm91dGVNZXRhLnJlZGlyZWN0VG87XG59XG4iXX0=","/// <reference types=\"vite/client\" />\nimport { toRouteConfig } from './route-config';\nconst FILES = import.meta.glob([\n '/app/routes/**/*.ts',\n '/src/app/routes/**/*.ts',\n]);\nconst CONTENT_FILES = import.meta.glob(['/src/app/routes/**/*.md'], {\n as: 'raw',\n});\n/**\n * Function used to parse list of files and return\n * configuration of routes.\n *\n * @param files\n * @returns Array of routes\n */\nexport function getRoutes(files) {\n const ROUTES = Object.keys(files).sort((a, b) => a.length - b.length);\n const routeConfigs = ROUTES.reduce((routes, key) => {\n const module = key.endsWith('.md')\n ? () => import('@analogjs/content').then((m) => ({\n default: m.MarkdownComponent,\n routeMeta: {\n data: { _analogContent: files[key] },\n },\n }))\n : files[key];\n const segments = key\n .replace(/^\\/(.*?)\\/routes|\\/app\\/routes|\\.(js|ts|md)$/g, '')\n .replace(/\\[\\.{3}.+\\]/, '**')\n .replace(/\\[([^\\]]+)\\]/g, ':$1')\n .split('/')\n .filter(Boolean);\n segments.reduce((parent, segment, index) => {\n const path = segment.replace(/index|^\\(.*?\\)$/g, '').replace('.', '/');\n const isIndex = !path;\n const isCatchall = path === '**';\n const pathMatch = isIndex ? 'full' : 'prefix';\n const root = index === 0;\n const leaf = index === segments.length - 1 && segments.length > 1;\n const node = !root && !leaf;\n const insert = /^\\w|\\//.test(path) && !isCatchall ? 'unshift' : 'push';\n if (root) {\n const dynamic = path.startsWith(':');\n if (dynamic)\n return parent;\n const last = segments.length === 1;\n if (last) {\n const newRoute = {\n path,\n pathMatch,\n _module: () => module(),\n loadChildren: () => module().then((m) => [\n {\n path: '',\n component: m.default,\n ...toRouteConfig(m.routeMeta),\n },\n ]),\n };\n routes?.[insert](newRoute);\n return parent;\n }\n }\n if (root || node) {\n const current = root ? routes : parent._children;\n const found = current?.find((route) => route.path === path);\n if (found) {\n if (!found._children) {\n found._children = [];\n }\n found.pathMatch = pathMatch;\n }\n else {\n current?.[insert]({\n path,\n pathMatch,\n _module: () => module(),\n loadChildren: () => module().then((m) => [\n {\n path: '',\n component: m.default,\n ...toRouteConfig(m.routeMeta),\n },\n ]),\n });\n }\n return (found ||\n current?.[insert === 'unshift' ? 0 : current.length - 1]);\n }\n if (leaf) {\n parent?._children?.[insert]({\n path,\n pathMatch,\n _module: () => module(),\n loadChildren: () => module().then((m) => [\n {\n path: '',\n component: m.default,\n ...toRouteConfig(m.routeMeta),\n },\n ]),\n });\n }\n if (parent._children) {\n parent.loadComponent = () => parent._module().then((m) => m.default);\n parent.loadChildren = () => parent._module().then((m) => {\n return [\n {\n path: '',\n children: parent._children,\n ...toRouteConfig(m.routeMeta),\n },\n ];\n });\n }\n return parent;\n }, {});\n return routes;\n }, []);\n return routeConfigs;\n}\nexport const routes = [...getRoutes({ ...FILES, ...CONTENT_FILES })];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvcm91dGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFDQUFxQztBQUtyQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFL0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQWM7SUFDMUMscUJBQXFCO0lBQ3JCLHlCQUF5QjtDQUMxQixDQUFDLENBQUM7QUFFSCxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBUyxDQUFDLHlCQUF5QixDQUFDLEVBQUU7SUFDMUUsRUFBRSxFQUFFLEtBQUs7Q0FDVixDQUFDLENBQUM7QUFFSDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUN2QixLQUEwRDtJQUUxRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXRFLE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQ2hDLENBQUMsTUFBZSxFQUFFLEdBQVcsRUFBRSxFQUFFO1FBQy9CLE1BQU0sTUFBTSxHQUErQixHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUM1RCxDQUFDLENBQUMsR0FBRyxFQUFFLENBQ0gsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN2QyxPQUFPLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQjtnQkFDNUIsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsR0FB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QUMxQixNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sQ0FBQyxZQUFZLEdBQUcsR0FBRyxFQUFFLENBQ3pCLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFjLEVBQUUsRUFBRTtvQkFDdkMsT0FBTzt3QkFDTDs0QkFDRSxJQUFJLEVBQUUsRUFBRTs0QkFDUixRQUFRLEVBQUUsTUFBTSxDQUFDLFNBQVM7NEJBQzFCLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFrQyxDQUFDO3lCQUN2RDtxQkFDRixDQUFDO2dCQUNKLENBQUMsQ0FBQyxDQUFDO2FBQ047WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLEVBQUUsRUFBdUUsQ0FBQyxDQUFDO1FBRTVFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsRUFDRCxFQUFFLENBQ0gsQ0FBQztJQUVGLE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQVksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJ2aXRlL2NsaWVudFwiIC8+XG5cbmltcG9ydCB0eXBlIHsgUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBSb3V0ZUV4cG9ydCwgUm91dGVNZXRhIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgdG9Sb3V0ZUNvbmZpZyB9IGZyb20gJy4vcm91dGUtY29uZmlnJztcblxuY29uc3QgRklMRVMgPSBpbXBvcnQubWV0YS5nbG9iPFJvdXRlRXhwb3J0PihbXG4gICcvYXBwL3JvdXRlcy8qKi8qLnRzJyxcbiAgJy9zcmMvYXBwL3JvdXRlcy8qKi8qLnRzJyxcbl0pO1xuXG5jb25zdCBDT05URU5UX0ZJTEVTID0gaW1wb3J0Lm1ldGEuZ2xvYjxzdHJpbmc+KFsnL3NyYy9hcHAvcm91dGVzLyoqLyoubWQnXSwge1xuICBhczogJ3JhdycsXG59KTtcblxuLyoqXG4gKiBGdW5jdGlvbiB1c2VkIHRvIHBhcnNlIGxpc3Qgb2YgZmlsZXMgYW5kIHJldHVyblxuICogY29uZmlndXJhdGlvbiBvZiByb3V0ZXMuXG4gKlxuICogQHBhcmFtIGZpbGVzXG4gKiBAcmV0dXJucyBBcnJheSBvZiByb3V0ZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJvdXRlcyhcbiAgZmlsZXM6IFJlY29yZDxzdHJpbmcsICgpID0+IFByb21pc2U8Um91dGVFeHBvcnQgfCBzdHJpbmc+PlxuKSB7XG4gIGNvbnN0IFJPVVRFUyA9IE9iamVjdC5rZXlzKGZpbGVzKS5zb3J0KChhLCBiKSA9PiBhLmxlbmd0aCAtIGIubGVuZ3RoKTtcblxuICBjb25zdCByb3V0ZUNvbmZpZ3MgPSBST1VURVMucmVkdWNlPFJvdXRlW10+KFxuICAgIChyb3V0ZXM6IFJvdXRlW10sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBtb2R1bGU6ICgpID0+IFByb21pc2U8Um91dGVFeHBvcnQ+ID0ga2V5LmVuZHNXaXRoKCcubWQnKVxuICAgICAgICA/ICgpID0+XG4gICAgICAgICAgICBpbXBvcnQoJ0BhbmFsb2dqcy9jb250ZW50JykudGhlbigobSkgPT4gKHtcbiAgICAgICAgICAgICAgZGVmYXVsdDogbS5NYXJrZG93bkNvbXBvbmVudCxcbiAgICAgICAgICAgICAgcm91dGVNZXRhOiB7XG4gICAgICAgICAgICAgICAgZGF0YTogeyBfYW5hbG9nQ29udGVudDogZmlsZXNba2V5XSB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSkpXG4gICAgICAgIDogKGZpbGVzW2tleV0gYXMgKCkgPT4gUHJvbWlzZTxSb3V0ZUV4cG9ydD4pO1xuXG4gICAgICBjb25zdCBzZWdtZW50cyA9IGtleVxuICAgICAgICAucmVwbGFjZSgvXlxcLyguKj8pXFwvcm91dGVzfFxcL2FwcFxcL3JvdXRlc3xcXC4oanN8dHN8bWQpJC9nLCAnJylcbiAgICAgICAgLnJlcGxhY2UoL1xcW1xcLnszfS4rXFxdLywgJyoqJylcbiAgICAgICAgLnJlcGxhY2UoL1xcWyhbXlxcXV0rKVxcXS9nLCAnOiQxJylcbiAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgLmZpbHRlcihCb29sZWFuKTtcblxuICAgICAgc2VnbWVudHMucmVkdWNlKChwYXJlbnQsIHNlZ21lbnQsIGluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHBhdGggPSBzZWdtZW50LnJlcGxhY2UoL2luZGV4fF5cXCguKj9cXCkkL2csICcnKS5yZXBsYWNlKCcuJywgJy8nKTtcbiAgICAgICAgY29uc3QgaXNJbmRleCA9ICFwYXRoO1xuICAgICAgICBjb25zdCBpc0NhdGNoYWxsID0gcGF0aCA9PT0gJyoqJztcbiAgICAgICAgY29uc3QgcGF0aE1hdGNoID0gaXNJbmRleCA/ICdmdWxsJyA6ICdwcmVmaXgnO1xuICAgICAgICBjb25zdCByb290ID0gaW5kZXggPT09IDA7XG4gICAgICAgIGNvbnN0IGxlYWYgPSBpbmRleCA9PT0gc2VnbWVudHMubGVuZ3RoIC0gMSAmJiBzZWdtZW50cy5sZW5ndGggPiAxO1xuICAgICAgICBjb25zdCBub2RlID0gIXJvb3QgJiYgIWxlYWY7XG4gICAgICAgIGNvbnN0IGluc2VydCA9IC9eXFx3fFxcLy8udGVzdChwYXRoKSAmJiAhaXNDYXRjaGFsbCA/ICd1bnNoaWZ0JyA6ICdwdXNoJztcblxuICAgICAgICBpZiAocm9vdCkge1xuICAgICAgICAgIGNvbnN0IGR5bmFtaWMgPSBwYXRoLnN0YXJ0c1dpdGgoJzonKTtcbiAgICAgICAgICBpZiAoZHluYW1pYykgcmV0dXJuIHBhcmVudDtcblxuICAgICAgICAgIGNvbnN0IGxhc3QgPSBzZWdtZW50cy5sZW5ndGggPT09IDE7XG4gICAgICAgICAgaWYgKGxhc3QpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1JvdXRlID0ge1xuICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICBwYXRoTWF0Y2gsXG4gICAgICAgICAgICAgIF9tb2R1bGU6ICgpID0+IG1vZHVsZSgpLFxuICAgICAgICAgICAgICBsb2FkQ2hpbGRyZW46ICgpID0+XG4gICAgICAgICAgICAgICAgbW9kdWxlKCkudGhlbigobSkgPT4gW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBtLmRlZmF1bHQsXG4gICAgICAgICAgICAgICAgICAgIC4uLnRvUm91dGVDb25maWcobS5yb3V0ZU1ldGEgYXMgUm91dGVNZXRhIHwgdW5kZWZpbmVkKSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByb3V0ZXM/LltpbnNlcnRdKG5ld1JvdXRlIGFzIFJvdXRlKTtcbiAgICAgICAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHJvb3QgfHwgbm9kZSkge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSByb290ID8gcm91dGVzIDogcGFyZW50Ll9jaGlsZHJlbjtcbiAgICAgICAgICBjb25zdCBmb3VuZCA9IGN1cnJlbnQ/LmZpbmQoKHJvdXRlOiBhbnkpID0+IHJvdXRlLnBhdGggPT09IHBhdGgpO1xuXG4gICAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgICBpZiAoIWZvdW5kLl9jaGlsZHJlbikge1xuICAgICAgICAgICAgICBmb3VuZC5fY2hpbGRyZW4gPSBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm91bmQucGF0aE1hdGNoID0gcGF0aE1hdGNoO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50Py5baW5zZXJ0XSh7XG4gICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgIHBhdGhNYXRjaCxcbiAgICAgICAgICAgICAgX21vZHVsZTogKCkgPT4gbW9kdWxlKCksXG4gICAgICAgICAgICAgIGxvYWRDaGlsZHJlbjogKCkgPT5cbiAgICAgICAgICAgICAgICBtb2R1bGUoKS50aGVuKChtKSA9PiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IG0uZGVmYXVsdCxcbiAgICAgICAgICAgICAgICAgICAgLi4udG9Sb3V0ZUNvbmZpZyhtLnJvdXRlTWV0YSBhcyBSb3V0ZU1ldGEgfCB1bmRlZmluZWQpLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICBmb3VuZCB8fFxuICAgICAgICAgICAgKGN1cnJlbnQ/LltpbnNlcnQgPT09ICd1bnNoaWZ0JyA/IDAgOiBjdXJyZW50Lmxlbmd0aCAtIDFdIGFzIFJvdXRlKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobGVhZikge1xuICAgICAgICAgIHBhcmVudD8uX2NoaWxkcmVuPy5baW5zZXJ0XSh7XG4gICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgcGF0aE1hdGNoLFxuICAgICAgICAgICAgX21vZHVsZTogKCkgPT4gbW9kdWxlKCksXG4gICAgICAgICAgICBsb2FkQ2hpbGRyZW46ICgpID0+XG4gICAgICAgICAgICAgIG1vZHVsZSgpLnRoZW4oKG0pID0+IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBwYXRoOiAnJyxcbiAgICAgICAgICAgICAgICAgIGNvbXBvbmVudDogbS5kZWZhdWx0LFxuICAgICAgICAgICAgICAgICAgLi4udG9Sb3V0ZUNvbmZpZyhtLnJvdXRlTWV0YSBhcyBSb3V0ZU1ldGEgfCB1bmRlZmluZWQpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0pLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHBhcmVudC5fY2hpbGRyZW4pIHtcbiAgICAgICAgICBwYXJlbnQubG9hZENvbXBvbmVudCA9ICgpID0+XG4gICAgICAgICAgICBwYXJlbnQuX21vZHVsZSgpLnRoZW4oKG06IFJvdXRlRXhwb3J0KSA9PiBtLmRlZmF1bHQpO1xuICAgICAgICAgIHBhcmVudC5sb2FkQ2hpbGRyZW4gPSAoKSA9PlxuICAgICAgICAgICAgcGFyZW50Ll9tb2R1bGUoKS50aGVuKChtOiBSb3V0ZUV4cG9ydCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIHBhdGg6ICcnLFxuICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IHBhcmVudC5fY2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgICAuLi50b1JvdXRlQ29uZmlnKG0ucm91dGVNZXRhIGFzIFJvdXRlTWV0YSB8IHVuZGVmaW5lZCksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcmVudDtcbiAgICAgIH0sIHt9IGFzIFJvdXRlICYgeyBfbW9kdWxlOiAoKSA9PiBQcm9taXNlPFJvdXRlRXhwb3J0PjsgX2NoaWxkcmVuOiBhbnlbXSB9KTtcblxuICAgICAgcmV0dXJuIHJvdXRlcztcbiAgICB9LFxuICAgIFtdXG4gICk7XG5cbiAgcmV0dXJuIHJvdXRlQ29uZmlncztcbn1cblxuZXhwb3J0IGNvbnN0IHJvdXRlczogUm91dGVbXSA9IFsuLi5nZXRSb3V0ZXMoeyAuLi5GSUxFUywgLi4uQ09OVEVOVF9GSUxFUyB9KV07XG4iXX0=","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ActivatedRoute } from '@angular/router';\n/**\n * @deprecated Use `RouteMeta` type instead.\n * For more info see: https://github.com/analogjs/analog/issues/223\n *\n * Defines additional route config metadata. This\n * object is merged into the route config with\n * the predefined file-based route.\n *\n * @usageNotes\n *\n * ```\n * import { Component } from '@angular/core';\n * import { defineRouteMeta } from '@analogjs/router';\n *\n * export const routeMeta = defineRouteMeta({\n * title: 'Welcome'\n * });\n *\n * @Component({\n * template: `Home`,\n * standalone: true,\n * })\n * export default class HomeComponent {}\n * ```\n *\n * @param route\n * @returns\n */\nexport const defineRouteMeta = (route) => {\n return route;\n};\n/**\n * Returns the instance of Angular Router\n *\n * @returns The router\n */\nexport const injectRouter = () => {\n return inject(Router);\n};\n/**\n * Returns the instance of the Activate Route for the component\n *\n * @returns The activated route\n */\nexport const injectActivatedRoute = () => {\n return inject(ActivatedRoute);\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5lLXJvdXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9saWIvZGVmaW5lLXJvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFvQixNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFXakQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQXNCLEVBQUUsRUFBRTtJQUN4RCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFO0lBQy9CLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hCLENBQUMsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUU7SUFDdkMsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDaEMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZSBhcyBOZ1JvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG50eXBlIFJvdXRlT21pdHRlZCA9XG4gIHwgJ2NvbXBvbmVudCdcbiAgfCAnbG9hZENvbXBvbmVudCdcbiAgfCAnbG9hZENoaWxkcmVuJ1xuICB8ICdwYXRoJ1xuICB8ICdwYXRoTWF0Y2gnO1xuXG50eXBlIFJlc3RyaWN0ZWRSb3V0ZSA9IE9taXQ8TmdSb3V0ZSwgUm91dGVPbWl0dGVkPjtcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYFJvdXRlTWV0YWAgdHlwZSBpbnN0ZWFkLlxuICogRm9yIG1vcmUgaW5mbyBzZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmFsb2dqcy9hbmFsb2cvaXNzdWVzLzIyM1xuICpcbiAqIERlZmluZXMgYWRkaXRpb25hbCByb3V0ZSBjb25maWcgbWV0YWRhdGEuIFRoaXNcbiAqIG9iamVjdCBpcyBtZXJnZWQgaW50byB0aGUgcm91dGUgY29uZmlnIHdpdGhcbiAqIHRoZSBwcmVkZWZpbmVkIGZpbGUtYmFzZWQgcm91dGUuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqXG4gKiBgYGBcbiAqIGltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICogaW1wb3J0IHsgZGVmaW5lUm91dGVNZXRhIH0gZnJvbSAnQGFuYWxvZ2pzL3JvdXRlcic7XG4gKlxuICogIGV4cG9ydCBjb25zdCByb3V0ZU1ldGEgPSBkZWZpbmVSb3V0ZU1ldGEoe1xuICogICAgdGl0bGU6ICdXZWxjb21lJ1xuICogIH0pO1xuICpcbiAqIEBDb21wb25lbnQoe1xuICogICB0ZW1wbGF0ZTogYEhvbWVgLFxuICogICBzdGFuZGFsb25lOiB0cnVlLFxuICogfSlcbiAqIGV4cG9ydCBkZWZhdWx0IGNsYXNzIEhvbWVDb21wb25lbnQge31cbiAqIGBgYFxuICpcbiAqIEBwYXJhbSByb3V0ZVxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmluZVJvdXRlTWV0YSA9IChyb3V0ZTogUmVzdHJpY3RlZFJvdXRlKSA9PiB7XG4gIHJldHVybiByb3V0ZTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgQW5ndWxhciBSb3V0ZXJcbiAqXG4gKiBAcmV0dXJucyBUaGUgcm91dGVyXG4gKi9cbmV4cG9ydCBjb25zdCBpbmplY3RSb3V0ZXIgPSAoKSA9PiB7XG4gIHJldHVybiBpbmplY3QoUm91dGVyKTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgdGhlIEFjdGl2YXRlIFJvdXRlIGZvciB0aGUgY29tcG9uZW50XG4gKlxuICogQHJldHVybnMgVGhlIGFjdGl2YXRlZCByb3V0ZVxuICovXG5leHBvcnQgY29uc3QgaW5qZWN0QWN0aXZhdGVkUm91dGUgPSAoKSA9PiB7XG4gIHJldHVybiBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xufTtcbiJdfQ==","import { ENVIRONMENT_INITIALIZER, makeEnvironmentProviders, } from '@angular/core';\nimport { provideRouter } from '@angular/router';\nimport { routes } from './routes';\nimport { updateMetaTagsOnRouteChange } from './meta-tags';\n/**\n * Sets up providers for the Angular router, and registers\n * file-based routes. Additional features can be provided\n * to further configure the behavior of the router.\n *\n * @param features\n * @returns Providers and features to configure the router with routes\n */\nexport function provideFileRouter(...features) {\n return makeEnvironmentProviders([\n // TODO: remove type casting after Angular >=15.1.1 upgrade\n // https://github.com/angular/angular/pull/48720\n provideRouter(routes, ...features).ɵproviders,\n {\n provide: ENVIRONMENT_INITIALIZER,\n multi: true,\n useValue: () => updateMetaTagsOnRouteChange(),\n },\n ]);\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1maWxlLXJvdXRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3JvdXRlci9zcmMvbGliL3Byb3ZpZGUtZmlsZS1yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUV2Qix3QkFBd0IsR0FFekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixHQUFHLFFBQTBCO0lBRTdCLE9BQU8sd0JBQXdCLENBQUM7UUFDOUIsMkRBQTJEO1FBQzNELGdEQUFnRDtRQUU5QyxhQUFhLENBQUMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUdsQyxDQUFDLFVBQVU7UUFDWjtZQUNFLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsS0FBSyxFQUFFLElBQUk7WUFDWCxRQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsMkJBQTJCLEVBQUU7U0FDOUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRU5WSVJPTk1FTlRfSU5JVElBTElaRVIsXG4gIEVudmlyb25tZW50UHJvdmlkZXJzLFxuICBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMsXG4gIFByb3ZpZGVyLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHByb3ZpZGVSb3V0ZXIsIFJvdXRlckZlYXR1cmVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgcm91dGVzIH0gZnJvbSAnLi9yb3V0ZXMnO1xuaW1wb3J0IHsgdXBkYXRlTWV0YVRhZ3NPblJvdXRlQ2hhbmdlIH0gZnJvbSAnLi9tZXRhLXRhZ3MnO1xuXG4vKipcbiAqIFNldHMgdXAgcHJvdmlkZXJzIGZvciB0aGUgQW5ndWxhciByb3V0ZXIsIGFuZCByZWdpc3RlcnNcbiAqIGZpbGUtYmFzZWQgcm91dGVzLiBBZGRpdGlvbmFsIGZlYXR1cmVzIGNhbiBiZSBwcm92aWRlZFxuICogdG8gZnVydGhlciBjb25maWd1cmUgdGhlIGJlaGF2aW9yIG9mIHRoZSByb3V0ZXIuXG4gKlxuICogQHBhcmFtIGZlYXR1cmVzXG4gKiBAcmV0dXJucyBQcm92aWRlcnMgYW5kIGZlYXR1cmVzIHRvIGNvbmZpZ3VyZSB0aGUgcm91dGVyIHdpdGggcm91dGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlRmlsZVJvdXRlcihcbiAgLi4uZmVhdHVyZXM6IFJvdXRlckZlYXR1cmVzW11cbik6IEVudmlyb25tZW50UHJvdmlkZXJzIHtcbiAgcmV0dXJuIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgLy8gVE9ETzogcmVtb3ZlIHR5cGUgY2FzdGluZyBhZnRlciBBbmd1bGFyID49MTUuMS4xIHVwZ3JhZGVcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL3B1bGwvNDg3MjBcbiAgICAoXG4gICAgICBwcm92aWRlUm91dGVyKHJvdXRlcywgLi4uZmVhdHVyZXMpIGFzIHVua25vd24gYXMge1xuICAgICAgICDJtXByb3ZpZGVyczogUHJvdmlkZXJbXTtcbiAgICAgIH1cbiAgICApLsm1cHJvdmlkZXJzLFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEVOVklST05NRU5UX0lOSVRJQUxJWkVSLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgICB1c2VWYWx1ZTogKCkgPT4gdXBkYXRlTWV0YVRhZ3NPblJvdXRlQ2hhbmdlKCksXG4gICAgfSxcbiAgXSk7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbG9nanMtcm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcm91dGVyL3NyYy9hbmFsb2dqcy1yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { routes } from './lib/routes';
2
2
  export { defineRouteMeta, injectActivatedRoute, injectRouter, } from './lib/define-route';
3
3
  export { RouteMeta } from './lib/models';
4
- export { provideFileRouter } from './lib/provide-file-routes';
4
+ export { provideFileRouter } from './lib/provide-file-router';
5
+ export { MetaTag } from './lib/meta-tags';
@@ -0,0 +1,28 @@
1
+ export declare const ROUTE_META_TAGS_KEY: unique symbol;
2
+ declare const CHARSET_KEY = "charset";
3
+ declare const HTTP_EQUIV_KEY = "httpEquiv";
4
+ declare const NAME_KEY = "name";
5
+ declare const PROPERTY_KEY = "property";
6
+ declare const CONTENT_KEY = "content";
7
+ export declare type MetaTag = (CharsetMetaTag & ExcludeRestMetaTagKeys<typeof CHARSET_KEY>) | (HttpEquivMetaTag & ExcludeRestMetaTagKeys<typeof HTTP_EQUIV_KEY>) | (NameMetaTag & ExcludeRestMetaTagKeys<typeof NAME_KEY>) | (PropertyMetaTag & ExcludeRestMetaTagKeys<typeof PROPERTY_KEY>);
8
+ declare type CharsetMetaTag = {
9
+ [CHARSET_KEY]: string;
10
+ };
11
+ declare type HttpEquivMetaTag = {
12
+ [HTTP_EQUIV_KEY]: string;
13
+ [CONTENT_KEY]: string;
14
+ };
15
+ declare type NameMetaTag = {
16
+ [NAME_KEY]: string;
17
+ [CONTENT_KEY]: string;
18
+ };
19
+ declare type PropertyMetaTag = {
20
+ [PROPERTY_KEY]: string;
21
+ [CONTENT_KEY]: string;
22
+ };
23
+ declare type MetaTagKey = typeof CHARSET_KEY | typeof HTTP_EQUIV_KEY | typeof NAME_KEY | typeof PROPERTY_KEY;
24
+ declare type ExcludeRestMetaTagKeys<Key extends MetaTagKey> = {
25
+ [K in Exclude<MetaTagKey, Key>]?: never;
26
+ };
27
+ export declare function updateMetaTagsOnRouteChange(): void;
28
+ export {};
package/lib/models.d.ts CHANGED
@@ -1,8 +1,10 @@
1
1
  import { Type } from '@angular/core';
2
2
  import { CanActivateChildFn, CanActivateFn, CanDeactivateFn, CanMatchFn, ResolveFn, Route } from '@angular/router';
3
3
  import { defineRouteMeta } from './define-route';
4
- declare type OmittedRouteProps = 'path' | 'pathMatch' | 'matcher' | 'redirectTo' | 'component' | 'loadComponent' | 'children' | 'loadChildren' | 'canLoad' | 'outlet';
5
- interface DefaultRouteMeta extends Omit<Route, OmittedRouteProps> {
4
+ import { MetaTag } from './meta-tags';
5
+ declare type OmittedRouteProps = 'path' | 'matcher' | 'component' | 'loadComponent' | 'children' | 'loadChildren' | 'canLoad' | 'outlet';
6
+ export declare type RouteConfig = Omit<Route, OmittedRouteProps>;
7
+ export interface DefaultRouteMeta extends Omit<Route, OmittedRouteProps | keyof RedirectRouteMeta> {
6
8
  canActivate?: CanActivateFn[];
7
9
  canActivateChild?: CanActivateChildFn[];
8
10
  canDeactivate?: CanDeactivateFn<unknown>[];
@@ -11,8 +13,9 @@ interface DefaultRouteMeta extends Omit<Route, OmittedRouteProps> {
11
13
  [key: string | symbol]: ResolveFn<unknown>;
12
14
  };
13
15
  title?: string | ResolveFn<string>;
16
+ meta?: MetaTag[] | ResolveFn<MetaTag[]>;
14
17
  }
15
- interface RedirectRouteMeta {
18
+ export interface RedirectRouteMeta {
16
19
  redirectTo: string;
17
20
  pathMatch?: Route['pathMatch'];
18
21
  }
@@ -1,3 +1,4 @@
1
+ import { EnvironmentProviders } from '@angular/core';
1
2
  import { RouterFeatures } from '@angular/router';
2
3
  /**
3
4
  * Sets up providers for the Angular router, and registers
@@ -7,4 +8,4 @@ import { RouterFeatures } from '@angular/router';
7
8
  * @param features
8
9
  * @returns Providers and features to configure the router with routes
9
10
  */
10
- export declare const provideFileRouter: (...features: RouterFeatures[]) => import("@angular/core").EnvironmentProviders;
11
+ export declare function provideFileRouter(...features: RouterFeatures[]): EnvironmentProviders;
@@ -0,0 +1,2 @@
1
+ import { RouteConfig, RouteMeta } from './models';
2
+ export declare function toRouteConfig(routeMeta: RouteMeta | undefined): RouteConfig;
package/lib/routes.d.ts CHANGED
@@ -7,5 +7,5 @@ import { RouteExport } from './models';
7
7
  * @param files
8
8
  * @returns Array of routes
9
9
  */
10
- export declare function getRoutes(files: Record<string, () => Promise<RouteExport>>): Route[];
10
+ export declare function getRoutes(files: Record<string, () => Promise<RouteExport | string>>): Route[];
11
11
  export declare const routes: Route[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@analogjs/router",
3
- "version": "0.1.0-alpha.5",
3
+ "version": "0.1.0-alpha.6",
4
4
  "description": "Filesystem-based routing for Angular",
5
5
  "author": "Brandon Roberts <robertsbt@gmail.com>",
6
6
  "keywords": [
@@ -1,14 +0,0 @@
1
- import { provideRouter } from '@angular/router';
2
- import { routes } from './routes';
3
- /**
4
- * Sets up providers for the Angular router, and registers
5
- * file-based routes. Additional features can be provided
6
- * to further configure the behavior of the router.
7
- *
8
- * @param features
9
- * @returns Providers and features to configure the router with routes
10
- */
11
- export const provideFileRouter = (...features) => {
12
- return provideRouter(routes, ...features);
13
- };
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS1maWxlLXJvdXRlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3JvdXRlci9zcmMvbGliL3Byb3ZpZGUtZmlsZS1yb3V0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBa0IsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsUUFBMEIsRUFBRSxFQUFFO0lBQ2pFLE9BQU8sYUFBYSxDQUFDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDO0FBQzVDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb3ZpZGVSb3V0ZXIsIFJvdXRlckZlYXR1cmVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHJvdXRlcyB9IGZyb20gJy4vcm91dGVzJztcblxuLyoqXG4gKiBTZXRzIHVwIHByb3ZpZGVycyBmb3IgdGhlIEFuZ3VsYXIgcm91dGVyLCBhbmQgcmVnaXN0ZXJzXG4gKiBmaWxlLWJhc2VkIHJvdXRlcy4gQWRkaXRpb25hbCBmZWF0dXJlcyBjYW4gYmUgcHJvdmlkZWRcbiAqIHRvIGZ1cnRoZXIgY29uZmlndXJlIHRoZSBiZWhhdmlvciBvZiB0aGUgcm91dGVyLlxuICpcbiAqIEBwYXJhbSBmZWF0dXJlc1xuICogQHJldHVybnMgUHJvdmlkZXJzIGFuZCBmZWF0dXJlcyB0byBjb25maWd1cmUgdGhlIHJvdXRlciB3aXRoIHJvdXRlc1xuICovXG5leHBvcnQgY29uc3QgcHJvdmlkZUZpbGVSb3V0ZXIgPSAoLi4uZmVhdHVyZXM6IFJvdXRlckZlYXR1cmVzW10pID0+IHtcbiAgcmV0dXJuIHByb3ZpZGVSb3V0ZXIocm91dGVzLCAuLi5mZWF0dXJlcyk7XG59O1xuIl19