@analogjs/platform 1.7.0-beta.1 → 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.7.0-beta.1",
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,8 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "nitropack": "^2.9.0",
28
- "@analogjs/vite-plugin-angular": "^1.7.0-beta.1",
29
- "@analogjs/vite-plugin-nitro": "^1.7.0-beta.1",
28
+ "@analogjs/vite-plugin-angular": "^1.7.0-beta.2",
29
+ "@analogjs/vite-plugin-nitro": "^1.7.0-beta.2",
30
30
  "vitefu": "^0.2.5"
31
31
  },
32
32
  "peerDependencies": {
@@ -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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
@@ -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
  /**
@@ -24,15 +24,19 @@ export function platformPlugin(opts = {}) {
24
24
  ...viteNitroPlugin(platformOptions, nitroOptions),
25
25
  (platformOptions.ssr ? ssrBuildPlugin() : false),
26
26
  ...depsPlugin(),
27
- ...routerPlugin(),
28
- ...contentPlugin(platformOptions?.content),
27
+ ...routerPlugin(platformOptions),
28
+ ...contentPlugin(platformOptions?.content, platformOptions),
29
29
  ...angular({
30
30
  jit: platformOptions.jit,
31
31
  workspaceRoot: platformOptions.workspaceRoot,
32
+ include: [
33
+ ...(platformOptions.include ?? []),
34
+ ...(platformOptions.additionalPagesDirs ?? []).map((pageDir) => `${pageDir}/**/*.page.ts`),
35
+ ],
32
36
  ...(opts?.vite ?? {}),
33
37
  }),
34
38
  ssrXhrBuildPlugin(),
35
39
  clearClientPageEndpointsPlugin(),
36
40
  ];
37
41
  }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL2xpYi9wbGF0Zm9ybS1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxlQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxPQUFPLE1BQU0sK0JBQStCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTlDLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZ0IsRUFBRTtJQUMvQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsZUFBZSxFQUFFLEdBQUc7UUFDeEMsR0FBRyxFQUFFLElBQUk7UUFDVCxHQUFHLElBQUk7S0FDUixDQUFDO0lBRUYsSUFBSSxZQUFZLEdBQUcsZUFBZSxFQUFFLEtBQUssQ0FBQztJQUMxQyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsWUFBWSxHQUFHO1lBQ2IsR0FBRyxZQUFZO1lBQ2YsYUFBYSxFQUFFO2dCQUNiLFNBQVM7YUFDVjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTztRQUNMLEdBQUcsZUFBZSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUM7UUFDakQsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFXO1FBQzFELEdBQUcsVUFBVSxFQUFFO1FBQ2YsR0FBRyxZQUFZLEVBQUU7UUFDakIsR0FBRyxhQUFhLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQztRQUMxQyxHQUFHLE9BQU8sQ0FBQztZQUNULEdBQUcsRUFBRSxlQUFlLENBQUMsR0FBRztZQUN4QixhQUFhLEVBQUUsZUFBZSxDQUFDLGFBQWE7WUFDNUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1NBQ3RCLENBQUM7UUFDRixpQkFBaUIsRUFBRTtRQUNuQiw4QkFBOEIsRUFBRTtLQUNqQyxDQUFDO0FBQ0osQ0FBQyJ9
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,4 +1,6 @@
1
1
  import { normalizePath } from 'vite';
2
+ import fg from 'fast-glob';
3
+ import { resolve } from 'node:path';
2
4
  /**
3
5
  * This plugin invalidates the files for routes when new files
4
6
  * are added/deleted.
@@ -7,14 +9,17 @@ import { normalizePath } from 'vite';
7
9
  *
8
10
  * @returns
9
11
  */
10
- export function routerPlugin() {
12
+ export function routerPlugin(options) {
13
+ const workspaceRoot = options?.workspaceRoot ?? process.cwd();
14
+ let config;
15
+ let root;
11
16
  return [
12
17
  {
13
18
  name: 'analogjs-router-invalidate-routes',
14
19
  configureServer(server) {
15
20
  function invalidateRoutes(path) {
16
21
  if (path.includes(normalizePath(`/app/routes/`)) ||
17
- path.includes(normalizePath(`/app/pages/`))) {
22
+ path.includes(normalizePath(`/pages/`))) {
18
23
  server.moduleGraph.fileToModulesMap.forEach((mods) => {
19
24
  mods.forEach((mod) => {
20
25
  if (mod.id?.includes('analogjs') &&
@@ -35,6 +40,62 @@ export function routerPlugin() {
35
40
  server.watcher.on('unlink', invalidateRoutes);
36
41
  },
37
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
+ },
38
99
  ];
39
100
  }
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvcm91dGVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0sTUFBTSxDQUFDO0FBRTdDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsWUFBWTtJQUMxQixPQUFPO1FBQ0w7WUFDRSxJQUFJLEVBQUUsbUNBQW1DO1lBQ3pDLGVBQWUsQ0FBQyxNQUFNO2dCQUNwQixTQUFTLGdCQUFnQixDQUFDLElBQVk7b0JBQ3BDLElBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLENBQUM7d0JBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQzNDLENBQUM7d0JBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTs0QkFDbkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO2dDQUNuQixJQUNFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQztvQ0FDNUIsR0FBRyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQzFCLENBQUM7b0NBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQ0FFekMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTt3Q0FDNUIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQ0FDM0MsQ0FBQyxDQUFDLENBQUM7Z0NBQ0wsQ0FBQzs0QkFDSCxDQUFDLENBQUMsQ0FBQzt3QkFDTCxDQUFDLENBQUMsQ0FBQzt3QkFFSCxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQzs0QkFDYixJQUFJLEVBQUUsYUFBYTt5QkFDcEIsQ0FBQyxDQUFDO29CQUNMLENBQUM7Z0JBQ0gsQ0FBQztnQkFFRCxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDaEQsQ0FBQztTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMifQ==
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvcm91dGVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFzQixNQUFNLE1BQU0sQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0IsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUlwQzs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFpQjtJQUM1QyxNQUFNLGFBQWEsR0FBRyxPQUFPLEVBQUUsYUFBYSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM5RCxJQUFJLE1BQWtCLENBQUM7SUFDdkIsSUFBSSxJQUFZLENBQUM7SUFFakIsT0FBTztRQUNMO1lBQ0UsSUFBSSxFQUFFLG1DQUFtQztZQUN6QyxlQUFlLENBQUMsTUFBTTtnQkFDcEIsU0FBUyxnQkFBZ0IsQ0FBQyxJQUFZO29CQUNwQyxJQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO3dCQUM1QyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUN2QyxDQUFDO3dCQUNELE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7NEJBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQ0FDbkIsSUFDRSxHQUFHLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUM7b0NBQzVCLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUMxQixDQUFDO29DQUNELE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFD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