@rossigee/clarity-angular 18.2.1-fixed → 18.2.1

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 (182) hide show
  1. package/fesm2022/clr-angular-accordion.mjs +355 -0
  2. package/fesm2022/clr-angular-accordion.mjs.map +1 -0
  3. package/fesm2022/clr-angular-button.mjs +713 -0
  4. package/fesm2022/clr-angular-button.mjs.map +1 -0
  5. package/fesm2022/clr-angular-collapsible-panel.mjs +201 -0
  6. package/fesm2022/clr-angular-collapsible-panel.mjs.map +1 -0
  7. package/fesm2022/clr-angular-data-datagrid.mjs +7635 -0
  8. package/fesm2022/clr-angular-data-datagrid.mjs.map +1 -0
  9. package/fesm2022/clr-angular-data-stack-view.mjs +442 -0
  10. package/fesm2022/clr-angular-data-stack-view.mjs.map +1 -0
  11. package/fesm2022/clr-angular-data-tree-view.mjs +1106 -0
  12. package/fesm2022/clr-angular-data-tree-view.mjs.map +1 -0
  13. package/fesm2022/clr-angular-data.mjs +40 -0
  14. package/fesm2022/clr-angular-data.mjs.map +1 -0
  15. package/fesm2022/clr-angular-emphasis-alert.mjs +624 -0
  16. package/fesm2022/clr-angular-emphasis-alert.mjs.map +1 -0
  17. package/fesm2022/clr-angular-emphasis-badge.mjs +69 -0
  18. package/fesm2022/clr-angular-emphasis-badge.mjs.map +1 -0
  19. package/fesm2022/clr-angular-emphasis-common.mjs +25 -0
  20. package/fesm2022/clr-angular-emphasis-common.mjs.map +1 -0
  21. package/fesm2022/clr-angular-emphasis-label.mjs +105 -0
  22. package/fesm2022/clr-angular-emphasis-label.mjs.map +1 -0
  23. package/fesm2022/clr-angular-emphasis.mjs +41 -0
  24. package/fesm2022/clr-angular-emphasis.mjs.map +1 -0
  25. package/fesm2022/clr-angular-forms-checkbox.mjs +270 -0
  26. package/fesm2022/clr-angular-forms-checkbox.mjs.map +1 -0
  27. package/fesm2022/clr-angular-forms-combobox.mjs +1775 -0
  28. package/fesm2022/clr-angular-forms-combobox.mjs.map +1 -0
  29. package/fesm2022/clr-angular-forms-common.mjs +1251 -0
  30. package/fesm2022/clr-angular-forms-common.mjs.map +1 -0
  31. package/fesm2022/clr-angular-forms-datalist.mjs +263 -0
  32. package/fesm2022/clr-angular-forms-datalist.mjs.map +1 -0
  33. package/fesm2022/clr-angular-forms-datepicker.mjs +3274 -0
  34. package/fesm2022/clr-angular-forms-datepicker.mjs.map +1 -0
  35. package/fesm2022/clr-angular-forms-file-input.mjs +826 -0
  36. package/fesm2022/clr-angular-forms-file-input.mjs.map +1 -0
  37. package/fesm2022/clr-angular-forms-input.mjs +153 -0
  38. package/fesm2022/clr-angular-forms-input.mjs.map +1 -0
  39. package/fesm2022/clr-angular-forms-number-input.mjs +236 -0
  40. package/fesm2022/clr-angular-forms-number-input.mjs.map +1 -0
  41. package/fesm2022/clr-angular-forms-password.mjs +233 -0
  42. package/fesm2022/clr-angular-forms-password.mjs.map +1 -0
  43. package/fesm2022/clr-angular-forms-radio.mjs +231 -0
  44. package/fesm2022/clr-angular-forms-radio.mjs.map +1 -0
  45. package/fesm2022/clr-angular-forms-range.mjs +186 -0
  46. package/fesm2022/clr-angular-forms-range.mjs.map +1 -0
  47. package/fesm2022/clr-angular-forms-select.mjs +153 -0
  48. package/fesm2022/clr-angular-forms-select.mjs.map +1 -0
  49. package/fesm2022/clr-angular-forms-textarea.mjs +136 -0
  50. package/fesm2022/clr-angular-forms-textarea.mjs.map +1 -0
  51. package/fesm2022/clr-angular-forms.mjs +100 -0
  52. package/fesm2022/clr-angular-forms.mjs.map +1 -0
  53. package/fesm2022/clr-angular-icon.mjs +7397 -0
  54. package/fesm2022/clr-angular-icon.mjs.map +1 -0
  55. package/fesm2022/clr-angular-layout-breadcrumbs.mjs +120 -0
  56. package/fesm2022/clr-angular-layout-breadcrumbs.mjs.map +1 -0
  57. package/fesm2022/clr-angular-layout-main-container.mjs +100 -0
  58. package/fesm2022/clr-angular-layout-main-container.mjs.map +1 -0
  59. package/fesm2022/clr-angular-layout-nav.mjs +582 -0
  60. package/fesm2022/clr-angular-layout-nav.mjs.map +1 -0
  61. package/fesm2022/clr-angular-layout-tabs.mjs +807 -0
  62. package/fesm2022/clr-angular-layout-tabs.mjs.map +1 -0
  63. package/fesm2022/clr-angular-layout-vertical-nav.mjs +507 -0
  64. package/fesm2022/clr-angular-layout-vertical-nav.mjs.map +1 -0
  65. package/fesm2022/clr-angular-layout.mjs +44 -0
  66. package/fesm2022/clr-angular-layout.mjs.map +1 -0
  67. package/fesm2022/clr-angular-modal.mjs +617 -0
  68. package/fesm2022/clr-angular-modal.mjs.map +1 -0
  69. package/fesm2022/clr-angular-popover-common.mjs +1082 -0
  70. package/fesm2022/clr-angular-popover-common.mjs.map +1 -0
  71. package/fesm2022/clr-angular-popover-dropdown.mjs +492 -0
  72. package/fesm2022/clr-angular-popover-dropdown.mjs.map +1 -0
  73. package/fesm2022/clr-angular-popover-signpost.mjs +494 -0
  74. package/fesm2022/clr-angular-popover-signpost.mjs.map +1 -0
  75. package/fesm2022/clr-angular-popover-tooltip.mjs +293 -0
  76. package/fesm2022/clr-angular-popover-tooltip.mjs.map +1 -0
  77. package/fesm2022/clr-angular-popover.mjs +41 -0
  78. package/fesm2022/clr-angular-popover.mjs.map +1 -0
  79. package/fesm2022/clr-angular-progress-progress-bars.mjs +217 -0
  80. package/fesm2022/clr-angular-progress-progress-bars.mjs.map +1 -0
  81. package/fesm2022/clr-angular-progress-spinner.mjs +132 -0
  82. package/fesm2022/clr-angular-progress-spinner.mjs.map +1 -0
  83. package/fesm2022/clr-angular-stepper.mjs +694 -0
  84. package/fesm2022/clr-angular-stepper.mjs.map +1 -0
  85. package/fesm2022/clr-angular-timeline.mjs +316 -0
  86. package/fesm2022/clr-angular-timeline.mjs.map +1 -0
  87. package/fesm2022/clr-angular-utils-conditional.mjs +351 -0
  88. package/fesm2022/clr-angular-utils-conditional.mjs.map +1 -0
  89. package/fesm2022/clr-angular-utils-loading.mjs +107 -0
  90. package/fesm2022/clr-angular-utils-loading.mjs.map +1 -0
  91. package/fesm2022/clr-angular-utils.mjs +2079 -0
  92. package/fesm2022/clr-angular-utils.mjs.map +1 -0
  93. package/fesm2022/clr-angular-wizard.mjs +3074 -0
  94. package/fesm2022/clr-angular-wizard.mjs.map +1 -0
  95. package/fesm2022/{rossigee-clarity-angular.mjs → clr-angular.mjs} +2 -2
  96. package/fesm2022/clr-angular.mjs.map +1 -0
  97. package/package.json +105 -103
  98. package/schematics/ng-update/index.d.ts +2 -0
  99. package/schematics/ng-update/index.js +69 -0
  100. package/schematics/ng-update/index.js.map +1 -0
  101. package/schematics/ng-update/migrations/css-migration.d.ts +6 -0
  102. package/schematics/ng-update/migrations/css-migration.js +177 -0
  103. package/schematics/ng-update/migrations/css-migration.js.map +1 -0
  104. package/schematics/ng-update/migrations/import-migration.d.ts +4 -0
  105. package/schematics/ng-update/migrations/import-migration.js +187 -0
  106. package/schematics/ng-update/migrations/import-migration.js.map +1 -0
  107. package/schematics/ng-update/migrations/template-migration.d.ts +6 -0
  108. package/schematics/ng-update/migrations/template-migration.js +261 -0
  109. package/schematics/ng-update/migrations/template-migration.js.map +1 -0
  110. package/schematics/ng-update/replacements/css-replacements.d.ts +17 -0
  111. package/schematics/ng-update/replacements/css-replacements.js +74 -0
  112. package/schematics/ng-update/replacements/css-replacements.js.map +1 -0
  113. package/schematics/ng-update/replacements/import-replacements.d.ts +13 -0
  114. package/schematics/ng-update/replacements/import-replacements.js +108 -0
  115. package/schematics/ng-update/replacements/import-replacements.js.map +1 -0
  116. package/schematics/ng-update/replacements/symbol-replacements.d.ts +12 -0
  117. package/schematics/ng-update/replacements/symbol-replacements.js +67 -0
  118. package/schematics/ng-update/replacements/symbol-replacements.js.map +1 -0
  119. package/schematics/ng-update/replacements/template-replacements.d.ts +19 -0
  120. package/schematics/ng-update/replacements/template-replacements.js +57 -0
  121. package/schematics/ng-update/replacements/template-replacements.js.map +1 -0
  122. package/schematics/ng-update/tests/test-helpers.d.ts +6 -0
  123. package/schematics/ng-update/tests/test-helpers.js +34 -0
  124. package/schematics/ng-update/tests/test-helpers.js.map +1 -0
  125. package/schematics/ng-update/utils/file-visitor.d.ts +8 -0
  126. package/schematics/ng-update/utils/file-visitor.js +44 -0
  127. package/schematics/ng-update/utils/file-visitor.js.map +1 -0
  128. package/schematics/ng-update/utils/regexp-utils.d.ts +16 -0
  129. package/schematics/ng-update/utils/regexp-utils.js +34 -0
  130. package/schematics/ng-update/utils/regexp-utils.js.map +1 -0
  131. package/schematics/vitest.config.d.ts +2 -0
  132. package/schematics/vitest.config.js +17 -0
  133. package/schematics/vitest.config.js.map +1 -0
  134. package/types/clr-angular-accordion.d.ts +100 -0
  135. package/types/clr-angular-button.d.ts +169 -0
  136. package/types/clr-angular-collapsible-panel.d.ts +73 -0
  137. package/types/clr-angular-data-datagrid.d.ts +1843 -0
  138. package/types/clr-angular-data-stack-view.d.ts +87 -0
  139. package/types/clr-angular-data-tree-view.d.ts +229 -0
  140. package/types/clr-angular-data.d.ts +15 -0
  141. package/types/clr-angular-emphasis-alert.d.ts +175 -0
  142. package/types/clr-angular-emphasis-badge.d.ts +25 -0
  143. package/types/clr-angular-emphasis-common.d.ts +6 -0
  144. package/types/clr-angular-emphasis-label.d.ts +29 -0
  145. package/types/clr-angular-emphasis.d.ts +15 -0
  146. package/types/clr-angular-forms-checkbox.d.ts +69 -0
  147. package/types/clr-angular-forms-combobox.d.ts +353 -0
  148. package/types/clr-angular-forms-common.d.ts +339 -0
  149. package/types/clr-angular-forms-datalist.d.ts +59 -0
  150. package/types/clr-angular-forms-datepicker.d.ts +986 -0
  151. package/types/clr-angular-forms-file-input.d.ts +193 -0
  152. package/types/clr-angular-forms-input.d.ts +29 -0
  153. package/types/clr-angular-forms-number-input.d.ts +43 -0
  154. package/types/clr-angular-forms-password.d.ts +52 -0
  155. package/types/clr-angular-forms-radio.d.ts +50 -0
  156. package/types/clr-angular-forms-range.d.ts +37 -0
  157. package/types/clr-angular-forms-select.d.ts +36 -0
  158. package/types/clr-angular-forms-textarea.d.ts +29 -0
  159. package/types/clr-angular-forms.d.ts +36 -0
  160. package/types/clr-angular-icon.d.ts +1498 -0
  161. package/types/clr-angular-layout-breadcrumbs.d.ts +45 -0
  162. package/types/clr-angular-layout-main-container.d.ts +28 -0
  163. package/types/clr-angular-layout-nav.d.ts +142 -0
  164. package/types/clr-angular-layout-tabs.d.ts +158 -0
  165. package/types/clr-angular-layout-vertical-nav.d.ts +128 -0
  166. package/types/clr-angular-layout.d.ts +19 -0
  167. package/types/clr-angular-modal.d.ts +160 -0
  168. package/types/clr-angular-popover-common.d.ts +254 -0
  169. package/types/clr-angular-popover-dropdown.d.ts +123 -0
  170. package/types/clr-angular-popover-signpost.d.ts +157 -0
  171. package/types/clr-angular-popover-tooltip.d.ts +83 -0
  172. package/types/clr-angular-popover.d.ts +16 -0
  173. package/types/clr-angular-progress-progress-bars.d.ts +57 -0
  174. package/types/clr-angular-progress-spinner.d.ts +44 -0
  175. package/types/clr-angular-stepper.d.ts +179 -0
  176. package/types/clr-angular-timeline.d.ts +86 -0
  177. package/types/clr-angular-utils-conditional.d.ts +132 -0
  178. package/types/clr-angular-utils-loading.d.ts +38 -0
  179. package/types/clr-angular-utils.d.ts +913 -0
  180. package/types/clr-angular-wizard.d.ts +1508 -0
  181. package/fesm2022/rossigee-clarity-angular.mjs.map +0 -1
  182. /package/types/{rossigee-clarity-angular.d.ts → clr-angular.d.ts} +0 -0
@@ -0,0 +1,187 @@
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.IMPORT_MIGRATION_CANDIDATES = void 0;
10
+ exports.transformImports = transformImports;
11
+ exports.migrateImports = migrateImports;
12
+ const import_replacements_1 = require("../replacements/import-replacements");
13
+ const symbol_replacements_1 = require("../replacements/symbol-replacements");
14
+ const file_visitor_1 = require("../utils/file-visitor");
15
+ const regexp_utils_1 = require("../utils/regexp-utils");
16
+ // ---------------------------------------------------------------------------
17
+ // Pre-compiled regex arrays — built once at module load, not per-file
18
+ // ---------------------------------------------------------------------------
19
+ // Sort import replacements by path length descending so more-specific paths
20
+ // (e.g. '@clr/angular/src/accordion/stepper') match before shorter prefixes.
21
+ const SORTED_IMPORT_REPLACEMENTS = [...import_replacements_1.IMPORT_REPLACEMENTS].sort((a, b) => b.oldModule.length - a.oldModule.length);
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,
37
+ }));
38
+ // Only symbols with a non-empty new name are renamed here; removed symbols handled separately.
39
+ const COMPILED_SYMBOL_REPLACEMENTS = symbol_replacements_1.SYMBOL_REPLACEMENTS.filter(r => r.new).map(r => ({
40
+ ...r,
41
+ // Ç (U+00C7) is not an ASCII word character so \b doesn't delimit it.
42
+ // Use explicit lookahead/lookbehind to avoid partial matches.
43
+ regex: r.old.startsWith('Ç')
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),
46
+ }));
47
+ const REMOVED_SYMBOLS = symbol_replacements_1.SYMBOL_REPLACEMENTS.filter(r => r.new === '').map(r => r.old);
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'));
51
+ const REMOVED_SYMBOL_USAGE_REGEXES = REMOVED_SYMBOLS.map(sym => ({
52
+ sym,
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'),
55
+ }));
56
+ // ---------------------------------------------------------------------------
57
+ // Fast-path candidate strings — if none present, skip the file entirely
58
+ // ---------------------------------------------------------------------------
59
+ exports.IMPORT_MIGRATION_CANDIDATES = [
60
+ ...import_replacements_1.IMPORT_REPLACEMENTS.map(r => r.oldModule),
61
+ ...symbol_replacements_1.SYMBOL_REPLACEMENTS.filter(r => r.new).map(r => r.old),
62
+ ...REMOVED_SYMBOLS,
63
+ ];
64
+ // ---------------------------------------------------------------------------
65
+ // Public pure transform — used by the unified .ts pass in index.ts
66
+ // ---------------------------------------------------------------------------
67
+ function transformImports(text) {
68
+ if (!exports.IMPORT_MIGRATION_CANDIDATES.some(c => text.includes(c))) {
69
+ return text;
70
+ }
71
+ text = replaceImportPaths(text);
72
+ text = replaceSymbols(text);
73
+ text = removeDeletedImports(text);
74
+ return text;
75
+ }
76
+ // ---------------------------------------------------------------------------
77
+ // Schematic Rule — kept for backwards compatibility; unified pass in index.ts
78
+ // is preferred for performance.
79
+ // ---------------------------------------------------------------------------
80
+ function migrateImports() {
81
+ return (tree, context) => {
82
+ context.logger.info(' Migrating TypeScript imports and symbols');
83
+ let scanCount = 0;
84
+ let fileCount = 0;
85
+ (0, file_visitor_1.visitFiles)(tree, '**/*.ts', filePath => {
86
+ scanCount++;
87
+ const content = tree.read(filePath);
88
+ if (!content) {
89
+ return;
90
+ }
91
+ const original = content.toString('utf-8');
92
+ const updated = transformImports(original);
93
+ if (updated !== original) {
94
+ tree.overwrite(filePath, updated);
95
+ fileCount++;
96
+ context.logger.info(` UPDATE ${filePath}`);
97
+ }
98
+ });
99
+ context.logger.info(` ${fileCount} of ${scanCount} file(s) updated.`);
100
+ };
101
+ }
102
+ // ---------------------------------------------------------------------------
103
+ // Private helpers
104
+ // ---------------------------------------------------------------------------
105
+ function replaceImportPaths(text) {
106
+ // Wildcard replacements: move all symbols from oldModule to newModule.
107
+ for (const r of COMPILED_WILDCARD_IMPORT_REGEXES) {
108
+ if (!text.includes(r.oldModule)) {
109
+ continue;
110
+ }
111
+ r.regex.lastIndex = 0;
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;
119
+ }
120
+ text = splitSymbolImport(text, r.oldSymbol, r.newSymbol, r.oldModule, r.newModule);
121
+ }
122
+ return text;
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
+ }
160
+ function replaceSymbols(text) {
161
+ for (const r of COMPILED_SYMBOL_REPLACEMENTS) {
162
+ if (!text.includes(r.old)) {
163
+ continue;
164
+ }
165
+ r.regex.lastIndex = 0;
166
+ text = text.replace(r.regex, r.new);
167
+ }
168
+ return text;
169
+ }
170
+ function removeDeletedImports(text) {
171
+ for (let i = 0; i < REMOVED_SYMBOLS.length; i++) {
172
+ const sym = REMOVED_SYMBOLS[i];
173
+ if (!text.includes(sym)) {
174
+ continue;
175
+ }
176
+ text = text.replace(REMOVED_SYMBOL_SOLE_IMPORT_REGEXES[i], '');
177
+ text = text.replace(REMOVED_SYMBOL_LEADING_COMMA_REGEXES[i], '');
178
+ text = text.replace(REMOVED_SYMBOL_TRAILING_COMMA_REGEXES[i], '');
179
+ const usage = REMOVED_SYMBOL_USAGE_REGEXES[i];
180
+ if (usage.test.test(text)) {
181
+ usage.replace.lastIndex = 0;
182
+ text = text.replace(usage.replace, `${sym} /* TODO: '${sym}' was removed in @clr/angular v18. Use standard KeyboardEvent.key values instead. */`);
183
+ }
184
+ }
185
+ return text;
186
+ }
187
+ //# sourceMappingURL=import-migration.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,6 @@
1
+ import { Rule } from '@angular-devkit/schematics';
2
+ export declare const TEMPLATE_MIGRATION_HTML_CANDIDATES: readonly string[];
3
+ export declare const TEMPLATE_MIGRATION_INLINE_CANDIDATES: readonly string[];
4
+ export declare function transformInlineTemplates(text: string): string;
5
+ export declare function migrateTemplates(): Rule;
6
+ export declare function applyHtmlTransforms(text: string): string;
@@ -0,0 +1,261 @@
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.TEMPLATE_MIGRATION_INLINE_CANDIDATES = exports.TEMPLATE_MIGRATION_HTML_CANDIDATES = void 0;
10
+ exports.transformInlineTemplates = transformInlineTemplates;
11
+ exports.migrateTemplates = migrateTemplates;
12
+ exports.applyHtmlTransforms = applyHtmlTransforms;
13
+ const css_replacements_1 = require("../replacements/css-replacements");
14
+ const template_replacements_1 = require("../replacements/template-replacements");
15
+ const file_visitor_1 = require("../utils/file-visitor");
16
+ const regexp_utils_1 = require("../utils/regexp-utils");
17
+ // ---------------------------------------------------------------------------
18
+ // Pre-compiled regex arrays — built once at module load, not per-file
19
+ // ---------------------------------------------------------------------------
20
+ const COMPILED_OUTPUT_REGEXES = template_replacements_1.TEMPLATE_OUTPUT_REPLACEMENTS.map(r => ({
21
+ old: r.old,
22
+ new: r.new,
23
+ regex: new RegExp(`\\(${(0, regexp_utils_1.escapeRegExp)(r.old)}\\)`, 'g'),
24
+ }));
25
+ const COMPILED_INPUT_BOUND_REGEXES = template_replacements_1.TEMPLATE_INPUT_REPLACEMENTS.map(r => ({
26
+ old: r.old,
27
+ new: r.new,
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'),
30
+ }));
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 => ({
37
+ old: r.old,
38
+ new: r.new,
39
+ regex: (0, regexp_utils_1.wordBoundaryRegex)(r.old),
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;
44
+ // Opening tag of clr-datagrid only (not clr-dg-* children).
45
+ const CLR_DATAGRID_OPEN_TAG_RE = /<clr-datagrid\b(?:[^"'/>]|"[^"]*"|'[^']*')*(?:\/?>)/g;
46
+ // Bare attribute form: clrDgItemsTrackBy="..." (clr-datagrid host only; applied in datagrid pass).
47
+ const BARE_CLR_DG_ITEMS_TRACK_BY_RE = /(?<=\s)clrDgItemsTrackBy(?==)/g;
48
+ const COMPILED_HEADER_REGEXES = template_replacements_1.HEADER_CLASS_REPLACEMENTS.map(r => ({
49
+ old: r.old,
50
+ new: r.new,
51
+ regex: (0, regexp_utils_1.wordBoundaryRegex)(r.old),
52
+ }));
53
+ const COMPILED_CDS_TEXT_REGEXES = css_replacements_1.CSS_ATTRIBUTE_REPLACEMENTS.map(r => ({
54
+ old: r.old,
55
+ new: r.new,
56
+ regex: new RegExp((0, regexp_utils_1.escapeRegExp)(r.old), 'g'),
57
+ }));
58
+ // ---------------------------------------------------------------------------
59
+ // Fast-path candidate strings
60
+ // ---------------------------------------------------------------------------
61
+ exports.TEMPLATE_MIGRATION_HTML_CANDIDATES = [
62
+ ...template_replacements_1.TEMPLATE_OUTPUT_REPLACEMENTS.map(r => r.old),
63
+ ...template_replacements_1.TEMPLATE_INPUT_REPLACEMENTS.map(r => r.old),
64
+ ...template_replacements_1.TEMPLATE_DATAGRID_MIGRATION_CANDIDATES,
65
+ ...template_replacements_1.TEMPLATE_ATTRIBUTE_REPLACEMENTS.map(r => r.old),
66
+ ...template_replacements_1.HEADER_CLASS_REPLACEMENTS.map(r => r.old),
67
+ ...css_replacements_1.CSS_ATTRIBUTE_REPLACEMENTS.map(r => r.old),
68
+ ];
69
+ exports.TEMPLATE_MIGRATION_INLINE_CANDIDATES = exports.TEMPLATE_MIGRATION_HTML_CANDIDATES;
70
+ // ---------------------------------------------------------------------------
71
+ // Public pure transforms — used by the unified .ts pass in index.ts
72
+ // ---------------------------------------------------------------------------
73
+ function transformInlineTemplates(text) {
74
+ const templateRegex = /template\s*:\s*(`[\s\S]*?`|'[\s\S]*?')/g;
75
+ return text.replace(templateRegex, (match, templateContent) => {
76
+ if (!exports.TEMPLATE_MIGRATION_INLINE_CANDIDATES.some(c => templateContent.includes(c))) {
77
+ return match;
78
+ }
79
+ const updated = applyHtmlTransforms(templateContent);
80
+ return updated !== templateContent ? match.replace(templateContent, updated) : match;
81
+ });
82
+ }
83
+ // ---------------------------------------------------------------------------
84
+ // Schematic Rule — visits .html files; .ts inline templates handled in unified pass
85
+ // ---------------------------------------------------------------------------
86
+ function migrateTemplates() {
87
+ return (tree, context) => {
88
+ context.logger.info(' Migrating HTML templates');
89
+ let htmlScanCount = 0;
90
+ let htmlUpdateCount = 0;
91
+ let tsScanCount = 0;
92
+ let tsUpdateCount = 0;
93
+ (0, file_visitor_1.visitFiles)(tree, '**/*.html', filePath => {
94
+ htmlScanCount++;
95
+ const content = tree.read(filePath);
96
+ if (!content) {
97
+ return;
98
+ }
99
+ const original = content.toString('utf-8');
100
+ if (!exports.TEMPLATE_MIGRATION_HTML_CANDIDATES.some(c => original.includes(c))) {
101
+ return;
102
+ }
103
+ const updated = applyHtmlTransforms(original);
104
+ if (updated !== original) {
105
+ tree.overwrite(filePath, updated);
106
+ htmlUpdateCount++;
107
+ context.logger.info(` UPDATE ${filePath}`);
108
+ }
109
+ });
110
+ (0, file_visitor_1.visitFiles)(tree, '**/*.ts', filePath => {
111
+ tsScanCount++;
112
+ const content = tree.read(filePath);
113
+ if (!content) {
114
+ return;
115
+ }
116
+ const original = content.toString('utf-8');
117
+ if (!exports.TEMPLATE_MIGRATION_INLINE_CANDIDATES.some(c => original.includes(c))) {
118
+ return;
119
+ }
120
+ const updated = transformInlineTemplates(original);
121
+ if (updated !== original) {
122
+ tree.overwrite(filePath, updated);
123
+ tsUpdateCount++;
124
+ context.logger.info(` UPDATE ${filePath}`);
125
+ }
126
+ });
127
+ const totalScanned = htmlScanCount + tsScanCount;
128
+ const totalUpdated = htmlUpdateCount + tsUpdateCount;
129
+ context.logger.info(` ${totalUpdated} of ${totalScanned} file(s) updated.`);
130
+ };
131
+ }
132
+ // ---------------------------------------------------------------------------
133
+ // Helpers — exported for direct testing; not part of the public schematic API
134
+ // ---------------------------------------------------------------------------
135
+ function applyHtmlTransforms(text) {
136
+ // Datagrid must run before migrateOutputBindings so `(clrDgSingleSelectedChange)` is still in the
137
+ // source; `hadLegacySingleSelection` uses substring `clrDgSingleSelected` (matches that output name too).
138
+ text = migrateClrDatagridOpeningTags(text);
139
+ text = migrateOutputBindings(text);
140
+ text = migrateInputBindings(text);
141
+ text = migrateCdsIconAttributes(text);
142
+ text = migrateHeaderClasses(text);
143
+ text = migrateCdsTextAttributes(text);
144
+ return text;
145
+ }
146
+ function migrateOutputBindings(text) {
147
+ for (const r of COMPILED_OUTPUT_REGEXES) {
148
+ if (!text.includes(r.old)) {
149
+ continue;
150
+ }
151
+ r.regex.lastIndex = 0;
152
+ text = text.replace(r.regex, `(${r.new})`);
153
+ }
154
+ return text;
155
+ }
156
+ // --- clr-datagrid (#2007 identity input, #2203 selection API) ----------------------------
157
+ function migrateClrDatagridOpeningTags(html) {
158
+ if (!html.includes('<clr-datagrid')) {
159
+ return html;
160
+ }
161
+ CLR_DATAGRID_OPEN_TAG_RE.lastIndex = 0;
162
+ return html.replace(CLR_DATAGRID_OPEN_TAG_RE, transformClrDatagridOpeningTag);
163
+ }
164
+ function transformClrDatagridOpeningTag(openingTag) {
165
+ const hadLegacySingleSelection = openingTag.includes('clrDgSingleSelected');
166
+ let tag = openingTag;
167
+ tag = renameLegacyDatagridSingleOutputs(tag);
168
+ tag = renameLegacyDatagridSingleInputs(tag);
169
+ tag = renameDatagridHostIdentityFn(tag);
170
+ tag = addExplicitSelectionTypeIfMissing(tag, hadLegacySingleSelection);
171
+ return tag;
172
+ }
173
+ function renameLegacyDatagridSingleOutputs(openingTag) {
174
+ return openingTag.split('(clrDgSingleSelectedChange)').join('(clrDgSelectedChange)');
175
+ }
176
+ function renameLegacyDatagridSingleInputs(openingTag) {
177
+ return openingTag
178
+ .split('[(clrDgSingleSelected)]')
179
+ .join('[(clrDgSelected)]')
180
+ .replace(/\[clrDgSingleSelected\]/g, '[clrDgSelected]');
181
+ }
182
+ /** Host-only: `clr-dg-items` keeps `clrDgItemsTrackBy`; this runs only on `<clr-datagrid>` tags. */
183
+ function renameDatagridHostIdentityFn(openingTag) {
184
+ BARE_CLR_DG_ITEMS_TRACK_BY_RE.lastIndex = 0;
185
+ return openingTag
186
+ .split('[clrDgItemsTrackBy]')
187
+ .join('[clrDgItemsIdentityFn]')
188
+ .replace(BARE_CLR_DG_ITEMS_TRACK_BY_RE, 'clrDgItemsIdentityFn');
189
+ }
190
+ /** `tag` is the opening tag after legacy single renames (so implicit multi can see `clrDgSelected`). */
191
+ function addExplicitSelectionTypeIfMissing(tag, hadLegacySingleSelection) {
192
+ if (tag.includes('clrDgSelectionType')) {
193
+ return tag;
194
+ }
195
+ if (hadLegacySingleSelection) {
196
+ return appendAttributeBeforeTagClose(tag, 'clrDgSelectionType="single"');
197
+ }
198
+ if (tag.includes('clrDgSelected')) {
199
+ return appendAttributeBeforeTagClose(tag, 'clrDgSelectionType="multi"');
200
+ }
201
+ return tag;
202
+ }
203
+ function appendAttributeBeforeTagClose(openingTag, attribute) {
204
+ return openingTag.replace(/\s*(\/?>)\s*$/, ` ${attribute}$1`);
205
+ }
206
+ function migrateInputBindings(text) {
207
+ for (const r of COMPILED_INPUT_BOUND_REGEXES) {
208
+ if (!text.includes(r.old)) {
209
+ continue;
210
+ }
211
+ r.boundRegex.lastIndex = 0;
212
+ r.bareRegex.lastIndex = 0;
213
+ text = text.replace(r.boundRegex, `[${r.new}]`);
214
+ text = text.replace(r.bareRegex, r.new);
215
+ }
216
+ return text;
217
+ }
218
+ function migrateCdsIconAttributes(text) {
219
+ // Scoped pass: only touch [attr.*] inside <cds-icon> opening tags.
220
+ if (COMPILED_CDS_ICON_ATTR_ENTRIES.some(r => text.includes(r.old))) {
221
+ CDS_ICON_TAG_RE.lastIndex = 0;
222
+ text = text.replace(CDS_ICON_TAG_RE, tagMatch => {
223
+ for (const { old: oldStr, new: newStr } of COMPILED_CDS_ICON_ATTR_ENTRIES) {
224
+ if (tagMatch.includes(oldStr)) {
225
+ tagMatch = tagMatch.split(oldStr).join(newStr);
226
+ }
227
+ }
228
+ return tagMatch;
229
+ });
230
+ }
231
+ // Global pass: non-scoped attribute replacements.
232
+ for (const r of COMPILED_GLOBAL_ATTR_REGEXES) {
233
+ if (!text.includes(r.old)) {
234
+ continue;
235
+ }
236
+ r.regex.lastIndex = 0;
237
+ text = text.replace(r.regex, r.new);
238
+ }
239
+ return text;
240
+ }
241
+ function migrateHeaderClasses(text) {
242
+ for (const r of COMPILED_HEADER_REGEXES) {
243
+ if (!text.includes(r.old)) {
244
+ continue;
245
+ }
246
+ r.regex.lastIndex = 0;
247
+ text = text.replace(r.regex, r.new);
248
+ }
249
+ return text;
250
+ }
251
+ function migrateCdsTextAttributes(text) {
252
+ for (const r of COMPILED_CDS_TEXT_REGEXES) {
253
+ if (!text.includes(r.old)) {
254
+ continue;
255
+ }
256
+ r.regex.lastIndex = 0;
257
+ text = text.replace(r.regex, r.new);
258
+ }
259
+ return text;
260
+ }
261
+ //# sourceMappingURL=template-migration.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * CSS custom property renames and removals for v18 migration.
3
+ *
4
+ * Applied to .scss, .css, and inline template styles.
5
+ */
6
+ export interface CssReplacement {
7
+ readonly old: string;
8
+ readonly new: string;
9
+ }
10
+ export declare const CSS_PROPERTY_REPLACEMENTS: readonly CssReplacement[];
11
+ export declare const CSS_SELECTOR_REPLACEMENTS: readonly CssReplacement[];
12
+ export declare const CSS_ATTRIBUTE_REPLACEMENTS: readonly CssReplacement[];
13
+ /**
14
+ * SCSS/Sass mixin names that have been removed in v18.
15
+ * Any `@include <name>(...)` call will be commented out with a TODO note.
16
+ */
17
+ export declare const REMOVED_SCSS_MIXINS: readonly string[];
@@ -0,0 +1,74 @@
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.REMOVED_SCSS_MIXINS = exports.CSS_ATTRIBUTE_REPLACEMENTS = exports.CSS_SELECTOR_REPLACEMENTS = exports.CSS_PROPERTY_REPLACEMENTS = void 0;
10
+ exports.CSS_PROPERTY_REPLACEMENTS = [
11
+ // #2229 - Wizard stepnav CSS custom properties
12
+ {
13
+ old: '--clr-wizard-stepnav-text--active',
14
+ new: '--clr-wizard-stepnav-text-selected',
15
+ },
16
+ {
17
+ old: '--clr-wizard-stepnav-item-border-color--active',
18
+ new: '--clr-wizard-stepnav-item-complete-border-color',
19
+ },
20
+ {
21
+ old: '--clr-wizard-stepnav-active-bgcolor',
22
+ new: '--clr-wizard-stepnav-selected-bgcolor',
23
+ },
24
+ {
25
+ old: '--clr-wizard-stepnav-link-hover-bg-color',
26
+ new: '--clr-wizard-stepnav-hover-bgcolor',
27
+ },
28
+ {
29
+ old: '--clr-wizard-stepnav-link-active-bg-color',
30
+ new: '--clr-wizard-stepnav-active-bgcolor',
31
+ },
32
+ // #2230 - Accordion/Collapsible panel deprecated properties
33
+ {
34
+ old: '--clr-accordion-active-background-color',
35
+ new: '--clr-accordion-header-open-background-color',
36
+ },
37
+ {
38
+ old: '--clr-collapsible-panel-active-background-color',
39
+ new: '--clr-collapsible-panel-header-open-background-color',
40
+ },
41
+ // #2229 - Wizard additional rename from beta.1 release
42
+ {
43
+ old: '--clr-wizard-step-title-min-width',
44
+ new: '',
45
+ },
46
+ // #2207 - Accordion step title min width removed
47
+ {
48
+ old: '--clr-accordion-step-title-min-width',
49
+ new: '',
50
+ },
51
+ ];
52
+ exports.CSS_SELECTOR_REPLACEMENTS = [
53
+ // #2180 - Header variant classes removed
54
+ { old: 'header-4', new: 'header-3' },
55
+ { old: 'header-5', new: 'header-3' },
56
+ { old: 'header-6', new: 'header-1' },
57
+ { old: 'header-7', new: 'header-2' },
58
+ ];
59
+ exports.CSS_ATTRIBUTE_REPLACEMENTS = [
60
+ // #2240 - cds-text heading → headline
61
+ { old: "cds-text*='heading'", new: "cds-text*='headline'" },
62
+ { old: 'cds-text*="heading"', new: 'cds-text*="headline"' },
63
+ { old: "[cds-text*='heading']", new: "[cds-text*='headline']" },
64
+ { old: '[cds-text*="heading"]', new: '[cds-text*="headline"]' },
65
+ ];
66
+ /**
67
+ * SCSS/Sass mixin names that have been removed in v18.
68
+ * Any `@include <name>(...)` call will be commented out with a TODO note.
69
+ */
70
+ exports.REMOVED_SCSS_MIXINS = [
71
+ // #2253 - IE/Edge range input mixin removed (beta.2)
72
+ 'range-track-style',
73
+ ];
74
+ //# sourceMappingURL=css-replacements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"css-replacements.js","sourceRoot":"","sources":["../../../../../projects/angular/schematics/ng-update/replacements/css-replacements.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAYU,QAAA,yBAAyB,GAA8B;IAClE,+CAA+C;IAC/C;QACE,GAAG,EAAE,mCAAmC;QACxC,GAAG,EAAE,oCAAoC;KAC1C;IACD;QACE,GAAG,EAAE,gDAAgD;QACrD,GAAG,EAAE,iDAAiD;KACvD;IACD;QACE,GAAG,EAAE,qCAAqC;QAC1C,GAAG,EAAE,uCAAuC;KAC7C;IACD;QACE,GAAG,EAAE,0CAA0C;QAC/C,GAAG,EAAE,oCAAoC;KAC1C;IACD;QACE,GAAG,EAAE,2CAA2C;QAChD,GAAG,EAAE,qCAAqC;KAC3C;IAED,4DAA4D;IAC5D;QACE,GAAG,EAAE,yCAAyC;QAC9C,GAAG,EAAE,8CAA8C;KACpD;IACD;QACE,GAAG,EAAE,iDAAiD;QACtD,GAAG,EAAE,sDAAsD;KAC5D;IAED,uDAAuD;IACvD;QACE,GAAG,EAAE,mCAAmC;QACxC,GAAG,EAAE,EAAE;KACR;IAED,iDAAiD;IACjD;QACE,GAAG,EAAE,sCAAsC;QAC3C,GAAG,EAAE,EAAE;KACR;CACF,CAAC;AAEW,QAAA,yBAAyB,GAA8B;IAClE,yCAAyC;IACzC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;IACpC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;IACpC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;IACpC,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE;CACrC,CAAC;AAEW,QAAA,0BAA0B,GAA8B;IACnE,sCAAsC;IACtC,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,sBAAsB,EAAE;IAC3D,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,EAAE,sBAAsB,EAAE;IAC3D,EAAE,GAAG,EAAE,uBAAuB,EAAE,GAAG,EAAE,wBAAwB,EAAE;IAC/D,EAAE,GAAG,EAAE,uBAAuB,EAAE,GAAG,EAAE,wBAAwB,EAAE;CAChE,CAAC;AAEF;;;GAGG;AACU,QAAA,mBAAmB,GAAsB;IACpD,qDAAqD;IACrD,mBAAmB;CACpB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * TypeScript import path and symbol replacements for v18 migration.
3
+ *
4
+ * Each entry maps an old import to its replacement. The migration will update
5
+ * both the import specifier and optionally rename the imported symbol.
6
+ */
7
+ export interface ImportReplacement {
8
+ readonly oldModule: string;
9
+ readonly newModule: string;
10
+ readonly oldSymbol: string;
11
+ readonly newSymbol: string;
12
+ }
13
+ export declare const IMPORT_REPLACEMENTS: readonly ImportReplacement[];