@angular/compiler-cli 17.3.0 → 18.0.0-next.0

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.
Files changed (30) hide show
  1. package/bundles/{chunk-OXIOYWLB.js → chunk-4A7ZWBEL.js} +2 -2
  2. package/bundles/{chunk-GQ63H5AL.js → chunk-64VF23SF.js} +2 -2
  3. package/bundles/{chunk-3ESFLGKJ.js → chunk-A46CQFUG.js} +75 -72
  4. package/bundles/chunk-A46CQFUG.js.map +6 -0
  5. package/bundles/{chunk-E5DF5SRS.js → chunk-NB6ZWAGP.js} +10 -26
  6. package/bundles/chunk-NB6ZWAGP.js.map +6 -0
  7. package/bundles/{chunk-X6GFRI46.js → chunk-SQY7XLGB.js} +15 -16
  8. package/bundles/chunk-SQY7XLGB.js.map +6 -0
  9. package/bundles/index.js +4 -4
  10. package/bundles/linker/babel/index.js +1 -1
  11. package/bundles/linker/index.js +1 -1
  12. package/bundles/private/migrations.js +1 -1
  13. package/bundles/private/tooling.js +2 -2
  14. package/bundles/src/bin/ng_xi18n.js +3 -3
  15. package/bundles/src/bin/ngc.js +3 -3
  16. package/bundles_metadata.json +1 -1
  17. package/index.d.ts +1 -1
  18. package/linker/src/file_linker/partial_linkers/partial_component_linker_1.d.ts +1 -2
  19. package/linker/src/file_linker/partial_linkers/util.d.ts +1 -2
  20. package/package.json +2 -2
  21. package/src/ngtsc/annotations/component/src/handler.d.ts +2 -4
  22. package/src/ngtsc/annotations/component/src/metadata.d.ts +36 -7
  23. package/src/ngtsc/annotations/directive/src/handler.d.ts +1 -2
  24. package/src/ngtsc/annotations/directive/src/shared.d.ts +1 -1
  25. package/src/ngtsc/core/api/src/public_options.d.ts +0 -4
  26. package/bundles/chunk-3ESFLGKJ.js.map +0 -6
  27. package/bundles/chunk-E5DF5SRS.js.map +0 -6
  28. package/bundles/chunk-X6GFRI46.js.map +0 -6
  29. /package/bundles/{chunk-OXIOYWLB.js.map → chunk-4A7ZWBEL.js.map} +0 -0
  30. /package/bundles/{chunk-GQ63H5AL.js.map → chunk-64VF23SF.js.map} +0 -0
package/index.d.ts CHANGED
@@ -11,6 +11,6 @@ export { NgTscPlugin, PluginCompilerHost } from './src/ngtsc/tsc_plugin';
11
11
  export { NgtscProgram } from './src/ngtsc/program';
12
12
  export { OptimizeFor } from './src/ngtsc/typecheck/api';
13
13
  export { ConsoleLogger, Logger, LogLevel } from './src/ngtsc/logging';
14
- export { NodeJSFileSystem } from './src/ngtsc/file_system';
14
+ export { NodeJSFileSystem, absoluteFrom } from './src/ngtsc/file_system';
15
15
  export * from './src/ngtsc/docs/src/entities';
16
16
  export { isLocalCompilationDiagnostics } from './src/ngtsc/diagnostics';
@@ -29,6 +29,5 @@ export declare class PartialComponentLinkerVersion1<TStatement, TExpression> imp
29
29
  private getTemplateInfo;
30
30
  private tryExternalTemplate;
31
31
  private templateFromPartialCode;
32
- private createR3DeferredMetadata;
33
- private resolveDeferTriggers;
32
+ private createR3ComponentDeferMetadata;
34
33
  }
@@ -7,8 +7,7 @@
7
7
  */
8
8
  import { MaybeForwardRefExpression, outputAst as o, R3DeclareDependencyMetadata, R3DependencyMetadata, R3Reference } from '@angular/compiler';
9
9
  import { AstObject, AstValue } from '../../ast/ast_value';
10
- export declare const PLACEHOLDER_VERSION = "17.3.0";
11
- export declare const SHOULD_USE_TEMPLATE_PIPELINE_FOR_LINKER = true;
10
+ export declare const PLACEHOLDER_VERSION = "18.0.0-next.0";
12
11
  export declare function wrapReference<TExpression>(wrapped: o.WrappedNodeExpr<TExpression>): R3Reference;
13
12
  /**
14
13
  * Parses the value of an enum from the AST value's symbol name.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/compiler-cli",
3
- "version": "17.3.0",
3
+ "version": "18.0.0-next.0",
4
4
  "description": "Angular - the compiler CLI for Node.js",
5
5
  "typings": "index.d.ts",
6
6
  "bin": {
@@ -53,7 +53,7 @@
53
53
  "yargs": "^17.2.1"
54
54
  },
55
55
  "peerDependencies": {
56
- "@angular/compiler": "17.3.0",
56
+ "@angular/compiler": "18.0.0-next.0",
57
57
  "typescript": ">=5.2 <5.5"
58
58
  },
59
59
  "repository": {
@@ -64,9 +64,8 @@ export declare class ComponentDecoratorHandler implements DecoratorHandler<Decor
64
64
  private readonly deferredSymbolTracker;
65
65
  private readonly forbidOrphanRendering;
66
66
  private readonly enableBlockSyntax;
67
- private readonly useTemplatePipeline;
68
67
  private readonly localCompilationExtraImportsTracker;
69
- constructor(reflector: ReflectionHost, evaluator: PartialEvaluator, metaRegistry: MetadataRegistry, metaReader: MetadataReader, scopeReader: ComponentScopeReader, dtsScopeReader: DtsModuleScopeResolver, scopeRegistry: LocalModuleScopeRegistry, typeCheckScopeRegistry: TypeCheckScopeRegistry, resourceRegistry: ResourceRegistry, isCore: boolean, strictCtorDeps: boolean, resourceLoader: ResourceLoader, rootDirs: ReadonlyArray<string>, defaultPreserveWhitespaces: boolean, i18nUseExternalIds: boolean, enableI18nLegacyMessageIdFormat: boolean, usePoisonedData: boolean, i18nNormalizeLineEndingsInICUs: boolean, moduleResolver: ModuleResolver, cycleAnalyzer: CycleAnalyzer, cycleHandlingStrategy: CycleHandlingStrategy, refEmitter: ReferenceEmitter, referencesRegistry: ReferencesRegistry, depTracker: DependencyTracker | null, injectableRegistry: InjectableClassRegistry, semanticDepGraphUpdater: SemanticDepGraphUpdater | null, annotateForClosureCompiler: boolean, perf: PerfRecorder, hostDirectivesResolver: HostDirectivesResolver, importTracker: ImportedSymbolsTracker, includeClassMetadata: boolean, compilationMode: CompilationMode, deferredSymbolTracker: DeferredSymbolTracker, forbidOrphanRendering: boolean, enableBlockSyntax: boolean, useTemplatePipeline: boolean, localCompilationExtraImportsTracker: LocalCompilationExtraImportsTracker | null);
68
+ constructor(reflector: ReflectionHost, evaluator: PartialEvaluator, metaRegistry: MetadataRegistry, metaReader: MetadataReader, scopeReader: ComponentScopeReader, dtsScopeReader: DtsModuleScopeResolver, scopeRegistry: LocalModuleScopeRegistry, typeCheckScopeRegistry: TypeCheckScopeRegistry, resourceRegistry: ResourceRegistry, isCore: boolean, strictCtorDeps: boolean, resourceLoader: ResourceLoader, rootDirs: ReadonlyArray<string>, defaultPreserveWhitespaces: boolean, i18nUseExternalIds: boolean, enableI18nLegacyMessageIdFormat: boolean, usePoisonedData: boolean, i18nNormalizeLineEndingsInICUs: boolean, moduleResolver: ModuleResolver, cycleAnalyzer: CycleAnalyzer, cycleHandlingStrategy: CycleHandlingStrategy, refEmitter: ReferenceEmitter, referencesRegistry: ReferencesRegistry, depTracker: DependencyTracker | null, injectableRegistry: InjectableClassRegistry, semanticDepGraphUpdater: SemanticDepGraphUpdater | null, annotateForClosureCompiler: boolean, perf: PerfRecorder, hostDirectivesResolver: HostDirectivesResolver, importTracker: ImportedSymbolsTracker, includeClassMetadata: boolean, compilationMode: CompilationMode, deferredSymbolTracker: DeferredSymbolTracker, forbidOrphanRendering: boolean, enableBlockSyntax: boolean, localCompilationExtraImportsTracker: LocalCompilationExtraImportsTracker | null);
70
69
  private literalCache;
71
70
  private elementSchemaRegistry;
72
71
  /**
@@ -127,6 +126,5 @@ export declare class ComponentDecoratorHandler implements DecoratorHandler<Decor
127
126
  * candidates.
128
127
  */
129
128
  private registerDeferrableCandidates;
130
- /** Resolves the triggers of the defer block to the elements that they're pointing to. */
131
- private resolveDeferTriggers;
129
+ private compileDeferBlocks;
132
130
  }
@@ -5,7 +5,7 @@
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
6
  * found in the LICENSE file at https://angular.io/license
7
7
  */
8
- import { AnimationTriggerNames, R3ClassDebugInfo, R3ClassMetadata, R3ComponentMetadata, R3TemplateDependencyMetadata, SchemaMetadata } from '@angular/compiler';
8
+ import { AnimationTriggerNames, DeclarationListEmitMode, DeferBlockDepsEmitMode, R3ClassDebugInfo, R3ClassMetadata, R3ComponentMetadata, R3DeferPerBlockDependency, R3DeferPerComponentDependency, R3TemplateDependencyMetadata, SchemaMetadata, TmplAstDeferredBlock } from '@angular/compiler';
9
9
  import ts from 'typescript';
10
10
  import { Reference } from '../../../imports';
11
11
  import { ClassPropertyMapping, ComponentResources, DirectiveTypeCheckMeta, HostDirectiveMeta, InputMapping } from '../../../metadata';
@@ -18,7 +18,7 @@ import { ParsedTemplateWithSource, StyleUrlMeta } from './resources';
18
18
  * The `keyof R3ComponentMetadata &` condition ensures that only fields of `R3ComponentMetadata` can
19
19
  * be included here.
20
20
  */
21
- export type ComponentMetadataResolvedFields = SubsetOfKeys<R3ComponentMetadata<R3TemplateDependencyMetadata>, 'declarations' | 'declarationListEmitMode' | 'deferBlocks' | 'deferrableDeclToImportDecl' | 'deferrableTypes' | 'deferBlockDepsEmitMode'>;
21
+ export type ComponentMetadataResolvedFields = SubsetOfKeys<R3ComponentMetadata<R3TemplateDependencyMetadata>, 'declarations' | 'declarationListEmitMode' | 'defer'>;
22
22
  export interface ComponentAnalysisData {
23
23
  /**
24
24
  * `meta` includes those fields of `R3ComponentMetadata` which are calculated at `analyze` time
@@ -60,10 +60,7 @@ export interface ComponentAnalysisData {
60
60
  /**
61
61
  * Map of symbol name -> import path for types from `@Component.deferredImports` field.
62
62
  */
63
- explicitlyDeferredTypes: Map<string, {
64
- importPath: string;
65
- isDefaultImport: boolean;
66
- }> | null;
63
+ explicitlyDeferredTypes: R3DeferPerComponentDependency[] | null;
67
64
  schemas: SchemaMetadata[] | null;
68
65
  decorator: ts.Decorator | null;
69
66
  /** Additional directives applied to the component host. */
@@ -71,4 +68,36 @@ export interface ComponentAnalysisData {
71
68
  /** Raw expression that defined the host directives array. Used for diagnostics. */
72
69
  rawHostDirectives: ts.Expression | null;
73
70
  }
74
- export type ComponentResolutionData = Pick<R3ComponentMetadata<R3TemplateDependencyMetadata>, ComponentMetadataResolvedFields>;
71
+ export interface ComponentResolutionData {
72
+ declarations: R3TemplateDependencyMetadata[];
73
+ declarationListEmitMode: DeclarationListEmitMode;
74
+ /**
75
+ * Map of all types that can be defer loaded (ts.ClassDeclaration) ->
76
+ * corresponding import declaration (ts.ImportDeclaration) within
77
+ * the current source file.
78
+ */
79
+ deferrableDeclToImportDecl: Map<ClassDeclaration, ts.ImportDeclaration>;
80
+ /**
81
+ * Map of `@defer` blocks -> their corresponding dependencies.
82
+ * Required to compile the defer resolver function in `PerBlock` mode.
83
+ */
84
+ deferPerBlockDependencies: Map<TmplAstDeferredBlock, DeferredComponentDependency[]>;
85
+ /**
86
+ * Defines how dynamic imports for deferred dependencies should be grouped:
87
+ * - either in a function on per-component basis (in case of local compilation)
88
+ * - or in a function on per-block basis (in full compilation mode)
89
+ */
90
+ deferBlockDepsEmitMode: DeferBlockDepsEmitMode;
91
+ /**
92
+ * List of deferrable dependencies in the entire component. Used to compile the
93
+ * defer resolver function in `PerComponent` mode.
94
+ */
95
+ deferPerComponentDependencies: R3DeferPerComponentDependency[];
96
+ }
97
+ /**
98
+ * Describes a dependency used within a `@defer` block.
99
+ */
100
+ export type DeferredComponentDependency = R3DeferPerBlockDependency & {
101
+ /** Reference to the declaration that defines the dependency. */
102
+ declaration: Reference<ClassDeclaration>;
103
+ };
@@ -48,9 +48,8 @@ export declare class DirectiveDecoratorHandler implements DecoratorHandler<Decor
48
48
  private importTracker;
49
49
  private includeClassMetadata;
50
50
  private readonly compilationMode;
51
- private readonly useTemplatePipeline;
52
51
  private readonly generateExtraImportsInLocalMode;
53
- constructor(reflector: ReflectionHost, evaluator: PartialEvaluator, metaRegistry: MetadataRegistry, scopeRegistry: LocalModuleScopeRegistry, metaReader: MetadataReader, injectableRegistry: InjectableClassRegistry, refEmitter: ReferenceEmitter, referencesRegistry: ReferencesRegistry, isCore: boolean, strictCtorDeps: boolean, semanticDepGraphUpdater: SemanticDepGraphUpdater | null, annotateForClosureCompiler: boolean, perf: PerfRecorder, importTracker: ImportedSymbolsTracker, includeClassMetadata: boolean, compilationMode: CompilationMode, useTemplatePipeline: boolean, generateExtraImportsInLocalMode: boolean);
52
+ constructor(reflector: ReflectionHost, evaluator: PartialEvaluator, metaRegistry: MetadataRegistry, scopeRegistry: LocalModuleScopeRegistry, metaReader: MetadataReader, injectableRegistry: InjectableClassRegistry, refEmitter: ReferenceEmitter, referencesRegistry: ReferencesRegistry, isCore: boolean, strictCtorDeps: boolean, semanticDepGraphUpdater: SemanticDepGraphUpdater | null, annotateForClosureCompiler: boolean, perf: PerfRecorder, importTracker: ImportedSymbolsTracker, includeClassMetadata: boolean, compilationMode: CompilationMode, generateExtraImportsInLocalMode: boolean);
54
53
  readonly precedence = HandlerPrecedence.PRIMARY;
55
54
  readonly name = "DirectiveDecoratorHandler";
56
55
  detect(node: ClassDeclaration, decorators: Decorator[] | null): DetectResult<Decorator | null> | undefined;
@@ -21,7 +21,7 @@ export declare const queryDecoratorNames: QueryDecoratorName[];
21
21
  * appear in the declarations of an `NgModule` and additional verification is done when processing
22
22
  * the module.
23
23
  */
24
- export declare function extractDirectiveMetadata(clazz: ClassDeclaration, decorator: Readonly<Decorator>, reflector: ReflectionHost, importTracker: ImportedSymbolsTracker, evaluator: PartialEvaluator, refEmitter: ReferenceEmitter, referencesRegistry: ReferencesRegistry, isCore: boolean, annotateForClosureCompiler: boolean, compilationMode: CompilationMode, defaultSelector: string | null, useTemplatePipeline: boolean): {
24
+ export declare function extractDirectiveMetadata(clazz: ClassDeclaration, decorator: Readonly<Decorator>, reflector: ReflectionHost, importTracker: ImportedSymbolsTracker, evaluator: PartialEvaluator, refEmitter: ReferenceEmitter, referencesRegistry: ReferencesRegistry, isCore: boolean, annotateForClosureCompiler: boolean, compilationMode: CompilationMode, defaultSelector: string | null): {
25
25
  decorator: Map<string, ts.Expression>;
26
26
  metadata: R3DirectiveMetadata;
27
27
  inputs: ClassPropertyMapping<InputMapping>;
@@ -399,8 +399,4 @@ export interface MiscOptions {
399
399
  * another library without option set will not issue error if rendered in orphan way.
400
400
  */
401
401
  forbidOrphanComponents?: boolean;
402
- /**
403
- * Whether to use TemplateDefinitionBuilder as the code generator, or Template Pipeline.
404
- */
405
- useTemplatePipeline?: boolean;
406
402
  }