1 | ;
|
2 | /**
|
3 | * @license
|
4 | * Copyright Google LLC All Rights Reserved.
|
5 | *
|
6 | * Use of this source code is governed by an MIT-style license that can be
|
7 | * found in the LICENSE file at https://angular.io/license
|
8 | */
|
9 | Object.defineProperty(exports, "__esModule", { value: true });
|
10 | exports.assertCompatibleAngularVersion = void 0;
|
11 | /* eslint-disable no-console */
|
12 | const core_1 = require("@angular-devkit/core");
|
13 | const semver_1 = require("semver");
|
14 | function assertCompatibleAngularVersion(projectRoot) {
|
15 | let angularCliPkgJson;
|
16 | let angularPkgJson;
|
17 | const resolveOptions = { paths: [projectRoot] };
|
18 | try {
|
19 | const angularPackagePath = require.resolve('@angular/core/package.json', resolveOptions);
|
20 | angularPkgJson = require(angularPackagePath);
|
21 | }
|
22 | catch (_a) {
|
23 | console.error(core_1.tags.stripIndents `
|
24 | You seem to not be depending on "@angular/core". This is an error.
|
25 | `);
|
26 | process.exit(2);
|
27 | }
|
28 | if (!(angularPkgJson && angularPkgJson['version'])) {
|
29 | console.error(core_1.tags.stripIndents `
|
30 | Cannot determine versions of "@angular/core".
|
31 | This likely means your local installation is broken. Please reinstall your packages.
|
32 | `);
|
33 | process.exit(2);
|
34 | }
|
35 | try {
|
36 | const angularCliPkgPath = require.resolve('@angular/cli/package.json', resolveOptions);
|
37 | angularCliPkgJson = require(angularCliPkgPath);
|
38 | if (!(angularCliPkgJson && angularCliPkgJson['version'])) {
|
39 | return;
|
40 | }
|
41 | }
|
42 | catch (_b) {
|
43 | // Not using @angular-devkit/build-angular with @angular/cli is ok too.
|
44 | // In this case we don't provide as many version checks.
|
45 | return;
|
46 | }
|
47 | if (angularCliPkgJson['version'] === '0.0.0' || angularPkgJson['version'] === '0.0.0') {
|
48 | // Internal CLI testing version or integration testing in the angular/angular
|
49 | // repository with the generated development @angular/core npm package which is versioned "0.0.0".
|
50 | return;
|
51 | }
|
52 | const supportedAngularSemver = require('../../package.json')['peerDependencies']['@angular/compiler-cli'];
|
53 | const angularVersion = new semver_1.SemVer(angularPkgJson['version']);
|
54 | if (!(0, semver_1.satisfies)(angularVersion, supportedAngularSemver, { includePrerelease: true })) {
|
55 | console.error(core_1.tags.stripIndents `
|
56 | This version of CLI is only compatible with Angular versions ${supportedAngularSemver},
|
57 | but Angular version ${angularVersion} was found instead.
|
58 |
|
59 | Please visit the link below to find instructions on how to update Angular.
|
60 | https://update.angular.io/
|
61 | ` + '\n');
|
62 | process.exit(3);
|
63 | }
|
64 | }
|
65 | exports.assertCompatibleAngularVersion = assertCompatibleAngularVersion;
|
66 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuZ3VsYXJfZGV2a2l0L2J1aWxkX2FuZ3VsYXIvc3JjL3V0aWxzL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBRUgsK0JBQStCO0FBRS9CLCtDQUE0QztBQUM1QyxtQ0FBMkM7QUFFM0MsU0FBZ0IsOEJBQThCLENBQUMsV0FBbUI7SUFDaEUsSUFBSSxpQkFBaUIsQ0FBQztJQUN0QixJQUFJLGNBQWMsQ0FBQztJQUNuQixNQUFNLGNBQWMsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7SUFFaEQsSUFBSTtRQUNGLE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUV6RixjQUFjLEdBQUcsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0FDOUM7SUFBQyxXQUFNO1FBQ04sT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFJLENBQUMsWUFBWSxDQUFBOztLQUU5QixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pCO0lBRUQsSUFBSSxDQUFDLENBQUMsY0FBYyxJQUFJLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFO1FBQ2xELE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBSSxDQUFDLFlBQVksQ0FBQTs7O0tBRzlCLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7SUFFRCxJQUFJO1FBQ0YsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLDJCQUEyQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZGLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxDQUFDLGlCQUFpQixJQUFJLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUU7WUFDeEQsT0FBTztTQUNSO0tBQ0Y7SUFBQyxXQUFNO1FBQ04sdUVBQXVFO1FBQ3ZFLHdEQUF3RDtRQUN4RCxPQUFPO0tBQ1I7SUFFRCxJQUFJLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxLQUFLLE9BQU8sSUFBSSxjQUFjLENBQUMsU0FBUyxDQUFDLEtBQUssT0FBTyxFQUFFO1FBQ3JGLDZFQUE2RTtRQUM3RSxrR0FBa0c7UUFDbEcsT0FBTztLQUNSO0lBRUQsTUFBTSxzQkFBc0IsR0FDMUIsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQzdFLE1BQU0sY0FBYyxHQUFHLElBQUksZUFBTSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBRTdELElBQUksQ0FBQyxJQUFBLGtCQUFTLEVBQUMsY0FBYyxFQUFFLHNCQUFzQixFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtRQUNuRixPQUFPLENBQUMsS0FBSyxDQUNYLFdBQUksQ0FBQyxZQUFZLENBQUE7dUVBQ2dELHNCQUFzQjs4QkFDL0QsY0FBYzs7OztPQUlyQyxHQUFHLElBQUksQ0FDVCxDQUFDO1FBRUYsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUNqQjtBQUNILENBQUM7QUE3REQsd0VBNkRDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cblxuaW1wb3J0IHsgdGFncyB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7IFNlbVZlciwgc2F0aXNmaWVzIH0gZnJvbSAnc2VtdmVyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydENvbXBhdGlibGVBbmd1bGFyVmVyc2lvbihwcm9qZWN0Um9vdDogc3RyaW5nKTogdm9pZCB8IG5ldmVyIHtcbiAgbGV0IGFuZ3VsYXJDbGlQa2dKc29uO1xuICBsZXQgYW5ndWxhclBrZ0pzb247XG4gIGNvbnN0IHJlc29sdmVPcHRpb25zID0geyBwYXRoczogW3Byb2plY3RSb290XSB9O1xuXG4gIHRyeSB7XG4gICAgY29uc3QgYW5ndWxhclBhY2thZ2VQYXRoID0gcmVxdWlyZS5yZXNvbHZlKCdAYW5ndWxhci9jb3JlL3BhY2thZ2UuanNvbicsIHJlc29sdmVPcHRpb25zKTtcblxuICAgIGFuZ3VsYXJQa2dKc29uID0gcmVxdWlyZShhbmd1bGFyUGFja2FnZVBhdGgpO1xuICB9IGNhdGNoIHtcbiAgICBjb25zb2xlLmVycm9yKHRhZ3Muc3RyaXBJbmRlbnRzYFxuICAgICAgWW91IHNlZW0gdG8gbm90IGJlIGRlcGVuZGluZyBvbiBcIkBhbmd1bGFyL2NvcmVcIi4gVGhpcyBpcyBhbiBlcnJvci5cbiAgICBgKTtcblxuICAgIHByb2Nlc3MuZXhpdCgyKTtcbiAgfVxuXG4gIGlmICghKGFuZ3VsYXJQa2dKc29uICYmIGFuZ3VsYXJQa2dKc29uWyd2ZXJzaW9uJ10pKSB7XG4gICAgY29uc29sZS5lcnJvcih0YWdzLnN0cmlwSW5kZW50c2BcbiAgICAgIENhbm5vdCBkZXRlcm1pbmUgdmVyc2lvbnMgb2YgXCJAYW5ndWxhci9jb3JlXCIuXG4gICAgICBUaGlzIGxpa2VseSBtZWFucyB5b3VyIGxvY2FsIGluc3RhbGxhdGlvbiBpcyBicm9rZW4uIFBsZWFzZSByZWluc3RhbGwgeW91ciBwYWNrYWdlcy5cbiAgICBgKTtcblxuICAgIHByb2Nlc3MuZXhpdCgyKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgYW5ndWxhckNsaVBrZ1BhdGggPSByZXF1aXJlLnJlc29sdmUoJ0Bhbmd1bGFyL2NsaS9wYWNrYWdlLmpzb24nLCByZXNvbHZlT3B0aW9ucyk7XG4gICAgYW5ndWxhckNsaVBrZ0pzb24gPSByZXF1aXJlKGFuZ3VsYXJDbGlQa2dQYXRoKTtcbiAgICBpZiAoIShhbmd1bGFyQ2xpUGtnSnNvbiAmJiBhbmd1bGFyQ2xpUGtnSnNvblsndmVyc2lvbiddKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfSBjYXRjaCB7XG4gICAgLy8gTm90IHVzaW5nIEBhbmd1bGFyLWRldmtpdC9idWlsZC1hbmd1bGFyIHdpdGggQGFuZ3VsYXIvY2xpIGlzIG9rIHRvby5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZG9uJ3QgcHJvdmlkZSBhcyBtYW55IHZlcnNpb24gY2hlY2tzLlxuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChhbmd1bGFyQ2xpUGtnSnNvblsndmVyc2lvbiddID09PSAnMC4wLjAnIHx8IGFuZ3VsYXJQa2dKc29uWyd2ZXJzaW9uJ10gPT09ICcwLjAuMCcpIHtcbiAgICAvLyBJbnRlcm5hbCBDTEkgdGVzdGluZyB2ZXJzaW9uIG9yIGludGVncmF0aW9uIHRlc3RpbmcgaW4gdGhlIGFuZ3VsYXIvYW5ndWxhclxuICAgIC8vIHJlcG9zaXRvcnkgd2l0aCB0aGUgZ2VuZXJhdGVkIGRldmVsb3BtZW50IEBhbmd1bGFyL2NvcmUgbnBtIHBhY2thZ2Ugd2hpY2ggaXMgdmVyc2lvbmVkIFwiMC4wLjBcIi5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBzdXBwb3J0ZWRBbmd1bGFyU2VtdmVyID1cbiAgICByZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKVsncGVlckRlcGVuZGVuY2llcyddWydAYW5ndWxhci9jb21waWxlci1jbGknXTtcbiAgY29uc3QgYW5ndWxhclZlcnNpb24gPSBuZXcgU2VtVmVyKGFuZ3VsYXJQa2dKc29uWyd2ZXJzaW9uJ10pO1xuXG4gIGlmICghc2F0aXNmaWVzKGFuZ3VsYXJWZXJzaW9uLCBzdXBwb3J0ZWRBbmd1bGFyU2VtdmVyLCB7IGluY2x1ZGVQcmVyZWxlYXNlOiB0cnVlIH0pKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgIHRhZ3Muc3RyaXBJbmRlbnRzYFxuICAgICAgICBUaGlzIHZlcnNpb24gb2YgQ0xJIGlzIG9ubHkgY29tcGF0aWJsZSB3aXRoIEFuZ3VsYXIgdmVyc2lvbnMgJHtzdXBwb3J0ZWRBbmd1bGFyU2VtdmVyfSxcbiAgICAgICAgYnV0IEFuZ3VsYXIgdmVyc2lvbiAke2FuZ3VsYXJWZXJzaW9ufSB3YXMgZm91bmQgaW5zdGVhZC5cblxuICAgICAgICBQbGVhc2UgdmlzaXQgdGhlIGxpbmsgYmVsb3cgdG8gZmluZCBpbnN0cnVjdGlvbnMgb24gaG93IHRvIHVwZGF0ZSBBbmd1bGFyLlxuICAgICAgICBodHRwczovL3VwZGF0ZS5hbmd1bGFyLmlvL1xuICAgICAgYCArICdcXG4nLFxuICAgICk7XG5cbiAgICBwcm9jZXNzLmV4aXQoMyk7XG4gIH1cbn1cbiJdfQ== |
\ | No newline at end of file |