@clr/angular 18.0.0-beta.4 → 18.0.0-beta.5

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
@@ -25,7 +25,7 @@
25
25
  "@angular/cdk": "^21",
26
26
  "@angular/common": "^21",
27
27
  "@angular/core": "^21",
28
- "@clr/ui": "18.0.0-beta.4"
28
+ "@clr/ui": "18.0.0-beta.5"
29
29
  },
30
30
  "module": "fesm2022/clr-angular.mjs",
31
31
  "typings": "types/clr-angular.d.ts",
@@ -231,5 +231,5 @@
231
231
  "dependencies": {
232
232
  "tslib": "^2.3.0"
233
233
  },
234
- "version": "18.0.0-beta.4"
234
+ "version": "18.0.0-beta.5"
235
235
  }
@@ -2,7 +2,7 @@
2
2
  "$schema": "../../../node_modules/@angular-devkit/schematics/collection-schema.json",
3
3
  "schematics": {
4
4
  "ng-update": {
5
- "version": "18.0.0",
5
+ "version": "18.0.0-beta.5",
6
6
  "description": "Migrates @clr/angular from v17 to v18",
7
7
  "factory": "./ng-update/index#migrate"
8
8
  }
@@ -31,9 +31,11 @@ const TS_CANDIDATES = [
31
31
  */
32
32
  function migrateTypeScriptFiles() {
33
33
  return (tree, context) => {
34
- context.logger.info(' Migrating TypeScript files (imports, inline templates, inline styles)...');
35
- let fileCount = 0;
34
+ context.logger.info(' Migrating TypeScript files (imports, inline templates, inline styles)');
35
+ let scanCount = 0;
36
+ let updateCount = 0;
36
37
  (0, file_visitor_1.visitFiles)(tree, '**/*.ts', filePath => {
38
+ scanCount++;
37
39
  const content = tree.read(filePath);
38
40
  if (!content) {
39
41
  return;
@@ -49,16 +51,17 @@ function migrateTypeScriptFiles() {
49
51
  text = (0, css_migration_1.transformInlineStyles)(text);
50
52
  if (text !== original) {
51
53
  tree.overwrite(filePath, text);
52
- fileCount++;
54
+ updateCount++;
55
+ context.logger.info(` UPDATE ${filePath}`);
53
56
  }
54
57
  });
55
- context.logger.info(` Updated ${fileCount} TypeScript file(s).`);
58
+ context.logger.info(` ${updateCount} of ${scanCount} file(s) updated.`);
56
59
  };
57
60
  }
58
61
  function migrate() {
59
62
  return (tree, context) => {
60
63
  context.logger.info('');
61
- context.logger.info('Running @clr/angular v18 migration schematics...');
64
+ context.logger.info('Running @clr/angular v18 migration...');
62
65
  context.logger.info('');
63
66
  return (0, schematics_1.chain)([migrateTypeScriptFiles(), (0, template_migration_1.migrateTemplates)(), (0, css_migration_1.migrateCssProperties)()])(tree, context);
64
67
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/angular/schematics/ng-update/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAqEH,0BAQC;AA3ED,2DAAiF;AAEjF,8DAIoC;AACpC,oEAA8F;AAC9F,wEAIyC;AACzC,uDAAkD;AAElD;;;GAGG;AACH,MAAM,aAAa,GAAsB;IACvC,GAAG,8CAA2B;IAC9B,GAAG,yDAAoC;IACvC,GAAG,+CAA+B;CACnC,CAAC;AAEF;;;;;;;GAOG;AACH,SAAS,sBAAsB;IAC7B,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;QAElG,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,IAAA,yBAAU,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE3C,uEAAuE;YACvE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,OAAO;YACT,CAAC;YAED,IAAI,IAAI,GAAG,QAAQ,CAAC;YACpB,IAAI,GAAG,IAAA,mCAAgB,EAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAA,6CAAwB,EAAC,IAAI,CAAC,CAAC;YACtC,IAAI,GAAG,IAAA,qCAAqB,EAAC,IAAI,CAAC,CAAC;YAEnC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC/B,SAAS,EAAE,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,SAAS,sBAAsB,CAAC,CAAC;IACtE,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,OAAO;IACrB,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QACxE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAExB,OAAO,IAAA,kBAAK,EAAC,CAAC,sBAAsB,EAAE,EAAE,IAAA,qCAAgB,GAAE,EAAE,IAAA,oCAAoB,GAAE,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtG,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/angular/schematics/ng-update/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAyEH,0BAQC;AA/ED,2DAAiF;AAEjF,8DAIoC;AACpC,oEAA8F;AAC9F,wEAIyC;AACzC,uDAAkD;AAElD;;;GAGG;AACH,MAAM,aAAa,GAAsB;IACvC,GAAG,8CAA2B;IAC9B,GAAG,yDAAoC;IACvC,GAAG,+CAA+B;CACnC,CAAC;AAEF;;;;;;;GAOG;AACH,SAAS,sBAAsB;IAC7B,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;QAE/F,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,IAAA,yBAAU,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;YACrC,SAAS,EAAE,CAAC;YAEZ,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAE3C,uEAAuE;YACvE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnD,OAAO;YACT,CAAC;YAED,IAAI,IAAI,GAAG,QAAQ,CAAC;YACpB,IAAI,GAAG,IAAA,mCAAgB,EAAC,IAAI,CAAC,CAAC;YAC9B,IAAI,GAAG,IAAA,6CAAwB,EAAC,IAAI,CAAC,CAAC;YACtC,IAAI,GAAG,IAAA,qCAAqB,EAAC,IAAI,CAAC,CAAC;YAEnC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBAC/B,WAAW,EAAE,CAAC;gBACd,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,QAAQ,EAAE,CAAC,CAAC;YAChD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,WAAW,OAAO,SAAS,mBAAmB,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,OAAO;IACrB,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;QAC7D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAExB,OAAO,IAAA,kBAAK,EAAC,CAAC,sBAAsB,EAAE,EAAE,IAAA,qCAAgB,GAAE,EAAE,IAAA,oCAAoB,GAAE,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtG,CAAC,CAAC;AACJ,CAAC"}
@@ -3,3 +3,4 @@ export declare const CSS_MIGRATION_CANDIDATES: readonly string[];
3
3
  export declare const CSS_MIGRATION_INLINE_CANDIDATES: readonly string[];
4
4
  export declare function transformInlineStyles(text: string): string;
5
5
  export declare function migrateCssProperties(): Rule;
6
+ export declare function applyStyleTransforms(text: string, filePath: string | null): string;
@@ -9,33 +9,38 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.CSS_MIGRATION_INLINE_CANDIDATES = exports.CSS_MIGRATION_CANDIDATES = void 0;
10
10
  exports.transformInlineStyles = transformInlineStyles;
11
11
  exports.migrateCssProperties = migrateCssProperties;
12
+ exports.applyStyleTransforms = applyStyleTransforms;
12
13
  const css_replacements_1 = require("../replacements/css-replacements");
13
14
  const file_visitor_1 = require("../utils/file-visitor");
15
+ const regexp_utils_1 = require("../utils/regexp-utils");
14
16
  // ---------------------------------------------------------------------------
15
17
  // Pre-compiled regex arrays — built once at module load, not per-file
16
18
  // ---------------------------------------------------------------------------
19
+ // Negative lookahead (?![-\w]) ensures a CSS custom property name that is a
20
+ // prefix of a longer one (e.g. --clr-foo--active inside --clr-foo--active-extra)
21
+ // is NOT matched, preventing false-positive renames.
17
22
  const COMPILED_PROPERTY_RENAME_REGEXES = css_replacements_1.CSS_PROPERTY_REPLACEMENTS.filter(r => r.new).map(r => ({
18
23
  old: r.old,
19
24
  new: r.new,
20
- regex: new RegExp(escapeRegExp(r.old), 'g'),
25
+ regex: (0, regexp_utils_1.prefixNegativeLookaheadRegex)(r.old),
21
26
  }));
22
27
  const COMPILED_PROPERTY_REMOVE_REGEXES = css_replacements_1.CSS_PROPERTY_REPLACEMENTS.filter(r => !r.new).map(r => ({
23
28
  old: r.old,
24
- regex: new RegExp(`(\\s*)(${escapeRegExp(r.old)}\\s*:[^;]*;)`, 'g'),
29
+ regex: new RegExp(`(\\s*)(${(0, regexp_utils_1.escapeRegExp)(r.old)}(?![-\\w])\\s*:[^;]*;)`, 'g'),
25
30
  }));
26
31
  const COMPILED_SELECTOR_REGEXES = css_replacements_1.CSS_SELECTOR_REPLACEMENTS.map(r => ({
27
32
  old: r.old,
28
33
  new: r.new,
29
- regex: new RegExp(`\\b${escapeRegExp(r.old)}\\b`, 'g'),
34
+ regex: (0, regexp_utils_1.wordBoundaryRegex)(r.old),
30
35
  }));
31
36
  const COMPILED_ATTRIBUTE_REGEXES = css_replacements_1.CSS_ATTRIBUTE_REPLACEMENTS.map(r => ({
32
37
  old: r.old,
33
38
  new: r.new,
34
- regex: new RegExp(escapeRegExp(r.old), 'g'),
39
+ regex: new RegExp((0, regexp_utils_1.escapeRegExp)(r.old), 'g'),
35
40
  }));
36
41
  const COMPILED_MIXIN_REGEXES = css_replacements_1.REMOVED_SCSS_MIXINS.map(name => ({
37
42
  name,
38
- regex: new RegExp(`@include\\s+${escapeRegExp(name)}\\s*\\([^)]*\\)\\s*;`, 'g'),
43
+ regex: new RegExp(`@include\\s+${(0, regexp_utils_1.escapeRegExp)(name)}\\s*\\([^)]*\\)\\s*;`, 'g'),
39
44
  }));
40
45
  // ---------------------------------------------------------------------------
41
46
  // Fast-path candidate strings
@@ -65,10 +70,13 @@ function transformInlineStyles(text) {
65
70
  // ---------------------------------------------------------------------------
66
71
  function migrateCssProperties() {
67
72
  return (tree, context) => {
68
- context.logger.info(' Migrating CSS custom properties and selectors...');
69
- let styleFileCount = 0;
70
- let tsFileCount = 0;
73
+ context.logger.info(' Migrating style files (CSS, SCSS, Sass, Less)');
74
+ let styleScanCount = 0;
75
+ let styleUpdateCount = 0;
76
+ let tsScanCount = 0;
77
+ let tsUpdateCount = 0;
71
78
  (0, file_visitor_1.visitFiles)(tree, '**/*.{css,scss,sass,less}', filePath => {
79
+ styleScanCount++;
72
80
  const content = tree.read(filePath);
73
81
  if (!content) {
74
82
  return;
@@ -80,10 +88,12 @@ function migrateCssProperties() {
80
88
  const updated = applyStyleTransforms(original, filePath);
81
89
  if (updated !== original) {
82
90
  tree.overwrite(filePath, updated);
83
- styleFileCount++;
91
+ styleUpdateCount++;
92
+ context.logger.info(` UPDATE ${filePath}`);
84
93
  }
85
94
  });
86
95
  (0, file_visitor_1.visitFiles)(tree, '**/*.ts', filePath => {
96
+ tsScanCount++;
87
97
  const content = tree.read(filePath);
88
98
  if (!content) {
89
99
  return;
@@ -95,14 +105,17 @@ function migrateCssProperties() {
95
105
  const updated = transformInlineStyles(original);
96
106
  if (updated !== original) {
97
107
  tree.overwrite(filePath, updated);
98
- tsFileCount++;
108
+ tsUpdateCount++;
109
+ context.logger.info(` UPDATE ${filePath}`);
99
110
  }
100
111
  });
101
- context.logger.info(` Updated ${styleFileCount} style file(s) and ${tsFileCount} inline style(s).`);
112
+ const totalScanned = styleScanCount + tsScanCount;
113
+ const totalUpdated = styleUpdateCount + tsUpdateCount;
114
+ context.logger.info(` ${totalUpdated} of ${totalScanned} file(s) updated.`);
102
115
  };
103
116
  }
104
117
  // ---------------------------------------------------------------------------
105
- // Private helpers
118
+ // Helpers — exported for direct testing; not part of the public schematic API
106
119
  // ---------------------------------------------------------------------------
107
120
  function applyStyleTransforms(text, filePath) {
108
121
  text = replaceCssProperties(text);
@@ -161,7 +174,4 @@ function replaceScssMixins(text) {
161
174
  }
162
175
  return text;
163
176
  }
164
- function escapeRegExp(str) {
165
- return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
166
- }
167
177
  //# sourceMappingURL=css-migration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"css-migration.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/migrations/css-migration.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA6DH,sDAUC;AAMD,oDA6CC;AAtHD,uEAK0C;AAC1C,wDAAmD;AAEnD,8EAA8E;AAC9E,sEAAsE;AACtE,8EAA8E;AAE9E,MAAM,gCAAgC,GAAG,4CAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9F,GAAG,EAAE,CAAC,CAAC,GAAG;IACV,GAAG,EAAE,CAAC,CAAC,GAAG;IACV,KAAK,EAAE,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;CAC5C,CAAC,CAAC,CAAC;AAEJ,MAAM,gCAAgC,GAAG,4CAAyB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/F,GAAG,EAAE,CAAC,CAAC,GAAG;IACV,KAAK,EAAE,IAAI,MAAM,CAAC,UAAU,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC;CACpE,CAAC,CAAC,CAAC;AAEJ,MAAM,yBAAyB,GAAG,4CAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,GAAG,EAAE,CAAC,CAAC,GAAG;IACV,GAAG,EAAE,CAAC,CAAC,GAAG;IACV,KAAK,EAAE,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC;CACvD,CAAC,CAAC,CAAC;AAEJ,MAAM,0BAA0B,GAAG,6CAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACtE,GAAG,EAAE,CAAC,CAAC,GAAG;IACV,GAAG,EAAE,CAAC,CAAC,GAAG;IACV,KAAK,EAAE,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;CAC5C,CAAC,CAAC,CAAC;AAEJ,MAAM,sBAAsB,GAAG,sCAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9D,IAAI;IACJ,KAAK,EAAE,IAAI,MAAM,CAAC,eAAe,YAAY,CAAC,IAAI,CAAC,sBAAsB,EAAE,GAAG,CAAC;CAChF,CAAC,CAAC,CAAC;AAEJ,8EAA8E;AAC9E,8BAA8B;AAC9B,8EAA8E;AAEjE,QAAA,wBAAwB,GAAsB;IACzD,GAAG,4CAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5C,GAAG,4CAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC5C,GAAG,6CAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,GAAG,sCAAmB;CACvB,CAAC;AAEW,QAAA,+BAA+B,GAAG,gCAAwB,CAAC;AAExE,8EAA8E;AAC9E,oEAAoE;AACpE,8EAA8E;AAE9E,SAAgB,qBAAqB,CAAC,IAAY;IAChD,MAAM,WAAW,GAAG,4BAA4B,CAAC;IAEjD,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,aAAqB,EAAE,EAAE;QAChE,IAAI,CAAC,uCAA+B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;QAC1D,OAAO,OAAO,KAAK,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACnF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,8EAA8E;AAC9E,4DAA4D;AAC5D,8EAA8E;AAE9E,SAAgB,oBAAoB;IAClC,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;QAE1E,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,IAAA,yBAAU,EAAC,IAAI,EAAE,2BAA2B,EAAE,QAAQ,CAAC,EAAE;YACvD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,gCAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC9D,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACzD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAClC,cAAc,EAAE,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAA,yBAAU,EAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3C,IAAI,CAAC,uCAA+B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrE,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;gBACzB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAClC,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,cAAc,sBAAsB,WAAW,mBAAmB,CAAC,CAAC;IACzG,CAAC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,SAAS,oBAAoB,CAAC,IAAY,EAAE,QAAuB;IACjE,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,UAAU,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjG,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,KAAK,MAAM,CAAC,IAAI,gCAAgC,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,gCAAgC,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC,GAAG,iCAAiC,CAAC,CAAC;IACrG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,KAAK,MAAM,CAAC,IAAI,yBAAyB,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACxC,KAAK,MAAM,CAAC,IAAI,0BAA0B,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,KAAK,MAAM,CAAC,IAAI,sBAAsB,EAAE,CAAC;QACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QACD,CAAC,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;QACtB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,qCAAqC,CAAC,CAAC,IAAI,6BAA6B,CAAC,CAAC;IACzG,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"css-migration.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/migrations/css-migration.ts"],"names":[],"mappings":"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"}
@@ -12,35 +12,46 @@ exports.migrateImports = migrateImports;
12
12
  const import_replacements_1 = require("../replacements/import-replacements");
13
13
  const symbol_replacements_1 = require("../replacements/symbol-replacements");
14
14
  const file_visitor_1 = require("../utils/file-visitor");
15
+ const regexp_utils_1 = require("../utils/regexp-utils");
15
16
  // ---------------------------------------------------------------------------
16
17
  // Pre-compiled regex arrays — built once at module load, not per-file
17
18
  // ---------------------------------------------------------------------------
18
19
  // Sort import replacements by path length descending so more-specific paths
19
20
  // (e.g. '@clr/angular/src/accordion/stepper') match before shorter prefixes.
20
21
  const SORTED_IMPORT_REPLACEMENTS = [...import_replacements_1.IMPORT_REPLACEMENTS].sort((a, b) => b.oldModule.length - a.oldModule.length);
21
- const COMPILED_IMPORT_REPLACEMENTS = SORTED_IMPORT_REPLACEMENTS.map(r => ({
22
- ...r,
23
- regex: r.oldSymbol === '*'
24
- ? new RegExp(`(from\\s+['"])${escapeRegExp(r.oldModule)}(?=[/'"])`, 'g')
25
- : new RegExp(`(import\\s*\\{[^}]*\\b)${escapeRegExp(r.oldSymbol)}(\\b[^}]*\\}\\s*from\\s*['"])${escapeRegExp(r.oldModule)}(['"])`, 'g'),
22
+ // Wildcard replacements: change the whole module path for all symbols.
23
+ const COMPILED_WILDCARD_IMPORT_REGEXES = SORTED_IMPORT_REPLACEMENTS.filter(r => r.oldSymbol === '*').map(r => ({
24
+ oldModule: r.oldModule,
25
+ newModule: r.newModule,
26
+ regex: new RegExp(`(from\\s+['"])${(0, regexp_utils_1.escapeRegExp)(r.oldModule)}(?=[/'"])`, 'g'),
27
+ }));
28
+ // Symbol-specific replacements: only the named symbol moves to the new module.
29
+ // Kept as plain data — splitSymbolImport() handles them at runtime to avoid
30
+ // the false positive where sibling symbols in the same import are dragged to
31
+ // the wrong module path.
32
+ const SYMBOL_SPECIFIC_IMPORTS = SORTED_IMPORT_REPLACEMENTS.filter(r => r.oldSymbol !== '*').map(r => ({
33
+ oldModule: r.oldModule,
34
+ newModule: r.newModule,
35
+ oldSymbol: r.oldSymbol,
36
+ newSymbol: r.newSymbol,
26
37
  }));
27
38
  // Only symbols with a non-empty new name are renamed here; removed symbols handled separately.
28
39
  const COMPILED_SYMBOL_REPLACEMENTS = symbol_replacements_1.SYMBOL_REPLACEMENTS.filter(r => r.new).map(r => ({
29
40
  ...r,
30
41
  // Ç (U+00C7) is not an ASCII word character so \b doesn't delimit it.
31
- // Use lookahead/lookbehind to avoid partial matches.
42
+ // Use explicit lookahead/lookbehind to avoid partial matches.
32
43
  regex: r.old.startsWith('Ç')
33
- ? new RegExp(`(?<![A-Za-z0-9_$Ç])${escapeRegExp(r.old)}(?![A-Za-z0-9_$])`, 'g')
34
- : new RegExp(`\\b${escapeRegExp(r.old)}\\b`, 'g'),
44
+ ? new RegExp(`(?<![A-Za-z0-9_$Ç])${(0, regexp_utils_1.escapeRegExp)(r.old)}(?![A-Za-z0-9_$])`, 'g')
45
+ : (0, regexp_utils_1.wordBoundaryRegex)(r.old),
35
46
  }));
36
47
  const REMOVED_SYMBOLS = symbol_replacements_1.SYMBOL_REPLACEMENTS.filter(r => r.new === '').map(r => r.old);
37
- const REMOVED_SYMBOL_SOLE_IMPORT_REGEXES = REMOVED_SYMBOLS.map(sym => new RegExp(`^\\s*import\\s*\\{\\s*${escapeRegExp(sym)}\\s*\\}\\s*from\\s*['"][^'"]+['"]\\s*;?\\s*$`, 'gm'));
38
- const REMOVED_SYMBOL_LEADING_COMMA_REGEXES = REMOVED_SYMBOLS.map(sym => new RegExp(`\\b${escapeRegExp(sym)}\\b\\s*,\\s*`, 'g'));
39
- const REMOVED_SYMBOL_TRAILING_COMMA_REGEXES = REMOVED_SYMBOLS.map(sym => new RegExp(`\\s*,\\s*${escapeRegExp(sym)}\\b`, 'g'));
48
+ const REMOVED_SYMBOL_SOLE_IMPORT_REGEXES = REMOVED_SYMBOLS.map(sym => new RegExp(`^\\s*import\\s*\\{\\s*${(0, regexp_utils_1.escapeRegExp)(sym)}\\s*\\}\\s*from\\s*['"][^'"]+['"]\\s*;?\\s*$`, 'gm'));
49
+ const REMOVED_SYMBOL_LEADING_COMMA_REGEXES = REMOVED_SYMBOLS.map(sym => new RegExp(`\\b${(0, regexp_utils_1.escapeRegExp)(sym)}\\b\\s*,\\s*`, 'g'));
50
+ const REMOVED_SYMBOL_TRAILING_COMMA_REGEXES = REMOVED_SYMBOLS.map(sym => new RegExp(`\\s*,\\s*${(0, regexp_utils_1.escapeRegExp)(sym)}\\b`, 'g'));
40
51
  const REMOVED_SYMBOL_USAGE_REGEXES = REMOVED_SYMBOLS.map(sym => ({
41
52
  sym,
42
- test: new RegExp(`\\b${escapeRegExp(sym)}\\b`),
43
- replace: new RegExp(`\\b${escapeRegExp(sym)}\\b`, 'g'),
53
+ test: new RegExp(`\\b${(0, regexp_utils_1.escapeRegExp)(sym)}\\b`),
54
+ replace: new RegExp(`\\b${(0, regexp_utils_1.escapeRegExp)(sym)}\\b`, 'g'),
44
55
  }));
45
56
  // ---------------------------------------------------------------------------
46
57
  // Fast-path candidate strings — if none present, skip the file entirely
@@ -68,9 +79,11 @@ function transformImports(text) {
68
79
  // ---------------------------------------------------------------------------
69
80
  function migrateImports() {
70
81
  return (tree, context) => {
71
- context.logger.info(' Migrating TypeScript imports and symbols...');
82
+ context.logger.info(' Migrating TypeScript imports and symbols');
83
+ let scanCount = 0;
72
84
  let fileCount = 0;
73
85
  (0, file_visitor_1.visitFiles)(tree, '**/*.ts', filePath => {
86
+ scanCount++;
74
87
  const content = tree.read(filePath);
75
88
  if (!content) {
76
89
  return;
@@ -80,29 +93,70 @@ function migrateImports() {
80
93
  if (updated !== original) {
81
94
  tree.overwrite(filePath, updated);
82
95
  fileCount++;
96
+ context.logger.info(` UPDATE ${filePath}`);
83
97
  }
84
98
  });
85
- context.logger.info(` Updated ${fileCount} TypeScript file(s).`);
99
+ context.logger.info(` ${fileCount} of ${scanCount} file(s) updated.`);
86
100
  };
87
101
  }
88
102
  // ---------------------------------------------------------------------------
89
103
  // Private helpers
90
104
  // ---------------------------------------------------------------------------
91
105
  function replaceImportPaths(text) {
92
- for (const r of COMPILED_IMPORT_REPLACEMENTS) {
106
+ // Wildcard replacements: move all symbols from oldModule to newModule.
107
+ for (const r of COMPILED_WILDCARD_IMPORT_REGEXES) {
93
108
  if (!text.includes(r.oldModule)) {
94
109
  continue;
95
110
  }
96
111
  r.regex.lastIndex = 0;
97
- if (r.oldSymbol === '*') {
98
- text = text.replace(r.regex, `$1${r.newModule}`);
99
- }
100
- else {
101
- text = text.replace(r.regex, `$1${r.newSymbol}$2${r.newModule}$3`);
112
+ text = text.replace(r.regex, `$1${r.newModule}`);
113
+ }
114
+ // Symbol-specific replacements: extract one symbol to a new module, leaving
115
+ // any sibling symbols on the original module to prevent false positives.
116
+ for (const r of SYMBOL_SPECIFIC_IMPORTS) {
117
+ if (!text.includes(r.oldModule) || !text.includes(r.oldSymbol)) {
118
+ continue;
102
119
  }
120
+ text = splitSymbolImport(text, r.oldSymbol, r.newSymbol, r.oldModule, r.newModule);
103
121
  }
104
122
  return text;
105
123
  }
124
+ /**
125
+ * Extracts a single named symbol from an import and moves it to a new module.
126
+ *
127
+ * When the import contains sibling symbols, a second import for the remaining
128
+ * symbols on the original module is emitted. This prevents the false positive
129
+ * where all siblings are silently moved to the wrong module.
130
+ *
131
+ * Example (multi-symbol):
132
+ * import { FocusService, ClrFormsModule } from '@clr/angular/forms';
133
+ * →
134
+ * import { FormsFocusService } from '@clr/angular/forms/common';
135
+ * import { ClrFormsModule } from '@clr/angular/forms';
136
+ */
137
+ function splitSymbolImport(text, oldSymbol, newSymbol, oldModule, newModule) {
138
+ const modEsc = (0, regexp_utils_1.escapeRegExp)(oldModule);
139
+ const symEsc = (0, regexp_utils_1.escapeRegExp)(oldSymbol);
140
+ // Compiled once per call, not inside the replace callback.
141
+ const symInListRe = new RegExp(`(?:^|,)\\s*${symEsc}\\s*(?:,|$)`);
142
+ const importRe = new RegExp(`([ \\t]*)import\\s*\\{([^}]*)\\}\\s*from\\s*(['"])${modEsc}\\3(\\s*;?)`, 'gm');
143
+ return text.replace(importRe, (match, indent, symbolList, quote, semi) => {
144
+ if (!symInListRe.test(symbolList)) {
145
+ return match;
146
+ }
147
+ const semiStr = semi.trim() || ';';
148
+ const remaining = symbolList
149
+ .split(',')
150
+ .map(s => s.trim())
151
+ .filter(s => s && s !== oldSymbol);
152
+ if (remaining.length === 0) {
153
+ return `${indent}import { ${newSymbol} } from ${quote}${newModule}${quote}${semiStr}`;
154
+ }
155
+ const newLine = `${indent}import { ${newSymbol} } from ${quote}${newModule}${quote}${semiStr}`;
156
+ const oldLine = `${indent}import { ${remaining.join(', ')} } from ${quote}${oldModule}${quote}${semiStr}`;
157
+ return `${newLine}\n${oldLine}`;
158
+ });
159
+ }
106
160
  function replaceSymbols(text) {
107
161
  for (const r of COMPILED_SYMBOL_REPLACEMENTS) {
108
162
  if (!text.includes(r.old)) {
@@ -130,7 +184,4 @@ function removeDeletedImports(text) {
130
184
  }
131
185
  return text;
132
186
  }
133
- function escapeRegExp(str) {
134
- return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
135
- }
136
187
  //# sourceMappingURL=import-migration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"import-migration.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/migrations/import-migration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import-migration.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/migrations/import-migration.ts"],"names":[],"mappings":"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"}
@@ -3,3 +3,4 @@ export declare const TEMPLATE_MIGRATION_HTML_CANDIDATES: readonly string[];
3
3
  export declare const TEMPLATE_MIGRATION_INLINE_CANDIDATES: readonly string[];
4
4
  export declare function transformInlineTemplates(text: string): string;
5
5
  export declare function migrateTemplates(): Rule;
6
+ export declare function applyHtmlTransforms(text: string): string;
@@ -9,37 +9,47 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.TEMPLATE_MIGRATION_INLINE_CANDIDATES = exports.TEMPLATE_MIGRATION_HTML_CANDIDATES = void 0;
10
10
  exports.transformInlineTemplates = transformInlineTemplates;
11
11
  exports.migrateTemplates = migrateTemplates;
12
+ exports.applyHtmlTransforms = applyHtmlTransforms;
12
13
  const css_replacements_1 = require("../replacements/css-replacements");
13
14
  const template_replacements_1 = require("../replacements/template-replacements");
14
15
  const file_visitor_1 = require("../utils/file-visitor");
16
+ const regexp_utils_1 = require("../utils/regexp-utils");
15
17
  // ---------------------------------------------------------------------------
16
18
  // Pre-compiled regex arrays — built once at module load, not per-file
17
19
  // ---------------------------------------------------------------------------
18
20
  const COMPILED_OUTPUT_REGEXES = template_replacements_1.TEMPLATE_OUTPUT_REPLACEMENTS.map(r => ({
19
21
  old: r.old,
20
22
  new: r.new,
21
- regex: new RegExp(`\\(${escapeRegExp(r.old)}\\)`, 'g'),
23
+ regex: new RegExp(`\\(${(0, regexp_utils_1.escapeRegExp)(r.old)}\\)`, 'g'),
22
24
  }));
23
25
  const COMPILED_INPUT_BOUND_REGEXES = template_replacements_1.TEMPLATE_INPUT_REPLACEMENTS.map(r => ({
24
26
  old: r.old,
25
27
  new: r.new,
26
- boundRegex: new RegExp(`\\[${escapeRegExp(r.old)}\\]`, 'g'),
27
- bareRegex: new RegExp(`(?<=\\s)${escapeRegExp(r.old)}(?==)`, 'g'),
28
+ boundRegex: new RegExp(`\\[${(0, regexp_utils_1.escapeRegExp)(r.old)}\\]`, 'g'),
29
+ bareRegex: new RegExp(`(?<=\\s)${(0, regexp_utils_1.escapeRegExp)(r.old)}(?==)`, 'g'),
28
30
  }));
29
- const COMPILED_ATTR_REGEXES = template_replacements_1.TEMPLATE_ATTRIBUTE_REPLACEMENTS.map(r => ({
31
+ // cds-icon [attr.*] replacements: applied only within <cds-icon> opening tags to
32
+ // avoid false positives on native elements like <input [attr.size]="x">.
33
+ const COMPILED_CDS_ICON_ATTR_ENTRIES = template_replacements_1.TEMPLATE_ATTRIBUTE_REPLACEMENTS.filter(r => r.context === 'cds-icon');
34
+ // Non-scoped attribute replacements: applied globally (e.g. clrPopoverAnchor).
35
+ // Word boundaries (\b) prevent matching inside longer identifiers such as clrPopoverAnchorClose.
36
+ const COMPILED_GLOBAL_ATTR_REGEXES = template_replacements_1.TEMPLATE_ATTRIBUTE_REPLACEMENTS.filter(r => r.context !== 'cds-icon').map(r => ({
30
37
  old: r.old,
31
38
  new: r.new,
32
- regex: new RegExp(escapeRegExp(r.old), 'g'),
39
+ regex: (0, regexp_utils_1.wordBoundaryRegex)(r.old),
33
40
  }));
41
+ // Quote-aware regex that matches a complete <cds-icon …> or <cds-icon … /> opening tag.
42
+ // Handles attribute values that contain > (e.g. [attr.size]="size > 0 ? 'lg' : 'md'").
43
+ const CDS_ICON_TAG_RE = /<cds-icon\b(?:[^"'/>]|"[^"]*"|'[^']*')*(?:\/?>)/g;
34
44
  const COMPILED_HEADER_REGEXES = template_replacements_1.HEADER_CLASS_REPLACEMENTS.map(r => ({
35
45
  old: r.old,
36
46
  new: r.new,
37
- regex: new RegExp(`\\b${escapeRegExp(r.old)}\\b`, 'g'),
47
+ regex: (0, regexp_utils_1.wordBoundaryRegex)(r.old),
38
48
  }));
39
49
  const COMPILED_CDS_TEXT_REGEXES = css_replacements_1.CSS_ATTRIBUTE_REPLACEMENTS.map(r => ({
40
50
  old: r.old,
41
51
  new: r.new,
42
- regex: new RegExp(escapeRegExp(r.old), 'g'),
52
+ regex: new RegExp((0, regexp_utils_1.escapeRegExp)(r.old), 'g'),
43
53
  }));
44
54
  // ---------------------------------------------------------------------------
45
55
  // Fast-path candidate strings
@@ -70,10 +80,13 @@ function transformInlineTemplates(text) {
70
80
  // ---------------------------------------------------------------------------
71
81
  function migrateTemplates() {
72
82
  return (tree, context) => {
73
- context.logger.info(' Migrating HTML templates...');
74
- let htmlFileCount = 0;
75
- let tsFileCount = 0;
83
+ context.logger.info(' Migrating HTML templates');
84
+ let htmlScanCount = 0;
85
+ let htmlUpdateCount = 0;
86
+ let tsScanCount = 0;
87
+ let tsUpdateCount = 0;
76
88
  (0, file_visitor_1.visitFiles)(tree, '**/*.html', filePath => {
89
+ htmlScanCount++;
77
90
  const content = tree.read(filePath);
78
91
  if (!content) {
79
92
  return;
@@ -85,10 +98,12 @@ function migrateTemplates() {
85
98
  const updated = applyHtmlTransforms(original);
86
99
  if (updated !== original) {
87
100
  tree.overwrite(filePath, updated);
88
- htmlFileCount++;
101
+ htmlUpdateCount++;
102
+ context.logger.info(` UPDATE ${filePath}`);
89
103
  }
90
104
  });
91
105
  (0, file_visitor_1.visitFiles)(tree, '**/*.ts', filePath => {
106
+ tsScanCount++;
92
107
  const content = tree.read(filePath);
93
108
  if (!content) {
94
109
  return;
@@ -100,14 +115,17 @@ function migrateTemplates() {
100
115
  const updated = transformInlineTemplates(original);
101
116
  if (updated !== original) {
102
117
  tree.overwrite(filePath, updated);
103
- tsFileCount++;
118
+ tsUpdateCount++;
119
+ context.logger.info(` UPDATE ${filePath}`);
104
120
  }
105
121
  });
106
- context.logger.info(` Updated ${htmlFileCount} HTML template(s) and ${tsFileCount} inline template(s).`);
122
+ const totalScanned = htmlScanCount + tsScanCount;
123
+ const totalUpdated = htmlUpdateCount + tsUpdateCount;
124
+ context.logger.info(` ${totalUpdated} of ${totalScanned} file(s) updated.`);
107
125
  };
108
126
  }
109
127
  // ---------------------------------------------------------------------------
110
- // Private helpers
128
+ // Helpers — exported for direct testing; not part of the public schematic API
111
129
  // ---------------------------------------------------------------------------
112
130
  function applyHtmlTransforms(text) {
113
131
  text = migrateOutputBindings(text);
@@ -140,7 +158,20 @@ function migrateInputBindings(text) {
140
158
  return text;
141
159
  }
142
160
  function migrateCdsIconAttributes(text) {
143
- for (const r of COMPILED_ATTR_REGEXES) {
161
+ // Scoped pass: only touch [attr.*] inside <cds-icon> opening tags.
162
+ if (COMPILED_CDS_ICON_ATTR_ENTRIES.some(r => text.includes(r.old))) {
163
+ CDS_ICON_TAG_RE.lastIndex = 0;
164
+ text = text.replace(CDS_ICON_TAG_RE, tagMatch => {
165
+ for (const { old: oldStr, new: newStr } of COMPILED_CDS_ICON_ATTR_ENTRIES) {
166
+ if (tagMatch.includes(oldStr)) {
167
+ tagMatch = tagMatch.split(oldStr).join(newStr);
168
+ }
169
+ }
170
+ return tagMatch;
171
+ });
172
+ }
173
+ // Global pass: non-scoped attribute replacements.
174
+ for (const r of COMPILED_GLOBAL_ATTR_REGEXES) {
144
175
  if (!text.includes(r.old)) {
145
176
  continue;
146
177
  }
@@ -169,7 +200,4 @@ function migrateCdsTextAttributes(text) {
169
200
  }
170
201
  return text;
171
202
  }
172
- function escapeRegExp(str) {
173
- return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
174
- }
175
203
  //# sourceMappingURL=template-migration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template-migration.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/migrations/template-migration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template-migration.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/migrations/template-migration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { HostTree, SchematicContext } from '@angular-devkit/schematics';
2
+ export declare function createContext(): SchematicContext;
3
+ /** Runs all three migration phases against an in-memory tree (mirrors index.ts). */
4
+ export declare function runMigrations(tree: HostTree): HostTree;
5
+ /** Applies all pure TypeScript transforms in sequence (mirrors the unified pass in index.ts). */
6
+ export declare function applyTsTransforms(text: string): string;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
5
+ * This software is released under MIT license.
6
+ * The full license information can be found in LICENSE in the root directory of this project.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.createContext = createContext;
10
+ exports.runMigrations = runMigrations;
11
+ exports.applyTsTransforms = applyTsTransforms;
12
+ const core_1 = require("@angular-devkit/core");
13
+ const css_migration_1 = require("../migrations/css-migration");
14
+ const import_migration_1 = require("../migrations/import-migration");
15
+ const template_migration_1 = require("../migrations/template-migration");
16
+ function createContext() {
17
+ return { logger: new core_1.logging.NullLogger() };
18
+ }
19
+ /** Runs all three migration phases against an in-memory tree (mirrors index.ts). */
20
+ function runMigrations(tree) {
21
+ const context = createContext();
22
+ (0, import_migration_1.migrateImports)()(tree, context);
23
+ (0, template_migration_1.migrateTemplates)()(tree, context);
24
+ (0, css_migration_1.migrateCssProperties)()(tree, context);
25
+ return tree;
26
+ }
27
+ /** Applies all pure TypeScript transforms in sequence (mirrors the unified pass in index.ts). */
28
+ function applyTsTransforms(text) {
29
+ text = (0, import_migration_1.transformImports)(text);
30
+ text = (0, template_migration_1.transformInlineTemplates)(text);
31
+ text = (0, css_migration_1.transformInlineStyles)(text);
32
+ return text;
33
+ }
34
+ //# sourceMappingURL=test-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-helpers.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/tests/test-helpers.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AASH,sCAEC;AAGD,sCAMC;AAGD,8CAKC;AA1BD,+CAA+C;AAG/C,+DAA0F;AAC1F,qEAAkF;AAClF,yEAA8F;AAE9F,SAAgB,aAAa;IAC3B,OAAO,EAAE,MAAM,EAAE,IAAI,cAAO,CAAC,UAAU,EAAE,EAAiC,CAAC;AAC7E,CAAC;AAED,oFAAoF;AACpF,SAAgB,aAAa,CAAC,IAAc;IAC1C,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,IAAA,iCAAc,GAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChC,IAAA,qCAAgB,GAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,IAAA,oCAAoB,GAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,iGAAiG;AACjG,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,IAAI,GAAG,IAAA,mCAAgB,EAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,GAAG,IAAA,6CAAwB,EAAC,IAAI,CAAC,CAAC;IACtC,IAAI,GAAG,IAAA,qCAAqB,EAAC,IAAI,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,16 @@
1
+ /** Escapes all regex special characters in a literal string. */
2
+ export declare function escapeRegExp(str: string): string;
3
+ /**
4
+ * Builds a regex that matches the literal string only at whole-identifier
5
+ * boundaries (\b), preventing partial matches inside longer names.
6
+ * The `g` flag is set so the regex can be reused with lastIndex reset.
7
+ */
8
+ export declare function wordBoundaryRegex(literal: string): RegExp;
9
+ /**
10
+ * Builds a regex that matches the literal string only when it is NOT
11
+ * immediately followed by a hyphen or word character.
12
+ * Used for CSS custom properties to prevent `--clr-foo` from matching
13
+ * inside `--clr-foo-extra`.
14
+ * The `g` flag is set so the regex can be reused with lastIndex reset.
15
+ */
16
+ export declare function prefixNegativeLookaheadRegex(literal: string): RegExp;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
4
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
5
+ * This software is released under MIT license.
6
+ * The full license information can be found in LICENSE in the root directory of this project.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.escapeRegExp = escapeRegExp;
10
+ exports.wordBoundaryRegex = wordBoundaryRegex;
11
+ exports.prefixNegativeLookaheadRegex = prefixNegativeLookaheadRegex;
12
+ /** Escapes all regex special characters in a literal string. */
13
+ function escapeRegExp(str) {
14
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
15
+ }
16
+ /**
17
+ * Builds a regex that matches the literal string only at whole-identifier
18
+ * boundaries (\b), preventing partial matches inside longer names.
19
+ * The `g` flag is set so the regex can be reused with lastIndex reset.
20
+ */
21
+ function wordBoundaryRegex(literal) {
22
+ return new RegExp(`\\b${escapeRegExp(literal)}\\b`, 'g');
23
+ }
24
+ /**
25
+ * Builds a regex that matches the literal string only when it is NOT
26
+ * immediately followed by a hyphen or word character.
27
+ * Used for CSS custom properties to prevent `--clr-foo` from matching
28
+ * inside `--clr-foo-extra`.
29
+ * The `g` flag is set so the regex can be reused with lastIndex reset.
30
+ */
31
+ function prefixNegativeLookaheadRegex(literal) {
32
+ return new RegExp(`${escapeRegExp(literal)}(?![-\\w])`, 'g');
33
+ }
34
+ //# sourceMappingURL=regexp-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regexp-utils.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/utils/regexp-utils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAGH,oCAEC;AAOD,8CAEC;AASD,oEAEC;AAvBD,gEAAgE;AAChE,SAAgB,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG;AACH,SAAgB,iBAAiB,CAAC,OAAe;IAC/C,OAAO,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,4BAA4B,CAAC,OAAe;IAC1D,OAAO,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;AAC/D,CAAC"}