@angular/core 21.0.0-next.1 → 21.0.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/api.d.d.ts +1 -1
  2. package/chrome_dev_tools_performance.d.d.ts +1 -1
  3. package/discovery.d.d.ts +11 -36
  4. package/effect.d.d.ts +1 -1
  5. package/event_dispatcher.d.d.ts +1 -1
  6. package/fesm2022/attribute.mjs +1 -1
  7. package/fesm2022/attribute.mjs.map +1 -1
  8. package/fesm2022/core.mjs +14 -18
  9. package/fesm2022/core.mjs.map +1 -1
  10. package/fesm2022/debug_node.mjs +29 -669
  11. package/fesm2022/debug_node.mjs.map +1 -1
  12. package/fesm2022/effect.mjs +1 -1
  13. package/fesm2022/effect.mjs.map +1 -1
  14. package/fesm2022/not_found.mjs +1 -1
  15. package/fesm2022/not_found.mjs.map +1 -1
  16. package/fesm2022/primitives/di.mjs +1 -1
  17. package/fesm2022/primitives/di.mjs.map +1 -1
  18. package/fesm2022/primitives/event-dispatch.mjs +1 -1
  19. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  20. package/fesm2022/primitives/signals.mjs +1 -1
  21. package/fesm2022/primitives/signals.mjs.map +1 -1
  22. package/fesm2022/resource.mjs +1 -1
  23. package/fesm2022/resource.mjs.map +1 -1
  24. package/fesm2022/root_effect_scheduler.mjs +689 -81
  25. package/fesm2022/root_effect_scheduler.mjs.map +1 -1
  26. package/fesm2022/rxjs-interop.mjs +3 -3
  27. package/fesm2022/rxjs-interop.mjs.map +1 -1
  28. package/fesm2022/signal.mjs +1 -1
  29. package/fesm2022/signal.mjs.map +1 -1
  30. package/fesm2022/testing.mjs +6 -8
  31. package/fesm2022/testing.mjs.map +1 -1
  32. package/fesm2022/weak_ref.mjs +1 -1
  33. package/fesm2022/weak_ref.mjs.map +1 -1
  34. package/graph.d.d.ts +1 -1
  35. package/index.d.ts +31 -47
  36. package/package.json +2 -2
  37. package/primitives/di/index.d.ts +1 -1
  38. package/primitives/event-dispatch/index.d.ts +1 -1
  39. package/primitives/signals/index.d.ts +1 -1
  40. package/rxjs-interop/index.d.ts +1 -1
  41. package/schematics/bundles/application-config-core.cjs +95 -0
  42. package/schematics/bundles/{apply_import_manager-yycO3l8f.cjs → apply_import_manager-B3czqUhF.cjs} +3 -3
  43. package/schematics/bundles/cleanup-unused-imports.cjs +5 -5
  44. package/schematics/bundles/{compiler_host-DrXTGf_7.cjs → compiler_host-B9qvCnmC.cjs} +2 -2
  45. package/schematics/bundles/control-flow-migration.cjs +4 -4
  46. package/schematics/bundles/imports-26VeX8i-.cjs +1 -1
  47. package/schematics/bundles/{index-jjHOgYYs.cjs → index-B6-f9bil.cjs} +12 -12
  48. package/schematics/bundles/{index-BdH2rlWJ.cjs → index-DN8W1c8n.cjs} +4 -4
  49. package/schematics/bundles/inject-migration.cjs +142 -47
  50. package/schematics/bundles/leading_space-D9nQ8UQC.cjs +1 -1
  51. package/schematics/bundles/{migrate_ts_type_references-BVSg43hf.cjs → migrate_ts_type_references-DawXRJzI.cjs} +5 -5
  52. package/schematics/bundles/{ng_component_template-DjLc4mdL.cjs → ng_component_template-DUAg-x1h.cjs} +2 -2
  53. package/schematics/bundles/ng_decorators-CtYwz9Lw.cjs +1 -1
  54. package/schematics/bundles/ngclass-to-class-migration.cjs +8 -8
  55. package/schematics/bundles/nodes-B16H9JUd.cjs +1 -1
  56. package/schematics/bundles/output-migration.cjs +6 -6
  57. package/schematics/bundles/{parse_html-CXR8hziE.cjs → parse_html-C8TYlOyu.cjs} +2 -2
  58. package/schematics/bundles/{project_paths-T_M15e2g.cjs → project_paths-D64fJzoa.cjs} +3 -3
  59. package/schematics/bundles/{project_tsconfig_paths-D7xzGqRi.cjs → project_tsconfig_paths-DZ17BWwk.cjs} +11 -5
  60. package/schematics/bundles/property_name-BBwFuqMe.cjs +1 -1
  61. package/schematics/bundles/route-lazy-loading.cjs +3 -3
  62. package/schematics/bundles/router-current-navigation.cjs +4 -4
  63. package/schematics/bundles/router-last-successful-navigation.cjs +4 -4
  64. package/schematics/bundles/self-closing-tags-migration.cjs +6 -6
  65. package/schematics/bundles/signal-input-migration.cjs +7 -7
  66. package/schematics/bundles/signal-queries-migration.cjs +7 -7
  67. package/schematics/bundles/signals.cjs +7 -7
  68. package/schematics/bundles/standalone-migration.cjs +4 -4
  69. package/schematics/bundles/symbol-VPWguRxr.cjs +1 -1
  70. package/schematics/migrations/ngclass-to-class-migration/schema.json +1 -1
  71. package/schematics/migrations.json +5 -0
  72. package/testing/index.d.ts +1 -1
  73. package/weak_ref.d.d.ts +1 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,13 +8,13 @@
8
8
 
9
9
  var schematics = require('@angular-devkit/schematics');
10
10
  var p = require('path');
11
- var compiler_host = require('./compiler_host-DrXTGf_7.cjs');
11
+ var compiler_host = require('./compiler_host-B9qvCnmC.cjs');
12
12
  var ts = require('typescript');
13
13
  var ng_decorators = require('./ng_decorators-CtYwz9Lw.cjs');
14
14
  var imports = require('./imports-26VeX8i-.cjs');
15
15
  var nodes = require('./nodes-B16H9JUd.cjs');
16
16
  var leading_space = require('./leading_space-D9nQ8UQC.cjs');
17
- var project_tsconfig_paths = require('./project_tsconfig_paths-D7xzGqRi.cjs');
17
+ var project_tsconfig_paths = require('./project_tsconfig_paths-DZ17BWwk.cjs');
18
18
  require('os');
19
19
  require('fs');
20
20
  require('module');
@@ -820,67 +820,162 @@ function migrateClass(node, constructor, superCall, options, memberIndentation,
820
820
  * @param afterSuper Statements to be added after the `super` call.
821
821
  */
822
822
  function migrateParameter(node, options, localTypeChecker, printer, tracker, superCall, usedInSuper, usedInConstructor, usesOtherParams, memberIndentation, innerIndentation, prependToConstructor, propsToAdd, afterSuper) {
823
- if (!ts.isIdentifier(node.name)) {
823
+ const context = {
824
+ node,
825
+ options,
826
+ localTypeChecker,
827
+ printer,
828
+ tracker,
829
+ superCall,
830
+ usedInSuper,
831
+ usedInConstructor,
832
+ usesOtherParams,
833
+ memberIndentation,
834
+ innerIndentation,
835
+ prependToConstructor,
836
+ propsToAdd,
837
+ afterSuper,
838
+ };
839
+ if (ts.isIdentifier(node.name)) {
840
+ migrateIdentifierParameter(context, node.name);
841
+ }
842
+ else if (ts.isObjectBindingPattern(node.name)) {
843
+ migrateObjectBindingParameter(context, node.name);
844
+ }
845
+ else {
824
846
  return;
825
847
  }
826
- const name = node.name.text;
848
+ }
849
+ function migrateIdentifierParameter(context, name) {
850
+ const { node, options, localTypeChecker, printer, tracker, usedInConstructor, usesOtherParams } = context;
827
851
  const replacementCall = createInjectReplacementCall(node, options, localTypeChecker, printer, tracker);
828
852
  const declaresProp = parameterDeclaresProperty(node);
829
853
  // If the parameter declares a property, we need to declare it (e.g. `private foo: Foo`).
830
854
  if (declaresProp) {
831
- // We can't initialize the property if it's referenced within a `super` call or it references
832
- // other parameters. See the logic further below for the initialization.
833
- const canInitialize = !usedInSuper && !usesOtherParams;
834
- const prop = ts.factory.createPropertyDeclaration(cloneModifiers(node.modifiers?.filter((modifier) => {
835
- // Strip out the DI decorators, as well as `public` which is redundant.
836
- return !ts.isDecorator(modifier) && modifier.kind !== ts.SyntaxKind.PublicKeyword;
837
- })), name,
838
- // Don't add the question token to private properties since it won't affect interface implementation.
839
- node.modifiers?.some((modifier) => modifier.kind === ts.SyntaxKind.PrivateKeyword)
840
- ? undefined
841
- : node.questionToken, canInitialize ? undefined : node.type, canInitialize ? ts.factory.createIdentifier(PLACEHOLDER) : undefined);
842
- propsToAdd.push(memberIndentation +
843
- replaceNodePlaceholder(node.getSourceFile(), prop, replacementCall, printer));
855
+ handlePropertyDeclaration(context, name, replacementCall);
844
856
  }
845
857
  // If the parameter is referenced within the constructor, we need to declare it as a variable.
846
858
  if (usedInConstructor) {
847
- if (usedInSuper) {
848
- // Usages of `this` aren't allowed before `super` calls so we need to
849
- // create a variable which calls `inject()` directly instead...
850
- prependToConstructor.push(`${innerIndentation}const ${name} = ${replacementCall};`);
851
- // ...then we can initialize the property after the `super` call.
852
- if (declaresProp) {
853
- afterSuper.push(`${innerIndentation}this.${name} = ${name};`);
854
- }
855
- }
856
- else if (declaresProp) {
857
- // If the parameter declares a property (`private foo: foo`) and is used inside the class
858
- // at the same time, we need to ensure that it's initialized to the value from the variable
859
- // and that we only reference `this` after the `super` call.
860
- const initializer = `${innerIndentation}const ${name} = this.${name};`;
861
- if (superCall === null) {
862
- prependToConstructor.push(initializer);
863
- }
864
- else {
865
- afterSuper.push(initializer);
866
- }
867
- }
868
- else {
869
- // If the parameter is only referenced in the constructor, we
870
- // don't need to declare any new properties.
871
- prependToConstructor.push(`${innerIndentation}const ${name} = ${replacementCall};`);
872
- }
859
+ handleConstructorUsage(context, name.text, replacementCall, declaresProp);
873
860
  }
874
861
  else if (usesOtherParams && declaresProp) {
875
- const toAdd = `${innerIndentation}this.${name} = ${replacementCall};`;
862
+ handleParameterWithDependencies(context, name.text, replacementCall);
863
+ }
864
+ }
865
+ function handlePropertyDeclaration(context, name, replacementCall) {
866
+ const { node, memberIndentation, propsToAdd } = context;
867
+ const canInitialize = !context.usedInSuper && !context.usesOtherParams;
868
+ const prop = ts.factory.createPropertyDeclaration(cloneModifiers(node.modifiers?.filter((modifier) => {
869
+ return !ts.isDecorator(modifier) && modifier.kind !== ts.SyntaxKind.PublicKeyword;
870
+ })), name, node.modifiers?.some((modifier) => modifier.kind === ts.SyntaxKind.PrivateKeyword)
871
+ ? undefined
872
+ : node.questionToken, canInitialize ? undefined : node.type, canInitialize ? ts.factory.createIdentifier(PLACEHOLDER) : undefined);
873
+ propsToAdd.push(memberIndentation +
874
+ replaceNodePlaceholder(node.getSourceFile(), prop, replacementCall, context.printer));
875
+ }
876
+ function handleConstructorUsage(context, name, replacementCall, declaresProp) {
877
+ const { innerIndentation, prependToConstructor, afterSuper, superCall } = context;
878
+ if (context.usedInSuper) {
879
+ // Usages of `this` aren't allowed before `super` calls so we need to
880
+ // create a variable which calls `inject()` directly instead...
881
+ prependToConstructor.push(`${innerIndentation}const ${name} = ${replacementCall};`);
882
+ if (declaresProp) {
883
+ afterSuper.push(`${innerIndentation}this.${name} = ${name};`);
884
+ }
885
+ }
886
+ else if (declaresProp) {
887
+ // If the parameter declares a property (`private foo: foo`) and is used inside the class
888
+ // at the same time, we need to ensure that it's initialized to the value from the variable
889
+ // and that we only reference `this` after the `super` call.
890
+ const initializer = `${innerIndentation}const ${name} = this.${name};`;
876
891
  if (superCall === null) {
877
- prependToConstructor.push(toAdd);
892
+ prependToConstructor.push(initializer);
878
893
  }
879
894
  else {
880
- afterSuper.push(toAdd);
895
+ afterSuper.push(initializer);
896
+ }
897
+ }
898
+ else {
899
+ // If the parameter is only referenced in the constructor, we
900
+ // don't need to declare any new properties.
901
+ prependToConstructor.push(`${innerIndentation}const ${name} = ${replacementCall};`);
902
+ }
903
+ }
904
+ function handleParameterWithDependencies(context, name, replacementCall) {
905
+ const { innerIndentation, prependToConstructor, afterSuper, superCall } = context;
906
+ const toAdd = `${innerIndentation}this.${name} = ${replacementCall};`;
907
+ if (superCall === null) {
908
+ prependToConstructor.push(toAdd);
909
+ }
910
+ else {
911
+ afterSuper.push(toAdd);
912
+ }
913
+ }
914
+ function migrateObjectBindingParameter(context, bindingPattern) {
915
+ const { node, options, localTypeChecker, printer, tracker } = context;
916
+ const replacementCall = createInjectReplacementCall(node, options, localTypeChecker, printer, tracker);
917
+ for (const element of bindingPattern.elements) {
918
+ if (ts.isBindingElement(element) && ts.isIdentifier(element.name)) {
919
+ migrateBindingElement(context, element, element.name, replacementCall);
881
920
  }
882
921
  }
883
922
  }
923
+ function migrateBindingElement(context, element, elementName, replacementCall) {
924
+ const propertyName = elementName.text;
925
+ // Determines how to access the property
926
+ const propertyAccess = element.propertyName
927
+ ? `${replacementCall}.${element.propertyName.getText()}`
928
+ : `${replacementCall}.${propertyName}`;
929
+ createPropertyForBindingElement(context, propertyName, propertyAccess);
930
+ if (context.usedInConstructor) {
931
+ handleConstructorUsageBindingElement(context, element, propertyName);
932
+ }
933
+ }
934
+ function handleConstructorUsageBindingElement(context, element, propertyName) {
935
+ const { tracker, localTypeChecker, node: paramNode } = context;
936
+ const constructorDecl = paramNode.parent;
937
+ // Check in constructor or exist body content
938
+ if (!ts.isConstructorDeclaration(constructorDecl) || !constructorDecl.body) {
939
+ return;
940
+ }
941
+ // Get the unique "symbol" for our unstructured property.
942
+ const symbol = localTypeChecker.getSymbolAtLocation(element.name);
943
+ if (!symbol) {
944
+ return;
945
+ }
946
+ // Visit recursive function navigate constructor
947
+ const visit = (node) => {
948
+ // Check if current node is identifier (variable)
949
+ if (ts.isIdentifier(node)) {
950
+ // Using the type checker, verify that this identifier refers
951
+ // exactly to our destructured parameter and is not the node of the original declaration.
952
+ if (localTypeChecker.getSymbolAtLocation(node) === symbol && node !== element.name) {
953
+ // If the identifier is used as a shorthand property in an object literal (e.g., { myVar }),
954
+ // must replace the entire `ShorthandPropertyAssignment` node
955
+ // with a `PropertyAssignment` (e.g., myVar: this.myVar).
956
+ if (ts.isShorthandPropertyAssignment(node.parent)) {
957
+ tracker.replaceNode(node.parent, ts.factory.createPropertyAssignment(node, ts.factory.createPropertyAccessExpression(ts.factory.createThis(), propertyName)));
958
+ }
959
+ else {
960
+ // Otherwise, replace the identifier with `this.propertyName`.
961
+ tracker.replaceNode(node, ts.factory.createPropertyAccessExpression(ts.factory.createThis(), propertyName));
962
+ }
963
+ }
964
+ }
965
+ ts.forEachChild(node, visit);
966
+ };
967
+ visit(constructorDecl.body);
968
+ }
969
+ function createPropertyForBindingElement(context, propertyName, propertyAccess) {
970
+ const { node, memberIndentation, propsToAdd } = context;
971
+ const prop = ts.factory.createPropertyDeclaration(cloneModifiers(node.modifiers?.filter((modifier) => {
972
+ return !ts.isDecorator(modifier) && modifier.kind !== ts.SyntaxKind.PublicKeyword;
973
+ })), propertyName, node.modifiers?.some((modifier) => modifier.kind === ts.SyntaxKind.PrivateKeyword)
974
+ ? undefined
975
+ : node.questionToken, undefined, ts.factory.createIdentifier(PLACEHOLDER));
976
+ propsToAdd.push(memberIndentation +
977
+ replaceNodePlaceholder(node.getSourceFile(), prop, propertyAccess, context.printer));
978
+ }
884
979
  /**
885
980
  * Creates a replacement `inject` call from a function parameter.
886
981
  * @param param Parameter for which to generate the `inject` call.
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- var project_tsconfig_paths = require('./project_tsconfig_paths-D7xzGqRi.cjs');
9
+ var project_tsconfig_paths = require('./project_tsconfig_paths-DZ17BWwk.cjs');
10
10
  var ts = require('typescript');
11
11
  require('os');
12
12
  var assert = require('assert');
13
- var index = require('./index-BdH2rlWJ.cjs');
14
- var project_paths = require('./project_paths-T_M15e2g.cjs');
13
+ var index = require('./index-DN8W1c8n.cjs');
14
+ var project_paths = require('./project_paths-D64fJzoa.cjs');
15
15
  var leading_space = require('./leading_space-D9nQ8UQC.cjs');
16
- require('./index-jjHOgYYs.cjs');
16
+ require('./index-B6-f9bil.cjs');
17
17
  require('path');
18
18
  require('node:path');
19
19
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -10,7 +10,7 @@ var ts = require('typescript');
10
10
  var ng_decorators = require('./ng_decorators-CtYwz9Lw.cjs');
11
11
  var property_name = require('./property_name-BBwFuqMe.cjs');
12
12
  require('os');
13
- var project_tsconfig_paths = require('./project_tsconfig_paths-D7xzGqRi.cjs');
13
+ var project_tsconfig_paths = require('./project_tsconfig_paths-DZ17BWwk.cjs');
14
14
 
15
15
  /**
16
16
  * Unwraps a given expression TypeScript node. Expressions can be wrapped within multiple
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,15 +8,15 @@
8
8
 
9
9
  var ts = require('typescript');
10
10
  require('os');
11
- var project_tsconfig_paths = require('./project_tsconfig_paths-D7xzGqRi.cjs');
12
- var index = require('./index-jjHOgYYs.cjs');
11
+ var project_tsconfig_paths = require('./project_tsconfig_paths-DZ17BWwk.cjs');
12
+ var index = require('./index-B6-f9bil.cjs');
13
13
  require('path');
14
14
  require('node:path');
15
- var project_paths = require('./project_paths-T_M15e2g.cjs');
16
- var apply_import_manager = require('./apply_import_manager-yycO3l8f.cjs');
15
+ var project_paths = require('./project_paths-D64fJzoa.cjs');
16
+ var apply_import_manager = require('./apply_import_manager-B3czqUhF.cjs');
17
17
  var imports = require('./imports-26VeX8i-.cjs');
18
- var parse_html = require('./parse_html-CXR8hziE.cjs');
19
- var ng_component_template = require('./ng_component_template-DjLc4mdL.cjs');
18
+ var parse_html = require('./parse_html-C8TYlOyu.cjs');
19
+ var ng_component_template = require('./ng_component_template-DUAg-x1h.cjs');
20
20
  require('@angular-devkit/core');
21
21
  require('node:path/posix');
22
22
  require('fs');
@@ -511,7 +511,7 @@ function migrate(options) {
511
511
  }
512
512
  },
513
513
  beforeUnitAnalysis: (tsconfigPath) => {
514
- context.logger.info(`Scanning for component tags: ${tsconfigPath}...`);
514
+ context.logger.info(`Scanning for ngClass bindings: ${tsconfigPath}...`);
515
515
  },
516
516
  afterAllAnalyzed: () => {
517
517
  context.logger.info(``);
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,13 +8,13 @@
8
8
 
9
9
  var ts = require('typescript');
10
10
  require('os');
11
- var project_tsconfig_paths = require('./project_tsconfig_paths-D7xzGqRi.cjs');
12
- var index$1 = require('./index-jjHOgYYs.cjs');
11
+ var project_tsconfig_paths = require('./project_tsconfig_paths-DZ17BWwk.cjs');
12
+ var index$1 = require('./index-B6-f9bil.cjs');
13
13
  require('path');
14
14
  require('node:path');
15
- var project_paths = require('./project_paths-T_M15e2g.cjs');
16
- var apply_import_manager = require('./apply_import_manager-yycO3l8f.cjs');
17
- var index = require('./index-BdH2rlWJ.cjs');
15
+ var project_paths = require('./project_paths-D64fJzoa.cjs');
16
+ var apply_import_manager = require('./apply_import_manager-B3czqUhF.cjs');
17
+ var index = require('./index-DN8W1c8n.cjs');
18
18
  require('@angular-devkit/core');
19
19
  require('node:path/posix');
20
20
  require('fs');
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- var project_tsconfig_paths = require('./project_tsconfig_paths-D7xzGqRi.cjs');
9
+ var project_tsconfig_paths = require('./project_tsconfig_paths-DZ17BWwk.cjs');
10
10
 
11
11
  /**
12
12
  * parses the template string into the Html AST
@@ -1,18 +1,18 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- var index = require('./index-jjHOgYYs.cjs');
9
+ var index = require('./index-B6-f9bil.cjs');
10
10
  var schematics = require('@angular-devkit/schematics');
11
11
  var core = require('@angular-devkit/core');
12
12
  var posixPath = require('node:path/posix');
13
13
  var os = require('os');
14
14
  var ts = require('typescript');
15
- var project_tsconfig_paths = require('./project_tsconfig_paths-D7xzGqRi.cjs');
15
+ var project_tsconfig_paths = require('./project_tsconfig_paths-DZ17BWwk.cjs');
16
16
  require('path');
17
17
  var path = require('node:path');
18
18
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -27970,7 +27970,7 @@ class BindingParser {
27970
27970
  if (isLegacyAnimationProp) {
27971
27971
  this._parseLegacyAnimation(name, expression, sourceSpan, absoluteOffset, keySpan, valueSpan, targetMatchableAttrs, targetProps);
27972
27972
  }
27973
- else if (name.startsWith(ANIMATE_PREFIX)) {
27973
+ else if (name.startsWith(`${ANIMATE_PREFIX}${PROPERTY_PARTS_SEPARATOR}`)) {
27974
27974
  this._parseAnimation(name, this.parseBinding(expression, isHost, valueSpan || sourceSpan, absoluteOffset), sourceSpan, keySpan, valueSpan, targetMatchableAttrs, targetProps);
27975
27975
  }
27976
27976
  else {
@@ -28133,7 +28133,7 @@ class BindingParser {
28133
28133
  if (isAssignmentEvent) {
28134
28134
  eventType = exports.ParsedEventType.TwoWay;
28135
28135
  }
28136
- if (name.startsWith(ANIMATE_PREFIX)) {
28136
+ if (name.startsWith(`${ANIMATE_PREFIX}${PROPERTY_PARTS_SEPARATOR}`)) {
28137
28137
  eventType = exports.ParsedEventType.Animation;
28138
28138
  }
28139
28139
  targetEvents.push(new ParsedEvent(eventName, target, eventType, ast, sourceSpan, handlerSpan, keySpan));
@@ -32840,7 +32840,7 @@ function isAttrNode(ast) {
32840
32840
  * @description
32841
32841
  * Entry point for all public APIs of the compiler package.
32842
32842
  */
32843
- new Version('21.0.0-next.1');
32843
+ new Version('21.0.0-next.2');
32844
32844
 
32845
32845
  //////////////////////////////////////
32846
32846
  // THIS FILE HAS GLOBAL SIDE EFFECT //
@@ -33876,7 +33876,7 @@ class NodeJSPathManipulation {
33876
33876
  // G3-ESM-MARKER: G3 uses CommonJS, but externally everything in ESM.
33877
33877
  // CommonJS/ESM interop for determining the current file name and containing dir.
33878
33878
  const isCommonJS = typeof __filename !== 'undefined';
33879
- const currentFileUrl = isCommonJS ? null : (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('project_tsconfig_paths-D7xzGqRi.cjs', document.baseURI).href));
33879
+ const currentFileUrl = isCommonJS ? null : (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('project_tsconfig_paths-DZ17BWwk.cjs', document.baseURI).href));
33880
33880
  // Note, when this code loads in the browser, `url` may be an empty `{}` due to the Closure shims.
33881
33881
  const currentFileName = isCommonJS
33882
33882
  ? __filename
@@ -42941,12 +42941,18 @@ class MagicString {
42941
42941
  if (this.byStart[index] || this.byEnd[index]) return;
42942
42942
 
42943
42943
  let chunk = this.lastSearchedChunk;
42944
+ let previousChunk = chunk;
42944
42945
  const searchForward = index > chunk.end;
42945
42946
 
42946
42947
  while (chunk) {
42947
42948
  if (chunk.contains(index)) return this._splitChunk(chunk, index);
42948
42949
 
42949
42950
  chunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];
42951
+
42952
+ // Prevent infinite loop (e.g. via empty chunks, where start === end)
42953
+ if (chunk === previousChunk) return;
42954
+
42955
+ previousChunk = chunk;
42950
42956
  }
42951
42957
  }
42952
42958
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -9,8 +9,8 @@
9
9
  var schematics = require('@angular-devkit/schematics');
10
10
  var fs = require('fs');
11
11
  var p = require('path');
12
- var compiler_host = require('./compiler_host-DrXTGf_7.cjs');
13
- var project_tsconfig_paths = require('./project_tsconfig_paths-D7xzGqRi.cjs');
12
+ var compiler_host = require('./compiler_host-B9qvCnmC.cjs');
13
+ var project_tsconfig_paths = require('./project_tsconfig_paths-DZ17BWwk.cjs');
14
14
  var ts = require('typescript');
15
15
  var property_name = require('./property_name-BBwFuqMe.cjs');
16
16
  require('os');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,11 +8,11 @@
8
8
 
9
9
  var ts = require('typescript');
10
10
  require('os');
11
- require('./project_tsconfig_paths-D7xzGqRi.cjs');
12
- require('./index-jjHOgYYs.cjs');
11
+ require('./project_tsconfig_paths-DZ17BWwk.cjs');
12
+ require('./index-B6-f9bil.cjs');
13
13
  require('path');
14
14
  require('node:path');
15
- var project_paths = require('./project_paths-T_M15e2g.cjs');
15
+ var project_paths = require('./project_paths-D64fJzoa.cjs');
16
16
  var imports = require('./imports-26VeX8i-.cjs');
17
17
  var symbol = require('./symbol-VPWguRxr.cjs');
18
18
  require('@angular-devkit/core');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,11 +8,11 @@
8
8
 
9
9
  var ts = require('typescript');
10
10
  require('os');
11
- require('./project_tsconfig_paths-D7xzGqRi.cjs');
12
- require('./index-jjHOgYYs.cjs');
11
+ require('./project_tsconfig_paths-DZ17BWwk.cjs');
12
+ require('./index-B6-f9bil.cjs');
13
13
  require('path');
14
14
  require('node:path');
15
- var project_paths = require('./project_paths-T_M15e2g.cjs');
15
+ var project_paths = require('./project_paths-D64fJzoa.cjs');
16
16
  var imports = require('./imports-26VeX8i-.cjs');
17
17
  var symbol = require('./symbol-VPWguRxr.cjs');
18
18
  require('@angular-devkit/core');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,13 +8,13 @@
8
8
 
9
9
  var ts = require('typescript');
10
10
  require('os');
11
- var project_tsconfig_paths = require('./project_tsconfig_paths-D7xzGqRi.cjs');
12
- require('./index-jjHOgYYs.cjs');
11
+ var project_tsconfig_paths = require('./project_tsconfig_paths-DZ17BWwk.cjs');
12
+ require('./index-B6-f9bil.cjs');
13
13
  require('path');
14
14
  require('node:path');
15
- var project_paths = require('./project_paths-T_M15e2g.cjs');
16
- var ng_component_template = require('./ng_component_template-DjLc4mdL.cjs');
17
- var parse_html = require('./parse_html-CXR8hziE.cjs');
15
+ var project_paths = require('./project_paths-D64fJzoa.cjs');
16
+ var ng_component_template = require('./ng_component_template-DUAg-x1h.cjs');
17
+ var parse_html = require('./parse_html-C8TYlOyu.cjs');
18
18
  require('@angular-devkit/core');
19
19
  require('node:path/posix');
20
20
  require('fs');
@@ -1,22 +1,22 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- var migrate_ts_type_references = require('./migrate_ts_type_references-BVSg43hf.cjs');
9
+ var migrate_ts_type_references = require('./migrate_ts_type_references-DawXRJzI.cjs');
10
10
  var ts = require('typescript');
11
11
  require('os');
12
- var project_tsconfig_paths = require('./project_tsconfig_paths-D7xzGqRi.cjs');
13
- var index$1 = require('./index-jjHOgYYs.cjs');
12
+ var project_tsconfig_paths = require('./project_tsconfig_paths-DZ17BWwk.cjs');
13
+ var index$1 = require('./index-B6-f9bil.cjs');
14
14
  require('path');
15
15
  require('node:path');
16
- var project_paths = require('./project_paths-T_M15e2g.cjs');
17
- var index = require('./index-BdH2rlWJ.cjs');
16
+ var project_paths = require('./project_paths-D64fJzoa.cjs');
17
+ var index = require('./index-DN8W1c8n.cjs');
18
18
  var assert = require('assert');
19
- var apply_import_manager = require('./apply_import_manager-yycO3l8f.cjs');
19
+ var apply_import_manager = require('./apply_import_manager-B3czqUhF.cjs');
20
20
  require('@angular-devkit/core');
21
21
  require('node:path/posix');
22
22
  require('./leading_space-D9nQ8UQC.cjs');
@@ -1,22 +1,22 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v21.0.0-next.1
3
+ * @license Angular v21.0.0-next.2
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- var project_tsconfig_paths = require('./project_tsconfig_paths-D7xzGqRi.cjs');
9
+ var project_tsconfig_paths = require('./project_tsconfig_paths-DZ17BWwk.cjs');
10
10
  var ts = require('typescript');
11
11
  require('os');
12
- var index$1 = require('./index-jjHOgYYs.cjs');
12
+ var index$1 = require('./index-B6-f9bil.cjs');
13
13
  require('path');
14
14
  require('node:path');
15
- var project_paths = require('./project_paths-T_M15e2g.cjs');
16
- var apply_import_manager = require('./apply_import_manager-yycO3l8f.cjs');
17
- var migrate_ts_type_references = require('./migrate_ts_type_references-BVSg43hf.cjs');
15
+ var project_paths = require('./project_paths-D64fJzoa.cjs');
16
+ var apply_import_manager = require('./apply_import_manager-B3czqUhF.cjs');
17
+ var migrate_ts_type_references = require('./migrate_ts_type_references-DawXRJzI.cjs');
18
18
  var assert = require('assert');
19
- var index = require('./index-BdH2rlWJ.cjs');
19
+ var index = require('./index-DN8W1c8n.cjs');
20
20
  require('@angular-devkit/core');
21
21
  require('node:path/posix');
22
22
  require('fs');