@analogjs/platform 1.6.4 → 1.7.0-beta.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@analogjs/platform",
3
- "version": "1.6.4",
3
+ "version": "1.7.0-beta.2",
4
4
  "description": "The fullstack meta-framework for Angular",
5
5
  "type": "module",
6
6
  "author": "Brandon Roberts <robertsbt@gmail.com>",
@@ -25,8 +25,9 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "nitropack": "^2.9.0",
28
- "@analogjs/vite-plugin-angular": "^1.6.4",
29
- "@analogjs/vite-plugin-nitro": "^1.6.4"
28
+ "@analogjs/vite-plugin-angular": "^1.7.0-beta.2",
29
+ "@analogjs/vite-plugin-nitro": "^1.7.0-beta.2",
30
+ "vitefu": "^0.2.5"
30
31
  },
31
32
  "peerDependencies": {
32
33
  "@nx/angular": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0",
@@ -1,6 +1,3 @@
1
1
  import { PrismHighlighter } from './prism-highlighter.js';
2
2
  export { PrismHighlighter };
3
- export type WithPrismHighlighterOptions = {
4
- additionalLangs?: string[];
5
- };
6
3
  export declare function getPrismHighlighter(): PrismHighlighter;
@@ -3,4 +3,4 @@ export { PrismHighlighter };
3
3
  export function getPrismHighlighter() {
4
4
  return new PrismHighlighter();
5
5
  }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvcHJpc20vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLENBQUM7QUFNNUIsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxPQUFPLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztBQUNoQyxDQUFDIn0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvcHJpc20vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLENBQUM7QUFFNUIsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxPQUFPLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztBQUNoQyxDQUFDIn0=
@@ -0,0 +1,3 @@
1
+ export type WithPrismHighlighterOptions = {
2
+ additionalLangs?: string[];
3
+ };
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvY29udGVudC9wcmlzbS9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -1,11 +1,4 @@
1
- import { ShikiHighlighter, ShikiHighlighterOptions, ShikiHighlightOptions } from './shiki-highlighter.js';
2
- import { BundledLanguage } from 'shiki/langs';
1
+ import { WithShikiHighlighterOptions } from './options.js';
2
+ import { ShikiHighlighter } from './shiki-highlighter.js';
3
3
  export { ShikiHighlighter };
4
- export interface WithShikiHighlighterOptions {
5
- highlighter?: Partial<ShikiHighlighterOptions> & {
6
- additionalLangs?: BundledLanguage[];
7
- };
8
- highlight?: ShikiHighlightOptions;
9
- container?: string;
10
- }
11
4
  export declare function getShikiHighlighter({ highlighter, highlight, container, }?: WithShikiHighlighterOptions): ShikiHighlighter;
@@ -21,4 +21,4 @@ export function getShikiHighlighter({ highlighter = {}, highlight = {}, containe
21
21
  }
22
22
  return new ShikiHighlighter(highlighter, highlight, container, !!highlighter.langs.includes('mermaid'));
23
23
  }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvc2hpa2kvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQkFBZ0IsR0FHakIsTUFBTSx3QkFBd0IsQ0FBQztBQUdoQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztBQVU1QixNQUFNLFVBQVUsbUJBQW1CLENBQUMsRUFDbEMsV0FBVyxHQUFHLEVBQUUsRUFDaEIsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsSUFBSSxNQUNlLEVBQUU7SUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN4QixJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUM7YUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksT0FBTyxTQUFTLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFhLENBQUM7UUFDbkUsQ0FBQzthQUFNLENBQUM7WUFDTixXQUFXLENBQUMsTUFBTSxHQUFHLHlCQUF5QixDQUFDLE1BQU0sQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsV0FBVyxDQUFDLEtBQUssR0FBRyx5QkFBeUIsQ0FBQyxLQUFLLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2hDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sV0FBVyxDQUFDLGVBQWUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTyxJQUFJLGdCQUFnQixDQUN6QixXQUFzQyxFQUN0QyxTQUFTLEVBQ1QsU0FBUyxFQUNULENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FDeEMsQ0FBQztBQUNKLENBQUMifQ==
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQvc2hpa2kvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQkFBZ0IsR0FFakIsTUFBTSx3QkFBd0IsQ0FBQztBQUVoQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQztBQUU1QixNQUFNLFVBQVUsbUJBQW1CLENBQUMsRUFDbEMsV0FBVyxHQUFHLEVBQUUsRUFDaEIsU0FBUyxHQUFHLEVBQUUsRUFDZCxTQUFTLEdBQUcsSUFBSSxNQUNlLEVBQUU7SUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN4QixJQUFJLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNwQixXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUM7YUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLElBQUksT0FBTyxTQUFTLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3BFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFhLENBQUM7UUFDbkUsQ0FBQzthQUFNLENBQUM7WUFDTixXQUFXLENBQUMsTUFBTSxHQUFHLHlCQUF5QixDQUFDLE1BQU0sQ0FBQztRQUN4RCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsV0FBVyxDQUFDLEtBQUssR0FBRyx5QkFBeUIsQ0FBQyxLQUFLLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2hDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sV0FBVyxDQUFDLGVBQWUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTyxJQUFJLGdCQUFnQixDQUN6QixXQUFzQyxFQUN0QyxTQUFTLEVBQ1QsU0FBUyxFQUNULENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FDeEMsQ0FBQztBQUNKLENBQUMifQ==
@@ -0,0 +1,9 @@
1
+ import { ShikiHighlighterOptions, ShikiHighlightOptions } from './shiki-highlighter.js';
2
+ import { BundledLanguage } from 'shiki/langs';
3
+ export interface WithShikiHighlighterOptions {
4
+ highlighter?: Partial<ShikiHighlighterOptions> & {
5
+ additionalLangs?: BundledLanguage[];
6
+ };
7
+ highlight?: ShikiHighlightOptions;
8
+ container?: string;
9
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvY29udGVudC9zaGlraS9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -1,11 +1,12 @@
1
1
  import { Plugin } from 'vite';
2
- import { WithShikiHighlighterOptions } from './content/shiki/index.js';
3
- import { WithPrismHighlighterOptions } from './content/prism/index.js';
4
- import { WithMarkedOptions } from './content/marked/index.js';
2
+ import type { WithShikiHighlighterOptions } from './content/shiki/options.js';
3
+ import type { WithPrismHighlighterOptions } from './content/prism/options.js';
4
+ import type { WithMarkedOptions } from './content/marked/index.js';
5
+ import type { Options } from './options.js';
5
6
  export type ContentPluginOptions = {
6
7
  highlighter?: 'shiki' | 'prism';
7
8
  markedOptions?: WithMarkedOptions;
8
9
  shikiOptions?: WithShikiHighlighterOptions;
9
10
  prismOptions?: WithPrismHighlighterOptions;
10
11
  };
11
- export declare function contentPlugin({ highlighter, markedOptions, shikiOptions, prismOptions, }?: ContentPluginOptions): Plugin[];
12
+ export declare function contentPlugin({ highlighter, markedOptions, shikiOptions, prismOptions, }?: ContentPluginOptions, options?: Options): Plugin[];
@@ -1,10 +1,16 @@
1
+ import { normalizePath } from 'vite';
1
2
  import { readFileSync } from 'node:fs';
3
+ import { resolve } from 'node:path';
4
+ import fg from 'fast-glob';
2
5
  export function contentPlugin({ highlighter, markedOptions, shikiOptions, prismOptions, } = {
3
6
  highlighter: 'prism',
4
7
  markedOptions: { mangle: true },
5
- }) {
8
+ }, options) {
6
9
  const cache = new Map();
7
10
  let markedHighlighter;
11
+ const workspaceRoot = options?.workspaceRoot ?? process.cwd();
12
+ let config;
13
+ let root;
8
14
  return [
9
15
  {
10
16
  name: 'analogjs-content-frontmatter',
@@ -83,6 +89,73 @@ export function contentPlugin({ highlighter, markedOptions, shikiOptions, prismO
83
89
  return `export default ${JSON.stringify(`---\n${frontmatter}\n---\n\n${mdContent}`)}`;
84
90
  },
85
91
  },
92
+ {
93
+ name: 'analog-content-glob-routes',
94
+ config(_config) {
95
+ config = _config;
96
+ root = resolve(workspaceRoot, config.root || '.') || '.';
97
+ },
98
+ transform(code, id) {
99
+ if (code.includes('ANALOG_CONTENT_FILE_LIST') &&
100
+ code.includes('ANALOG_AGX_FILES') &&
101
+ id.includes('analogjs')) {
102
+ const contentFilesList = fg.sync([
103
+ `${root}/src/content/**/*.md`,
104
+ `${root}/src/content/**/*.agx`,
105
+ ...(options?.additionalContentDirs || [])?.map((glob) => `${workspaceRoot}${glob}/**/*.{md,agx}`),
106
+ ], { dot: true });
107
+ const eagerImports = [];
108
+ contentFilesList.forEach((module, index) => {
109
+ eagerImports.push(`import { default as analog_module_${index} } from "${module}?analog-content-list=true";`);
110
+ });
111
+ let result = code.replace('let ANALOG_CONTENT_FILE_LIST = {};', `
112
+ let ANALOG_CONTENT_FILE_LIST = {${contentFilesList.map((module, index) => `"${module.replace(root, '')}": analog_module_${index}`)}};
113
+ `);
114
+ const agxFiles = fg.sync([
115
+ `${root}/src/content/**/*.agx`,
116
+ ...(options?.additionalContentDirs || [])?.map((glob) => `${workspaceRoot}${glob}/**/*.agx`),
117
+ ], {
118
+ dot: true,
119
+ });
120
+ result = result.replace('let ANALOG_AGX_FILES = {};', `
121
+ let ANALOG_AGX_FILES = {${agxFiles.map((module) => `"${module.replace(root, '')}": () => import('${module}')`)}};
122
+ `);
123
+ if (!code.includes('analog_module_')) {
124
+ result = `${eagerImports.join('\n')}\n${result}`;
125
+ }
126
+ return {
127
+ code: result,
128
+ map: null,
129
+ };
130
+ }
131
+ return;
132
+ },
133
+ },
134
+ {
135
+ name: 'analogjs-invalidate-content-dirs',
136
+ configureServer(server) {
137
+ function invalidateContent(path) {
138
+ if (path.includes(normalizePath(`/src/content/`))) {
139
+ server.moduleGraph.fileToModulesMap.forEach((mods) => {
140
+ mods.forEach((mod) => {
141
+ if (mod.id?.includes('analogjs') &&
142
+ mod.id?.includes('content')) {
143
+ server.moduleGraph.invalidateModule(mod);
144
+ mod.importers.forEach((imp) => {
145
+ server.moduleGraph.invalidateModule(imp);
146
+ });
147
+ }
148
+ });
149
+ });
150
+ server.ws.send({
151
+ type: 'full-reload',
152
+ });
153
+ }
154
+ }
155
+ server.watcher.on('add', invalidateContent);
156
+ server.watcher.on('unlink', invalidateContent);
157
+ },
158
+ },
86
159
  ];
87
160
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFtQnZDLE1BQU0sVUFBVSxhQUFhLENBQzNCLEVBQ0UsV0FBVyxFQUNYLGFBQWEsRUFDYixZQUFZLEVBQ1osWUFBWSxNQUNZO0lBQ3hCLFdBQVcsRUFBRSxPQUFPO0lBQ3BCLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Q0FDaEM7SUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUV6QyxJQUFJLGlCQUEyQyxDQUFDO0lBRWhELE9BQU87UUFDTDtZQUNFLElBQUksRUFBRSw4QkFBOEI7WUFDcEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDdEIsOERBQThEO2dCQUM5RCxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLENBQUM7b0JBQzdDLE9BQU87Z0JBQ1QsQ0FBQztnQkFFRCxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNwQyx5RUFBeUU7Z0JBQ3pFLDhFQUE4RTtnQkFDOUUsOEVBQThFO2dCQUM5RSwwQ0FBMEM7Z0JBQzFDLElBQUksYUFBYSxFQUFFLElBQUksS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDakMsT0FBTyxrQkFBa0IsYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUN0RCxDQUFDO2dCQUVELE1BQU0sRUFBRSxHQUFRLE1BQU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUM3QyxrRkFBa0Y7Z0JBQ2xGLGlGQUFpRjtnQkFDakYsMkNBQTJDO2dCQUMzQyxNQUFNLFdBQVcsR0FB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
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBc0IsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFvQjNCLE1BQU0sVUFBVSxhQUFhLENBQzNCLEVBQ0UsV0FBVyxFQUNYLGFBQWEsRUFDYixZQUFZLEVBQ1osWUFBWSxNQUNZO0lBQ3hCLFdBQVcsRUFBRSxPQUFPO0lBQ3BCLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Q0FDaEMsRUFDRCxPQUFpQjtJQUVqQixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztJQUV6QyxJQUFJLGlCQUEyQyxDQUFDO0lBQ2hELE1BQU0sYUFBYSxHQUFHLE9BQU8sRUFBRSxhQUFhLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzlELElBQUksTUFBa0IsQ0FBQztJQUN2QixJQUFJLElBQVksQ0FBQztJQUVqQixPQUFPO1FBQ0w7WUFDRSxJQUFJLEVBQUUsOEJBQThCO1lBQ3BDLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3RCLDhEQUE4RDtnQkFDOUQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsRUFBRSxDQUFDO29CQUM3QyxPQUFPO2dCQUNULENBQUM7Z0JBRUQsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDcEMseUVBQXlFO2dCQUN6RSw4RUFBOEU7Z0JBQzlFLDhF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
@@ -0,0 +1,3 @@
1
+ import { Plugin } from 'vite';
2
+ import { Options } from './options.js';
3
+ export declare function depsPlugin(options?: Options): Plugin[];
@@ -0,0 +1,62 @@
1
+ import { VERSION } from '@angular/compiler-cli';
2
+ import { crawlFrameworkPkgs } from 'vitefu';
3
+ import { relative } from 'node:path';
4
+ export function depsPlugin(options) {
5
+ const workspaceRoot = options?.workspaceRoot ?? process.cwd();
6
+ return [
7
+ {
8
+ name: 'analogjs-deps-plugin',
9
+ config() {
10
+ return {
11
+ ssr: {
12
+ noExternal: ['@analogjs/**', 'firebase/**', 'firebase-admin/**'],
13
+ },
14
+ optimizeDeps: {
15
+ include: [
16
+ '@angular/common',
17
+ '@angular/common/http',
18
+ ...(Number(VERSION.major) > 15
19
+ ? ['@angular/core/rxjs-interop']
20
+ : []),
21
+ ],
22
+ exclude: [
23
+ '@angular/platform-server',
24
+ '@analogjs/content',
25
+ '@analogjs/router',
26
+ '@nx/angular',
27
+ '@nx/vite',
28
+ '@nx/devkit',
29
+ '@nx/js',
30
+ '@nx/devkit',
31
+ '@nx/cypress',
32
+ '@nx/jest',
33
+ '@nx/js',
34
+ '@nx/eslint',
35
+ '@nx/webpack',
36
+ '@nx/web',
37
+ '@nx/workspace',
38
+ '@nx/eslint',
39
+ 'webpack',
40
+ ],
41
+ },
42
+ };
43
+ },
44
+ },
45
+ {
46
+ name: 'analogjs-auto-discover-deps',
47
+ async config(config, { command }) {
48
+ const root = relative(workspaceRoot, config.root || '.') || '.';
49
+ const pkgConfig = await crawlFrameworkPkgs({
50
+ root,
51
+ isBuild: command === 'build',
52
+ viteUserConfig: config,
53
+ isSemiFrameworkPkgByJson(pkgJson) {
54
+ return pkgJson['module'] && pkgJson['module'].includes('fesm');
55
+ },
56
+ });
57
+ return pkgConfig;
58
+ },
59
+ },
60
+ ];
61
+ }
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcy1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2RlcHMtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUlyQyxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQWlCO0lBQzFDLE1BQU0sYUFBYSxHQUFHLE9BQU8sRUFBRSxhQUFhLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRTlELE9BQU87UUFDTDtZQUNFLElBQUksRUFBRSxzQkFBc0I7WUFDNUIsTUFBTTtnQkFDSixPQUFPO29CQUNMLEdBQUcsRUFBRTt3QkFDSCxVQUFVLEVBQUUsQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixDQUFDO3FCQUNqRTtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osT0FBTyxFQUFFOzRCQUNQLGlCQUFpQjs0QkFDakIsc0JBQXNCOzRCQUN0QixHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO2dDQUM1QixDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQztnQ0FDaEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt5QkFDUjt3QkFDRCxPQUFPLEVBQUU7NEJBQ1AsMEJBQTBCOzRCQUMxQixtQkFBbUI7NEJBQ25CLGtCQUFrQjs0QkFDbEIsYUFBYTs0QkFDYixVQUFVOzRCQUNWLFlBQVk7NEJBQ1osUUFBUTs0QkFDUixZQUFZOzRCQUNaLGFBQWE7NEJBQ2IsVUFBVTs0QkFDVixRQUFROzRCQUNSLFlBQVk7NEJBQ1osYUFBYTs0QkFDYixTQUFTOzRCQUNULGVBQWU7NEJBQ2YsWUFBWTs0QkFDWixTQUFTO3lCQUNWO3FCQUNGO2lCQUNGLENBQUM7WUFDSixDQUFDO1NBQ0Y7UUFDRDtZQUNFLElBQUksRUFBRSw2QkFBNkI7WUFDbkMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUU7Z0JBQzlCLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUM7Z0JBRWhFLE1BQU0sU0FBUyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7b0JBQ3pDLElBQUk7b0JBQ0osT0FBTyxFQUFFLE9BQU8sS0FBSyxPQUFPO29CQUM1QixjQUFjLEVBQUUsTUFBTTtvQkFDdEIsd0JBQXdCLENBQUMsT0FBTzt3QkFDOUIsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDakUsQ0FBQztpQkFDRixDQUFDLENBQUM7Z0JBRUgsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMifQ==
@@ -31,6 +31,22 @@ export interface Options {
31
31
  index?: string;
32
32
  workspaceRoot?: string;
33
33
  content?: ContentPluginOptions;
34
+ /**
35
+ * Additional page paths to include
36
+ */
37
+ additionalPagesDirs?: string[];
38
+ /**
39
+ * Additional page paths to include
40
+ */
41
+ additionalContentDirs?: string[];
42
+ /**
43
+ * Additional API paths to include
44
+ */
45
+ additionalAPIDirs?: string[];
46
+ /**
47
+ * Additional files to include in compilation
48
+ */
49
+ include?: string[];
34
50
  }
35
51
  export interface PrerenderContentDir {
36
52
  /**
@@ -5,6 +5,7 @@ import { ssrBuildPlugin } from './ssr/ssr-build-plugin.js';
5
5
  import { contentPlugin } from './content-plugin.js';
6
6
  import { clearClientPageEndpointsPlugin } from './clear-client-page-endpoint.js';
7
7
  import { ssrXhrBuildPlugin } from './ssr/ssr-xhr-plugin.js';
8
+ import { depsPlugin } from './deps-plugin.js';
8
9
  export function platformPlugin(opts = {}) {
9
10
  const { apiPrefix, ...platformOptions } = {
10
11
  ssr: true,
@@ -22,15 +23,20 @@ export function platformPlugin(opts = {}) {
22
23
  return [
23
24
  ...viteNitroPlugin(platformOptions, nitroOptions),
24
25
  (platformOptions.ssr ? ssrBuildPlugin() : false),
25
- ...routerPlugin(),
26
- ...contentPlugin(platformOptions?.content),
26
+ ...depsPlugin(),
27
+ ...routerPlugin(platformOptions),
28
+ ...contentPlugin(platformOptions?.content, platformOptions),
27
29
  ...angular({
28
30
  jit: platformOptions.jit,
29
31
  workspaceRoot: platformOptions.workspaceRoot,
32
+ include: [
33
+ ...(platformOptions.include ?? []),
34
+ ...(platformOptions.additionalPagesDirs ?? []).map((pageDir) => `${pageDir}/**/*.page.ts`),
35
+ ],
30
36
  ...(opts?.vite ?? {}),
31
37
  }),
32
38
  ssrXhrBuildPlugin(),
33
39
  clearClientPageEndpointsPlugin(),
34
40
  ];
35
41
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL2xpYi9wbGF0Zm9ybS1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxlQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxPQUFPLE1BQU0sK0JBQStCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFNUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxPQUFnQixFQUFFO0lBQy9DLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxlQUFlLEVBQUUsR0FBRztRQUN4QyxHQUFHLEVBQUUsSUFBSTtRQUNULEdBQUcsSUFBSTtLQUNSLENBQUM7SUFFRixJQUFJLFlBQVksR0FBRyxlQUFlLEVBQUUsS0FBSyxDQUFDO0lBQzFDLElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCxZQUFZLEdBQUc7WUFDYixHQUFHLFlBQVk7WUFDZixhQUFhLEVBQUU7Z0JBQ2IsU0FBUzthQUNWO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRyxlQUFlLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQztRQUNqRCxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQVc7UUFDMUQsR0FBRyxZQUFZLEVBQUU7UUFDakIsR0FBRyxhQUFhLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQztRQUMxQyxHQUFHLE9BQU8sQ0FBQztZQUNULEdBQUcsRUFBRSxlQUFlLENBQUMsR0FBRztZQUN4QixhQUFhLEVBQUUsZUFBZSxDQUFDLGFBQWE7WUFDNUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1NBQ3RCLENBQUM7UUFDRixpQkFBaUIsRUFBRTtRQUNuQiw4QkFBOEIsRUFBRTtLQUNqQyxDQUFDO0FBQ0osQ0FBQyJ9
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL2xpYi9wbGF0Zm9ybS1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxlQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxPQUFPLE1BQU0sK0JBQStCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZ0IsRUFBRTtJQUMvQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsZUFBZSxFQUFFLEdBQUc7UUFDeEMsR0FBRyxFQUFFLElBQUk7UUFDVCxHQUFHLElBQUk7S0FDUixDQUFDO0lBRUYsSUFBSSxZQUFZLEdBQUcsZUFBZSxFQUFFLEtBQUssQ0FBQztJQUMxQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsWUFBWSxHQUFHO1lBQ2IsR0FBRyxZQUFZO1lBQ2YsYUFBYSxFQUFFO2dCQUNiLFNBQVM7YUFDVjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTztRQUNMLEdBQUcsZUFBZSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUM7UUFDakQsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFXO1FBQzFELEdBQUcsVUFBVSxFQUFFO1FBQ2YsR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDO1FBQ2hDLEdBQUcsYUFBYSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsZUFBZSxDQUFDO1FBQzNELEdBQUcsT0FBTyxDQUFDO1lBQ1QsR0FBRyxFQUFFLGVBQWUsQ0FBQyxHQUFHO1lBQ3hCLGFBQWEsRUFBRSxlQUFlLENBQUMsYUFBYTtZQUM1QyxPQUFPLEVBQUU7Z0JBQ1AsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO2dCQUNsQyxHQUFHLENBQUMsZUFBZSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDaEQsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxlQUFlLENBQ3ZDO2FBQ0Y7WUFDRCxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7U0FDdEIsQ0FBQztRQUNGLGlCQUFpQixFQUFFO1FBQ25CLDhCQUE4QixFQUFFO0tBQ2pDLENBQUM7QUFDSixDQUFDIn0=
@@ -1,4 +1,5 @@
1
1
  import { Plugin } from 'vite';
2
+ import { Options } from './options.js';
2
3
  /**
3
4
  * This plugin invalidates the files for routes when new files
4
5
  * are added/deleted.
@@ -7,4 +8,4 @@ import { Plugin } from 'vite';
7
8
  *
8
9
  * @returns
9
10
  */
10
- export declare function routerPlugin(): Plugin[];
11
+ export declare function routerPlugin(options?: Options): Plugin[];
@@ -1,5 +1,6 @@
1
- import { VERSION } from '@angular/compiler-cli';
2
1
  import { normalizePath } from 'vite';
2
+ import fg from 'fast-glob';
3
+ import { resolve } from 'node:path';
3
4
  /**
4
5
  * This plugin invalidates the files for routes when new files
5
6
  * are added/deleted.
@@ -8,51 +9,17 @@ import { normalizePath } from 'vite';
8
9
  *
9
10
  * @returns
10
11
  */
11
- export function routerPlugin() {
12
+ export function routerPlugin(options) {
13
+ const workspaceRoot = options?.workspaceRoot ?? process.cwd();
14
+ let config;
15
+ let root;
12
16
  return [
13
- {
14
- name: 'analogjs-router-plugin',
15
- config() {
16
- return {
17
- ssr: {
18
- noExternal: [
19
- '@analogjs/**',
20
- '@analogjs/trpc/**',
21
- '@angular/**',
22
- '@angular/cdk/**',
23
- '@angular/fire/**',
24
- '@ngrx/**',
25
- '@rx-angular/**',
26
- '@ng-bootstrap/**',
27
- '@ngneat/**',
28
- 'apollo-angular/**',
29
- 'primeng/**',
30
- 'rxfire/**',
31
- '@tanstack/**',
32
- 'ngxtension/**',
33
- 'firebase/**',
34
- 'firebase-admin/**',
35
- ],
36
- },
37
- optimizeDeps: {
38
- include: [
39
- '@angular/common',
40
- '@angular/common/http',
41
- ...(Number(VERSION.major) > 15
42
- ? ['@angular/core/rxjs-interop']
43
- : []),
44
- ],
45
- exclude: ['@angular/platform-server', '@analogjs/router'],
46
- },
47
- };
48
- },
49
- },
50
17
  {
51
18
  name: 'analogjs-router-invalidate-routes',
52
19
  configureServer(server) {
53
20
  function invalidateRoutes(path) {
54
21
  if (path.includes(normalizePath(`/app/routes/`)) ||
55
- path.includes(normalizePath(`/app/pages/`))) {
22
+ path.includes(normalizePath(`/pages/`))) {
56
23
  server.moduleGraph.fileToModulesMap.forEach((mods) => {
57
24
  mods.forEach((mod) => {
58
25
  if (mod.id?.includes('analogjs') &&
@@ -73,6 +40,62 @@ export function routerPlugin() {
73
40
  server.watcher.on('unlink', invalidateRoutes);
74
41
  },
75
42
  },
43
+ {
44
+ name: 'analog-glob-routes',
45
+ config(_config) {
46
+ config = _config;
47
+ root = resolve(workspaceRoot, config.root || '.') || '.';
48
+ },
49
+ transform(code, id) {
50
+ if ((code.includes('ANALOG_ROUTE_FILES') ||
51
+ code.includes('ANALOG_CONTENT_ROUTE_FILES')) &&
52
+ id.includes('analogjs')) {
53
+ const routeFiles = fg.sync([
54
+ `${root}/app/routes/**/*.ts`,
55
+ `${root}/src/app/routes/**/*.ts`,
56
+ `${root}/src/app/pages/**/*.page.ts`,
57
+ `${root}/src/app/pages/**/*.page.analog`,
58
+ ...(options?.additionalPagesDirs || [])?.map((glob) => `${workspaceRoot}${glob}/**/*.page.ts`),
59
+ ], { dot: true });
60
+ const contentRouteFiles = fg.sync([
61
+ `${root}/src/app/routes/**/*.md`,
62
+ `${root}/src/app/pages/**/*.md`,
63
+ `${root}/src/content/**/*.md`,
64
+ ...(options?.additionalContentDirs || [])?.map((glob) => `${workspaceRoot}${glob}/**/*.md`),
65
+ ], { dot: true });
66
+ let result = code.replace('let ANALOG_ROUTE_FILES = {};', `
67
+ let ANALOG_ROUTE_FILES = {${routeFiles.map((module) => `"${module.replace(root, '')}": () => import('${module}')`)}};
68
+ `);
69
+ result = result.replace('let ANALOG_CONTENT_ROUTE_FILES = {};', `
70
+ let ANALOG_CONTENT_ROUTE_FILES = {${contentRouteFiles.map((module) => `"${module.replace(root, '')}": () => import('${module}?analog-content-file=true').then(m => m.default)`)}};
71
+ `);
72
+ return {
73
+ code: result,
74
+ map: null,
75
+ };
76
+ }
77
+ return;
78
+ },
79
+ },
80
+ {
81
+ name: 'analog-glob-endpoints',
82
+ transform(code, id) {
83
+ if (code.includes('PAGE_ENDPOINTS') && id.includes('analogjs')) {
84
+ const endpointFiles = fg.sync([
85
+ `${root}/src/app/pages/**/*.server.ts`,
86
+ ...(options?.additionalPagesDirs || [])?.map((glob) => `${workspaceRoot}${glob}/**/*.server.ts`),
87
+ ], { dot: true });
88
+ const result = code.replace('let PAGE_ENDPOINTS = {};', `
89
+ let PAGE_ENDPOINTS = {${endpointFiles.map((module) => `"${module.replace(root, '')}": () => import('${module}')`)}};
90
+ `);
91
+ return {
92
+ code: result,
93
+ map: null,
94
+ };
95
+ }
96
+ return;
97
+ },
98
+ },
76
99
  ];
77
100
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvcm91dGVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLE1BQU0sQ0FBQztBQUU3Qzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDMUIsT0FBTztRQUNMO1lBQ0UsSUFBSSxFQUFFLHdCQUF3QjtZQUM5QixNQUFNO2dCQUNKLE9BQU87b0JBQ0wsR0FBRyxFQUFFO3dCQUNILFVBQVUsRUFBRTs0QkFDVixjQUFjOzRCQUNkLG1CQUFtQjs0QkFDbkIsYUFBYTs0QkFDYixpQkFBaUI7NEJBQ2pCLGtCQUFrQjs0QkFDbEIsVUFBVTs0QkFDVixnQkFBZ0I7NEJBQ2hCLGtCQUFrQjs0QkFDbEIsWUFBWTs0QkFDWixtQkFBbUI7NEJBQ25CLFlBQVk7NEJBQ1osV0FBVzs0QkFDWCxjQUFjOzRCQUNkLGVBQWU7NEJBQ2YsYUFBYTs0QkFDYixtQkFBbUI7eUJBQ3BCO3FCQUNGO29CQUNELFlBQVksRUFBRTt3QkFDWixPQUFPLEVBQUU7NEJBQ1AsaUJBQWlCOzRCQUNqQixzQkFBc0I7NEJBQ3RCLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUU7Z0NBQzVCLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDO2dDQUNoQyxDQUFDLENBQUMsRUFBRSxDQUFDO3lCQUNSO3dCQUNELE9BQU8sRUFBRSxDQUFDLDBCQUEwQixFQUFFLGtCQUFrQixDQUFDO3FCQUMxRDtpQkFDRixDQUFDO1lBQ0osQ0FBQztTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsbUNBQW1DO1lBQ3pDLGVBQWUsQ0FBQyxNQUFNO2dCQUNwQixTQUFTLGdCQUFnQixDQUFDLElBQVk7b0JBQ3BDLElBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7d0JBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQzNDLENBQUM7d0JBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTs0QkFDbkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dDQUNuQixJQUNFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQztvQ0FDNUIsR0FBRyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQzFCLENBQUM7b0NBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQ0FFekMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTt3Q0FDNUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQ0FDM0MsQ0FBQyxDQUFDLENBQUM7Z0NBQ0wsQ0FBQzs0QkFDSCxDQUFDLENBQUMsQ0FBQzt3QkFDTCxDQUFDLENBQUMsQ0FBQzt3QkFFSCxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzs0QkFDYixJQUFJLEVBQUUsYUFBYTt5QkFDcEIsQ0FBQyxDQUFDO29CQUNMLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDaEQsQ0FBQztTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMifQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvcm91dGVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFzQixNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUlwQzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFpQjtJQUM1QyxNQUFNLGFBQWEsR0FBRyxPQUFPLEVBQUUsYUFBYSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM5RCxJQUFJLE1BQWtCLENBQUM7SUFDdkIsSUFBSSxJQUFZLENBQUM7SUFFakIsT0FBTztRQUNMO1lBQ0UsSUFBSSxFQUFFLG1DQUFtQztZQUN6QyxlQUFlLENBQUMsTUFBTTtnQkFDcEIsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFZO29CQUNwQyxJQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO3dCQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUN2QyxDQUFDO3dCQUNELE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7NEJBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQ0FDbkIsSUFDRSxHQUFHLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUM7b0NBQzVCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUMxQixDQUFDO29DQUNELE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFD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