ng-checkup 0.11.0 → 0.12.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 +32 -0
- package/dist/checks/version.js +7 -5
- package/dist/checks/version.js.map +1 -1
- package/dist/cli.d.ts +10 -0
- package/dist/cli.js +56 -3
- package/dist/cli.js.map +1 -1
- package/dist/files.d.ts +2 -0
- package/dist/files.js +5 -1
- package/dist/files.js.map +1 -1
- package/dist/index.d.ts +6 -0
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/report/html.js +1 -1
- package/dist/report/html.js.map +1 -1
- package/dist/report/markdown.js +1 -1
- package/dist/report/markdown.js.map +1 -1
- package/dist/report/site.d.ts +19 -0
- package/dist/report/site.js +32 -0
- package/dist/report/site.js.map +1 -0
- package/dist/report/terminal.d.ts +11 -0
- package/dist/report/terminal.js +3 -2
- package/dist/report/terminal.js.map +1 -1
- package/dist/site.d.ts +105 -0
- package/dist/site.js +252 -0
- package/dist/site.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/workspace.d.ts +29 -0
- package/dist/workspace.js +38 -0
- package/dist/workspace.js.map +1 -1
- package/package.json +1 -1
package/dist/site.js
ADDED
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `ng-checkup url <address>`: which frontend framework a public web app runs,
|
|
3
|
+
* read from what any browser downloads.
|
|
4
|
+
*
|
|
5
|
+
* It loads the page and the scripts of the same site that the page names,
|
|
6
|
+
* plus the chunks those scripts import statically (Angular 17+ keeps the
|
|
7
|
+
* framework in `chunk-*.js` files the HTML never mentions), up to a fixed
|
|
8
|
+
* number of requests. It recognises AngularJS and Angular with their
|
|
9
|
+
* versions, whether zone.js is loaded, and React, Vue, Next.js and Nuxt,
|
|
10
|
+
* including several in one app, which is what a migration in progress looks
|
|
11
|
+
* like.
|
|
12
|
+
*
|
|
13
|
+
* Only the page's own site is read: third-party scripts are skipped, since a
|
|
14
|
+
* cookie banner or a chat widget built with React would otherwise make any
|
|
15
|
+
* site "a React app". The one exception is AngularJS loaded from a public
|
|
16
|
+
* CDN, which is how many AngularJS apps include it. Nothing is clicked, no
|
|
17
|
+
* form is submitted, no link is followed beyond the page itself.
|
|
18
|
+
*/
|
|
19
|
+
/** Most scripts read per site, imports included: enough for an app shell, few enough to stay polite. */
|
|
20
|
+
export const MAX_SCRIPTS = 12;
|
|
21
|
+
/** Scripts above this size are not read. */
|
|
22
|
+
export const MAX_SCRIPT_BYTES = 12_000_000;
|
|
23
|
+
/** Signals in a page's HTML. */
|
|
24
|
+
export function signalsInHtml(html) {
|
|
25
|
+
const signals = {};
|
|
26
|
+
const ngVersion = /\sng-version="(\d+\.\d+\.\d+[^"]*)"/.exec(html)?.[1];
|
|
27
|
+
if (ngVersion)
|
|
28
|
+
signals.angular = { versions: [ngVersion] };
|
|
29
|
+
// Only as an attribute inside a tag: documentation pages mention `ng-app` in their text (angular.dev does).
|
|
30
|
+
if (/<[a-z][\w-]*\s[^<>]*?\b(?:data-)?ng-(?:app|controller|view)(?:\s*=|[\s/>])/i.test(html))
|
|
31
|
+
signals.angularJs = {};
|
|
32
|
+
const cdn = /src=["'][^"']*angular(?:js|\.js)?[/@](1\.\d+\.\d+)[^"']*["']/i.exec(html)?.[1];
|
|
33
|
+
if (cdn)
|
|
34
|
+
signals.angularJs = { version: cdn };
|
|
35
|
+
if (/__NEXT_DATA__|\/_next\/static\//.test(html))
|
|
36
|
+
signals.next = true;
|
|
37
|
+
if (/__NUXT__|\/_nuxt\//.test(html))
|
|
38
|
+
signals.nuxt = true;
|
|
39
|
+
if (/\sdata-v-[0-9a-f]{8}\b/.test(html))
|
|
40
|
+
signals.vue = {};
|
|
41
|
+
return signals;
|
|
42
|
+
}
|
|
43
|
+
/** Signals in one script's code. */
|
|
44
|
+
export function signalsInScript(code) {
|
|
45
|
+
const signals = {};
|
|
46
|
+
// AngularJS: the license header of an unminified build, or the version object every build carries.
|
|
47
|
+
const angularJs = /AngularJS v(1\.\d+\.\d+)/.exec(code)?.[1] ?? /full:["'`](1\.\d+\.\d+)["'`],major:1,minor:/.exec(code)?.[1];
|
|
48
|
+
if (angularJs)
|
|
49
|
+
signals.angularJs = { version: angularJs };
|
|
50
|
+
else if (/\bangular\.module\(/.test(code) && /\$rootScope|\$scope/.test(code))
|
|
51
|
+
signals.angularJs = {};
|
|
52
|
+
// Angular: its runtime markers, then every `new Version("x.y.z")` (core, common, router, forms, material).
|
|
53
|
+
// esbuild writes many strings as template literals, so every quote below also accepts a backtick.
|
|
54
|
+
if (/ɵɵdefineComponent|ɵcmp|["'`]ng-version["'`]/.test(code)) {
|
|
55
|
+
const versions = [...code.matchAll(/new\s+[\w$]+\(\s*["'`](\d{1,2}\.\d+\.\d+(?:[-+][\w.+-]+)?)["'`]\s*\)/g)].map((match) => match[1]).filter((version) => Number(version.split('.')[0]) >= 2);
|
|
56
|
+
signals.angular = { versions };
|
|
57
|
+
}
|
|
58
|
+
if (/__zone_symbol__|Zone\.__symbol__/.test(code))
|
|
59
|
+
signals.zoneJs = true;
|
|
60
|
+
const reactVersion = /version:["'`](\d+\.\d+\.\d+[^"'`]*)["'`],rendererPackageName:["'`]react-dom["'`]/.exec(code)?.[1] ?? /rendererPackageName:["'`]react-dom["'`][^}]{0,200}?version:["'`](\d+\.\d+\.\d+[^"'`]*)["'`]/.exec(code)?.[1];
|
|
61
|
+
if (reactVersion)
|
|
62
|
+
signals.react = { version: reactVersion };
|
|
63
|
+
else if (/__reactFiber\$|__reactContainer\$|rendererPackageName:["'`]react-dom["'`]/.test(code))
|
|
64
|
+
signals.react = {};
|
|
65
|
+
if (/__vue_app__|__VUE_HMR_RUNTIME__/.test(code))
|
|
66
|
+
signals.vue = {};
|
|
67
|
+
else if (/\b__vue__\b/.test(code)) {
|
|
68
|
+
const vue2 = /\.version\s*=\s*["'`](2\.\d+\.\d+)["'`]/.exec(code)?.[1];
|
|
69
|
+
signals.vue = vue2 ? { version: vue2 } : {};
|
|
70
|
+
}
|
|
71
|
+
return signals;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* The scripts a page names: `<script src>` and `<link rel="modulepreload">`,
|
|
75
|
+
* as absolute URLs, in page order, each once.
|
|
76
|
+
*/
|
|
77
|
+
export function scriptsOfPage(html, base) {
|
|
78
|
+
const found = [];
|
|
79
|
+
for (const match of html.matchAll(/<script\b[^>]*\bsrc=["']([^"']+)["'][^>]*>/gi))
|
|
80
|
+
found.push(match[1]);
|
|
81
|
+
for (const match of html.matchAll(/<link\b[^>]*\brel=["']modulepreload["'][^>]*\bhref=["']([^"']+)["'][^>]*>|<link\b[^>]*\bhref=["']([^"']+)["'][^>]*\brel=["']modulepreload["'][^>]*>/gi))
|
|
82
|
+
found.push((match[1] ?? match[2]));
|
|
83
|
+
return unique(found.map((src) => absolute(src, base)).filter((url) => url !== undefined));
|
|
84
|
+
}
|
|
85
|
+
/** Chunks a script imports statically (`import"./chunk-AB12.js"`, `from"./chunk-AB12.js"`), as absolute URLs. */
|
|
86
|
+
export function importsOfScript(code, base) {
|
|
87
|
+
const found = [...code.matchAll(/(?:\bimport\s*|\bfrom\s*)["'](\.{1,2}\/[^"']+\.m?js)["']/g)].map((match) => match[1]);
|
|
88
|
+
return unique(found.map((src) => absolute(src, base)).filter((url) => url !== undefined));
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* True for a script worth reading: on the page's own site (the same host, or
|
|
92
|
+
* a host sharing its last two labels, such as `cdn.example.com` for
|
|
93
|
+
* `app.example.com`), or AngularJS from a public CDN.
|
|
94
|
+
*/
|
|
95
|
+
export function isOwnScript(scriptUrl, pageUrl) {
|
|
96
|
+
const script = new URL(scriptUrl);
|
|
97
|
+
const page = new URL(pageUrl);
|
|
98
|
+
const site = (host) => host.split('.').slice(-2).join('.');
|
|
99
|
+
if (script.hostname === page.hostname || site(script.hostname) === site(page.hostname))
|
|
100
|
+
return true;
|
|
101
|
+
return /\/(?:angularjs\/1\.|angular\.js\/1\.|angular@1\.)/.test(script.pathname);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Loads the page and its scripts and merges what they show. Throws when the
|
|
105
|
+
* page itself cannot be loaded; a script that fails to load is skipped.
|
|
106
|
+
*/
|
|
107
|
+
export async function probeSite(address, options = {}) {
|
|
108
|
+
const get = options.fetch ?? fetch;
|
|
109
|
+
const timeout = options.timeoutMs ?? 15_000;
|
|
110
|
+
const headers = { 'user-agent': 'Mozilla/5.0 (compatible; ng-checkup; +https://github.com/stefankuburovic/ng-checkup)', accept: 'text/html,application/javascript,*/*' };
|
|
111
|
+
// `example.com` and `https://example.com` both become `https://example.com/`; a bad address throws here, before any request.
|
|
112
|
+
const url = new URL(/^https?:\/\//i.test(address) ? address : `https://${address}`).href;
|
|
113
|
+
const response = await get(url, { headers, redirect: 'follow', signal: AbortSignal.timeout(timeout) });
|
|
114
|
+
if (!response.ok)
|
|
115
|
+
throw new Error(`${url} answered ${response.status} ${response.statusText}`.trim());
|
|
116
|
+
const finalUrl = response.url || url;
|
|
117
|
+
const html = await response.text();
|
|
118
|
+
const title = /<title[^>]*>([^<]*)<\/title>/i.exec(html)?.[1]?.trim();
|
|
119
|
+
const found = [{ signals: signalsInHtml(html), evidence: 'the page' }];
|
|
120
|
+
const queue = scriptsOfPage(html, finalUrl);
|
|
121
|
+
const seen = new Set();
|
|
122
|
+
const scripts = [];
|
|
123
|
+
let skipped = 0;
|
|
124
|
+
while (queue.length > 0) {
|
|
125
|
+
const scriptUrl = queue.shift();
|
|
126
|
+
if (seen.has(scriptUrl))
|
|
127
|
+
continue;
|
|
128
|
+
seen.add(scriptUrl);
|
|
129
|
+
if (!isOwnScript(scriptUrl, finalUrl) || scripts.length >= MAX_SCRIPTS) {
|
|
130
|
+
skipped++;
|
|
131
|
+
continue;
|
|
132
|
+
}
|
|
133
|
+
try {
|
|
134
|
+
const script = await get(scriptUrl, { headers, redirect: 'follow', signal: AbortSignal.timeout(timeout) });
|
|
135
|
+
const length = Number(script.headers.get('content-length') ?? 0);
|
|
136
|
+
if (!script.ok || length > MAX_SCRIPT_BYTES) {
|
|
137
|
+
skipped++;
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
const code = await script.text();
|
|
141
|
+
scripts.push({ url: scriptUrl, bytes: code.length });
|
|
142
|
+
found.push({ signals: signalsInScript(code), evidence: fileName(scriptUrl) });
|
|
143
|
+
queue.push(...importsOfScript(code, scriptUrl).filter((next) => !seen.has(next)));
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
skipped++;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return { url, finalUrl, ...(title ? { title } : {}), ...merge(found), scripts, skipped };
|
|
150
|
+
}
|
|
151
|
+
/** The frameworks of all signals together, each once, with the best version and the first place it was seen. */
|
|
152
|
+
function merge(found) {
|
|
153
|
+
const frameworks = [];
|
|
154
|
+
const add = (name, pick) => {
|
|
155
|
+
const hits = found.filter(({ signals }) => pick(signals));
|
|
156
|
+
if (hits.length === 0)
|
|
157
|
+
return;
|
|
158
|
+
const withVersion = hits.find(({ signals }) => {
|
|
159
|
+
const value = pick(signals);
|
|
160
|
+
return typeof value === 'object' && value.version;
|
|
161
|
+
});
|
|
162
|
+
const value = withVersion ? pick(withVersion.signals) : undefined;
|
|
163
|
+
const version = typeof value === 'object' ? value.version : undefined;
|
|
164
|
+
frameworks.push({ name, ...(version ? { version } : {}), evidence: (withVersion ?? hits[0]).evidence });
|
|
165
|
+
};
|
|
166
|
+
add('AngularJS', (signals) => signals.angularJs);
|
|
167
|
+
const angularVersions = found.flatMap(({ signals }) => signals.angular?.versions ?? []);
|
|
168
|
+
const angularHits = found.filter(({ signals }) => signals.angular);
|
|
169
|
+
if (angularHits.length > 0) {
|
|
170
|
+
const version = mostCommon(angularVersions);
|
|
171
|
+
const evidence = angularHits.find(({ signals }) => version && signals.angular?.versions.includes(version)) ?? angularHits[0];
|
|
172
|
+
frameworks.push({ name: 'Angular', ...(version ? { version } : {}), evidence: evidence.evidence });
|
|
173
|
+
}
|
|
174
|
+
add('React', (signals) => signals.react);
|
|
175
|
+
add('Vue', (signals) => signals.vue);
|
|
176
|
+
add('Next.js', (signals) => signals.next);
|
|
177
|
+
add('Nuxt', (signals) => signals.nuxt);
|
|
178
|
+
const zoneJs = angularHits.length > 0 ? found.some(({ signals }) => signals.zoneJs) : undefined;
|
|
179
|
+
return { frameworks, ...(zoneJs !== undefined ? { zoneJs } : {}) };
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* What the frameworks found mean for the site's owner. `latestAngular` is
|
|
183
|
+
* the newest Angular major, for the support window: the newest three majors
|
|
184
|
+
* get fixes, as in the version check.
|
|
185
|
+
*/
|
|
186
|
+
export function assessSite(probe, latestAngular) {
|
|
187
|
+
const findings = [];
|
|
188
|
+
const has = (name) => probe.frameworks.find((framework) => framework.name === name);
|
|
189
|
+
const angularJs = has('AngularJS');
|
|
190
|
+
const angular = has('Angular');
|
|
191
|
+
const others = probe.frameworks.filter((framework) => framework.name !== 'AngularJS' && framework.name !== 'Next.js' && framework.name !== 'Nuxt');
|
|
192
|
+
if (angularJs) {
|
|
193
|
+
findings.push({
|
|
194
|
+
severity: 'high',
|
|
195
|
+
message: `AngularJS${angularJs.version ? ` ${angularJs.version}` : ''} is end of life since January 2022`,
|
|
196
|
+
detail: others.length > 0
|
|
197
|
+
? `It runs next to ${others.map((framework) => framework.name).join(' and ')}, so a migration is under way. Until it is finished, the app ships a framework without security fixes.`
|
|
198
|
+
: 'No security fixes since 31 December 2021. Nothing in AngularJS carries over to a current framework, so the way out is a migration, piece by piece.',
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
if (angular?.version) {
|
|
202
|
+
const major = Number(angular.version.split('.')[0]);
|
|
203
|
+
const gap = Math.max(0, latestAngular - major);
|
|
204
|
+
if (gap >= 3)
|
|
205
|
+
findings.push({ severity: 'high', message: `Angular ${angular.version} is ${gap} majors behind ${latestAngular} and out of support`, detail: 'Only the newest three majors get fixes. `ng update` moves one major at a time, so this is a series of upgrade steps.' });
|
|
206
|
+
else if (gap === 2)
|
|
207
|
+
findings.push({ severity: 'medium', message: `Angular ${angular.version} is two majors behind and in its last months of support` });
|
|
208
|
+
else if (gap === 1)
|
|
209
|
+
findings.push({ severity: 'low', message: `Angular ${angular.version}, one major behind ${latestAngular}` });
|
|
210
|
+
else
|
|
211
|
+
findings.push({ severity: 'info', message: `Angular ${angular.version}, the current major` });
|
|
212
|
+
if (probe.zoneJs === true && major >= 21)
|
|
213
|
+
findings.push({ severity: 'low', message: 'Still loads zone.js', detail: 'Zoneless change detection is the default since Angular 21.' });
|
|
214
|
+
}
|
|
215
|
+
else if (angular) {
|
|
216
|
+
findings.push({ severity: 'info', message: 'Angular, version not readable from the code' });
|
|
217
|
+
}
|
|
218
|
+
if (probe.frameworks.length === 0) {
|
|
219
|
+
findings.push({
|
|
220
|
+
severity: 'info',
|
|
221
|
+
message: 'No AngularJS, Angular, React or Vue in the page and the scripts read',
|
|
222
|
+
detail: 'The app may load only after sign-in, render entirely on the server, or keep its code on another site than the page.',
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
return findings;
|
|
226
|
+
}
|
|
227
|
+
/** The newest version that appears most often, so one stray `new X("2.0.0")` cannot outvote Angular's own packages. */
|
|
228
|
+
function mostCommon(versions) {
|
|
229
|
+
const counts = new Map();
|
|
230
|
+
for (const version of versions)
|
|
231
|
+
counts.set(version, (counts.get(version) ?? 0) + 1);
|
|
232
|
+
return [...counts.entries()].sort((left, right) => right[1] - left[1] || right[0].localeCompare(left[0], undefined, { numeric: true }))[0]?.[0];
|
|
233
|
+
}
|
|
234
|
+
/** `src` resolved against `base`, or undefined for anything that is not an http(s) URL (`data:`, `blob:`, garbage). */
|
|
235
|
+
function absolute(src, base) {
|
|
236
|
+
try {
|
|
237
|
+
const url = new URL(src, base);
|
|
238
|
+
return url.protocol === 'http:' || url.protocol === 'https:' ? url.href : undefined;
|
|
239
|
+
}
|
|
240
|
+
catch {
|
|
241
|
+
return undefined;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
/** The values in their first order, each once. */
|
|
245
|
+
function unique(values) {
|
|
246
|
+
return [...new Set(values)];
|
|
247
|
+
}
|
|
248
|
+
/** The last path segment of a URL, which is how a report names a script. */
|
|
249
|
+
function fileName(url) {
|
|
250
|
+
return new URL(url).pathname.split('/').pop() || url;
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=site.js.map
|
package/dist/site.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"site.js","sourceRoot":"","sources":["../src/site.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -94,6 +94,8 @@ export interface Report {
|
|
|
94
94
|
* left out; their lines are part of `linesOfCode`. Absent when there are none.
|
|
95
95
|
*/
|
|
96
96
|
javascriptFiles?: number;
|
|
97
|
+
/** The subfolder the Angular workspace was read from, when it is not the root (see `resolveWorkspace`). */
|
|
98
|
+
workspaceFolder?: string;
|
|
97
99
|
};
|
|
98
100
|
checks: CheckResult[];
|
|
99
101
|
durationMs: number;
|
package/dist/workspace.d.ts
CHANGED
|
@@ -69,7 +69,36 @@ export interface WorkspaceInfo {
|
|
|
69
69
|
appTsconfig?: string;
|
|
70
70
|
/** The tsconfig holding repository-wide `paths`, used to resolve imports for the dependency graph. */
|
|
71
71
|
rootTsconfig?: string;
|
|
72
|
+
/**
|
|
73
|
+
* The folder, relative to the analysed root, the Angular workspace was read
|
|
74
|
+
* from when it is not the root itself (see `resolveWorkspace`); `root` then
|
|
75
|
+
* points there too. Absent for a workspace at the root.
|
|
76
|
+
*/
|
|
77
|
+
subfolder?: string;
|
|
78
|
+
/** Angular workspaces in subfolders, relative to the root, when there are several and none at the root. */
|
|
79
|
+
nestedWorkspaces?: string[];
|
|
72
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* The workspace to analyse: the root's, or the one Angular workspace in a
|
|
83
|
+
* subfolder when the root is none.
|
|
84
|
+
*
|
|
85
|
+
* Repositories that are not JavaScript projects at heart keep their Angular
|
|
86
|
+
* app in a folder of its own: privacyIDEA, a Python server, has its web UI in
|
|
87
|
+
* `privacyidea/static` with its own `angular.json` and `package.json`. Read
|
|
88
|
+
* from the root, such a repository had no Angular version, no tsconfig and no
|
|
89
|
+
* build targets, so half the checks graded `info` and the routes all looked
|
|
90
|
+
* eager. When the root has no `angular.json`, no Nx workspace and no
|
|
91
|
+
* `@angular/core`, and exactly one subfolder has an `angular.json`, that
|
|
92
|
+
* folder becomes the workspace: its package.json, lockfile, node_modules,
|
|
93
|
+
* tsconfig and targets, with project roots made relative to the analysed
|
|
94
|
+
* root again. Every file of the repository is still scanned. Dependencies of
|
|
95
|
+
* the root's `package.json` that the subfolder does not declare are kept,
|
|
96
|
+
* so an AngularJS app at the root still has its `angular` version.
|
|
97
|
+
*
|
|
98
|
+
* With several such subfolders nothing is chosen; `nestedWorkspaces` lists
|
|
99
|
+
* them so the report can say which to run on.
|
|
100
|
+
*/
|
|
101
|
+
export declare function resolveWorkspace(root: string, projectJsons: string[], nestedAngularJsons: string[]): WorkspaceInfo;
|
|
73
102
|
/**
|
|
74
103
|
* Reads the repository-level configuration: `package.json`, `angular.json` or
|
|
75
104
|
* the Nx `project.json` files, and the tsconfig files that matter.
|
package/dist/workspace.js
CHANGED
|
@@ -2,6 +2,44 @@ import { existsSync, readFileSync } from 'node:fs';
|
|
|
2
2
|
import { basename, dirname, join, relative, resolve } from 'node:path';
|
|
3
3
|
import ts from 'typescript';
|
|
4
4
|
import { readLockedVersions } from './lockfile.js';
|
|
5
|
+
/**
|
|
6
|
+
* The workspace to analyse: the root's, or the one Angular workspace in a
|
|
7
|
+
* subfolder when the root is none.
|
|
8
|
+
*
|
|
9
|
+
* Repositories that are not JavaScript projects at heart keep their Angular
|
|
10
|
+
* app in a folder of its own: privacyIDEA, a Python server, has its web UI in
|
|
11
|
+
* `privacyidea/static` with its own `angular.json` and `package.json`. Read
|
|
12
|
+
* from the root, such a repository had no Angular version, no tsconfig and no
|
|
13
|
+
* build targets, so half the checks graded `info` and the routes all looked
|
|
14
|
+
* eager. When the root has no `angular.json`, no Nx workspace and no
|
|
15
|
+
* `@angular/core`, and exactly one subfolder has an `angular.json`, that
|
|
16
|
+
* folder becomes the workspace: its package.json, lockfile, node_modules,
|
|
17
|
+
* tsconfig and targets, with project roots made relative to the analysed
|
|
18
|
+
* root again. Every file of the repository is still scanned. Dependencies of
|
|
19
|
+
* the root's `package.json` that the subfolder does not declare are kept,
|
|
20
|
+
* so an AngularJS app at the root still has its `angular` version.
|
|
21
|
+
*
|
|
22
|
+
* With several such subfolders nothing is chosen; `nestedWorkspaces` lists
|
|
23
|
+
* them so the report can say which to run on.
|
|
24
|
+
*/
|
|
25
|
+
export function resolveWorkspace(root, projectJsons, nestedAngularJsons) {
|
|
26
|
+
const atRoot = readWorkspace(root, projectJsons);
|
|
27
|
+
if (atRoot.kind !== 'unknown' || atRoot.angular.major !== undefined || nestedAngularJsons.length === 0)
|
|
28
|
+
return atRoot;
|
|
29
|
+
const folders = nestedAngularJsons.map((path) => dirname(path));
|
|
30
|
+
if (folders.length > 1)
|
|
31
|
+
return { ...atRoot, nestedWorkspaces: folders.map((folder) => relative(root, folder).split(/[\\/]/).join('/')) };
|
|
32
|
+
const folder = folders[0];
|
|
33
|
+
const prefix = relative(root, folder).split(/[\\/]/).join('/');
|
|
34
|
+
const inner = readWorkspace(folder, []);
|
|
35
|
+
return {
|
|
36
|
+
...inner,
|
|
37
|
+
dependencies: { ...atRoot.dependencies, ...inner.dependencies },
|
|
38
|
+
versions: { ...atRoot.versions, ...inner.versions },
|
|
39
|
+
projects: inner.projects.map((project) => ({ ...project, root: project.root ? `${prefix}/${project.root}` : prefix })),
|
|
40
|
+
subfolder: prefix,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
5
43
|
/**
|
|
6
44
|
* Reads the repository-level configuration: `package.json`, `angular.json` or
|
|
7
45
|
* the Nx `project.json` files, and the tsconfig files that matter.
|
package/dist/workspace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ng-checkup",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "A one-minute modernization report for any Angular codebase: version gap, deprecated APIs, zoneless readiness, signals adoption, test runner, type safety and circular dependencies.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|