@analogjs/vite-plugin-angular 2.5.0-beta.4 → 2.5.0-beta.40

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/vite-plugin-angular",
3
- "version": "2.5.0-beta.4",
3
+ "version": "2.5.0-beta.40",
4
4
  "description": "Vite Plugin for Angular",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -36,7 +36,7 @@
36
36
  }
37
37
  },
38
38
  "dependencies": {
39
- "@analogjs/angular-compiler": "^2.5.0-beta.4",
39
+ "@analogjs/angular-compiler": "^2.5.0-beta.40",
40
40
  "tinyglobby": "^0.2.14",
41
41
  "ts-morph": "^21.0.0"
42
42
  },
@@ -0,0 +1,14 @@
1
+ import { Plugin } from 'vite';
2
+ export interface AnalogCompilerPluginOptions {
3
+ tsconfigGetter: () => string;
4
+ workspaceRoot: string;
5
+ inlineStylesExtension: string;
6
+ jit: boolean;
7
+ liveReload: boolean;
8
+ supportedBrowsers: string[];
9
+ transformFilter?: (code: string, id: string) => boolean;
10
+ isTest: boolean;
11
+ isAstroIntegration: boolean;
12
+ analogCompilationMode?: 'full' | 'partial';
13
+ }
14
+ export declare function analogCompilerPlugin(pluginOptions: AnalogCompilerPluginOptions): Plugin;
@@ -0,0 +1,386 @@
1
+ import { promises as fsPromises } from 'node:fs';
2
+ import { dirname, resolve } from 'node:path';
3
+ import * as vite from 'vite';
4
+ import * as compilerCli from '@angular/compiler-cli';
5
+ import { defaultClientConditions, normalizePath, preprocessCSS, } from 'vite';
6
+ import { compile, scanFile, scanPackageDts, collectImportedPackages, collectRelativeReExports, jitTransform, inlineResourceUrls, extractInlineStyles, generateHmrCode, debugCompile, debugRegistry, } from '@analogjs/angular-compiler';
7
+ import { TS_EXT_REGEX, getTsConfigPath, createDepOptimizerConfig, } from './utils/plugin-config.js';
8
+ import { VIRTUAL_RAW_PREFIX, VIRTUAL_STYLE_PREFIX, toVirtualRawId, toVirtualStyleId, } from './utils/virtual-ids.js';
9
+ import { loadVirtualRawModule, loadVirtualStyleModule, rewriteHtmlRawImport, rewriteInlineStyleImport, } from './utils/virtual-resources.js';
10
+ export function analogCompilerPlugin(pluginOptions) {
11
+ let resolvedConfig;
12
+ let tsConfigResolutionContext = null;
13
+ let watchMode = false;
14
+ // Analog compiler state
15
+ const analogRegistry = new Map();
16
+ const analogResourceToSource = new Map();
17
+ const scannedDtsPackages = new Set();
18
+ let analogProjectRoot = '';
19
+ let useDefineForClassFields = true;
20
+ /**
21
+ * Scan a file into the registry, then recursively walk its relative
22
+ * `export *` / `export { … } from './x'` chain so any underlying
23
+ * directive classes also land in the registry. Used both at
24
+ * `buildStart` (for tsconfig path entries) and at dev time (file
25
+ * `add` and `handleHotUpdate`) so newly added barrels stay in sync
26
+ * without requiring a server restart.
27
+ *
28
+ * The `visited` set prevents infinite recursion within a single
29
+ * top-level call. Each fresh scan should pass an empty set (so HMR
30
+ * re-scans aren't blocked by buildStart's earlier visits).
31
+ */
32
+ async function scanBarrelExports(file, visited = new Set(), overwrite = false) {
33
+ if (visited.has(file))
34
+ return;
35
+ visited.add(file);
36
+ let code;
37
+ try {
38
+ code = await fsPromises.readFile(file, 'utf-8');
39
+ }
40
+ catch (e) {
41
+ if (debugRegistry.enabled) {
42
+ debugRegistry('scanBarrelExports: failed to read %s: %s', file, e?.message);
43
+ }
44
+ return;
45
+ }
46
+ const entries = scanFile(code, file);
47
+ for (const entry of entries) {
48
+ // At buildStart we want stable registry entries (don't overwrite
49
+ // an earlier scan with a barrel re-scan); HMR explicitly asks
50
+ // for overwrite so updated metadata replaces stale entries.
51
+ if (overwrite || !analogRegistry.has(entry.className)) {
52
+ analogRegistry.set(entry.className, entry);
53
+ }
54
+ }
55
+ // Collect every relative re-export specifier via OXC AST so
56
+ // recursive scans can't trip over each other (a shared `/g` regex
57
+ // would have its `lastIndex` reset by each recursive call and
58
+ // silently skip half of an outer barrel's re-exports, which
59
+ // previously left directives like `HlmRadioGroup` unregistered).
60
+ const dir = dirname(file);
61
+ for (const rel of collectRelativeReExports(code, file)) {
62
+ // NodeNext-style libraries write `export * from './foo.js'`
63
+ // even though the source is `./foo.ts`. Strip the ESM
64
+ // extension before probing or the candidates would be
65
+ // `foo.js.ts` / `foo.js/index.ts`, which never exist.
66
+ const normalizedRel = rel.replace(/\.(?:js|mjs)$/u, '');
67
+ const reExportCandidates = [
68
+ resolve(dir, normalizedRel + '.ts'),
69
+ resolve(dir, normalizedRel, 'index.ts'),
70
+ ];
71
+ let resolved = false;
72
+ for (const candidate of reExportCandidates) {
73
+ try {
74
+ await fsPromises.access(candidate);
75
+ await scanBarrelExports(candidate, visited, overwrite);
76
+ resolved = true;
77
+ break;
78
+ }
79
+ catch {
80
+ // try next candidate
81
+ }
82
+ }
83
+ if (!resolved && debugRegistry.enabled) {
84
+ debugRegistry('scanBarrelExports: %s re-export %s did not resolve to %o', file, rel, reExportCandidates);
85
+ }
86
+ }
87
+ }
88
+ async function initAnalogCompiler() {
89
+ if (pluginOptions.jit)
90
+ return; // JIT: no registry scan needed
91
+ // Scan all source files to build the registry
92
+ analogRegistry.clear();
93
+ scannedDtsPackages.clear();
94
+ const resolvedTsConfigPath = resolveTsConfigPath();
95
+ analogProjectRoot = dirname(resolvedTsConfigPath);
96
+ const config = compilerCli.readConfiguration(resolvedTsConfigPath);
97
+ useDefineForClassFields = config.options?.useDefineForClassFields ?? true;
98
+ // Collect candidate files: tsconfig rootNames PLUS the entry points
99
+ // named in `compilerOptions.paths`. App tsconfigs typically only
100
+ // include the app's own sources, so workspace library entry barrels
101
+ // (e.g. `HlmSelectImports = [HlmSelect, HlmSelectContent, ...] as
102
+ // const`) live outside `rootNames` and would otherwise miss the
103
+ // initial scan. The compiler then can't see that `HlmSelectImports`
104
+ // is a tuple barrel and emits the bare identifier into the parent
105
+ // component's `dependencies()` list, where Angular's runtime
106
+ // silently drops it because arrays don't have a directive def.
107
+ const candidates = new Set(config.rootNames);
108
+ const tsPaths = config.options?.paths;
109
+ const baseUrl = (config.options?.baseUrl ?? analogProjectRoot);
110
+ if (tsPaths) {
111
+ for (const targets of Object.values(tsPaths)) {
112
+ for (const target of targets) {
113
+ // Skip wildcard patterns — entry barrels are normally exact
114
+ // file paths like "libs/helm/select/src/index.ts".
115
+ if (target.includes('*'))
116
+ continue;
117
+ candidates.add(resolve(baseUrl, target));
118
+ }
119
+ }
120
+ }
121
+ const results = await Promise.all(Array.from(candidates).map(async (file) => {
122
+ try {
123
+ const code = await fsPromises.readFile(file, 'utf-8');
124
+ return scanFile(code, file);
125
+ }
126
+ catch (e) {
127
+ if (debugRegistry.enabled) {
128
+ debugRegistry('initAnalogCompiler: skipping unreadable %s: %s', file, e?.message);
129
+ }
130
+ return []; // Skip unreadable files
131
+ }
132
+ }));
133
+ for (const entries of results) {
134
+ for (const entry of entries) {
135
+ analogRegistry.set(entry.className, entry);
136
+ }
137
+ }
138
+ // Library barrels typically `export * from './lib/...'` rather than
139
+ // declaring directives directly, so the entry file alone gives us
140
+ // the tuple consts but not the directive classes they reference.
141
+ // Walk the relative `export *` chain so the underlying classes also
142
+ // land in the registry. Use a SHARED visited set across all
143
+ // barrels so recursive walks don't double-scan a file that's
144
+ // re-exported from multiple entry points.
145
+ const buildStartVisited = new Set();
146
+ if (tsPaths) {
147
+ const barrelCandidates = [];
148
+ for (const targets of Object.values(tsPaths)) {
149
+ for (const target of targets) {
150
+ if (target.includes('*'))
151
+ continue;
152
+ barrelCandidates.push(resolve(baseUrl, target));
153
+ }
154
+ }
155
+ await Promise.all(barrelCandidates.map((c) => scanBarrelExports(c, buildStartVisited)));
156
+ }
157
+ debugRegistry('initAnalogCompiler done: %d entries from %d candidate files', analogRegistry.size, candidates.size);
158
+ }
159
+ function ensureDtsRegistryForSource(code, id) {
160
+ for (const pkg of collectImportedPackages(code, id)) {
161
+ if (scannedDtsPackages.has(pkg))
162
+ continue;
163
+ scannedDtsPackages.add(pkg);
164
+ try {
165
+ const dtsEntries = scanPackageDts(pkg, analogProjectRoot);
166
+ for (const entry of dtsEntries) {
167
+ if (!analogRegistry.has(entry.className)) {
168
+ analogRegistry.set(entry.className, entry);
169
+ }
170
+ }
171
+ }
172
+ catch {
173
+ // Package may not have .d.ts files or may not be Angular
174
+ }
175
+ }
176
+ }
177
+ async function handleAnalogCompilerTransform(code, id) {
178
+ if (!/(Component|Directive|Pipe|Injectable|NgModule)\(/.test(code)) {
179
+ // Non-Angular file — leave it alone so a downstream plugin (or
180
+ // Vite's built-in TS handler) can process it.
181
+ return undefined;
182
+ }
183
+ // JIT mode
184
+ if (pluginOptions.jit) {
185
+ const result = jitTransform(code, id);
186
+ return { code: result.code, map: result.map };
187
+ }
188
+ // Inline external templateUrl/styleUrl(s) into the source before compilation
189
+ code = inlineResourceUrls(code, id);
190
+ // Pre-resolve inline styles that need preprocessing (SCSS/Sass/Less)
191
+ let resolvedStyles;
192
+ let resolvedInlineStyles;
193
+ if (pluginOptions.inlineStylesExtension !== 'css') {
194
+ const styleStrings = extractInlineStyles(code, id);
195
+ if (styleStrings.length > 0) {
196
+ resolvedInlineStyles = new Map();
197
+ for (let i = 0; i < styleStrings.length; i++) {
198
+ try {
199
+ const fakePath = id.replace(/\.ts$/, `.inline-${i}.${pluginOptions.inlineStylesExtension}`);
200
+ const processed = await preprocessCSS(styleStrings[i], fakePath, resolvedConfig);
201
+ resolvedInlineStyles.set(i, processed.code);
202
+ }
203
+ catch (e) {
204
+ if (debugCompile.enabled) {
205
+ debugCompile('inline style #%d preprocessing failed in %s: %s', i, id, e?.message);
206
+ }
207
+ // Skip styles that can't be preprocessed
208
+ }
209
+ }
210
+ if (resolvedInlineStyles.size === 0)
211
+ resolvedInlineStyles = undefined;
212
+ }
213
+ }
214
+ ensureDtsRegistryForSource(code, id);
215
+ const result = compile(code, id, {
216
+ registry: analogRegistry,
217
+ resolvedStyles,
218
+ resolvedInlineStyles,
219
+ useDefineForClassFields,
220
+ compilationMode: pluginOptions.analogCompilationMode,
221
+ });
222
+ // Track resource dependencies for HMR
223
+ for (const dep of result.resourceDependencies) {
224
+ analogResourceToSource.set(dep, id);
225
+ }
226
+ // Strip TypeScript-only syntax
227
+ const stripped = vite.transformWithOxc
228
+ ? await vite.transformWithOxc(result.code, id, {
229
+ lang: 'ts',
230
+ sourcemap: false,
231
+ decorator: { legacy: false, emitDecoratorMetadata: false },
232
+ })
233
+ : await vite.transformWithEsbuild(result.code, id, {
234
+ loader: 'ts',
235
+ sourcemap: false,
236
+ });
237
+ let outputCode = stripped.code;
238
+ // Append HMR code in dev mode
239
+ if (watchMode && pluginOptions.liveReload) {
240
+ const fileDeclarations = [...analogRegistry.values()].filter((e) => e.fileName === id);
241
+ if (fileDeclarations.length > 0) {
242
+ const localDepClassNames = fileDeclarations.map((e) => e.className);
243
+ outputCode += generateHmrCode(fileDeclarations, localDepClassNames);
244
+ }
245
+ }
246
+ return { code: outputCode, map: result.map };
247
+ }
248
+ function resolveTsConfigPath() {
249
+ const { root, isProd, isLib } = tsConfigResolutionContext;
250
+ return getTsConfigPath(root, pluginOptions.tsconfigGetter(), isProd, pluginOptions.isTest, isLib);
251
+ }
252
+ return {
253
+ name: '@analogjs/vite-plugin-angular-compiler',
254
+ enforce: 'pre',
255
+ async config(config, { command }) {
256
+ watchMode = command === 'serve';
257
+ const isProd = config.mode === 'production' ||
258
+ process.env['NODE_ENV'] === 'production';
259
+ tsConfigResolutionContext = {
260
+ root: config.root || '.',
261
+ isProd,
262
+ isLib: !!config?.build?.lib,
263
+ };
264
+ const preliminaryTsConfigPath = resolveTsConfigPath();
265
+ const depOptimizer = createDepOptimizerConfig({
266
+ tsconfig: preliminaryTsConfigPath,
267
+ isProd,
268
+ jit: pluginOptions.jit,
269
+ watchMode,
270
+ isTest: pluginOptions.isTest,
271
+ isAstroIntegration: pluginOptions.isAstroIntegration,
272
+ });
273
+ return {
274
+ ...(vite.rolldownVersion ? { oxc: {} } : { esbuild: false }),
275
+ ...depOptimizer,
276
+ resolve: {
277
+ conditions: [
278
+ ...depOptimizer.resolve.conditions,
279
+ ...(config.resolve?.conditions || defaultClientConditions),
280
+ ],
281
+ },
282
+ };
283
+ },
284
+ configResolved(config) {
285
+ resolvedConfig = config;
286
+ },
287
+ configureServer(server) {
288
+ // Watch for new .ts files and scan them into the registry. Use
289
+ // the barrel-aware scanner so a newly added re-export entry
290
+ // (`export * from './x'`) also expands its underlying directive
291
+ // classes — otherwise the registry stays stale until restart.
292
+ server.watcher.on('add', async (filePath) => {
293
+ if (filePath.endsWith('.ts') &&
294
+ !filePath.endsWith('.spec.ts') &&
295
+ !filePath.endsWith('.d.ts')) {
296
+ await scanBarrelExports(filePath, new Set(), true);
297
+ }
298
+ });
299
+ },
300
+ async buildStart() {
301
+ await initAnalogCompiler();
302
+ },
303
+ async handleHotUpdate(ctx) {
304
+ // Resource file changes → invalidate parent .ts module
305
+ if (analogResourceToSource.has(ctx.file)) {
306
+ const parentSource = analogResourceToSource.get(ctx.file);
307
+ const parentModule = ctx.server.moduleGraph.getModuleById(parentSource);
308
+ if (parentModule) {
309
+ return [parentModule];
310
+ }
311
+ }
312
+ if (TS_EXT_REGEX.test(ctx.file)) {
313
+ const [fileId] = ctx.file.split('?');
314
+ // Remove old entries from this file
315
+ const oldEntries = [...analogRegistry.entries()]
316
+ .filter(([_, v]) => v.fileName === fileId)
317
+ .map(([k]) => k);
318
+ for (const key of oldEntries) {
319
+ analogRegistry.delete(key);
320
+ }
321
+ // Rescan the changed file via the barrel-aware scanner so an
322
+ // edited barrel re-export picks up newly-referenced files.
323
+ // Pass overwrite=true so updated metadata replaces stale
324
+ // entries from the previous scan.
325
+ await scanBarrelExports(fileId, new Set(), true);
326
+ }
327
+ // Let Vite handle the rest — the transform hook will recompile
328
+ return ctx.modules;
329
+ },
330
+ resolveId(id, importer) {
331
+ if (id.startsWith(VIRTUAL_STYLE_PREFIX) ||
332
+ id.startsWith(VIRTUAL_RAW_PREFIX)) {
333
+ return `\0${id}`;
334
+ }
335
+ if (pluginOptions.jit && id.startsWith('angular:jit:')) {
336
+ const filePath = normalizePath(resolve(dirname(importer), id.split(';')[1]));
337
+ return id.includes(':style')
338
+ ? toVirtualStyleId(filePath)
339
+ : toVirtualRawId(filePath);
340
+ }
341
+ const rawRewrite = rewriteHtmlRawImport(id, importer);
342
+ if (rawRewrite)
343
+ return rawRewrite;
344
+ const inlineRewrite = rewriteInlineStyleImport(id, importer);
345
+ if (inlineRewrite)
346
+ return inlineRewrite;
347
+ return undefined;
348
+ },
349
+ async load(id) {
350
+ const styleModule = await loadVirtualStyleModule(this, id, resolvedConfig);
351
+ if (styleModule !== undefined)
352
+ return styleModule;
353
+ const rawModule = await loadVirtualRawModule(this, id);
354
+ if (rawModule !== undefined)
355
+ return rawModule;
356
+ // Vitest bypass: module-runner skips resolveId, so the bare `?inline`
357
+ // query reaches load unchanged.
358
+ if (/\.(css|scss|sass|less)\?inline$/.test(id)) {
359
+ const filePath = id.split('?')[0];
360
+ const code = await fsPromises.readFile(filePath, 'utf-8');
361
+ const result = await preprocessCSS(code, filePath, resolvedConfig);
362
+ return `export default ${JSON.stringify(result.code)}`;
363
+ }
364
+ return;
365
+ },
366
+ transform: {
367
+ filter: {
368
+ id: {
369
+ include: [TS_EXT_REGEX],
370
+ exclude: [/node_modules/, 'type=script', '@ng/component'],
371
+ },
372
+ },
373
+ async handler(code, id) {
374
+ if (pluginOptions.transformFilter &&
375
+ !(pluginOptions.transformFilter(code, id) ?? true)) {
376
+ return;
377
+ }
378
+ if (id.includes('.ts?')) {
379
+ id = id.replace(/\?(.*)/, '');
380
+ }
381
+ return handleAnalogCompilerTransform(code, id);
382
+ },
383
+ },
384
+ };
385
+ }
386
+ //# sourceMappingURL=analog-compiler-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analog-compiler-plugin.js","sourceRoot":"","sources":["../../../../../packages/vite-plugin-angular/src/lib/analog-compiler-plugin.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,12 @@ export interface PluginOptions {
33
33
  experimental?: {
34
34
  useAngularCompilationAPI?: boolean;
35
35
  useAnalogCompiler?: boolean;
36
+ /**
37
+ * Compilation output mode for the Analog compiler.
38
+ * - `'full'` (default): Emit final Ivy definitions for application builds.
39
+ * - `'partial'`: Emit partial declarations for library publishing.
40
+ */
41
+ analogCompilationMode?: 'full' | 'partial';
36
42
  };
37
43
  }
38
44
  export declare function angular(options?: PluginOptions): Plugin[];