@po-ui/ng-components 21.33.0 → 22.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/fesm2022/{po-ui-ng-components-po-chart-modal-table.component-B4RdhBpp.mjs → po-ui-ng-components-po-chart-modal-table.component-BfgIJ-rf.mjs} +7 -6
- package/fesm2022/po-ui-ng-components-po-chart-modal-table.component-BfgIJ-rf.mjs.map +1 -0
- package/fesm2022/po-ui-ng-components.mjs +2866 -3250
- package/fesm2022/po-ui-ng-components.mjs.map +1 -1
- package/lib/components/index.d.ts +0 -1
- package/lib/components/po-accordion/po-accordion-item-body/po-accordion-item-body.component.d.ts +4 -0
- package/lib/components/po-accordion/po-accordion.module.d.ts +0 -38
- package/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal.component.d.ts +1 -0
- package/lib/components/po-field/po-search-ai/po-search-ai-base.component.d.ts +0 -4
- package/lib/components/po-listbox/po-listbox-base.component.d.ts +1 -1
- package/lib/components/po-navbar/po-navbar.component.d.ts +2 -3
- package/lib/components/po-navbar/po-navbar.module.d.ts +0 -38
- package/lib/components/po-page/po-page-slide/po-page-slide-base.component.d.ts +0 -39
- package/lib/components/po-page/po-page-slide/po-page-slide.component.d.ts +5 -13
- package/lib/components/po-slide/po-slide.component.d.ts +2 -3
- package/lib/components/po-slide/po-slide.module.d.ts +0 -37
- package/lib/components/po-stepper/po-stepper.component.d.ts +0 -1
- package/lib/components/po-table/po-table.component.d.ts +1 -1
- package/lib/components/po-tree-view/po-tree-view.module.d.ts +1 -0
- package/lib/components/po-widget/po-widget-base.component.d.ts +0 -1
- package/lib/interceptors/po-http-interceptor/po-http-interceptor-base.service.d.ts +3 -8
- package/lib/interceptors/po-http-request/po-http-request-interceptor.service.d.ts +0 -1
- package/lib/services/po-component-injector/po-component-injector.service.d.ts +12 -5
- package/lib/utils/util.d.ts +0 -13
- package/package.json +13 -15
- package/po-ui-ng-components-22.0.0-next.0.tgz +0 -0
- package/schematics/collection.json +0 -20
- package/schematics/migrations.json +5 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-add/setup-project.d.ts +1 -0
- package/schematics/ng-add/setup-project.js +95 -0
- package/schematics/ng-add/setup-project.js.map +1 -1
- package/schematics/ng-generate/sidemenu/files/__appFileName__.spec.ts.template +35 -0
- package/schematics/ng-generate/sidemenu/files/{app.ts.template → __appFileName__.ts.template} +3 -3
- package/schematics/ng-generate/sidemenu/files-standalone/{app.spec.ts.template → __appFileName__.spec.ts.template} +4 -4
- package/schematics/ng-generate/sidemenu/files-standalone/{app.ts.template → __appFileName__.ts.template} +3 -3
- package/schematics/ng-generate/sidemenu/index.js +9 -3
- package/schematics/ng-generate/sidemenu/index.js.map +1 -1
- package/schematics/ng-generate/sidemenu/schema.d.ts +9 -0
- package/schematics/ng-generate/sidemenu/schema.json +5 -0
- package/schematics/ng-update/v14/index.js +1 -1
- package/schematics/ng-update/v15/index.js +1 -1
- package/schematics/ng-update/v16/index.js +1 -1
- package/schematics/ng-update/v17/index.js +1 -1
- package/schematics/ng-update/v18/index.js +3 -3
- package/schematics/ng-update/v18/index.js.map +1 -1
- package/schematics/ng-update/v19/index.js +3 -3
- package/schematics/ng-update/v19/index.js.map +1 -1
- package/schematics/ng-update/v2/index.js +1 -1
- package/schematics/ng-update/v20/index.js +3 -3
- package/schematics/ng-update/v20/index.js.map +1 -1
- package/schematics/ng-update/v21/index.js +1 -1
- package/schematics/ng-update/v22/changes.d.ts +29 -0
- package/schematics/ng-update/v22/changes.js +44 -0
- package/schematics/ng-update/v22/changes.js.map +1 -0
- package/schematics/ng-update/v22/gauge-html-migration.d.ts +35 -0
- package/schematics/ng-update/v22/gauge-html-migration.js +308 -0
- package/schematics/ng-update/v22/gauge-html-migration.js.map +1 -0
- package/schematics/ng-update/v22/gauge-manual-test/all-cases.component.html +723 -0
- package/schematics/ng-update/v22/gauge-property-map.d.ts +53 -0
- package/schematics/ng-update/v22/gauge-property-map.js +298 -0
- package/schematics/ng-update/v22/gauge-property-map.js.map +1 -0
- package/schematics/ng-update/v22/gauge-ts-migration.d.ts +41 -0
- package/schematics/ng-update/v22/gauge-ts-migration.js +326 -0
- package/schematics/ng-update/v22/gauge-ts-migration.js.map +1 -0
- package/schematics/ng-update/v22/index.d.ts +39 -0
- package/schematics/ng-update/v22/index.js +253 -0
- package/schematics/ng-update/v22/index.js.map +1 -0
- package/schematics/ng-update/v22/migration-report.d.ts +48 -0
- package/schematics/ng-update/v22/migration-report.js +50 -0
- package/schematics/ng-update/v22/migration-report.js.map +1 -0
- package/schematics/ng-update/v3/index.js +1 -1
- package/schematics/ng-update/v4/index.js +1 -1
- package/schematics/ng-update/v5/index.js +1 -1
- package/schematics/ng-update/v6/index.js +1 -1
- package/schematics/package.json +3 -0
- package/types/po-ui-ng-components.d.ts +40 -490
- package/fesm2022/po-ui-ng-components-po-chart-modal-table.component-B4RdhBpp.mjs.map +0 -1
- package/lib/components/po-gauge/index.d.ts +0 -4
- package/lib/components/po-gauge/interfaces/po-gauge-coordinates.interface.d.ts +0 -19
- package/lib/components/po-gauge/interfaces/po-gauge-options.interface.d.ts +0 -69
- package/lib/components/po-gauge/interfaces/po-gauge-ranges.interface.d.ts +0 -44
- package/lib/components/po-gauge/interfaces/po-gauge-svg-container.interface.d.ts +0 -15
- package/lib/components/po-gauge/po-gauge-base.component.d.ts +0 -133
- package/lib/components/po-gauge/po-gauge-default-values.constant.d.ts +0 -5
- package/lib/components/po-gauge/po-gauge.component.d.ts +0 -30
- package/lib/components/po-gauge/po-gauge.module.d.ts +0 -6
- package/po-ui-ng-components-21.33.0.tgz +0 -0
- package/schematics/ng-generate/po-page-default/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +0 -14
- package/schematics/ng-generate/po-page-default/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +0 -3
- package/schematics/ng-generate/po-page-default/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +0 -32
- package/schematics/ng-generate/po-page-default/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -19
- package/schematics/ng-generate/po-page-default/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +0 -19
- package/schematics/ng-generate/po-page-default/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.html.template +0 -3
- package/schematics/ng-generate/po-page-default/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +0 -31
- package/schematics/ng-generate/po-page-default/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -23
- package/schematics/ng-generate/po-page-default/index.d.ts +0 -4
- package/schematics/ng-generate/po-page-default/index.js +0 -13
- package/schematics/ng-generate/po-page-default/index.js.map +0 -1
- package/schematics/ng-generate/po-page-default/schema.d.ts +0 -3
- package/schematics/ng-generate/po-page-default/schema.js +0 -3
- package/schematics/ng-generate/po-page-default/schema.js.map +0 -1
- package/schematics/ng-generate/po-page-default/schema.json +0 -67
- package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +0 -14
- package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.__style__.template +0 -0
- package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +0 -8
- package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +0 -32
- package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -27
- package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +0 -19
- package/schematics/ng-generate/po-page-detail/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.__style__.template +0 -0
- package/schematics/ng-generate/po-page-detail/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.html.template +0 -8
- package/schematics/ng-generate/po-page-detail/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +0 -31
- package/schematics/ng-generate/po-page-detail/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -33
- package/schematics/ng-generate/po-page-detail/index.d.ts +0 -4
- package/schematics/ng-generate/po-page-detail/index.js +0 -13
- package/schematics/ng-generate/po-page-detail/index.js.map +0 -1
- package/schematics/ng-generate/po-page-detail/schema.d.ts +0 -3
- package/schematics/ng-generate/po-page-detail/schema.js +0 -3
- package/schematics/ng-generate/po-page-detail/schema.js.map +0 -1
- package/schematics/ng-generate/po-page-detail/schema.json +0 -67
- package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +0 -14
- package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.__style__.template +0 -0
- package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +0 -8
- package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +0 -32
- package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -27
- package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +0 -19
- package/schematics/ng-generate/po-page-edit/files-standalone/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +0 -14
- package/schematics/ng-generate/po-page-edit/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.__style__.template +0 -0
- package/schematics/ng-generate/po-page-edit/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.html.template +0 -8
- package/schematics/ng-generate/po-page-edit/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +0 -31
- package/schematics/ng-generate/po-page-edit/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -33
- package/schematics/ng-generate/po-page-edit/index.d.ts +0 -4
- package/schematics/ng-generate/po-page-edit/index.js +0 -13
- package/schematics/ng-generate/po-page-edit/index.js.map +0 -1
- package/schematics/ng-generate/po-page-edit/schema.d.ts +0 -3
- package/schematics/ng-generate/po-page-edit/schema.js +0 -3
- package/schematics/ng-generate/po-page-edit/schema.js.map +0 -1
- package/schematics/ng-generate/po-page-edit/schema.json +0 -67
- package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +0 -14
- package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__.component.__style__.template +0 -0
- package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +0 -28
- package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +0 -37
- package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -34
- package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +0 -19
- package/schematics/ng-generate/po-page-list/files-standalone/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +0 -14
- package/schematics/ng-generate/po-page-list/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.__style__.template +0 -0
- package/schematics/ng-generate/po-page-list/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.html.template +0 -28
- package/schematics/ng-generate/po-page-list/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +0 -36
- package/schematics/ng-generate/po-page-list/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +0 -42
- package/schematics/ng-generate/po-page-list/index.d.ts +0 -7
- package/schematics/ng-generate/po-page-list/index.js +0 -16
- package/schematics/ng-generate/po-page-list/index.js.map +0 -1
- package/schematics/ng-generate/po-page-list/schema.d.ts +0 -5
- package/schematics/ng-generate/po-page-list/schema.js +0 -3
- package/schematics/ng-generate/po-page-list/schema.js.map +0 -1
- package/schematics/ng-generate/po-page-list/schema.json +0 -78
- package/schematics/ng-generate/sidemenu/files/app.__style__.template +0 -0
- package/schematics/ng-generate/sidemenu/files/app.spec.ts.template +0 -33
- package/schematics/ng-generate/sidemenu/files-standalone/app.__style__.template +0 -0
- /package/schematics/ng-generate/{po-page-default/files/__path__/__name@dasherize__/__name@dasherize__.component.__style__.template → sidemenu/files/__appFileName__.__style__.template} +0 -0
- /package/schematics/ng-generate/sidemenu/files/{app.html.template → __appFileName__.html.template} +0 -0
- /package/schematics/ng-generate/{po-page-default/files-standalone/__path__/__name@dasherize__/__name@dasherize__.component.__style__.template → sidemenu/files-standalone/__appFileName__.__style__.template} +0 -0
- /package/schematics/ng-generate/sidemenu/files-standalone/{app.html.template → __appFileName__.html.template} +0 -0
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.migrateTypeScriptContent = migrateTypeScriptContent;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const ts = tslib_1.__importStar(require("typescript"));
|
|
6
|
+
const changes_1 = require("./changes");
|
|
7
|
+
/**
|
|
8
|
+
* Transforma referências ao `po-gauge` em referências equivalentes ao
|
|
9
|
+
* `po-chart` em um arquivo TypeScript.
|
|
10
|
+
*
|
|
11
|
+
* Comportamento (Req. 4.1–4.4, 4.6, 5.1–5.3):
|
|
12
|
+
* - Localiza `ImportDeclaration` de `@po-ui/ng-components` que contenham
|
|
13
|
+
* símbolos gauge e substitui os símbolos com equivalente conhecido
|
|
14
|
+
* (`gaugeSymbolMap`), preservando os demais símbolos do mesmo import.
|
|
15
|
+
* - Atualiza as referências desses símbolos no restante do arquivo
|
|
16
|
+
* (`declarations`/`imports`/`exports` de `@NgModule` e `imports` de
|
|
17
|
+
* componentes standalone / configuração da aplicação).
|
|
18
|
+
* - Se um símbolo gauge importado NÃO possui equivalente
|
|
19
|
+
* (`gaugeSymbolsWithoutEquivalent`), o arquivo é mantido inalterado e um
|
|
20
|
+
* `MigrationWarning` é registrado (Req. 4.4).
|
|
21
|
+
* - Deduplica símbolos-alvo já importados, evitando imports/itens duplicados
|
|
22
|
+
* (idempotência, Req. 7.4).
|
|
23
|
+
* - Preserva indentação, quebras de linha e a ordenação das importações não
|
|
24
|
+
* relacionadas ao gauge (Req. 4.6).
|
|
25
|
+
*
|
|
26
|
+
* @param source Conteúdo original do arquivo `.ts`.
|
|
27
|
+
* @param isStandalone Indica se o projeto é standalone (mantido por contrato de
|
|
28
|
+
* interface; a transformação de referências é a mesma para ambas as
|
|
29
|
+
* arquiteturas).
|
|
30
|
+
*/
|
|
31
|
+
function migrateTypeScriptContent(source, isStandalone) {
|
|
32
|
+
var _a, _b;
|
|
33
|
+
void isStandalone;
|
|
34
|
+
const warnings = [];
|
|
35
|
+
const sourceFile = ts.createSourceFile('file.ts', source, ts.ScriptTarget.Latest, /* setParentNodes */ true);
|
|
36
|
+
const poUiImports = collectPoUiImports(sourceFile);
|
|
37
|
+
if (poUiImports.length === 0) {
|
|
38
|
+
return { content: source, changed: false, warnings };
|
|
39
|
+
}
|
|
40
|
+
const gaugeSpecifiers = [];
|
|
41
|
+
const withoutEquivalent = [];
|
|
42
|
+
const allImportedNames = new Set();
|
|
43
|
+
for (const decl of poUiImports) {
|
|
44
|
+
const named = getNamedImports(decl);
|
|
45
|
+
if (!named) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
for (const element of named.elements) {
|
|
49
|
+
const importedName = ((_a = element.propertyName) !== null && _a !== void 0 ? _a : element.name).text;
|
|
50
|
+
const localName = element.name.text;
|
|
51
|
+
allImportedNames.add(localName);
|
|
52
|
+
if (Object.prototype.hasOwnProperty.call(changes_1.gaugeSymbolMap, importedName)) {
|
|
53
|
+
gaugeSpecifiers.push({
|
|
54
|
+
specifier: element,
|
|
55
|
+
importedName,
|
|
56
|
+
localName,
|
|
57
|
+
aliased: element.propertyName !== undefined,
|
|
58
|
+
namedImports: named,
|
|
59
|
+
decl
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
else if (changes_1.gaugeSymbolsWithoutEquivalent.includes(importedName)) {
|
|
63
|
+
withoutEquivalent.push(element);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Req. 4.4 — símbolo gauge sem equivalente: mantém o arquivo inalterado e
|
|
68
|
+
// registra advertência para revisão manual.
|
|
69
|
+
if (withoutEquivalent.length > 0) {
|
|
70
|
+
for (const element of withoutEquivalent) {
|
|
71
|
+
const importedName = ((_b = element.propertyName) !== null && _b !== void 0 ? _b : element.name).text;
|
|
72
|
+
warnings.push({
|
|
73
|
+
filePath: '',
|
|
74
|
+
line: lineOf(sourceFile, element),
|
|
75
|
+
reason: `O símbolo "${importedName}" do po-gauge não possui equivalente no po-chart. ` +
|
|
76
|
+
`Revise manualmente este arquivo antes de removê-lo.`
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return { content: source, changed: false, warnings };
|
|
80
|
+
}
|
|
81
|
+
if (gaugeSpecifiers.length === 0) {
|
|
82
|
+
return { content: source, changed: false, warnings };
|
|
83
|
+
}
|
|
84
|
+
const edits = [];
|
|
85
|
+
// Nomes locais (sem alias) que serão substituídos por seu equivalente nas
|
|
86
|
+
// referências ao longo do arquivo.
|
|
87
|
+
const referenceRenameMap = new Map();
|
|
88
|
+
buildImportEdits(sourceFile, gaugeSpecifiers, allImportedNames, referenceRenameMap, edits);
|
|
89
|
+
buildReferenceEdits(sourceFile, poUiImports, referenceRenameMap, edits);
|
|
90
|
+
if (edits.length === 0) {
|
|
91
|
+
return { content: source, changed: false, warnings };
|
|
92
|
+
}
|
|
93
|
+
const content = applyEdits(source, edits);
|
|
94
|
+
return { content, changed: content !== source, warnings };
|
|
95
|
+
}
|
|
96
|
+
/** Coleta as `ImportDeclaration` cujo módulo é `@po-ui/ng-components`. */
|
|
97
|
+
function collectPoUiImports(sourceFile) {
|
|
98
|
+
const imports = [];
|
|
99
|
+
for (const statement of sourceFile.statements) {
|
|
100
|
+
if (ts.isImportDeclaration(statement) &&
|
|
101
|
+
ts.isStringLiteral(statement.moduleSpecifier) &&
|
|
102
|
+
statement.moduleSpecifier.text === changes_1.PO_UI_PACKAGE) {
|
|
103
|
+
imports.push(statement);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return imports;
|
|
107
|
+
}
|
|
108
|
+
/** Retorna os `NamedImports` de uma declaração, quando existirem. */
|
|
109
|
+
function getNamedImports(decl) {
|
|
110
|
+
var _a;
|
|
111
|
+
const bindings = (_a = decl.importClause) === null || _a === void 0 ? void 0 : _a.namedBindings;
|
|
112
|
+
return bindings && ts.isNamedImports(bindings) ? bindings : undefined;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Gera as edições sobre as declarações de importação, renomeando ou removendo
|
|
116
|
+
* (deduplicando) os símbolos gauge, e alimenta o mapa de renomeação de
|
|
117
|
+
* referências.
|
|
118
|
+
*/
|
|
119
|
+
function buildImportEdits(sourceFile, gaugeSpecifiers, allImportedNames, referenceRenameMap, edits) {
|
|
120
|
+
var _a;
|
|
121
|
+
// Alvos já presentes como símbolos importados que NÃO são símbolos gauge.
|
|
122
|
+
const gaugeLocalNames = new Set(gaugeSpecifiers.map(info => info.localName));
|
|
123
|
+
const presentTargets = new Set();
|
|
124
|
+
allImportedNames.forEach(name => {
|
|
125
|
+
if (!gaugeLocalNames.has(name)) {
|
|
126
|
+
presentTargets.add(name);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
// Índice: declaração -> símbolos gauge que serão removidos (dedup).
|
|
130
|
+
const removedByDecl = new Map();
|
|
131
|
+
const declSpecifierEdits = [];
|
|
132
|
+
for (const info of gaugeSpecifiers) {
|
|
133
|
+
const target = changes_1.gaugeSymbolMap[info.importedName];
|
|
134
|
+
if (info.aliased) {
|
|
135
|
+
// Import com alias: renomeia apenas o nome importado, preservando o alias
|
|
136
|
+
// local. As referências (que usam o alias) permanecem inalteradas.
|
|
137
|
+
declSpecifierEdits.push({ info, remove: false, target });
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
// Referências ao símbolo gauge passam a apontar para o equivalente.
|
|
141
|
+
referenceRenameMap.set(info.localName, target);
|
|
142
|
+
// Dedup: se o alvo já é importado, remove o símbolo gauge em vez de renomear.
|
|
143
|
+
const alreadyPresent = presentTargets.has(target);
|
|
144
|
+
if (alreadyPresent) {
|
|
145
|
+
declSpecifierEdits.push({ info, remove: true, target });
|
|
146
|
+
const set = (_a = removedByDecl.get(info.decl)) !== null && _a !== void 0 ? _a : new Set();
|
|
147
|
+
set.add(info.specifier);
|
|
148
|
+
removedByDecl.set(info.decl, set);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
declSpecifierEdits.push({ info, remove: false, target });
|
|
152
|
+
presentTargets.add(target);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Declarações cujos elementos serão TODOS removidos são apagadas por inteiro.
|
|
156
|
+
const fullyRemovedDecls = new Set();
|
|
157
|
+
removedByDecl.forEach((removedSet, decl) => {
|
|
158
|
+
const named = getNamedImports(decl);
|
|
159
|
+
if (named && named.elements.every(element => removedSet.has(element))) {
|
|
160
|
+
fullyRemovedDecls.add(decl);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
for (const decl of fullyRemovedDecls) {
|
|
164
|
+
edits.push(removeDeclarationEdit(sourceFile, decl));
|
|
165
|
+
}
|
|
166
|
+
for (const { info, remove, target } of declSpecifierEdits) {
|
|
167
|
+
if (fullyRemovedDecls.has(info.decl)) {
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
if (remove) {
|
|
171
|
+
edits.push(removeSpecifierEdit(sourceFile, info.namedImports, info.specifier));
|
|
172
|
+
}
|
|
173
|
+
else if (info.aliased && info.specifier.propertyName) {
|
|
174
|
+
edits.push({
|
|
175
|
+
start: info.specifier.propertyName.getStart(sourceFile),
|
|
176
|
+
end: info.specifier.propertyName.getEnd(),
|
|
177
|
+
text: target
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
edits.push({
|
|
182
|
+
start: info.specifier.name.getStart(sourceFile),
|
|
183
|
+
end: info.specifier.name.getEnd(),
|
|
184
|
+
text: target
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Gera as edições sobre as referências dos símbolos gauge no corpo do arquivo
|
|
191
|
+
* (fora das declarações de importação), com deduplicação dentro de arrays.
|
|
192
|
+
*/
|
|
193
|
+
function buildReferenceEdits(sourceFile, poUiImports, referenceRenameMap, edits) {
|
|
194
|
+
if (referenceRenameMap.size === 0) {
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
const importRanges = poUiImports.map(decl => ({ start: decl.getStart(sourceFile), end: decl.getEnd() }));
|
|
198
|
+
// Rastreia os alvos já presentes/emitidos por array, para evitar duplicatas
|
|
199
|
+
// em listas como `declarations`/`imports`/`exports`.
|
|
200
|
+
const emittedTargetsByArray = new Map();
|
|
201
|
+
const visit = (node) => {
|
|
202
|
+
var _a;
|
|
203
|
+
if (ts.isIdentifier(node) && referenceRenameMap.has(node.text) && !isWithinRanges(node, sourceFile, importRanges)) {
|
|
204
|
+
if (isRenameableReference(node)) {
|
|
205
|
+
// O `!` é necessário sob strictNullChecks (build de schematics): a
|
|
206
|
+
// condição do `if` acima garante que a chave existe no mapa, mas o
|
|
207
|
+
// compilador nao relaciona Map.has() com Map.get(), entao get() ainda
|
|
208
|
+
// e `string | undefined`. A regra @typescript-eslint/no-unnecessary-
|
|
209
|
+
// type-assertion gera um falso positivo aqui.
|
|
210
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
|
211
|
+
const target = referenceRenameMap.get(node.text);
|
|
212
|
+
const array = getContainingArrayElement(node);
|
|
213
|
+
if (array) {
|
|
214
|
+
const emitted = (_a = emittedTargetsByArray.get(array)) !== null && _a !== void 0 ? _a : collectExistingArrayNames(array, referenceRenameMap);
|
|
215
|
+
emittedTargetsByArray.set(array, emitted);
|
|
216
|
+
if (emitted.has(target)) {
|
|
217
|
+
// Alvo já presente no array: remove o elemento gauge (dedup).
|
|
218
|
+
edits.push(removeArrayElementEdit(sourceFile, array, node));
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
emitted.add(target);
|
|
222
|
+
}
|
|
223
|
+
edits.push({ start: node.getStart(sourceFile), end: node.getEnd(), text: target });
|
|
224
|
+
}
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
ts.forEachChild(node, visit);
|
|
228
|
+
};
|
|
229
|
+
visit(sourceFile);
|
|
230
|
+
}
|
|
231
|
+
/** Verifica se o identificador é uma referência renomeável (não é chave/propriedade). */
|
|
232
|
+
function isRenameableReference(node) {
|
|
233
|
+
const parent = node.parent;
|
|
234
|
+
if (!parent) {
|
|
235
|
+
return true;
|
|
236
|
+
}
|
|
237
|
+
// `obj.PoGaugeModule` — não é referência ao símbolo importado.
|
|
238
|
+
if (ts.isPropertyAccessExpression(parent) && parent.name === node) {
|
|
239
|
+
return false;
|
|
240
|
+
}
|
|
241
|
+
// `{ PoGaugeModule: ... }` — chave de objeto, não é referência.
|
|
242
|
+
if (ts.isPropertyAssignment(parent) && parent.name === node) {
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
// `PoGaugeModule.prop` como qualificador de tipo.
|
|
246
|
+
if (ts.isQualifiedName(parent) && parent.right === node) {
|
|
247
|
+
return false;
|
|
248
|
+
}
|
|
249
|
+
return true;
|
|
250
|
+
}
|
|
251
|
+
/** Retorna o `ArrayLiteralExpression` do qual o nó é elemento direto, se houver. */
|
|
252
|
+
function getContainingArrayElement(node) {
|
|
253
|
+
const parent = node.parent;
|
|
254
|
+
if (parent && ts.isArrayLiteralExpression(parent) && parent.elements.indexOf(node) !== -1) {
|
|
255
|
+
return parent;
|
|
256
|
+
}
|
|
257
|
+
return undefined;
|
|
258
|
+
}
|
|
259
|
+
/** Coleta os nomes já existentes em um array, mapeando símbolos gauge para seus alvos. */
|
|
260
|
+
function collectExistingArrayNames(array, referenceRenameMap) {
|
|
261
|
+
const names = new Set();
|
|
262
|
+
for (const element of array.elements) {
|
|
263
|
+
// Nomes que não são gauge já contam como presentes com seu próprio nome.
|
|
264
|
+
if (ts.isIdentifier(element) && !referenceRenameMap.has(element.text)) {
|
|
265
|
+
names.add(element.text);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
return names;
|
|
269
|
+
}
|
|
270
|
+
/** Indica se um nó está contido em alguma das faixas informadas. */
|
|
271
|
+
function isWithinRanges(node, sourceFile, ranges) {
|
|
272
|
+
const start = node.getStart(sourceFile);
|
|
273
|
+
return ranges.some(range => start >= range.start && start < range.end);
|
|
274
|
+
}
|
|
275
|
+
/** Cria uma edição que remove um `ImportSpecifier`, cuidando das vírgulas. */
|
|
276
|
+
function removeSpecifierEdit(sourceFile, named, element) {
|
|
277
|
+
const elements = named.elements;
|
|
278
|
+
const index = elements.indexOf(element);
|
|
279
|
+
if (index < elements.length - 1) {
|
|
280
|
+
// Remove do início do elemento até o início do próximo (inclui a vírgula).
|
|
281
|
+
return { start: element.getStart(sourceFile), end: elements[index + 1].getStart(sourceFile), text: '' };
|
|
282
|
+
}
|
|
283
|
+
// Último elemento: remove do fim do elemento anterior (inclui a vírgula).
|
|
284
|
+
return { start: elements[index - 1].getEnd(), end: element.getEnd(), text: '' };
|
|
285
|
+
}
|
|
286
|
+
/** Cria uma edição que remove um elemento de array, cuidando das vírgulas. */
|
|
287
|
+
function removeArrayElementEdit(sourceFile, array, element) {
|
|
288
|
+
const elements = array.elements;
|
|
289
|
+
const index = elements.indexOf(element);
|
|
290
|
+
if (index < elements.length - 1) {
|
|
291
|
+
return { start: element.getStart(sourceFile), end: elements[index + 1].getStart(sourceFile), text: '' };
|
|
292
|
+
}
|
|
293
|
+
if (index > 0) {
|
|
294
|
+
return { start: elements[index - 1].getEnd(), end: element.getEnd(), text: '' };
|
|
295
|
+
}
|
|
296
|
+
// Único elemento do array.
|
|
297
|
+
return { start: element.getStart(sourceFile), end: element.getEnd(), text: '' };
|
|
298
|
+
}
|
|
299
|
+
/** Cria uma edição que remove uma `ImportDeclaration` inteira, incluindo a quebra de linha. */
|
|
300
|
+
function removeDeclarationEdit(sourceFile, decl) {
|
|
301
|
+
const start = decl.getStart(sourceFile);
|
|
302
|
+
let end = decl.getEnd();
|
|
303
|
+
const text = sourceFile.getFullText();
|
|
304
|
+
// Consome uma eventual quebra de linha subsequente para não deixar linha vazia.
|
|
305
|
+
if (text[end] === '\r' && text[end + 1] === '\n') {
|
|
306
|
+
end += 2;
|
|
307
|
+
}
|
|
308
|
+
else if (text[end] === '\n' || text[end] === '\r') {
|
|
309
|
+
end += 1;
|
|
310
|
+
}
|
|
311
|
+
return { start, end, text: '' };
|
|
312
|
+
}
|
|
313
|
+
/** Número da linha (1-indexado) em que o nó inicia. */
|
|
314
|
+
function lineOf(sourceFile, node) {
|
|
315
|
+
return sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile)).line + 1;
|
|
316
|
+
}
|
|
317
|
+
/** Aplica as edições sobre o conteúdo, do fim para o início, preservando offsets. */
|
|
318
|
+
function applyEdits(source, edits) {
|
|
319
|
+
const ordered = [...edits].sort((a, b) => b.start - a.start);
|
|
320
|
+
let result = source;
|
|
321
|
+
for (const edit of ordered) {
|
|
322
|
+
result = result.slice(0, edit.start) + edit.text + result.slice(edit.end);
|
|
323
|
+
}
|
|
324
|
+
return result;
|
|
325
|
+
}
|
|
326
|
+
//# sourceMappingURL=gauge-ts-migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gauge-ts-migration.js","sourceRoot":"","sources":["../../../../../projects/ui/schematics/ng-update/v22/gauge-ts-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Rule, Tree } from '@angular-devkit/schematics';
|
|
2
|
+
/**
|
|
3
|
+
* Extrai o `major` declarado para o `@angular/core` no `package.json` do
|
|
4
|
+
* `Projeto_Consumidor`.
|
|
5
|
+
*
|
|
6
|
+
* Retorna `null` quando o `package.json` não existe, não é um JSON válido, a
|
|
7
|
+
* dependência não está declarada ou o range não permite inferir um `major`
|
|
8
|
+
* (por exemplo `*`, `latest` ou um caminho `file:`). Nesses casos a migração
|
|
9
|
+
* prossegue, para não bloquear cenários legítimos como monorepos que resolvem
|
|
10
|
+
* o Angular por outro meio.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getAngularMajor(tree: Tree): number | null;
|
|
13
|
+
/**
|
|
14
|
+
* Ponto de entrada da `migration-v22`.
|
|
15
|
+
*
|
|
16
|
+
* Não realiza perguntas interativas: `readline` dentro do `ng update` provoca
|
|
17
|
+
* deadlock quando o `stdin` é um TTY. Em vez de perguntar, a checagem do
|
|
18
|
+
* pré-requisito do Angular é feita de forma determinística a partir do
|
|
19
|
+
* `package.json` do `Projeto_Consumidor`.
|
|
20
|
+
*/
|
|
21
|
+
export default function (): Rule;
|
|
22
|
+
/**
|
|
23
|
+
* Regra adicionada à `chain` do `migration-v22` responsável por localizar e
|
|
24
|
+
* transformar os usos do componente removido `po-gauge` para `po-chart` com
|
|
25
|
+
* `p-type="gauge"`.
|
|
26
|
+
*
|
|
27
|
+
* Comportamento (Req. 1.1, 1.2, 1.3, 1.4):
|
|
28
|
+
* - Obtém a configuração do workspace via `getWorkspaceConfigGracefully`.
|
|
29
|
+
* - Se a configuração não pôde ser obtida, registra erro e encerra sem alterar
|
|
30
|
+
* nenhum arquivo.
|
|
31
|
+
* - Se não há nenhum projeto definido, registra aviso e encerra sem alterar
|
|
32
|
+
* nenhum arquivo.
|
|
33
|
+
* - Caso contrário, itera por todos os `Projeto_Consumidor`, delegando a
|
|
34
|
+
* migração de cada projeto para `migrateProject`, e ao final apresenta o
|
|
35
|
+
* `Resumo_Migracao` (Req. 6.4, 9.1).
|
|
36
|
+
*
|
|
37
|
+
* Observação: a composição desta regra na `chain` é realizada na task 8.1.
|
|
38
|
+
*/
|
|
39
|
+
export declare function gaugeMigrationRule(): Rule;
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAngularMajor = getAngularMajor;
|
|
4
|
+
exports.default = default_1;
|
|
5
|
+
exports.gaugeMigrationRule = gaugeMigrationRule;
|
|
6
|
+
const schematics_1 = require("@angular-devkit/schematics");
|
|
7
|
+
const tasks_1 = require("@angular-devkit/schematics/tasks");
|
|
8
|
+
const package_config_1 = require("@po-ui/ng-schematics/package-config");
|
|
9
|
+
const project_1 = require("@po-ui/ng-schematics/project");
|
|
10
|
+
const ng_ast_utils_1 = require("@schematics/angular/utility/ng-ast-utils");
|
|
11
|
+
const changes_1 = require("./changes");
|
|
12
|
+
const gauge_html_migration_1 = require("./gauge-html-migration");
|
|
13
|
+
const gauge_ts_migration_1 = require("./gauge-ts-migration");
|
|
14
|
+
const migration_report_1 = require("./migration-report");
|
|
15
|
+
/** Versão mínima do Angular exigida pela v22 do `@po-ui/ng-components`. */
|
|
16
|
+
const MINIMUM_ANGULAR_MAJOR = 22;
|
|
17
|
+
/**
|
|
18
|
+
* Extrai o `major` declarado para o `@angular/core` no `package.json` do
|
|
19
|
+
* `Projeto_Consumidor`.
|
|
20
|
+
*
|
|
21
|
+
* Retorna `null` quando o `package.json` não existe, não é um JSON válido, a
|
|
22
|
+
* dependência não está declarada ou o range não permite inferir um `major`
|
|
23
|
+
* (por exemplo `*`, `latest` ou um caminho `file:`). Nesses casos a migração
|
|
24
|
+
* prossegue, para não bloquear cenários legítimos como monorepos que resolvem
|
|
25
|
+
* o Angular por outro meio.
|
|
26
|
+
*/
|
|
27
|
+
function getAngularMajor(tree) {
|
|
28
|
+
var _a, _b, _c;
|
|
29
|
+
const buffer = tree.read('package.json');
|
|
30
|
+
if (!buffer) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
try {
|
|
34
|
+
const json = JSON.parse(buffer.toString('utf-8'));
|
|
35
|
+
const range = (_b = (_a = json === null || json === void 0 ? void 0 : json.dependencies) === null || _a === void 0 ? void 0 : _a['@angular/core']) !== null && _b !== void 0 ? _b : (_c = json === null || json === void 0 ? void 0 : json.devDependencies) === null || _c === void 0 ? void 0 : _c['@angular/core'];
|
|
36
|
+
if (!range) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
const match = /(\d+)\./.exec(range);
|
|
40
|
+
return match ? Number(match[1]) : null;
|
|
41
|
+
}
|
|
42
|
+
catch (_d) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Ponto de entrada da `migration-v22`.
|
|
48
|
+
*
|
|
49
|
+
* Não realiza perguntas interativas: `readline` dentro do `ng update` provoca
|
|
50
|
+
* deadlock quando o `stdin` é um TTY. Em vez de perguntar, a checagem do
|
|
51
|
+
* pré-requisito do Angular é feita de forma determinística a partir do
|
|
52
|
+
* `package.json` do `Projeto_Consumidor`.
|
|
53
|
+
*/
|
|
54
|
+
function default_1() {
|
|
55
|
+
return (tree, context) => {
|
|
56
|
+
const logger = context.logger;
|
|
57
|
+
const angularMajor = getAngularMajor(tree);
|
|
58
|
+
if (angularMajor !== null && angularMajor < MINIMUM_ANGULAR_MAJOR) {
|
|
59
|
+
logger.error(`A v22 do @po-ui/ng-components exige o Angular ${MINIMUM_ANGULAR_MAJOR}, mas o projeto declara ` +
|
|
60
|
+
`o Angular ${angularMajor}. Nenhum arquivo foi alterado.\n` +
|
|
61
|
+
`Atualize o Angular primeiro:\n` +
|
|
62
|
+
` ng update @angular/core@${MINIMUM_ANGULAR_MAJOR} @angular/cli@${MINIMUM_ANGULAR_MAJOR}\n` +
|
|
63
|
+
`Consulte o guia oficial: https://angular.dev/update-guide`);
|
|
64
|
+
return tree;
|
|
65
|
+
}
|
|
66
|
+
return (0, schematics_1.chain)([
|
|
67
|
+
(0, package_config_1.updatePackageJson)('22.0.0-next.0', changes_1.updateDepedenciesVersion), // Req 8.1
|
|
68
|
+
gaugeMigrationRule(), // Req 8.2 (após versões, antes da instalação)
|
|
69
|
+
postUpdate() // Req 8.3 (NodePackageInstallTask)
|
|
70
|
+
]);
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Regra adicionada à `chain` do `migration-v22` responsável por localizar e
|
|
75
|
+
* transformar os usos do componente removido `po-gauge` para `po-chart` com
|
|
76
|
+
* `p-type="gauge"`.
|
|
77
|
+
*
|
|
78
|
+
* Comportamento (Req. 1.1, 1.2, 1.3, 1.4):
|
|
79
|
+
* - Obtém a configuração do workspace via `getWorkspaceConfigGracefully`.
|
|
80
|
+
* - Se a configuração não pôde ser obtida, registra erro e encerra sem alterar
|
|
81
|
+
* nenhum arquivo.
|
|
82
|
+
* - Se não há nenhum projeto definido, registra aviso e encerra sem alterar
|
|
83
|
+
* nenhum arquivo.
|
|
84
|
+
* - Caso contrário, itera por todos os `Projeto_Consumidor`, delegando a
|
|
85
|
+
* migração de cada projeto para `migrateProject`, e ao final apresenta o
|
|
86
|
+
* `Resumo_Migracao` (Req. 6.4, 9.1).
|
|
87
|
+
*
|
|
88
|
+
* Observação: a composição desta regra na `chain` é realizada na task 8.1.
|
|
89
|
+
*/
|
|
90
|
+
function gaugeMigrationRule() {
|
|
91
|
+
return (tree, context) => {
|
|
92
|
+
var _a;
|
|
93
|
+
const logger = context.logger;
|
|
94
|
+
const workspace = (0, project_1.getWorkspaceConfigGracefully)(tree);
|
|
95
|
+
if (!workspace) {
|
|
96
|
+
// Req. 1.2 — falha ao obter a configuração do workspace
|
|
97
|
+
logger.error('Não foi possível obter a configuração do workspace. Nenhum arquivo foi alterado.');
|
|
98
|
+
return tree;
|
|
99
|
+
}
|
|
100
|
+
const projectNames = Object.keys((_a = workspace.projects) !== null && _a !== void 0 ? _a : {});
|
|
101
|
+
if (projectNames.length === 0) {
|
|
102
|
+
// Req. 1.3 — nenhum projeto definido no workspace
|
|
103
|
+
logger.info('Nenhum projeto encontrado no workspace. Nenhum arquivo foi alterado.');
|
|
104
|
+
return tree;
|
|
105
|
+
}
|
|
106
|
+
const report = (0, migration_report_1.createMigrationReport)();
|
|
107
|
+
// Req. 1.4 — itera por todos os projetos do workspace
|
|
108
|
+
for (const projectName of projectNames) {
|
|
109
|
+
migrateProject(tree, workspace, projectName, report, logger);
|
|
110
|
+
}
|
|
111
|
+
// Req. 6.4 / 9.1 — apresenta o Resumo_Migracao ao final da execução
|
|
112
|
+
(0, migration_report_1.printMigrationSummary)(report, logger);
|
|
113
|
+
return tree;
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Migração por projeto (`Projeto_Consumidor`).
|
|
118
|
+
*
|
|
119
|
+
* Comportamento (Req. 1.6, 1.7, 1.8, 5.4, 5.5, 5.6):
|
|
120
|
+
* - Resolve a pasta de entrada (`lib` para `library`, `app` para `application`)
|
|
121
|
+
* e monta `sourceDir = ${sourceRoot}/${entryFolder}`, seguindo o mesmo padrão
|
|
122
|
+
* de `v20`/`v21`.
|
|
123
|
+
* - Se o diretório-fonte não existe ou está vazio, registra aviso identificando
|
|
124
|
+
* o projeto e prossegue para o próximo, sem encerrar a execução (Req. 1.6).
|
|
125
|
+
* - Resolve o `mainFile` via `getProjectMainFile` e determina a arquitetura com
|
|
126
|
+
* `isStandaloneApp` (Req. 5.4). Se o `mainFile` não pode ser localizado/lido,
|
|
127
|
+
* interrompe a migração deste projeto com erro (Req. 5.5). Se a arquitetura
|
|
128
|
+
* não pode ser determinada, idem, com mensagem específica (Req. 5.6). Em
|
|
129
|
+
* ambos os casos os arquivos do projeto permanecem inalterados.
|
|
130
|
+
* - Dispara a varredura recursiva (`scanDirectory`).
|
|
131
|
+
*/
|
|
132
|
+
function migrateProject(tree, workspace, projectName, report, logger) {
|
|
133
|
+
var _a, _b;
|
|
134
|
+
const project = (0, project_1.getProjectFromWorkspace)(workspace, projectName);
|
|
135
|
+
if (!project) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
// Req. 1.7 / 1.8 — pasta de entrada conforme o tipo do projeto.
|
|
139
|
+
const projectType = project.projectType === 'library' ? 'library' : 'application';
|
|
140
|
+
const entryFolder = projectType === 'library' ? 'lib' : 'app';
|
|
141
|
+
const sourceDir = `${project.sourceRoot}/${entryFolder}`;
|
|
142
|
+
// Req. 1.6 — diretório-fonte inexistente ou vazio: avisa e segue adiante.
|
|
143
|
+
const directory = tree.getDir(sourceDir);
|
|
144
|
+
if (directory.subfiles.length === 0 && directory.subdirs.length === 0) {
|
|
145
|
+
logger.warn(`[po-gauge] Projeto "${projectName}": o diretório-fonte "${sourceDir}" não existe ou está vazio. ` +
|
|
146
|
+
`Nenhum arquivo foi alterado neste projeto.`);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
// Req. 5.4 / 5.5 — localizar o arquivo de entrada principal (main).
|
|
150
|
+
let mainFile;
|
|
151
|
+
try {
|
|
152
|
+
mainFile = (0, project_1.getProjectMainFile)(project);
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
logger.error(`[po-gauge] Projeto "${projectName}": não foi possível localizar o arquivo de entrada principal ` +
|
|
156
|
+
`(main) a partir do angular.json. Nenhum arquivo foi alterado neste projeto. ` +
|
|
157
|
+
`Detalhe: ${(_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : error}`);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
if (!mainFile || !tree.exists(mainFile)) {
|
|
161
|
+
logger.error(`[po-gauge] Projeto "${projectName}": o arquivo de entrada principal (main) não foi encontrado ou ` +
|
|
162
|
+
`não pôde ser lido. Nenhum arquivo foi alterado neste projeto.`);
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
// Req. 5.4 / 5.6 — determinar a arquitetura (NgModule x standalone).
|
|
166
|
+
let isStandalone;
|
|
167
|
+
try {
|
|
168
|
+
isStandalone = (0, ng_ast_utils_1.isStandaloneApp)(tree, mainFile);
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
logger.error(`[po-gauge] Projeto "${projectName}": não foi possível determinar a arquitetura do projeto ` +
|
|
172
|
+
`(NgModule ou standalone) a partir de "${mainFile}". Nenhum arquivo foi alterado neste projeto. ` +
|
|
173
|
+
`Detalhe: ${(_b = error === null || error === void 0 ? void 0 : error.message) !== null && _b !== void 0 ? _b : error}`);
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
const ctx = {
|
|
177
|
+
projectName,
|
|
178
|
+
projectType,
|
|
179
|
+
sourceDir,
|
|
180
|
+
isStandalone
|
|
181
|
+
};
|
|
182
|
+
// Dispara a varredura recursiva dos arquivos `.html`/`.ts` do projeto.
|
|
183
|
+
scanDirectory(tree, sourceDir, ctx, report, logger);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Varredura recursiva do diretório-fonte de um `Projeto_Consumidor`.
|
|
187
|
+
*
|
|
188
|
+
* Comportamento (Req. 1.4, 1.5, 2.8, 4.6, 7.3, 7.5, 9.1):
|
|
189
|
+
* - Percorre recursivamente todos os subdiretórios sem limite de profundidade,
|
|
190
|
+
* reaproveitando o padrão de `v20`/`v21` (`tree.getDir(...)` com
|
|
191
|
+
* `subfiles`/`subdirs`) (Req. 1.4).
|
|
192
|
+
* - Processa apenas arquivos com extensão `.html` ou `.ts` (comparação
|
|
193
|
+
* case-insensitive); demais arquivos são ignorados sem alteração (Req. 1.5).
|
|
194
|
+
* - Para cada arquivo processado incrementa `report.filesScanned`, lê o
|
|
195
|
+
* conteúdo via `tree.read` e delega às transformações puras
|
|
196
|
+
* (`migrateHtmlContent` para `.html`, `migrateTypeScriptContent` para `.ts`).
|
|
197
|
+
* - Preenche o campo `filePath` das advertências com o caminho relativo do
|
|
198
|
+
* arquivo (as funções puras o deixam vazio) e as acumula em `report.warnings`
|
|
199
|
+
* (Req. 9.1).
|
|
200
|
+
* - Escreve com `tree.overwrite` somente quando o conteúdo transformado difere
|
|
201
|
+
* do original (Req. 2.8, 4.6, 7.3), incrementando `report.filesChanged`.
|
|
202
|
+
* - Em caso de exceção na escrita, preserva o arquivo original (sem aplicar
|
|
203
|
+
* alterações parciais) e registra erro identificando o arquivo, sem
|
|
204
|
+
* incrementar `report.filesChanged` (Req. 7.5).
|
|
205
|
+
*/
|
|
206
|
+
function scanDirectory(tree, dirPath, ctx, report, logger) {
|
|
207
|
+
const directory = tree.getDir(dirPath);
|
|
208
|
+
// Req. 1.5 — processa apenas arquivos `.html`/`.ts` (case-insensitive).
|
|
209
|
+
directory.subfiles.forEach((file) => {
|
|
210
|
+
var _a;
|
|
211
|
+
const lowerName = file.toLowerCase();
|
|
212
|
+
const isHtml = lowerName.endsWith('.html');
|
|
213
|
+
const isTs = lowerName.endsWith('.ts');
|
|
214
|
+
if (!isHtml && !isTs) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
const filePath = `${directory.path}/${file}`;
|
|
218
|
+
const buffer = tree.read(filePath);
|
|
219
|
+
if (!buffer) {
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
const original = buffer.toString('utf-8');
|
|
223
|
+
// Req. 9.1 — contabiliza cada arquivo `.html`/`.ts` analisado.
|
|
224
|
+
report.filesScanned++;
|
|
225
|
+
const result = isHtml ? (0, gauge_html_migration_1.migrateHtmlContent)(original) : (0, gauge_ts_migration_1.migrateTypeScriptContent)(original, ctx.isStandalone);
|
|
226
|
+
// Preenche o `filePath` (deixado vazio pelas funções puras) e acumula.
|
|
227
|
+
result.warnings.forEach((warning) => {
|
|
228
|
+
report.warnings.push(Object.assign(Object.assign({}, warning), { filePath }));
|
|
229
|
+
});
|
|
230
|
+
// Req. 2.8 / 4.6 / 7.3 — escreve somente quando o conteúdo efetivamente mudou.
|
|
231
|
+
if (result.content !== original) {
|
|
232
|
+
try {
|
|
233
|
+
tree.overwrite(filePath, result.content);
|
|
234
|
+
report.filesChanged++;
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
// Req. 7.5 — falha na escrita: preserva o original e registra o erro.
|
|
238
|
+
logger.error(`[po-gauge] Falha ao gravar o arquivo "${filePath}". O conteúdo original foi preservado ` +
|
|
239
|
+
`(nenhuma alteração parcial foi aplicada). Detalhe: ${(_a = error === null || error === void 0 ? void 0 : error.message) !== null && _a !== void 0 ? _a : error}`);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
// Req. 1.4 — varredura recursiva dos subdiretórios, sem limite de profundidade.
|
|
244
|
+
directory.subdirs.forEach((subdir) => {
|
|
245
|
+
scanDirectory(tree, `${directory.path}/${subdir}`, ctx, report, logger);
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
function postUpdate() {
|
|
249
|
+
return (_, context) => {
|
|
250
|
+
context.addTask(new tasks_1.NodePackageInstallTask());
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../projects/ui/schematics/ng-update/v22/index.ts"],"names":[],"mappings":"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"}
|