@analogjs/platform 3.0.0-alpha.6 → 3.0.0-alpha.8

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": "3.0.0-alpha.6",
3
+ "version": "3.0.0-alpha.8",
4
4
  "description": "The fullstack meta-framework for Angular",
5
5
  "type": "module",
6
6
  "author": "Brandon Roberts <robertsbt@gmail.com>",
@@ -29,8 +29,9 @@
29
29
  },
30
30
  "dependencies": {
31
31
  "nitro": "3.0.260311-beta",
32
- "@analogjs/vite-plugin-angular": "^3.0.0-alpha.6",
33
- "@analogjs/vite-plugin-nitro": "^3.0.0-alpha.6",
32
+ "@analogjs/vite-plugin-angular": "^3.0.0-alpha.8",
33
+ "@analogjs/vite-plugin-nitro": "^3.0.0-alpha.8",
34
+ "rolldown": "^1.0.0-rc.9",
34
35
  "vitefu": "^1.1.2"
35
36
  },
36
37
  "peerDependencies": {
@@ -1,2 +1,2 @@
1
1
  import { Plugin } from 'vite';
2
- export declare function clearClientPageEndpointsPlugin(): Plugin;
2
+ export declare function clearClientPageEndpointsPlugin(): Plugin[];
@@ -1,33 +1,35 @@
1
1
  import { normalizePath } from 'vite';
2
2
  export function clearClientPageEndpointsPlugin() {
3
- return {
4
- name: 'analogjs-platform-clear-client-page-endpoint',
5
- apply: 'build',
6
- config() {
7
- return {
8
- build: {
9
- rollupOptions: {
10
- onwarn(warning) {
11
- if (warning.message.includes('empty chunk') &&
12
- warning.message.endsWith('.server')) {
13
- return;
14
- }
3
+ return [
4
+ {
5
+ name: 'analogjs-platform-clear-client-page-endpoint',
6
+ apply: 'build',
7
+ config() {
8
+ return {
9
+ build: {
10
+ rollupOptions: {
11
+ onwarn(warning) {
12
+ if (warning.message.includes('empty chunk') &&
13
+ warning.message.endsWith('.server')) {
14
+ return;
15
+ }
16
+ },
15
17
  },
16
18
  },
17
- },
18
- };
19
- },
20
- transform(_code, id, options) {
21
- if (!options?.ssr &&
22
- id.includes(normalizePath('src/app/pages')) &&
23
- id.endsWith('.server.ts')) {
24
- return {
25
- code: 'export default undefined;',
26
- map: null,
27
19
  };
28
- }
29
- return;
20
+ },
21
+ transform(_code, id, options) {
22
+ if (!options?.ssr &&
23
+ id.includes(normalizePath('src/app/pages')) &&
24
+ id.endsWith('.server.ts')) {
25
+ return {
26
+ code: 'export default undefined;',
27
+ map: null,
28
+ };
29
+ }
30
+ return;
31
+ },
30
32
  },
31
- };
33
+ ];
32
34
  }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItY2xpZW50LXBhZ2UtZW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NsZWFyLWNsaWVudC1wYWdlLWVuZHBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFN0MsTUFBTSxVQUFVLDhCQUE4QjtJQUM1QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLDhDQUE4QztRQUNwRCxLQUFLLEVBQUUsT0FBTztRQUNkLE1BQU07WUFDSixPQUFPO2dCQUNMLEtBQUssRUFBRTtvQkFDTCxhQUFhLEVBQUU7d0JBQ2IsTUFBTSxDQUFDLE9BQU87NEJBQ1osSUFDRSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7Z0NBQ3ZDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUNuQyxDQUFDO2dDQUNELE9BQU87NEJBQ1QsQ0FBQzt3QkFDSCxDQUFDO3FCQUNGO2lCQUNGO2FBQ0YsQ0FBQztRQUNKLENBQUM7UUFDRCxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxPQUFPO1lBQzFCLElBQ0UsQ0FBQyxPQUFPLEVBQUUsR0FBRztnQkFDYixFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDM0MsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsRUFDekIsQ0FBQztnQkFDRCxPQUFPO29CQUNMLElBQUksRUFBRSwyQkFBMkI7b0JBQ2pDLEdBQUcsRUFBRSxJQUFJO2lCQUNWLENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTztRQUNULENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyJ9
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItY2xpZW50LXBhZ2UtZW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NsZWFyLWNsaWVudC1wYWdlLWVuZHBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFN0MsTUFBTSxVQUFVLDhCQUE4QjtJQUM1QyxPQUFPO1FBQ0w7WUFDRSxJQUFJLEVBQUUsOENBQThDO1lBQ3BELEtBQUssRUFBRSxPQUFPO1lBQ2QsTUFBTTtnQkFDSixPQUFPO29CQUNMLEtBQUssRUFBRTt3QkFDTCxhQUFhLEVBQUU7NEJBQ2IsTUFBTSxDQUFDLE9BQU87Z0NBQ1osSUFDRSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7b0NBQ3ZDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUNuQyxDQUFDO29DQUNELE9BQU87Z0NBQ1QsQ0FBQzs0QkFDSCxDQUFDO3lCQUNGO3FCQUNGO2lCQUNGLENBQUM7WUFDSixDQUFDO1lBQ0QsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTztnQkFDMUIsSUFDRSxDQUFDLE9BQU8sRUFBRSxHQUFHO29CQUNiLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUMzQyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUN6QixDQUFDO29CQUNELE9BQU87d0JBQ0wsSUFBSSxFQUFFLDJCQUEyQjt3QkFDakMsR0FBRyxFQUFFLElBQUk7cUJBQ1YsQ0FBQztnQkFDSixDQUFDO2dCQUVELE9BQU87WUFDVCxDQUFDO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,4 +1,4 @@
1
- import type { Plugin } from 'vite';
1
+ import * as vite from 'vite';
2
2
  import type { WithShikiHighlighterOptions } from './content/shiki/options.js';
3
3
  import type { WithPrismHighlighterOptions } from './content/prism/options.js';
4
4
  import type { WithMarkedOptions } from './content/marked/index.js';
@@ -19,4 +19,4 @@ export type ContentPluginOptions = {
19
19
  * - Relative paths without ./ or ../ are treated as package names
20
20
  * - Must convert to absolute paths for imports to work correctly
21
21
  */
22
- export declare function contentPlugin({ highlighter, markedOptions, shikiOptions, prismOptions, }?: ContentPluginOptions, options?: Options): Plugin[];
22
+ export declare function contentPlugin({ highlighter, markedOptions, shikiOptions, prismOptions, }?: ContentPluginOptions, options?: Options): vite.Plugin[];
@@ -1,7 +1,8 @@
1
- import { normalizePath } from 'vite';
1
+ import * as vite from 'vite';
2
2
  import { readFileSync } from 'node:fs';
3
3
  import { resolve } from 'node:path';
4
4
  import { globSync } from 'tinyglobby';
5
+ import { getBundleOptionsKey } from './utils/rolldown.js';
5
6
  /**
6
7
  * Content plugin that provides markdown and content file processing for Analog.
7
8
  *
@@ -15,7 +16,7 @@ import { globSync } from 'tinyglobby';
15
16
  export function contentPlugin({ highlighter, markedOptions, shikiOptions, prismOptions, } = {}, options) {
16
17
  const cache = new Map();
17
18
  let markedHighlighter;
18
- const workspaceRoot = normalizePath(options?.workspaceRoot ?? process.cwd());
19
+ const workspaceRoot = vite.normalizePath(options?.workspaceRoot ?? process.cwd());
19
20
  let config;
20
21
  let root;
21
22
  const contentDiscoveryPlugins = [
@@ -23,43 +24,53 @@ export function contentPlugin({ highlighter, markedOptions, shikiOptions, prismO
23
24
  name: 'analog-content-glob-routes',
24
25
  config(_config) {
25
26
  config = _config;
26
- root = normalizePath(resolve(workspaceRoot, config.root || '.') || '.');
27
+ root = vite.normalizePath(resolve(workspaceRoot, config.root || '.') || '.');
27
28
  },
28
- transform(code) {
29
- if (code.includes('ANALOG_CONTENT_FILE_LIST')) {
30
- const contentFilesList = globSync([
31
- `${root}/src/content/**/*.md`,
32
- ...(options?.additionalContentDirs || []).map((glob) => `${workspaceRoot}${glob}/**/*.md`),
33
- ], { dot: true });
34
- const eagerImports = [];
35
- contentFilesList.forEach((module, index) => {
36
- // CRITICAL: tinyglobby returns relative paths like "apps/blog-app/src/content/file.md"
37
- // These MUST be converted to absolute paths for ES module imports
38
- // Otherwise Node.js treats "apps" as a package name and throws "Cannot find package 'apps'"
39
- const absolutePath = module.startsWith('/')
40
- ? module
41
- : `${workspaceRoot}/${module}`;
42
- eagerImports.push(`import { default as analog_module_${index} } from "${absolutePath}?analog-content-list=true";`);
43
- });
44
- let result = code.replace('let ANALOG_CONTENT_FILE_LIST = {};', `
45
- let ANALOG_CONTENT_FILE_LIST = {${contentFilesList.map((module, index) => `"${module.replace(root, '')}": analog_module_${index}`)}};
46
- `);
47
- if (!code.includes('analog_module_')) {
48
- result = `${eagerImports.join('\n')}\n${result}`;
29
+ // Vite 8 / Rolldown "filtered transform" — the `filter.code` string
30
+ // tells the bundler to skip this handler entirely for modules whose
31
+ // source does not contain the substring, avoiding unnecessary JS→Rust
32
+ // round-trips. The inner `code.includes()` guard is kept for Vite 7
33
+ // compat where filters are not evaluated by the bundler.
34
+ transform: {
35
+ filter: {
36
+ code: 'ANALOG_CONTENT_FILE_LIST',
37
+ },
38
+ handler(code) {
39
+ if (code.includes('ANALOG_CONTENT_FILE_LIST')) {
40
+ const contentFilesList = globSync([
41
+ `${root}/src/content/**/*.md`,
42
+ ...(options?.additionalContentDirs || []).map((glob) => `${workspaceRoot}${glob}/**/*.md`),
43
+ ], { dot: true });
44
+ const eagerImports = [];
45
+ contentFilesList.forEach((module, index) => {
46
+ // CRITICAL: tinyglobby returns relative paths like "apps/blog-app/src/content/file.md"
47
+ // These MUST be converted to absolute paths for ES module imports
48
+ // Otherwise Node.js treats "apps" as a package name and throws "Cannot find package 'apps'"
49
+ const absolutePath = module.startsWith('/')
50
+ ? module
51
+ : `${workspaceRoot}/${module}`;
52
+ eagerImports.push(`import { default as analog_module_${index} } from "${absolutePath}?analog-content-list=true";`);
53
+ });
54
+ let result = code.replace('let ANALOG_CONTENT_FILE_LIST = {};', `
55
+ let ANALOG_CONTENT_FILE_LIST = {${contentFilesList.map((module, index) => `"${module.replace(root, '')}": analog_module_${index}`)}};
56
+ `);
57
+ if (!code.includes('analog_module_')) {
58
+ result = `${eagerImports.join('\n')}\n${result}`;
59
+ }
60
+ return {
61
+ code: result,
62
+ map: { mappings: '' },
63
+ };
49
64
  }
50
- return {
51
- code: result,
52
- map: { mappings: '' },
53
- };
54
- }
55
- return;
65
+ return;
66
+ },
56
67
  },
57
68
  },
58
69
  {
59
70
  name: 'analogjs-invalidate-content-dirs',
60
71
  configureServer(server) {
61
72
  function invalidateContent(path) {
62
- if (path.includes(normalizePath(`/content/`))) {
73
+ if (path.includes(vite.normalizePath(`/content/`))) {
63
74
  server.moduleGraph.fileToModulesMap.forEach((mods) => {
64
75
  mods.forEach((mod) => {
65
76
  if (mod.id?.includes('analogjs') &&
@@ -86,9 +97,10 @@ export function contentPlugin({ highlighter, markedOptions, shikiOptions, prismO
86
97
  {
87
98
  name: 'analogjs-external-content',
88
99
  config() {
100
+ const bundleOptionsKey = getBundleOptionsKey();
89
101
  return {
90
102
  build: {
91
- rollupOptions: {
103
+ [bundleOptionsKey]: {
92
104
  external: ['@analogjs/content'],
93
105
  },
94
106
  },
@@ -97,18 +109,23 @@ export function contentPlugin({ highlighter, markedOptions, shikiOptions, prismO
97
109
  },
98
110
  {
99
111
  name: 'analogjs-exclude-content-import',
100
- transform(code) {
101
- /**
102
- * Remove the package so it doesn't get
103
- * referenced when building for serverless
104
- * functions.
105
- */
106
- if (code.includes(`import('@analogjs/content')`)) {
107
- return {
108
- code: code.replace(`import('@analogjs/content')`, 'Promise.resolve({})'),
109
- };
110
- }
111
- return;
112
+ transform: {
113
+ filter: {
114
+ code: '@analogjs/content',
115
+ },
116
+ handler(code) {
117
+ /**
118
+ * Remove the package so it doesn't get
119
+ * referenced when building for serverless
120
+ * functions.
121
+ */
122
+ if (code.includes(`import('@analogjs/content')`)) {
123
+ return {
124
+ code: code.replace(`import('@analogjs/content')`, 'Promise.resolve({})'),
125
+ };
126
+ }
127
+ return;
128
+ },
112
129
  },
113
130
  },
114
131
  ...contentDiscoveryPlugins,
@@ -117,32 +134,42 @@ export function contentPlugin({ highlighter, markedOptions, shikiOptions, prismO
117
134
  return [
118
135
  {
119
136
  name: 'analogjs-content-frontmatter',
120
- async transform(code, id) {
121
- // Transform only the frontmatter into a JSON object for lists
122
- if (!id.includes('analog-content-list=true')) {
123
- return;
124
- }
125
- const cachedContent = cache.get(id);
126
- // There's no reason to run `readFileSync` and frontmatter parsing if the
127
- // `transform` hook is called with the same code. In such cases, we can simply
128
- // return the cached attributes, which is faster than repeatedly reading files
129
- // synchronously during the build process.
130
- if (cachedContent?.code === code) {
131
- return `export default ${cachedContent.attributes}`;
132
- }
133
- const fm = await import('front-matter');
134
- // The `default` property will be available in CommonJS environment, for instance,
135
- // when running unit tests. It's safe to retrieve `default` first, since we still
136
- // fallback to the original implementation.
137
- const frontmatter = fm.default || fm;
138
- const fileContents = readFileSync(id.split('?')[0], 'utf8');
139
- const { attributes } = frontmatter(fileContents);
140
- const content = {
141
- code,
142
- attributes: JSON.stringify(attributes),
143
- };
144
- cache.set(id, content);
145
- return `export default ${content.attributes}`;
137
+ // Filter by module ID so only `?analog-content-list=true` virtual
138
+ // imports enter the handler. Returns `moduleSideEffects: false` so
139
+ // Rolldown can tree-shake unused content list entries.
140
+ transform: {
141
+ filter: {
142
+ id: /analog-content-list=true/,
143
+ },
144
+ async handler(code, id) {
145
+ const cachedContent = cache.get(id);
146
+ // There's no reason to run `readFileSync` and frontmatter parsing if the
147
+ // `transform` hook is called with the same code. In such cases, we can simply
148
+ // return the cached attributes, which is faster than repeatedly reading files
149
+ // synchronously during the build process.
150
+ if (cachedContent?.code === code) {
151
+ return {
152
+ code: `export default ${cachedContent.attributes}`,
153
+ moduleSideEffects: false,
154
+ };
155
+ }
156
+ const fm = await import('front-matter');
157
+ // The `default` property will be available in CommonJS environment, for instance,
158
+ // when running unit tests. It's safe to retrieve `default` first, since we still
159
+ // fallback to the original implementation.
160
+ const frontmatter = fm.default || fm;
161
+ const fileContents = readFileSync(id.split('?')[0], 'utf8');
162
+ const { attributes } = frontmatter(fileContents);
163
+ const content = {
164
+ code,
165
+ attributes: JSON.stringify(attributes),
166
+ };
167
+ cache.set(id, content);
168
+ return {
169
+ code: `export default ${content.attributes}`,
170
+ moduleSideEffects: false,
171
+ };
172
+ },
146
173
  },
147
174
  },
148
175
  {
@@ -195,4 +222,4 @@ export function contentPlugin({ highlighter, markedOptions, shikiOptions, prismO
195
222
  ...contentDiscoveryPlugins,
196
223
  ];
197
224
  }
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFvQnRDOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLEVBQ0UsV0FBVyxFQUNYLGFBQWEsRUFDYixZQUFZLEVBQ1osWUFBWSxNQUNZLEVBQUUsRUFDNUIsT0FBaUI7SUFFakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7SUFFekMsSUFBSSxpQkFBMkMsQ0FBQztJQUNoRCxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLGFBQWEsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM3RSxJQUFJLE1BQWtCLENBQUM7SUFDdkIsSUFBSSxJQUFZLENBQUM7SUFFakIsTUFBTSx1QkFBdUIsR0FBYTtRQUN4QztZQUNFLElBQUksRUFBRSw0QkFBNEI7WUFDbEMsTUFBTSxDQUFDLE9BQU87Z0JBQ1osTUFBTSxHQUFHLE9BQU8sQ0FBQztnQkFDakIsSUFBSSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7WUFDMUUsQ0FBQztZQUNELFNBQVMsQ0FBQyxJQUFJO2dCQUNaLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxFQUFFLENBQUM7b0JBQzlDLE1B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
225
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBT3RDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBYzFEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLEVBQ0UsV0FBVyxFQUNYLGFBQWEsRUFDYixZQUFZLEVBQ1osWUFBWSxNQUNZLEVBQUUsRUFDNUIsT0FBaUI7SUFFakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7SUFFekMsSUFBSSxpQkFBMkMsQ0FBQztJQUNoRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUN0QyxPQUFPLEVBQUUsYUFBYSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDeEMsQ0FBQztJQUNGLElBQUksTUFBdUIsQ0FBQztJQUM1QixJQUFJLElBQVksQ0FBQztJQUVqQixNQUFNLHVCQUF1QixHQUFrQjtRQUM3QztZQUNFLElBQUksRUFBRSw0QkFBNEI7WUFDbEMsTUFBTSxDQUFDLE9BQU87Z0JBQ1osTUFBTSxHQUFHLE9BQU8sQ0FBQztnQkFDakIsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQ3ZCLE9BQU8sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQ2xELENBQUM7WUFDSixDQUFDO1lBQ0Qsb0VBQW9FO1lBQ3BFLG9F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
@@ -1,22 +1,18 @@
1
1
  import { VERSION } from '@angular/compiler-cli';
2
- import * as vite from 'vite';
3
2
  import { crawlFrameworkPkgs } from 'vitefu';
3
+ import { getJsTransformConfigKey } from './utils/rolldown.js';
4
4
  export function depsPlugin(options) {
5
5
  const workspaceRoot = options?.workspaceRoot ?? process.cwd();
6
6
  return [
7
7
  {
8
8
  name: 'analogjs-deps-plugin',
9
9
  config() {
10
- const esbuild = options?.vite === false ||
11
- options?.vite?.experimental?.useAngularCompilationAPI
12
- ? {}
13
- : { exclude: ['**/*.ts', '**/*.js'] };
14
- const oxc = options?.vite === false ||
10
+ const transformConfig = options?.vite === false ||
15
11
  options?.vite?.experimental?.useAngularCompilationAPI
16
12
  ? {}
17
13
  : { exclude: ['**/*.ts', '**/*.js'] };
18
14
  return {
19
- ...(vite.rolldownVersion ? { oxc } : { esbuild }),
15
+ [getJsTransformConfigKey()]: transformConfig,
20
16
  ssr: {
21
17
  noExternal: [
22
18
  '@analogjs/**',
@@ -80,4 +76,4 @@ export function depsPlugin(options) {
80
76
  },
81
77
  ];
82
78
  }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcy1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2RlcHMtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVoRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFJNUMsTUFBTSxVQUFVLFVBQVUsQ0FBQyxPQUFpQjtJQUMxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLEVBQUUsYUFBYSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUU5RCxPQUFPO1FBQ0w7WUFDRSxJQUFJLEVBQUUsc0JBQXNCO1lBQzVCLE1BQU07Z0JBQ0osTUFBTSxPQUFPLEdBQ1gsT0FBTyxFQUFFLElBQUksS0FBSyxLQUFLO29CQUN2QixPQUFPLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSx3QkFBd0I7b0JBQ25ELENBQUMsQ0FBQyxFQUFFO29CQUNKLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUUxQyxNQUFNLEdBQUcsR0FDUCxPQUFPLEVBQUUsSUFBSSxLQUFLLEtBQUs7b0JBQ3ZCLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLHdCQUF3QjtvQkFDbkQsQ0FBQyxDQUFDLEVBQUU7b0JBQ0osQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBRTFDLE9BQU87b0JBQ0wsR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7b0JBQ2pELEdBQUcsRUFBRTt3QkFDSCxVQUFVLEVBQUU7NEJBQ1YsY0FBYzs0QkFDZCxhQUFhOzRCQUNiLG1CQUFtQjs0QkFDbkIsUUFBUTs0QkFDUixpQkFBaUI7NEJBQ2pCLGNBQWM7NEJBQ2Qsc0NBQXNDO3lCQUN2QztxQkFDRjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osT0FBTyxFQUFFOzRCQUNQLGlCQUFpQjs0QkFDakIsc0JBQXNCOzRCQUN0QixHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFO2dDQUM1QixDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQztnQ0FDaEMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs0QkFDUCxjQUFjO3lCQUNmO3dCQUNELE9BQU8sRUFBRTs0QkFDUCwwQkFBMEI7NEJBQzFCLG1CQUFtQjs0QkFDbkIsa0JBQWtCOzRCQUNsQixhQUFhOzRCQUNiLFVBQVU7NEJBQ1YsWUFBWTs0QkFDWixRQUFROzRCQUNSLFlBQVk7NEJBQ1osYUFBYTs0QkFDYixVQUFVOzRCQUNWLFFBQVE7NEJBQ1IsWUFBWTs0QkFDWixhQUFhOzRCQUNiLFNBQVM7NEJBQ1QsZUFBZTs0QkFDZixZQUFZOzRCQUNaLHVCQUF1Qjs0QkFDdkIsWUFBWTs0QkFDWixTQUFTOzRCQUNULFVBQVU7NEJBQ1YsSUFBSTt5QkFDTDtxQkFDRjtpQkFDRixDQUFDO1lBQ0osQ0FBQztTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsNkJBQTZCO1lBQ25DLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFO2dCQUM5QixNQUFNLFNBQVMsR0FBRyxNQUFNLGtCQUFrQixDQUFDO29CQUN6QyxJQUFJLEVBQUUsYUFBYTtvQkFDbkIsT0FBTyxFQUFFLE9BQU8sS0FBSyxPQUFPO29CQUM1QixjQUFjLEVBQUUsTUFBTTtvQkFDdEIsd0JBQXdCLENBQUMsT0FBTzt3QkFDOUIsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDakUsQ0FBQztpQkFDRixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMifQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwcy1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2RlcHMtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHNUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFOUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxPQUFpQjtJQUMxQyxNQUFNLGFBQWEsR0FBRyxPQUFPLEVBQUUsYUFBYSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUU5RCxPQUFPO1FBQ0w7WUFDRSxJQUFJLEVBQUUsc0JBQXNCO1lBQzVCLE1BQU07Z0JBQ0osTUFBTSxlQUFlLEdBQ25CLE9BQU8sRUFBRSxJQUFJLEtBQUssS0FBSztvQkFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsd0JBQXdCO29CQUNuRCxDQUFDLENBQUMsRUFBRTtvQkFDSixDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFFMUMsT0FBTztvQkFDTCxDQUFDLHVCQUF1QixFQUFFLENBQUMsRUFBRSxlQUFlO29CQUM1QyxHQUFHLEVBQUU7d0JBQ0gsVUFBVSxFQUFFOzRCQUNWLGNBQWM7NEJBQ2QsYUFBYTs0QkFDYixtQkFBbUI7NEJBQ25CLFFBQVE7NEJBQ1IsaUJBQWlCOzRCQUNqQixjQUFjOzRCQUNkLHNDQUFzQzt5QkFDdkM7cUJBQ0Y7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLE9BQU8sRUFBRTs0QkFDUCxpQkFBaUI7NEJBQ2pCLHNCQUFzQjs0QkFDdEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRTtnQ0FDNUIsQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUM7Z0NBQ2hDLENBQUMsQ0FBQyxFQUFFLENBQUM7NEJBQ1AsY0FBYzt5QkFDZjt3QkFDRCxPQUFPLEVBQUU7NEJBQ1AsMEJBQTBCOzRCQUMxQixtQkFBbUI7NEJBQ25CLGtCQUFrQjs0QkFDbEIsYUFBYTs0QkFDYixVQUFVOzRCQUNWLFlBQVk7NEJBQ1osUUFBUTs0QkFDUixZQUFZOzRCQUNaLGFBQWE7NEJBQ2IsVUFBVTs0QkFDVixRQUFROzRCQUNSLFlBQVk7NEJBQ1osYUFBYTs0QkFDYixTQUFTOzRCQUNULGVBQWU7NEJBQ2YsWUFBWTs0QkFDWix1QkFBdUI7NEJBQ3ZCLFlBQVk7NEJBQ1osU0FBUzs0QkFDVCxVQUFVOzRCQUNWLElBQUk7eUJBQ0w7cUJBQ0Y7aUJBQ0YsQ0FBQztZQUNKLENBQUM7U0FDRjtRQUNEO1lBQ0UsSUFBSSxFQUFFLDZCQUE2QjtZQUNuQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sRUFBRTtnQkFDOUIsTUFBTSxTQUFTLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQztvQkFDekMsSUFBSSxFQUFFLGFBQWE7b0JBQ25CLE9BQU8sRUFBRSxPQUFPLEtBQUssT0FBTztvQkFDNUIsY0FBYyxFQUFFLE1BQU07b0JBQ3RCLHdCQUF3QixDQUFDLE9BQU87d0JBQzlCLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ2pFLENBQUM7aUJBQ0YsQ0FBQyxDQUFDO2dCQUNILE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7U0FDRjtLQUNGLENBQUM7QUFDSixDQUFDIn0=
@@ -1,10 +1,10 @@
1
1
  export declare const V18_X_NX_DEVKIT = "^20.0.0";
2
2
  export declare const V18_X_NX_ANGULAR = "^20.0.0";
3
- export declare const V18_X_ANALOG_JS_CONTENT = "^3.0.0-alpha.6";
4
- export declare const V18_X_ANALOG_JS_ROUTER = "^3.0.0-alpha.6";
3
+ export declare const V18_X_ANALOG_JS_CONTENT = "^3.0.0-alpha.8";
4
+ export declare const V18_X_ANALOG_JS_ROUTER = "^3.0.0-alpha.8";
5
5
  export declare const V18_X_ANALOG_JS_TRPC = "~0.4.0";
6
- export declare const V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.6";
7
- export declare const V18_X_ANALOG_JS_VITEST_ANGULAR = "^3.0.0-alpha.6";
6
+ export declare const V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.8";
7
+ export declare const V18_X_ANALOG_JS_VITEST_ANGULAR = "^3.0.0-alpha.8";
8
8
  export declare const V18_X_TRPC_CLIENT = "^10.25.0";
9
9
  export declare const V18_X_TRPC_SERVER = "^10.25.0";
10
10
  export declare const V18_X_ISOMORPHIC_FETCH = "^3.0.0";
@@ -20,7 +20,7 @@ export declare const V18_X_TAILWINDCSS = "^4.1.4";
20
20
  export declare const V18_X_TAILWINDCSS_VITE = "^4.1.4";
21
21
  export declare const V18_X_POSTCSS = "^8.5.3";
22
22
  export declare const V18_X_AUTOPREFIXER = "^10.4.0";
23
- export declare const V18_X_ANALOG_JS_PLATFORM = "^3.0.0-alpha.6";
23
+ export declare const V18_X_ANALOG_JS_PLATFORM = "^3.0.0-alpha.8";
24
24
  export declare const V18_X_ANGULAR_DEVKIT_BUILD_ANGULAR = "^19.0.0";
25
25
  export declare const V18_X_NX_VITE = "^21.0.0";
26
26
  export declare const V18_X_NX_LINTER = "^21.0.0";
@@ -5,11 +5,11 @@ exports.V18_X_ZOD = exports.V18_X_VITEST = exports.V18_X_VITE_TSCONFIG_PATHS = e
5
5
  // dependencies
6
6
  exports.V18_X_NX_DEVKIT = '^20.0.0';
7
7
  exports.V18_X_NX_ANGULAR = '^20.0.0';
8
- exports.V18_X_ANALOG_JS_CONTENT = '^3.0.0-alpha.6';
9
- exports.V18_X_ANALOG_JS_ROUTER = '^3.0.0-alpha.6';
8
+ exports.V18_X_ANALOG_JS_CONTENT = '^3.0.0-alpha.8';
9
+ exports.V18_X_ANALOG_JS_ROUTER = '^3.0.0-alpha.8';
10
10
  exports.V18_X_ANALOG_JS_TRPC = '~0.4.0';
11
- exports.V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.6';
12
- exports.V18_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.6';
11
+ exports.V18_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.8';
12
+ exports.V18_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.8';
13
13
  exports.V18_X_TRPC_CLIENT = '^10.25.0';
14
14
  exports.V18_X_TRPC_SERVER = '^10.25.0';
15
15
  exports.V18_X_ISOMORPHIC_FETCH = '^3.0.0';
@@ -26,7 +26,7 @@ exports.V18_X_TAILWINDCSS_VITE = '^4.1.4';
26
26
  exports.V18_X_POSTCSS = '^8.5.3';
27
27
  exports.V18_X_AUTOPREFIXER = '^10.4.0';
28
28
  // devDependencies
29
- exports.V18_X_ANALOG_JS_PLATFORM = '^3.0.0-alpha.6';
29
+ exports.V18_X_ANALOG_JS_PLATFORM = '^3.0.0-alpha.8';
30
30
  exports.V18_X_ANGULAR_DEVKIT_BUILD_ANGULAR = '^19.0.0';
31
31
  exports.V18_X_NX_VITE = '^21.0.0';
32
32
  exports.V18_X_NX_LINTER = '^21.0.0';
@@ -1,13 +1,13 @@
1
- export declare const V19_X_ANALOG_JS_ROUTER = "^3.0.0-alpha.6";
2
- export declare const V19_X_ANALOG_JS_CONTENT = "^3.0.0-alpha.6";
1
+ export declare const V19_X_ANALOG_JS_ROUTER = "^3.0.0-alpha.8";
2
+ export declare const V19_X_ANALOG_JS_CONTENT = "^3.0.0-alpha.8";
3
3
  export declare const V19_X_MARKED = "^15.0.7";
4
4
  export declare const V19_X_MARKED_GFM_HEADING_ID = "^4.1.1";
5
5
  export declare const V19_X_MARKED_HIGHLIGHT = "^2.2.1";
6
6
  export declare const V19_X_MARKED_MANGLE = "^1.1.10";
7
7
  export declare const V19_X_PRISMJS = "^1.29.0";
8
- export declare const V19_X_ANALOG_JS_PLATFORM = "^3.0.0-alpha.6";
9
- export declare const V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.6";
10
- export declare const V19_X_ANALOG_JS_VITEST_ANGULAR = "^3.0.0-alpha.6";
8
+ export declare const V19_X_ANALOG_JS_PLATFORM = "^3.0.0-alpha.8";
9
+ export declare const V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.8";
10
+ export declare const V19_X_ANALOG_JS_VITEST_ANGULAR = "^3.0.0-alpha.8";
11
11
  export declare const V19_X_NX_ANGULAR = "^22.0.0";
12
12
  export declare const V19_X_NX_VITE = "^22.0.0";
13
13
  export declare const V19_X_JSDOM = "^22.0.0";
@@ -2,17 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.NX_X_LATEST_VITEST = exports.NX_X_LATEST_VITE = exports.V19_X_VITE = exports.V19_X_VITEST = exports.V19_X_VITE_TSCONFIG_PATHS = exports.V19_X_JSDOM = exports.V19_X_NX_VITE = exports.V19_X_NX_ANGULAR = exports.V19_X_ANALOG_JS_VITEST_ANGULAR = exports.V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = exports.V19_X_ANALOG_JS_PLATFORM = exports.V19_X_PRISMJS = exports.V19_X_MARKED_MANGLE = exports.V19_X_MARKED_HIGHLIGHT = exports.V19_X_MARKED_GFM_HEADING_ID = exports.V19_X_MARKED = exports.V19_X_ANALOG_JS_CONTENT = exports.V19_X_ANALOG_JS_ROUTER = void 0;
4
4
  // V19_X
5
- exports.V19_X_ANALOG_JS_ROUTER = '^3.0.0-alpha.6';
6
- exports.V19_X_ANALOG_JS_CONTENT = '^3.0.0-alpha.6';
5
+ exports.V19_X_ANALOG_JS_ROUTER = '^3.0.0-alpha.8';
6
+ exports.V19_X_ANALOG_JS_CONTENT = '^3.0.0-alpha.8';
7
7
  exports.V19_X_MARKED = '^15.0.7';
8
8
  exports.V19_X_MARKED_GFM_HEADING_ID = '^4.1.1';
9
9
  exports.V19_X_MARKED_HIGHLIGHT = '^2.2.1';
10
10
  exports.V19_X_MARKED_MANGLE = '^1.1.10';
11
11
  exports.V19_X_PRISMJS = '^1.29.0';
12
12
  // devDependencies
13
- exports.V19_X_ANALOG_JS_PLATFORM = '^3.0.0-alpha.6';
14
- exports.V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.6';
15
- exports.V19_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.6';
13
+ exports.V19_X_ANALOG_JS_PLATFORM = '^3.0.0-alpha.8';
14
+ exports.V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.8';
15
+ exports.V19_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.8';
16
16
  exports.V19_X_NX_ANGULAR = '^22.0.0';
17
17
  exports.V19_X_NX_VITE = '^22.0.0';
18
18
  exports.V19_X_JSDOM = '^22.0.0';
@@ -35,6 +35,10 @@ export interface Options {
35
35
  /**
36
36
  * Pass configuration options to the internal `@analogjs/vite-plugin-angular`
37
37
  * plugin. Set to false to disable the internal vite plugin.
38
+ *
39
+ * `vite.build` uses Vite's native config shape and is forwarded to the
40
+ * internal Nitro/Vite build pipeline, while the remaining fields are passed
41
+ * to `@analogjs/vite-plugin-angular`.
38
42
  */
39
43
  vite?: PluginOptions | false;
40
44
  nitro?: NitroConfig;
@@ -1,14 +1,16 @@
1
- // eslint-disable-next-line @nx/enforce-module-boundaries -- spec uses dynamic import() for vi.mock(), not lazy-loading
2
1
  import viteNitroPlugin from '@analogjs/vite-plugin-nitro';
3
2
  import angular from '@analogjs/vite-plugin-angular';
4
3
  import { routerPlugin } from './router-plugin.js';
5
4
  import { ssrBuildPlugin } from './ssr/ssr-build-plugin.js';
6
5
  import { contentPlugin } from './content-plugin.js';
7
6
  import { clearClientPageEndpointsPlugin } from './clear-client-page-endpoint.js';
8
- import { ssrXhrBuildPlugin } from './ssr/ssr-xhr-plugin.js';
9
7
  import { depsPlugin } from './deps-plugin.js';
10
8
  import { injectHTMLPlugin } from './ssr/inject-html-plugin.js';
11
9
  import { serverModePlugin } from '../server-mode-plugin.js';
10
+ // Bridge Plugin types from external @analogjs packages that resolve a different vite instance
11
+ function externalPlugins(plugins) {
12
+ return plugins;
13
+ }
12
14
  export function platformPlugin(opts = {}) {
13
15
  const isTest = process.env['NODE_ENV'] === 'test' || !!process.env['VITEST'];
14
16
  const { ...platformOptions } = {
@@ -34,14 +36,16 @@ export function platformPlugin(opts = {}) {
34
36
  };
35
37
  }
36
38
  return [
37
- ...viteNitroPlugin(platformOptions, nitroOptions),
38
- ...(platformOptions.ssr ? [ssrBuildPlugin(), ...injectHTMLPlugin()] : []),
39
+ ...externalPlugins(viteNitroPlugin(platformOptions, nitroOptions)),
40
+ ...(platformOptions.ssr
41
+ ? [...ssrBuildPlugin(), ...injectHTMLPlugin()]
42
+ : []),
39
43
  ...(!isTest ? depsPlugin(platformOptions) : []),
40
44
  ...routerPlugin(platformOptions),
41
45
  ...contentPlugin(platformOptions?.content, platformOptions),
42
46
  ...(opts?.vite === false
43
47
  ? []
44
- : angular({
48
+ : externalPlugins(angular({
45
49
  jit: platformOptions.jit,
46
50
  workspaceRoot: platformOptions.workspaceRoot,
47
51
  disableTypeChecking: platformOptions.disableTypeChecking ?? false,
@@ -54,10 +58,9 @@ export function platformPlugin(opts = {}) {
54
58
  inlineStylesExtension: platformOptions.inlineStylesExtension,
55
59
  fileReplacements: platformOptions.fileReplacements,
56
60
  ...(opts?.vite ?? {}),
57
- })),
58
- serverModePlugin(),
59
- ssrXhrBuildPlugin(),
60
- clearClientPageEndpointsPlugin(),
61
+ }))),
62
+ ...serverModePlugin(),
63
+ ...clearClientPageEndpointsPlugin(),
61
64
  ];
62
65
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL2xpYi9wbGF0Zm9ybS1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsdUhBQXVIO0FBQ3ZILE9BQU8sZUFBZSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sT0FBTyxNQUFNLCtCQUErQixDQUFDO0FBR3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQWdCLEVBQUU7SUFDL0MsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxNQUFNLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0UsTUFBTSxFQUFFLEdBQUcsZUFBZSxFQUFFLEdBQUc7UUFDN0IsR0FBRyxFQUFFLElBQUk7UUFDVCxHQUFHLElBQUk7S0FDUixDQUFDO0lBRUYsSUFBSSxZQUFZLEdBQUcsZUFBZSxFQUFFLEtBQUssQ0FBQztJQUUxQyxJQUFJLFlBQVksRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUM3QixZQUFZLEdBQUc7WUFDYixHQUFHLFlBQVk7WUFDZixVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUNyRCxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDZixPQUFPO29CQUNMLEdBQUcsTUFBTTtvQkFDVCxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUNOLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQzt3QkFDZixPQUFPLEVBQUU7NEJBQ1AsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTzs0QkFDdkIsaUJBQWlCLEVBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUzt5QkFDNUM7cUJBQ1Q7aUJBQ0YsQ0FBQztZQUNKLENBQUMsRUFDRCxZQUFZLENBQUMsVUFBVSxDQUN4QjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTztRQUNMLEdBQUcsZUFBZSxDQUFDLGVBQWUsRUFBRSxZQUFZLENBQUM7UUFDakQsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6RSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9DLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQztRQUNoQyxHQUFHLGFBQWEsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLGVBQWUsQ0FBQztRQUMzRCxHQUFJLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxLQUFLO1lBQ3ZCLENBQUMsQ0FBQyxFQUFFO1lBQ0osQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDTixHQUFHLEVBQUUsZUFBZSxDQUFDLEdBQUc7Z0JBQ3hCLGFBQWEsRUFBRSxlQUFlLENBQUMsYUFBYTtnQkFDNUMsbUJBQW1CLEVBQUUsZUFBZSxDQUFDLG1CQUFtQixJQUFJLEtBQUs7Z0JBQ2pFLE9BQU8sRUFBRTtvQkFDUCxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7b0JBQ2xDLEdBQUcsQ0FBQyxlQUFlLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUNoRCxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLGVBQWUsQ0FDdkM7aUJBQ0Y7Z0JBQ0QscUJBQXFCLEVBQUUsZUFBZSxDQUFDLHFCQUFxQjtnQkFDNUQsVUFBVSxFQUFFLGVBQWUsQ0FBQyxVQUFVO2dCQUN0QyxxQkFBcUIsRUFBRSxlQUFlLENBQUMscUJBQXFCO2dCQUM1RCxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsZ0JBQWdCO2dCQUNsRCxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7YUFDdEIsQ0FBQyxDQUFTO1FBQ2YsZ0JBQWdCLEVBQUU7UUFDbEIsaUJBQWlCLEVBQVk7UUFDN0IsOEJBQThCLEVBQVk7S0FDM0MsQ0FBQztBQUNKLENBQUMifQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL2xpYi9wbGF0Zm9ybS1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxlQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxPQUFPLE1BQU0sK0JBQStCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTVELDhGQUE4RjtBQUM5RixTQUFTLGVBQWUsQ0FBQyxPQUFnQjtJQUN2QyxPQUFPLE9BQW1CLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZ0IsRUFBRTtJQUMvQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3RSxNQUFNLEVBQUUsR0FBRyxlQUFlLEVBQUUsR0FBRztRQUM3QixHQUFHLEVBQUUsSUFBSTtRQUNULEdBQUcsSUFBSTtLQUNSLENBQUM7SUFDRixJQUFJLFlBQVksR0FBRyxlQUFlLEVBQUUsS0FBSyxDQUFDO0lBRTFDLElBQUksWUFBWSxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQzdCLFlBQVksR0FBRztZQUNiLEdBQUcsWUFBWTtZQUNmLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQ3JELENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNmLE9BQU87b0JBQ0wsR0FBRyxNQUFNO29CQUNULENBQUMsSUFBSSxDQUFDLEVBQUU7d0JBQ04sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNmLE9BQU8sRUFBRTs0QkFDUCxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPOzRCQUN2QixpQkFBaUIsRUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTO3lCQUM1QztxQkFDVDtpQkFDRixDQUFDO1lBQ0osQ0FBQyxFQUNELFlBQVksQ0FBQyxVQUFVLENBQ3hCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLGVBQXNCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDekUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHO1lBQ3JCLENBQUMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxFQUFFLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzlDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9DLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQztRQUNoQyxHQUFHLGFBQWEsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLGVBQWUsQ0FBQztRQUMzRCxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxLQUFLO1lBQ3RCLENBQUMsQ0FBQyxFQUFFO1lBQ0osQ0FBQyxDQUFDLGVBQWUsQ0FDYixPQUFPLENBQUM7Z0JBQ04sR0FBRyxFQUFFLGVBQWUsQ0FBQyxHQUFHO2dCQUN4QixhQUFhLEVBQUUsZUFBZSxDQUFDLGFBQWE7Z0JBQzVDLG1CQUFtQixFQUFFLGVBQWUsQ0FBQyxtQkFBbUIsSUFBSSxLQUFLO2dCQUNqRSxPQUFPLEVBQUU7b0JBQ1AsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO29CQUNsQyxHQUFHLENBQUMsZUFBZSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDaEQsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxlQUFlLENBQ3ZDO2lCQUNGO2dCQUNELHFCQUFxQixFQUFFLGVBQWUsQ0FBQyxxQkFBcUI7Z0JBQzVELFVBQVUsRUFBRSxlQUFlLENBQUMsVUFBVTtnQkFDdEMscUJBQXFCLEVBQUUsZUFBZSxDQUFDLHFCQUFxQjtnQkFDNUQsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLGdCQUFnQjtnQkFDbEQsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO2FBQ3RCLENBQUMsQ0FDSCxDQUFDO1FBQ04sR0FBRyxnQkFBZ0IsRUFBRTtRQUNyQixHQUFHLDhCQUE4QixFQUFFO0tBQ3BDLENBQUM7QUFDSixDQUFDIn0=
@@ -76,6 +76,10 @@ export function routerPlugin(options) {
76
76
  },
77
77
  {
78
78
  name: 'analog-glob-routes',
79
+ // enforce: 'post' ensures this transform runs AFTER the Angular compiler
80
+ // plugin, which replaces module content with its own compiled output.
81
+ // Without this, the Angular plugin would overwrite the route replacements.
82
+ enforce: 'post',
79
83
  config(_config) {
80
84
  config = _config;
81
85
  root = normalizePath(resolve(workspaceRoot, config.root || '.') || '.');
@@ -87,53 +91,66 @@ export function routerPlugin(options) {
87
91
  * @param code The source code to transform
88
92
  * @returns Transformed code with dynamic imports or undefined if no transformation needed
89
93
  */
90
- transform(code) {
91
- if (code.includes('ANALOG_ROUTE_FILES') ||
92
- code.includes('ANALOG_CONTENT_ROUTE_FILES')) {
93
- // Discover route files using tinyglobby
94
- // NOTE: { absolute: true } returns absolute paths for ALL files
95
- const routeFiles = globSync([
96
- `${root}/app/routes/**/*.ts`,
97
- `${root}/src/app/routes/**/*.ts`,
98
- `${root}/src/app/pages/**/*.page.ts`,
99
- ...(options?.additionalPagesDirs || []).map((glob) => `${workspaceRoot}${glob}/**/*.page.ts`),
100
- ], { dot: true, absolute: true });
101
- // Discover content files using tinyglobby
102
- const contentRouteFiles = globSync([
103
- `${root}/src/app/routes/**/*.md`,
104
- `${root}/src/app/pages/**/*.md`,
105
- `${root}/src/content/**/*.md`,
106
- ...(options?.additionalContentDirs || []).map((glob) => `${workspaceRoot}${glob}/**/*.md`),
107
- ], { dot: true, absolute: true });
108
- let result = code.replace('ANALOG_ROUTE_FILES = {};', `
109
- ANALOG_ROUTE_FILES = {${routeFiles.map((module) => {
110
- // CRITICAL: tinyglobby returns absolute paths, but we need relative paths for project files
111
- // to match expected output format. Library files keep absolute paths.
112
- const key = module.startsWith(root)
113
- ? module.replace(root, '')
114
- : module;
115
- return `"${key}": () => import('${module}')`;
116
- })}};
117
- `);
118
- result = result.replace('ANALOG_CONTENT_ROUTE_FILES = {};', `
119
- ANALOG_CONTENT_ROUTE_FILES = {${contentRouteFiles.map((module) => {
120
- // Same path normalization as route files
121
- const key = module.startsWith(root)
122
- ? module.replace(root, '')
123
- : module;
124
- return `"${key}": () => import('${module}?analog-content-file=true').then(m => m.default)`;
125
- })}};
126
- `);
127
- return {
128
- code: result,
129
- map: { mappings: '' },
130
- };
131
- }
132
- return;
94
+ // Vite 8 / Rolldown filtered transform: the `filter.code` substring
95
+ // pre-filter lets the bundler skip modules that don't contain the
96
+ // marker. 'ANALOG_ROUTE_FILES' also matches 'ANALOG_CONTENT_ROUTE_FILES'
97
+ // (substring), so a single filter covers both placeholders.
98
+ transform: {
99
+ filter: {
100
+ code: 'ANALOG_ROUTE_FILES',
101
+ },
102
+ handler(code) {
103
+ if (code.includes('ANALOG_ROUTE_FILES') ||
104
+ code.includes('ANALOG_CONTENT_ROUTE_FILES')) {
105
+ // Discover route files using tinyglobby
106
+ // NOTE: { absolute: true } returns absolute paths for ALL files
107
+ const routeFiles = globSync([
108
+ `${root}/app/routes/**/*.ts`,
109
+ `${root}/src/app/routes/**/*.ts`,
110
+ `${root}/src/app/pages/**/*.page.ts`,
111
+ ...(options?.additionalPagesDirs || []).map((glob) => `${workspaceRoot}${glob}/**/*.page.ts`),
112
+ ], { dot: true, absolute: true });
113
+ // Discover content files using tinyglobby
114
+ const contentRouteFiles = globSync([
115
+ `${root}/src/app/routes/**/*.md`,
116
+ `${root}/src/app/pages/**/*.md`,
117
+ `${root}/src/content/**/*.md`,
118
+ ...(options?.additionalContentDirs || []).map((glob) => `${workspaceRoot}${glob}/**/*.md`),
119
+ ], { dot: true, absolute: true });
120
+ let result = code.replace('ANALOG_ROUTE_FILES = {};', `
121
+ ANALOG_ROUTE_FILES = {${routeFiles.map((module) => {
122
+ // CRITICAL: tinyglobby returns absolute paths, but we need relative paths for project files
123
+ // to match expected output format. Library files keep absolute paths.
124
+ const key = module.startsWith(root)
125
+ ? module.replace(root, '')
126
+ : module;
127
+ return `"${key}": () => import('${module}')`;
128
+ })}};
129
+ `);
130
+ result = result.replace('ANALOG_CONTENT_ROUTE_FILES = {};', `
131
+ ANALOG_CONTENT_ROUTE_FILES = {${contentRouteFiles.map((module) => {
132
+ // Same path normalization as route files
133
+ const key = module.startsWith(root)
134
+ ? module.replace(root, '')
135
+ : module;
136
+ return `"${key}": () => import('${module}?analog-content-file=true').then(m => m.default)`;
137
+ })}};
138
+ `);
139
+ return {
140
+ code: result,
141
+ map: { mappings: '' },
142
+ };
143
+ }
144
+ return;
145
+ },
133
146
  },
134
147
  },
135
148
  {
136
149
  name: 'analog-glob-endpoints',
150
+ // enforce: 'post' ensures this transform runs AFTER the Angular compiler
151
+ // plugin, which replaces module content with its own compiled output.
152
+ // Without this, the Angular plugin would overwrite the endpoint replacements.
153
+ enforce: 'post',
137
154
  /**
138
155
  * Transforms code to replace ANALOG_PAGE_ENDPOINTS placeholder
139
156
  * with actual dynamic imports of discovered server endpoint files.
@@ -141,30 +158,35 @@ export function routerPlugin(options) {
141
158
  * @param code The source code to transform
142
159
  * @returns Transformed code with dynamic imports or undefined if no transformation needed
143
160
  */
144
- transform(code) {
145
- if (code.includes('ANALOG_PAGE_ENDPOINTS')) {
146
- // Discover server endpoint files using tinyglobby
147
- const endpointFiles = globSync([
148
- `${root}/src/app/pages/**/*.server.ts`,
149
- ...(options?.additionalPagesDirs || []).map((glob) => `${workspaceRoot}${glob}/**/*.server.ts`),
150
- ], { dot: true, absolute: true });
151
- const result = code.replace('ANALOG_PAGE_ENDPOINTS = {};', `
152
- ANALOG_PAGE_ENDPOINTS = {${endpointFiles.map((module) => {
153
- // Same path normalization for consistency
154
- const key = module.startsWith(root)
155
- ? module.replace(root, '')
156
- : module;
157
- return `"${key}": () => import('${module}')`;
158
- })}};
159
- `);
160
- return {
161
- code: result,
162
- map: { mappings: '' },
163
- };
164
- }
165
- return;
161
+ transform: {
162
+ filter: {
163
+ code: 'ANALOG_PAGE_ENDPOINTS',
164
+ },
165
+ handler(code) {
166
+ if (code.includes('ANALOG_PAGE_ENDPOINTS')) {
167
+ // Discover server endpoint files using tinyglobby
168
+ const endpointFiles = globSync([
169
+ `${root}/src/app/pages/**/*.server.ts`,
170
+ ...(options?.additionalPagesDirs || []).map((glob) => `${workspaceRoot}${glob}/**/*.server.ts`),
171
+ ], { dot: true, absolute: true });
172
+ const result = code.replace('ANALOG_PAGE_ENDPOINTS = {};', `
173
+ ANALOG_PAGE_ENDPOINTS = {${endpointFiles.map((module) => {
174
+ // Same path normalization for consistency
175
+ const key = module.startsWith(root)
176
+ ? module.replace(root, '')
177
+ : module;
178
+ return `"${key}": () => import('${module}')`;
179
+ })}};
180
+ `);
181
+ return {
182
+ code: result,
183
+ map: { mappings: '' },
184
+ };
185
+ }
186
+ return;
187
+ },
166
188
  },
167
189
  },
168
190
  ];
169
191
  }
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvcm91dGVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFxQyxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJcEM7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFpQjtJQUM1QyxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLGFBQWEsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM3RSxJQUFJLE1BQWtCLENBQUM7SUFDdkIsSUFBSSxJQUFZLENBQUM7SUFDakIsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNCLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFxQixFQUFFLElBQVksRUFBRSxFQUFFO1FBQ3BFLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyx5RUFBeUU7UUFDekUsMEVBQTBFO1FBQzFFLHVEQUF1RDtRQUN2RCxNQUFNLFdBQVcsR0FDZixNQUFNLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUMsY0FBYyxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTFELFdBQVcsRUFBRSxPQUFP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
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvcm91dGVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFxQyxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJcEM7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFpQjtJQUM1QyxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLGFBQWEsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM3RSxJQUFJLE1BQWtCLENBQUM7SUFDdkIsSUFBSSxJQUFZLENBQUM7SUFDakIsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNCLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFxQixFQUFFLElBQVksRUFBRSxFQUFFO1FBQ3BFLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyx5RUFBeUU7UUFDekUsMEVBQTBFO1FBQzFFLHVEQUF1RDtRQUN2RCxNQUFNLFdBQVcsR0FDZixNQUFNLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUMsY0FBYyxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTFELFdBQVcsRUFBRSxPQUFP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
@@ -1,2 +1,18 @@
1
- import { Plugin } from 'vite';
2
- export declare function ssrBuildPlugin(): Plugin;
1
+ import * as vite from 'vite';
2
+ /**
3
+ * SSR build patches for Angular platform-server, Zone.js, and Domino.
4
+ *
5
+ * Returns an array of Vite plugins because under Vite 8+ (Rolldown) we
6
+ * append Rolldown's built-in `replacePlugin` for an AST-safe
7
+ * `global → globalThis` rewrite that avoids false positives inside string
8
+ * literals and comments.
9
+ *
10
+ * **Why each patch exists:**
11
+ * - zone-node: removes a `const global = globalThis` alias that shadows the
12
+ * real global in strict mode.
13
+ * - platform-server: rewrites `xhr2.XMLHttpRequest` for CJS/ESM compat and
14
+ * replaces bare `global` references with `globalThis`.
15
+ * - xhr2: strips Node-specific `os`/`process` references for SSR bundling.
16
+ * - domino/sloppy.js: replaces `with()` statements that are illegal in ESM.
17
+ */
18
+ export declare function ssrBuildPlugin(): vite.Plugin[];
@@ -1,31 +1,90 @@
1
- import { normalizePath } from 'vite';
1
+ import { createRequire } from 'node:module';
2
+ import * as vite from 'vite';
3
+ /**
4
+ * SSR build patches for Angular platform-server, Zone.js, and Domino.
5
+ *
6
+ * Returns an array of Vite plugins because under Vite 8+ (Rolldown) we
7
+ * append Rolldown's built-in `replacePlugin` for an AST-safe
8
+ * `global → globalThis` rewrite that avoids false positives inside string
9
+ * literals and comments.
10
+ *
11
+ * **Why each patch exists:**
12
+ * - zone-node: removes a `const global = globalThis` alias that shadows the
13
+ * real global in strict mode.
14
+ * - platform-server: rewrites `xhr2.XMLHttpRequest` for CJS/ESM compat and
15
+ * replaces bare `global` references with `globalThis`.
16
+ * - xhr2: strips Node-specific `os`/`process` references for SSR bundling.
17
+ * - domino/sloppy.js: replaces `with()` statements that are illegal in ESM.
18
+ */
2
19
  export function ssrBuildPlugin() {
3
- return {
4
- name: 'analogjs-ssr-build-plugin',
5
- transform(code, id) {
6
- if (id.includes('zone-node') &&
7
- code.includes('const global = globalThis;')) {
20
+ const plugins = [
21
+ {
22
+ name: 'analogjs-ssr-build-plugin',
23
+ apply: 'build',
24
+ config() {
8
25
  return {
9
- code: code.replace('const global = globalThis;', ''),
26
+ ssr: {
27
+ noExternal: ['xhr2'],
28
+ },
10
29
  };
11
- }
12
- if (id.includes('platform-server')) {
13
- return {
14
- code: code
15
- .replace('new xhr2.XMLHttpRequest', 'new (xhr2.default.XMLHttpRequest || xhr2.default)')
16
- .replaceAll('global.', 'globalThis.')
17
- .replaceAll('global,', 'globalThis,')
18
- .replaceAll(' global[', ' globalThis['),
19
- };
20
- }
21
- // Remove usage of `with()` in sloppy.js file
22
- if (id.includes(normalizePath('domino/lib/sloppy.js'))) {
23
- return {
24
- code: code.replace(/with\(/gi, 'if('),
25
- };
26
- }
27
- return;
30
+ },
31
+ transform: {
32
+ filter: {
33
+ id: /zone-node|platform-server|xhr2\.js|domino\/lib\/sloppy\.js/,
34
+ },
35
+ handler(code, id) {
36
+ if (id.includes('zone-node') &&
37
+ code.includes('const global = globalThis;')) {
38
+ return {
39
+ code: code.replace('const global = globalThis;', ''),
40
+ };
41
+ }
42
+ if (id.includes('platform-server')) {
43
+ let result = code.replace('new xhr2.XMLHttpRequest', 'new (xhr2.default.XMLHttpRequest || xhr2.default)');
44
+ // Under Vite 8+ the appended `replacePlugin` handles
45
+ // global → globalThis via AST-aware replacement (scoped to
46
+ // platform-server by `withFilter`). For Vite ≤7 we fall back
47
+ // to text-based replaceAll — imprecise but sufficient for the
48
+ // known occurrences in @angular/platform-server bundles.
49
+ if (!vite.rolldownVersion) {
50
+ result = result
51
+ .replaceAll('global.', 'globalThis.')
52
+ .replaceAll('global,', 'globalThis,')
53
+ .replaceAll(' global[', ' globalThis[');
54
+ }
55
+ return { code: result };
56
+ }
57
+ if (id.includes(vite.normalizePath('xhr2.js'))) {
58
+ return {
59
+ code: code
60
+ .replace('os.type()', `''`)
61
+ .replace('os.arch()', `''`)
62
+ .replace('process.versions.node', `'node'`)
63
+ .replace('process.versions.v8', `'v8'`),
64
+ };
65
+ }
66
+ if (id.includes(vite.normalizePath('domino/lib/sloppy.js'))) {
67
+ return {
68
+ code: code.replace(/with\(/gi, 'if('),
69
+ };
70
+ }
71
+ return;
72
+ },
73
+ },
28
74
  },
29
- };
75
+ ];
76
+ // Under Vite 8+ (Rolldown), append Rolldown's built-in `replacePlugin`
77
+ // for AST-aware `global → globalThis` rewriting scoped to platform-server.
78
+ //
79
+ // `createRequire` is used instead of dynamic `import()` because this code
80
+ // runs synchronously during plugin construction (not inside an async hook).
81
+ // Rolldown is guaranteed to be installed when `vite.rolldownVersion` is truthy.
82
+ if (vite.rolldownVersion) {
83
+ const require = createRequire(import.meta.url);
84
+ const { replacePlugin } = require('rolldown/plugins');
85
+ const { withFilter } = require('rolldown/filter');
86
+ plugins.push(withFilter(replacePlugin({ global: 'globalThis' }, { preventAssignment: true, objectGuards: true }), { transform: { id: /platform-server/ } }));
87
+ }
88
+ return plugins;
30
89
  }
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NyLWJ1aWxkLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvc3NyL3Nzci1idWlsZC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBVSxNQUFNLE1BQU0sQ0FBQztBQUU3QyxNQUFNLFVBQVUsY0FBYztJQUM1QixPQUFPO1FBQ0wsSUFBSSxFQUFFLDJCQUEyQjtRQUNqQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDaEIsSUFDRSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxFQUMzQyxDQUFDO2dCQUNELE9BQU87b0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsNEJBQTRCLEVBQUUsRUFBRSxDQUFDO2lCQUNyRCxDQUFDO1lBQ0osQ0FBQztZQUVELElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ25DLE9BQU87b0JBQ0wsSUFBSSxFQUFFLElBQUk7eUJBQ1AsT0FBTyxDQUNOLHlCQUF5QixFQUN6QixtREFBbUQsQ0FDcEQ7eUJBQ0EsVUFBVSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUM7eUJBQ3BDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDO3lCQUNwQyxVQUFVLENBQUMsVUFBVSxFQUFFLGNBQWMsQ0FBQztpQkFDMUMsQ0FBQztZQUNKLENBQUM7WUFFRCw2Q0FBNkM7WUFDN0MsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDdkQsT0FBTztvQkFDTCxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDO2lCQUN0QyxDQUFDO1lBQ0osQ0FBQztZQUVELE9BQU87UUFDVCxDQUFDO0tBQ0YsQ0FBQztBQUNKLENBQUMifQ==
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NyLWJ1aWxkLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvc3NyL3Nzci1idWlsZC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3Qjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLFVBQVUsY0FBYztJQUM1QixNQUFNLE9BQU8sR0FBa0I7UUFDN0I7WUFDRSxJQUFJLEVBQUUsMkJBQTJCO1lBQ2pDLEtBQUssRUFBRSxPQUFPO1lBQ2QsTUFBTTtnQkFDSixPQUFPO29CQUNMLEdBQUcsRUFBRTt3QkFDSCxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7cUJBQ3JCO2lCQUNGLENBQUM7WUFDSixDQUFDO1lBQ0QsU0FBUyxFQUFFO2dCQUNULE1BQU0sRUFBRTtvQkFDTixFQUFFLEVBQUUsNERBQTREO2lCQUNqRTtnQkFDRCxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ2QsSUFDRSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQzt3QkFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxFQUMzQyxDQUFDO3dCQUNELE9BQU87NEJBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsNEJBQTRCLEVBQUUsRUFBRSxDQUFDO3lCQUNyRCxDQUFDO29CQUNKLENBQUM7b0JBRUQsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQzt3QkFDbkMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FDdkIseUJBQXlCLEVBQ3pCLG1EQUFtRCxDQUNwRCxDQUFDO3dCQUVGLHFEQUFxRDt3QkFDckQsMkRBQTJEO3dCQUMzRCw4REFBOEQ7d0JBQzlELDhEQUE4RDt3QkFDOUQseURBQXlEO3dCQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDOzRCQUMxQixNQUFNLEdBQUcsTUFBTTtpQ0FDWixVQUFVLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQztpQ0FDcEMsVUFBVSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUM7aUNBQ3BDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7d0JBQzVDLENBQUM7d0JBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztvQkFDMUIsQ0FBQztvQkFFRCxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQy9DLE9BQU87NEJBQ0wsSUFBSSxFQUFFLElBQUk7aUNBQ1AsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUM7aUNBQzFCLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDO2lDQUMxQixPQUFPLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxDQUFDO2lDQUMxQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDO3lCQUMxQyxDQUFDO29CQUNKLENBQUM7b0JBRUQsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQzVELE9BQU87NEJBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQzt5QkFDdEMsQ0FBQztvQkFDSixDQUFDO29CQUVELE9BQU87Z0JBQ1QsQ0FBQzthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBRUYsdUVBQXVFO0lBQ3ZFLDJFQUEyRTtJQUMzRSxFQUFFO0lBQ0YsMEVBQTBFO0lBQzFFLDRFQUE0RTtJQUM1RSxnRkFBZ0Y7SUFDaEYsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUNyQixPQUFPLENBQUMsa0JBQWtCLENBQXNDLENBQUM7UUFDbkUsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUNsQixPQUFPLENBQUMsaUJBQWlCLENBQXFDLENBQUM7UUFFakUsT0FBTyxDQUFDLElBQUksQ0FDVixVQUFVLENBQ1IsYUFBYSxDQUNYLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUN4QixFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQ2hELEVBQ0QsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxDQUNmLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyJ9
@@ -0,0 +1,3 @@
1
+ export declare function isRolldown(): boolean;
2
+ export declare function getJsTransformConfigKey(): 'oxc' | 'esbuild';
3
+ export declare function getBundleOptionsKey(): 'rolldownOptions' | 'rollupOptions';
@@ -0,0 +1,11 @@
1
+ import * as vite from 'vite';
2
+ export function isRolldown() {
3
+ return !!vite.rolldownVersion;
4
+ }
5
+ export function getJsTransformConfigKey() {
6
+ return isRolldown() ? 'oxc' : 'esbuild';
7
+ }
8
+ export function getBundleOptionsKey() {
9
+ return isRolldown() ? 'rolldownOptions' : 'rollupOptions';
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sbGRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL3V0aWxzL3JvbGxkb3duLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE1BQU0sVUFBVSxVQUFVO0lBQ3hCLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7QUFDaEMsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUI7SUFDckMsT0FBTyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDMUMsQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsT0FBTyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQztBQUM1RCxDQUFDIn0=
@@ -4,4 +4,4 @@ import { Plugin } from 'vite';
4
4
  * during SSR. This should be revisited when Vite 6 lands
5
5
  * with the new Environment API.
6
6
  */
7
- export declare function serverModePlugin(): Plugin;
7
+ export declare function serverModePlugin(): Plugin[];
@@ -4,17 +4,19 @@
4
4
  * with the new Environment API.
5
5
  */
6
6
  export function serverModePlugin() {
7
- return {
8
- name: 'analogjs-server-mode-plugin',
9
- transform(code, id, options) {
10
- if (options?.ssr &&
11
- (id.endsWith('platform-server.mjs') || id.endsWith('core.mjs'))) {
12
- return {
13
- code: code.replaceAll('ngServerMode', 'true'),
14
- };
15
- }
16
- return;
7
+ return [
8
+ {
9
+ name: 'analogjs-server-mode-plugin',
10
+ transform(code, id, options) {
11
+ if (options?.ssr &&
12
+ (id.endsWith('platform-server.mjs') || id.endsWith('core.mjs'))) {
13
+ return {
14
+ code: code.replaceAll('ngServerMode', 'true'),
15
+ };
16
+ }
17
+ return;
18
+ },
17
19
  },
18
- };
20
+ ];
19
21
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLW1vZGUtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL3NlcnZlci1tb2RlLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPO1FBQ0wsSUFBSSxFQUFFLDZCQUE2QjtRQUNuQyxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxPQUFPO1lBQ3pCLElBQ0UsT0FBTyxFQUFFLEdBQUc7Z0JBQ1osQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUMvRCxDQUFDO2dCQUNELE9BQU87b0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQztpQkFDOUMsQ0FBQztZQUNKLENBQUM7WUFFRCxPQUFPO1FBQ1QsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIn0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLW1vZGUtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL3NlcnZlci1tb2RlLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPO1FBQ0w7WUFDRSxJQUFJLEVBQUUsNkJBQTZCO1lBQ25DLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU87Z0JBQ3pCLElBQ0UsT0FBTyxFQUFFLEdBQUc7b0JBQ1osQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUMvRCxDQUFDO29CQUNELE9BQU87d0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQztxQkFDOUMsQ0FBQztnQkFDSixDQUFDO2dCQUVELE9BQU87WUFDVCxDQUFDO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,2 +0,0 @@
1
- import { Plugin } from 'vite';
2
- export declare function ssrXhrBuildPlugin(): Plugin;
@@ -1,28 +0,0 @@
1
- import { normalizePath } from 'vite';
2
- export function ssrXhrBuildPlugin() {
3
- return {
4
- name: 'analogjs-xhr2-build-plugin',
5
- apply: 'build',
6
- config() {
7
- return {
8
- ssr: {
9
- noExternal: ['xhr2'],
10
- },
11
- };
12
- },
13
- transform(code, id) {
14
- // Remove usage of process.node in xhr2.js file
15
- if (id.includes(normalizePath('xhr2.js'))) {
16
- return {
17
- code: code
18
- .replace('os.type()', `''`)
19
- .replace('os.arch()', `''`)
20
- .replace('process.versions.node', `'node'`)
21
- .replace('process.versions.v8', `'v8'`),
22
- };
23
- }
24
- return;
25
- },
26
- };
27
- }
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NyLXhoci1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL3Nzci9zc3IteGhyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFVLE1BQU0sTUFBTSxDQUFDO0FBRTdDLE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTztRQUNMLElBQUksRUFBRSw0QkFBNEI7UUFDbEMsS0FBSyxFQUFFLE9BQU87UUFDZCxNQUFNO1lBQ0osT0FBTztnQkFDTCxHQUFHLEVBQUU7b0JBQ0gsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDO2lCQUNyQjthQUNGLENBQUM7UUFDSixDQUFDO1FBQ0QsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2hCLCtDQUErQztZQUMvQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDMUMsT0FBTztvQkFDTCxJQUFJLEVBQUUsSUFBSTt5QkFDUCxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQzt5QkFDMUIsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUM7eUJBQzFCLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLENBQUM7eUJBQzFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxNQUFNLENBQUM7aUJBQzFDLENBQUM7WUFDSixDQUFDO1lBRUQsT0FBTztRQUNULENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQyJ9