@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 +4 -3
- package/src/lib/clear-client-page-endpoint.d.ts +1 -1
- package/src/lib/clear-client-page-endpoint.js +28 -26
- package/src/lib/content-plugin.d.ts +2 -2
- package/src/lib/content-plugin.js +98 -71
- package/src/lib/deps-plugin.js +4 -8
- package/src/lib/nx-plugin/src/generators/app/versions/nx_18_X/versions.d.ts +5 -5
- package/src/lib/nx-plugin/src/generators/app/versions/nx_18_X/versions.js +5 -5
- package/src/lib/nx-plugin/src/utils/versions/ng_19_X/versions.d.ts +5 -5
- package/src/lib/nx-plugin/src/utils/versions/ng_19_X/versions.js +5 -5
- package/src/lib/options.d.ts +4 -0
- package/src/lib/platform-plugin.js +13 -10
- package/src/lib/router-plugin.js +88 -66
- package/src/lib/ssr/ssr-build-plugin.d.ts +18 -2
- package/src/lib/ssr/ssr-build-plugin.js +85 -26
- package/src/lib/utils/rolldown.d.ts +3 -0
- package/src/lib/utils/rolldown.js +11 -0
- package/src/server-mode-plugin.d.ts +1 -1
- package/src/server-mode-plugin.js +14 -12
- package/src/lib/ssr/ssr-xhr-plugin.d.ts +0 -2
- package/src/lib/ssr/ssr-xhr-plugin.js +0 -28
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@analogjs/platform",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
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.
|
|
33
|
-
"@analogjs/vite-plugin-nitro": "^3.0.0-alpha.
|
|
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
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
warning.message.
|
|
13
|
-
|
|
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
|
-
|
|
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,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYXItY2xpZW50LXBhZ2UtZW5kcG9pbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NsZWFyLWNsaWVudC1wYWdlLWVuZHBvaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFN0MsTUFBTSxVQUFVLDhCQUE4QjtJQUM1QyxPQUFPO1FBQ0w7WUFDRSxJQUFJLEVBQUUsOENBQThDO1lBQ3BELEtBQUssRUFBRSxPQUFPO1lBQ2QsTUFBTTtnQkFDSixPQUFPO29CQUNMLEtBQUssRUFBRTt3QkFDTCxhQUFhLEVBQUU7NEJBQ2IsTUFBTSxDQUFDLE9BQU87Z0NBQ1osSUFDRSxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7b0NBQ3ZDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUNuQyxDQUFDO29DQUNELE9BQU87Z0NBQ1QsQ0FBQzs0QkFDSCxDQUFDO3lCQUNGO3FCQUNGO2lCQUNGLENBQUM7WUFDSixDQUFDO1lBQ0QsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsT0FBTztnQkFDMUIsSUFDRSxDQUFDLE9BQU8sRUFBRSxHQUFHO29CQUNiLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO29CQUMzQyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUN6QixDQUFDO29CQUNELE9BQU87d0JBQ0wsSUFBSSxFQUFFLDJCQUEyQjt3QkFDakMsR0FBRyxFQUFFLElBQUk7cUJBQ1YsQ0FBQztnQkFDSixDQUFDO2dCQUVELE9BQU87WUFDVCxDQUFDO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
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
|
|
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
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
return
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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,
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGF0Zm9ybS9zcmMvbGliL2NvbnRlbnQtcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdkMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBT3RDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBYzFEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQzNCLEVBQ0UsV0FBVyxFQUNYLGFBQWEsRUFDYixZQUFZLEVBQ1osWUFBWSxNQUNZLEVBQUUsRUFDNUIsT0FBaUI7SUFFakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQW1CLENBQUM7SUFFekMsSUFBSSxpQkFBMkMsQ0FBQztJQUNoRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUN0QyxPQUFPLEVBQUUsYUFBYSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FDeEMsQ0FBQztJQUNGLElBQUksTUFBdUIsQ0FBQztJQUM1QixJQUFJLElBQVksQ0FBQztJQUVqQixNQUFNLHVCQUF1QixHQUFrQjtRQUM3QztZQUNFLElBQUksRUFBRSw0QkFBNEI7WUFDbEMsTUFBTSxDQUFDLE9BQU87Z0JBQ1osTUFBTSxHQUFHLE9BQU8sQ0FBQztnQkFDakIsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQ3ZCLE9BQU8sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLElBQUksSUFBSSxHQUFHLENBQUMsSUFBSSxHQUFHLENBQ2xELENBQUM7WUFDSixDQUFDO1lBQ0Qsb0VBQW9FO1lBQ3BFLG9F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
|
package/src/lib/deps-plugin.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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,
|
|
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.
|
|
4
|
-
export declare const V18_X_ANALOG_JS_ROUTER = "^3.0.0-alpha.
|
|
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.
|
|
7
|
-
export declare const V18_X_ANALOG_JS_VITEST_ANGULAR = "^3.0.0-alpha.
|
|
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.
|
|
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.
|
|
9
|
-
exports.V18_X_ANALOG_JS_ROUTER = '^3.0.0-alpha.
|
|
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.
|
|
12
|
-
exports.V18_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.
|
|
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.
|
|
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.
|
|
2
|
-
export declare const V19_X_ANALOG_JS_CONTENT = "^3.0.0-alpha.
|
|
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.
|
|
9
|
-
export declare const V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = "^3.0.0-alpha.
|
|
10
|
-
export declare const V19_X_ANALOG_JS_VITEST_ANGULAR = "^3.0.0-alpha.
|
|
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
|
-
exports.V19_X_ANALOG_JS_CONTENT = '^3.0.0-alpha.
|
|
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.
|
|
14
|
-
exports.V19_X_ANALOG_JS_VITE_PLUGIN_ANGULAR = '^3.0.0-alpha.
|
|
15
|
-
exports.V19_X_ANALOG_JS_VITEST_ANGULAR = '^3.0.0-alpha.
|
|
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';
|
package/src/lib/options.d.ts
CHANGED
|
@@ -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
|
|
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
|
-
|
|
60
|
-
clearClientPageEndpointsPlugin(),
|
|
61
|
+
}))),
|
|
62
|
+
...serverModePlugin(),
|
|
63
|
+
...clearClientPageEndpointsPlugin(),
|
|
61
64
|
];
|
|
62
65
|
}
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL2xpYi9wbGF0Zm9ybS1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxlQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxPQUFPLE1BQU0sK0JBQStCLENBQUM7QUFHcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTVELDhGQUE4RjtBQUM5RixTQUFTLGVBQWUsQ0FBQyxPQUFnQjtJQUN2QyxPQUFPLE9BQW1CLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZ0IsRUFBRTtJQUMvQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxLQUFLLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3RSxNQUFNLEVBQUUsR0FBRyxlQUFlLEVBQUUsR0FBRztRQUM3QixHQUFHLEVBQUUsSUFBSTtRQUNULEdBQUcsSUFBSTtLQUNSLENBQUM7SUFDRixJQUFJLFlBQVksR0FBRyxlQUFlLEVBQUUsS0FBSyxDQUFDO0lBRTFDLElBQUksWUFBWSxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQzdCLFlBQVksR0FBRztZQUNiLEdBQUcsWUFBWTtZQUNmLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQ3JELENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNmLE9BQU87b0JBQ0wsR0FBRyxNQUFNO29CQUNULENBQUMsSUFBSSxDQUFDLEVBQUU7d0JBQ04sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNmLE9BQU8sRUFBRTs0QkFDUCxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPOzRCQUN2QixpQkFBaUIsRUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTO3lCQUM1QztxQkFDVDtpQkFDRixDQUFDO1lBQ0osQ0FBQyxFQUNELFlBQVksQ0FBQyxVQUFVLENBQ3hCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLGVBQXNCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDekUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxHQUFHO1lBQ3JCLENBQUMsQ0FBQyxDQUFDLEdBQUcsY0FBYyxFQUFFLEVBQUUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzlDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9DLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQztRQUNoQyxHQUFHLGFBQWEsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLGVBQWUsQ0FBQztRQUMzRCxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksS0FBSyxLQUFLO1lBQ3RCLENBQUMsQ0FBQyxFQUFFO1lBQ0osQ0FBQyxDQUFDLGVBQWUsQ0FDYixPQUFPLENBQUM7Z0JBQ04sR0FBRyxFQUFFLGVBQWUsQ0FBQyxHQUFHO2dCQUN4QixhQUFhLEVBQUUsZUFBZSxDQUFDLGFBQWE7Z0JBQzVDLG1CQUFtQixFQUFFLGVBQWUsQ0FBQyxtQkFBbUIsSUFBSSxLQUFLO2dCQUNqRSxPQUFPLEVBQUU7b0JBQ1AsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO29CQUNsQyxHQUFHLENBQUMsZUFBZSxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDaEQsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxlQUFlLENBQ3ZDO2lCQUNGO2dCQUNELHFCQUFxQixFQUFFLGVBQWUsQ0FBQyxxQkFBcUI7Z0JBQzVELFVBQVUsRUFBRSxlQUFlLENBQUMsVUFBVTtnQkFDdEMscUJBQXFCLEVBQUUsZUFBZSxDQUFDLHFCQUFxQjtnQkFDNUQsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLGdCQUFnQjtnQkFDbEQsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO2FBQ3RCLENBQUMsQ0FDSCxDQUFDO1FBQ04sR0FBRyxnQkFBZ0IsRUFBRTtRQUNyQixHQUFHLDhCQUE4QixFQUFFO0tBQ3BDLENBQUM7QUFDSixDQUFDIn0=
|
package/src/lib/router-plugin.js
CHANGED
|
@@ -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
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
: module
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
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,
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvcm91dGVyLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFxQyxNQUFNLE1BQU0sQ0FBQztBQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJcEM7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFpQjtJQUM1QyxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLGFBQWEsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM3RSxJQUFJLE1BQWtCLENBQUM7SUFDdkIsSUFBSSxJQUFZLENBQUM7SUFDakIsTUFBTSxlQUFlLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNCLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxNQUFxQixFQUFFLElBQVksRUFBRSxFQUFFO1FBQ3BFLE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQyx5RUFBeUU7UUFDekUsMEVBQTBFO1FBQzFFLHVEQUF1RDtRQUN2RCxNQUFNLFdBQVcsR0FDZixNQUFNLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLENBQUMsY0FBYyxDQUFDO1lBQ3JELE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTFELFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMzQixNQUFNLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXpDLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzVCLE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0MsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQztJQUVGLE9BQU87UUFDTDtZQUNFLElBQUksRUFBRSxtQ0FBbUM7WUFDekMsZUFBZSxDQUFDLE1BQU07Z0JBQ3BCOzs7OzttQkFLRztnQkFDSCxTQUFTLGdCQUFnQixDQUFDLElBQVk7b0JBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDM0IsT0FBTztvQkFDVCxDQUFDO29CQUVELHFCQUFxQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFFcEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTt3QkFDbkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFOzRCQUNuQixJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0NBQzdELE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0NBRXpDLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0NBQzVCLE1BQU0sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7Z0NBQzNDLENBQUMsQ0FBQyxDQUFDOzRCQUNMLENBQUM7d0JBQ0gsQ0FBQyxDQUFDLENBQUM7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7b0JBRUgsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUM7d0JBQ2IsSUFBSSxFQUFFLGFBQWE7cUJBQ3BCLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUMzQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztnQkFDOUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLENBQUM7WUFDaEQsQ0FBQztTQUNGO1FBQ0Q7WUFDRSxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLHlFQUF5RTtZQUN6RSxzRUFBc0U7WUFDdEUsMkVBQTJFO1lBQzNFLE9BQU8sRUFBRSxNQUFNO1lBQ2YsTUFBTSxDQUFDLE9BQU87Z0JBQ1osTUFBTSxHQUFHLE9BQU8sQ0FBQztnQkFDakIsSUFBSSxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7WUFDMUUsQ0FBQztZQUNEOzs7Ozs7ZUFNRztZQUNILG9FQUFvRTtZQUNwRSxrRUFBa0U7WUFDbEUsMEVBQTBFO1lBQzFFLDREQUE0RDtZQUM1RCxTQUFTLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxvQkFBb0I7aUJBQzNCO2dCQUNELE9BQU8sQ0FBQyxJQUFJO29CQUNWLElBQ0UsSUFBSSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQzt3QkFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxFQUMzQyxDQUFDO3dCQUNELHdDQUF3Qzt3QkFDeEMsZ0VBQWdFO3dCQUNoRSxNQUFNLFVBQVUsR0FBYSxRQUFRLENBQ25DOzRCQUNFLEdBQUcsSUFBSSxxQkFBcUI7NEJBQzVCLEdBQUcsSUFBSSx5QkFBeUI7NEJBQ2hDLEdBQUcsSUFBSSw2QkFBNkI7NEJBQ3BDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsbUJBQW1CLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUN6QyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxhQUFhLEdBQUcsSUFBSSxlQUFlLENBQ2pEO3lCQUNGLEVBQ0QsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FDOUIsQ0FBQzt3QkFFRiwwQ0FBMEM7d0JBQzFDLE1BQU0saUJBQWlCLEdBQWEsUUFBUSxDQUMxQzs0QkFDRSxHQUFHLElBQUkseUJBQXlCOzRCQUNoQyxHQUFHLElBQUksd0JBQXdCOzRCQUMvQixHQUFHLElBQUksc0JBQXNCOzRCQUM3QixHQUFHLENBQUMsT0FBTyxFQUFFLHFCQUFxQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDM0MsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsYUFBYSxHQUFHLElBQUksVUFBVSxDQUM1Qzt5QkFDRixFQUNELEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQzlCLENBQUM7d0JBRUYsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FDdkIsMEJBQTBCLEVBQzFCO3NDQUN3QixVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7NEJBQ2hELDRGQUE0Rjs0QkFDNUYsc0VBQXNFOzRCQUN0RSxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztnQ0FDakMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQ0FDMUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQzs0QkFDWCxPQUFPLElBQUksR0FBRyxvQkFBb0IsTUFBTSxJQUFJLENBQUM7d0JBQy9DLENBQUMsQ0FBQzthQUNILENBQ0EsQ0FBQzt3QkFFRixNQUFNLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FDckIsa0NBQWtDLEVBQ2xDOzRDQUM4QixpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTs0QkFDL0QseUNBQXlDOzRCQUN6QyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztnQ0FDakMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQ0FDMUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQzs0QkFDWCxPQUFPLElBQUksR0FBRyxvQkFBb0IsTUFBTSxrREFBa0QsQ0FBQzt3QkFDN0YsQ0FBQyxDQUFDO2FBQ0QsQ0FDQSxDQUFDO3dCQUVGLE9BQU87NEJBQ0wsSUFBSSxFQUFFLE1BQU07NEJBQ1osR0FBRyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTt5QkFDdEIsQ0FBQztvQkFDSixDQUFDO29CQUVELE9BQU87Z0JBQ1QsQ0FBQzthQUNGO1NBQ0Y7UUFDRDtZQUNFLElBQUksRUFBRSx1QkFBdUI7WUFDN0IseUVBQXlFO1lBQ3pFLHNFQUFzRTtZQUN0RSw4RUFBOEU7WUFDOUUsT0FBTyxFQUFFLE1BQU07WUFDZjs7Ozs7O2VBTUc7WUFDSCxTQUFTLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSx1QkFBdUI7aUJBQzlCO2dCQUNELE9BQU8sQ0FBQyxJQUFJO29CQUNWLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUM7d0JBQzNDLGtEQUFrRDt3QkFDbEQsTUFBTSxhQUFhLEdBQWEsUUFBUSxDQUN0Qzs0QkFDRSxHQUFHLElBQUksK0JBQStCOzRCQUN0QyxHQUFHLENBQUMsT0FBTyxFQUFFLG1CQUFtQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDekMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsYUFBYSxHQUFHLElBQUksaUJBQWlCLENBQ25EO3lCQUNGLEVBQ0QsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FDOUIsQ0FBQzt3QkFFRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUN6Qiw2QkFBNkIsRUFDN0I7eUNBQzJCLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTs0QkFDdEQsMENBQTBDOzRCQUMxQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztnQ0FDakMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztnQ0FDMUIsQ0FBQyxDQUFDLE1BQU0sQ0FBQzs0QkFDWCxPQUFPLElBQUksR0FBRyxvQkFBb0IsTUFBTSxJQUFJLENBQUM7d0JBQy9DLENBQUMsQ0FBQzthQUNILENBQ0EsQ0FBQzt3QkFFRixPQUFPOzRCQUNMLElBQUksRUFBRSxNQUFNOzRCQUNaLEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7eUJBQ3RCLENBQUM7b0JBQ0osQ0FBQztvQkFFRCxPQUFPO2dCQUNULENBQUM7YUFDRjtTQUNGO0tBQ0YsQ0FBQztBQUNKLENBQUMifQ==
|
|
@@ -1,2 +1,18 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
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 {
|
|
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
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
20
|
+
const plugins = [
|
|
21
|
+
{
|
|
22
|
+
name: 'analogjs-ssr-build-plugin',
|
|
23
|
+
apply: 'build',
|
|
24
|
+
config() {
|
|
8
25
|
return {
|
|
9
|
-
|
|
26
|
+
ssr: {
|
|
27
|
+
noExternal: ['xhr2'],
|
|
28
|
+
},
|
|
10
29
|
};
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
.
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NyLWJ1aWxkLXBsdWdpbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtL3NyYy9saWIvc3NyL3Nzci1idWlsZC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3Qjs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFDSCxNQUFNLFVBQVUsY0FBYztJQUM1QixNQUFNLE9BQU8sR0FBa0I7UUFDN0I7WUFDRSxJQUFJLEVBQUUsMkJBQTJCO1lBQ2pDLEtBQUssRUFBRSxPQUFPO1lBQ2QsTUFBTTtnQkFDSixPQUFPO29CQUNMLEdBQUcsRUFBRTt3QkFDSCxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7cUJBQ3JCO2lCQUNGLENBQUM7WUFDSixDQUFDO1lBQ0QsU0FBUyxFQUFFO2dCQUNULE1BQU0sRUFBRTtvQkFDTixFQUFFLEVBQUUsNERBQTREO2lCQUNqRTtnQkFDRCxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ2QsSUFDRSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQzt3QkFDeEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyw0QkFBNEIsQ0FBQyxFQUMzQyxDQUFDO3dCQUNELE9BQU87NEJBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsNEJBQTRCLEVBQUUsRUFBRSxDQUFDO3lCQUNyRCxDQUFDO29CQUNKLENBQUM7b0JBRUQsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQzt3QkFDbkMsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FDdkIseUJBQXlCLEVBQ3pCLG1EQUFtRCxDQUNwRCxDQUFDO3dCQUVGLHFEQUFxRDt3QkFDckQsMkRBQTJEO3dCQUMzRCw4REFBOEQ7d0JBQzlELDhEQUE4RDt3QkFDOUQseURBQXlEO3dCQUN6RCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDOzRCQUMxQixNQUFNLEdBQUcsTUFBTTtpQ0FDWixVQUFVLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQztpQ0FDcEMsVUFBVSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUM7aUNBQ3BDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7d0JBQzVDLENBQUM7d0JBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztvQkFDMUIsQ0FBQztvQkFFRCxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQy9DLE9BQU87NEJBQ0wsSUFBSSxFQUFFLElBQUk7aUNBQ1AsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUM7aUNBQzFCLE9BQU8sQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDO2lDQUMxQixPQUFPLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxDQUFDO2lDQUMxQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDO3lCQUMxQyxDQUFDO29CQUNKLENBQUM7b0JBRUQsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQzVELE9BQU87NEJBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQzt5QkFDdEMsQ0FBQztvQkFDSixDQUFDO29CQUVELE9BQU87Z0JBQ1QsQ0FBQzthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBRUYsdUVBQXVFO0lBQ3ZFLDJFQUEyRTtJQUMzRSxFQUFFO0lBQ0YsMEVBQTBFO0lBQzFFLDRFQUE0RTtJQUM1RSxnRkFBZ0Y7SUFDaEYsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0MsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUNyQixPQUFPLENBQUMsa0JBQWtCLENBQXNDLENBQUM7UUFDbkUsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUNsQixPQUFPLENBQUMsaUJBQWlCLENBQXFDLENBQUM7UUFFakUsT0FBTyxDQUFDLElBQUksQ0FDVixVQUFVLENBQ1IsYUFBYSxDQUNYLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUN4QixFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQ2hELEVBQ0QsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxDQUNmLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyJ9
|
|
@@ -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,17 +4,19 @@
|
|
|
4
4
|
* with the new Environment API.
|
|
5
5
|
*/
|
|
6
6
|
export function serverModePlugin() {
|
|
7
|
-
return
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLW1vZGUtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhdGZvcm0vc3JjL3NlcnZlci1tb2RlLXBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQjtJQUM5QixPQUFPO1FBQ0w7WUFDRSxJQUFJLEVBQUUsNkJBQTZCO1lBQ25DLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU87Z0JBQ3pCLElBQ0UsT0FBTyxFQUFFLEdBQUc7b0JBQ1osQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUMvRCxDQUFDO29CQUNELE9BQU87d0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQztxQkFDOUMsQ0FBQztnQkFDSixDQUFDO2dCQUVELE9BQU87WUFDVCxDQUFDO1NBQ0Y7S0FDRixDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -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
|