ng-checkup 0.2.0 → 0.4.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.
Files changed (47) hide show
  1. package/README.md +75 -13
  2. package/dist/angular-versions.d.ts +14 -0
  3. package/dist/angular-versions.js +157 -0
  4. package/dist/angular-versions.js.map +1 -0
  5. package/dist/baseline.d.ts +72 -0
  6. package/dist/baseline.js +82 -0
  7. package/dist/baseline.js.map +1 -0
  8. package/dist/checks/change-detection.js +5 -0
  9. package/dist/checks/change-detection.js.map +1 -1
  10. package/dist/checks/circular-deps.js +3 -0
  11. package/dist/checks/circular-deps.js.map +1 -1
  12. package/dist/checks/components.js +5 -0
  13. package/dist/checks/components.js.map +1 -1
  14. package/dist/checks/deprecated-apis.js +5 -0
  15. package/dist/checks/deprecated-apis.js.map +1 -1
  16. package/dist/checks/state.js +5 -0
  17. package/dist/checks/state.js.map +1 -1
  18. package/dist/checks/testing.js +3 -0
  19. package/dist/checks/testing.js.map +1 -1
  20. package/dist/checks/type-safety.js +8 -0
  21. package/dist/checks/type-safety.js.map +1 -1
  22. package/dist/checks/version.js +5 -0
  23. package/dist/checks/version.js.map +1 -1
  24. package/dist/cli.d.ts +28 -6
  25. package/dist/cli.js +100 -12
  26. package/dist/cli.js.map +1 -1
  27. package/dist/config.d.ts +6 -2
  28. package/dist/config.js +13 -3
  29. package/dist/config.js.map +1 -1
  30. package/dist/index.d.ts +3 -0
  31. package/dist/index.js +6 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/init.d.ts +17 -3
  34. package/dist/init.js +32 -13
  35. package/dist/init.js.map +1 -1
  36. package/dist/plan.d.ts +69 -0
  37. package/dist/plan.js +183 -0
  38. package/dist/plan.js.map +1 -0
  39. package/dist/report/html.js +55 -0
  40. package/dist/report/html.js.map +1 -1
  41. package/dist/report/markdown.js +32 -0
  42. package/dist/report/markdown.js.map +1 -1
  43. package/dist/report/terminal.js +40 -0
  44. package/dist/report/terminal.js.map +1 -1
  45. package/dist/types.d.ts +25 -0
  46. package/package.json +1 -1
  47. package/schematics/ng-add/index.cjs +7 -2
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,9 @@ export { renderHtml } from './report/html.js';
5
5
  export { renderMarkdown } from './report/markdown.js';
6
6
  export { overallScore, topPriorities } from './report/summary.js';
7
7
  export { CONFIG_FILE, loadConfig, type CheckupConfig } from './config.js';
8
+ export { buildPlan, type PlanItem, type PlanRequirement, type UpgradePlan, type UpgradeStep } from './plan.js';
9
+ export { ANGULAR_VERSIONS, type AngularVersionInfo } from './angular-versions.js';
10
+ export { BASELINE_FILE, baselineIncreases, compareWithBaseline, createBaseline, readBaseline, serializeBaseline, type Baseline, type BaselineComparison, type MeasureDelta, } from './baseline.js';
8
11
  export { planInit, type InitChange, type InitOptions, type InitPlan } from './init.js';
9
12
  /**
10
13
  * The newest Angular major this release of the tool knows about. Used only
package/dist/index.js CHANGED
@@ -12,6 +12,7 @@ import { buildDeprecationIndex } from './deprecations.js';
12
12
  import { ignoreMatcher } from './config.js';
13
13
  import { collectFiles } from './files.js';
14
14
  import { findTangles, readCompilerOptions } from './graph.js';
15
+ import { buildPlan } from './plan.js';
15
16
  import { scanSourceFile, scanTemplateFile } from './scan.js';
16
17
  import { asRecord, majorOf, readJson, readWorkspace } from './workspace.js';
17
18
  // The renderers and the score are public so a script can turn a report from
@@ -21,6 +22,9 @@ export { renderHtml } from './report/html.js';
21
22
  export { renderMarkdown } from './report/markdown.js';
22
23
  export { overallScore, topPriorities } from './report/summary.js';
23
24
  export { CONFIG_FILE, loadConfig } from './config.js';
25
+ export { buildPlan } from './plan.js';
26
+ export { ANGULAR_VERSIONS } from './angular-versions.js';
27
+ export { BASELINE_FILE, baselineIncreases, compareWithBaseline, createBaseline, readBaseline, serializeBaseline, } from './baseline.js';
24
28
  export { planInit } from './init.js';
25
29
  /**
26
30
  * The newest Angular major this release of the tool knows about. Used only
@@ -49,6 +53,7 @@ export async function runCheckup(root, options = {}) {
49
53
  const context = await buildContext(absoluteRoot, options);
50
54
  const checks = CHECKS.map((check) => check(context));
51
55
  const application = context.sources.filter((file) => !file.isSpec);
56
+ const plan = options.plan ? buildPlan(context.workspace, checks, context.latestAngular.major) : undefined;
52
57
  return {
53
58
  tool: TOOL,
54
59
  generatedAt: new Date().toISOString(),
@@ -63,6 +68,7 @@ export async function runCheckup(root, options = {}) {
63
68
  },
64
69
  checks,
65
70
  durationMs: Date.now() - started,
71
+ ...(plan ? { plan } : {}),
66
72
  };
67
73
  }
68
74
  /** Gathers everything the checks read. Exported for tests that want to inspect the facts. */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/init.d.ts CHANGED
@@ -24,6 +24,12 @@ export interface InitOptions {
24
24
  version: string;
25
25
  /** Replace an existing `checkup` script that runs something else. */
26
26
  force?: boolean;
27
+ /**
28
+ * Serialised baseline of the code as it is now, computed by the caller
29
+ * (the planner never analyses). Written when no baseline exists, and it
30
+ * switches the CI step to `--fail-on regression`.
31
+ */
32
+ baseline?: string;
27
33
  }
28
34
  /** One file to write. Content is the whole new file. */
29
35
  export interface InitChange {
@@ -51,7 +57,13 @@ export type PackageManager = 'npm' | 'pnpm' | 'yarn';
51
57
  * 1. a `checkup` script in `package.json` (and `ng-checkup` in `devDependencies`),
52
58
  * 2. `ng-checkup.config.json` with the local report and an empty `ignore` list,
53
59
  * 3. the generated reports in `.gitignore`, when there is one,
54
- * 4. a CI step: a GitHub Actions workflow, or a GitLab CI file to `include`.
60
+ * 4. a CI step: a GitHub Actions workflow, or a GitLab CI file to `include`,
61
+ * 5. a baseline of today's numbers, when the caller supplies one.
62
+ *
63
+ * With a baseline the CI step runs `--fail-on regression`: it fails only
64
+ * when a number gets worse, so a ten-year-old codebase can adopt it on day
65
+ * one instead of being red until every legacy finding is fixed. Without one
66
+ * it falls back to `--fail-on poor`.
55
67
  *
56
68
  * Idempotent: on a repository that already has all of it, the plan is empty.
57
69
  * It never overwrites a file the user wrote: an existing workflow, config or
@@ -66,10 +78,12 @@ export type PackageManager = 'npm' | 'pnpm' | 'yarn';
66
78
  export declare function planInit(files: InitFileSystem, options: InitOptions): InitPlan;
67
79
  /** The package manager, from its lockfile. npm when there is none or only npm's. */
68
80
  export declare function detectPackageManager(files: InitFileSystem): PackageManager;
81
+ /** What the CI step fails on: a worse number against the baseline, or a poor area without one. */
82
+ export type CiFailOn = 'regression' | 'poor';
69
83
  /** A GitHub Actions workflow for the repository's package manager. */
70
- export declare function githubWorkflow(manager: PackageManager): string;
84
+ export declare function githubWorkflow(manager: PackageManager, failOn?: CiFailOn): string;
71
85
  /** A GitLab CI job file for the repository's package manager, meant to be `include`d. */
72
- export declare function gitlabJob(manager: PackageManager): string;
86
+ export declare function gitlabJob(manager: PackageManager, failOn?: CiFailOn): string;
73
87
  /**
74
88
  * Serialises `value` with the indentation and final newline of `original`,
75
89
  * so `init` changes only the lines it means to and a `git diff` of
package/dist/init.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { BASELINE_FILE } from './baseline.js';
1
2
  import { CONFIG_FILE } from './config.js';
2
3
  /** The script `init` adds. Reports come from the config file, so the script stays this short. */
3
4
  const CHECKUP_SCRIPT = 'ng-checkup';
@@ -10,7 +11,13 @@ const CI_REPORTS = ['checkup.md', 'checkup.html'];
10
11
  * 1. a `checkup` script in `package.json` (and `ng-checkup` in `devDependencies`),
11
12
  * 2. `ng-checkup.config.json` with the local report and an empty `ignore` list,
12
13
  * 3. the generated reports in `.gitignore`, when there is one,
13
- * 4. a CI step: a GitHub Actions workflow, or a GitLab CI file to `include`.
14
+ * 4. a CI step: a GitHub Actions workflow, or a GitLab CI file to `include`,
15
+ * 5. a baseline of today's numbers, when the caller supplies one.
16
+ *
17
+ * With a baseline the CI step runs `--fail-on regression`: it fails only
18
+ * when a number gets worse, so a ten-year-old codebase can adopt it on day
19
+ * one instead of being red until every legacy finding is fixed. Without one
20
+ * it falls back to `--fail-on poor`.
14
21
  *
15
22
  * Idempotent: on a repository that already has all of it, the plan is empty.
16
23
  * It never overwrites a file the user wrote: an existing workflow, config or
@@ -83,21 +90,33 @@ export function planInit(files, options) {
83
90
  changes.push({ path: '.gitignore', action: 'update', content: `${gitignore}${separator}\n# ng-checkup reports\n${missing.join('\n')}\n`, summary: 'Keeps the generated reports out of git' });
84
91
  }
85
92
  }
93
+ // 5. The baseline (written before the CI step, which depends on it).
94
+ const hasBaseline = files.exists(BASELINE_FILE);
95
+ if (!hasBaseline && options.baseline !== undefined) {
96
+ changes.push({ path: BASELINE_FILE, action: 'create', content: options.baseline, summary: "Today's numbers; CI fails only when one gets worse. Commit it" });
97
+ }
98
+ const failOn = hasBaseline || options.baseline !== undefined ? 'regression' : 'poor';
86
99
  // 4. CI.
87
100
  const ci = resolveCi(files, options.ci ?? 'auto');
88
101
  if (ci === 'github') {
89
102
  const path = '.github/workflows/ng-checkup.yml';
90
- if (files.exists(path))
103
+ if (files.exists(path)) {
91
104
  notes.push(`Kept the existing ${path}.`);
105
+ if (failOn === 'regression' && (files.read(path) ?? '').includes('--fail-on poor'))
106
+ notes.push(`${path} still runs --fail-on poor. With a baseline, --fail-on regression lets existing code pass and fails only when a number gets worse.`);
107
+ }
92
108
  else
93
- changes.push({ path, action: 'create', content: githubWorkflow(packageManager), summary: 'Runs the checkup on every pull request and uploads the reports' });
109
+ changes.push({ path, action: 'create', content: githubWorkflow(packageManager, failOn), summary: 'Runs the checkup on every pull request and uploads the reports' });
94
110
  }
95
111
  else if (ci === 'gitlab') {
96
112
  const path = 'ng-checkup.gitlab-ci.yml';
97
- if (files.exists(path))
113
+ if (files.exists(path)) {
98
114
  notes.push(`Kept the existing ${path}.`);
115
+ if (failOn === 'regression' && (files.read(path) ?? '').includes('--fail-on poor'))
116
+ notes.push(`${path} still runs --fail-on poor. With a baseline, --fail-on regression lets existing code pass and fails only when a number gets worse.`);
117
+ }
99
118
  else
100
- changes.push({ path, action: 'create', content: gitlabJob(packageManager), summary: 'A GitLab CI job that runs the checkup and keeps the reports as artifacts' });
119
+ changes.push({ path, action: 'create', content: gitlabJob(packageManager, failOn), summary: 'A GitLab CI job that runs the checkup and keeps the reports as artifacts' });
101
120
  if (!(files.read('.gitlab-ci.yml') ?? '').includes(path)) {
102
121
  notes.push(`Add this to your .gitlab-ci.yml to run it:\n include:\n - local: ${path}`);
103
122
  }
@@ -149,15 +168,15 @@ function binCommand(manager) {
149
168
  return 'yarn ng-checkup';
150
169
  return 'npx ng-checkup';
151
170
  }
152
- /** The CI invocation: fail on a poor area, keep both report formats. */
153
- function ciRun(manager) {
154
- return `${binCommand(manager)} --fail-on poor ${CI_REPORTS.map((report) => `--report ${report}`).join(' ')}`;
171
+ /** The CI invocation, keeping both report formats. */
172
+ function ciRun(manager, failOn) {
173
+ return `${binCommand(manager)} --fail-on ${failOn} ${CI_REPORTS.map((report) => `--report ${report}`).join(' ')}`;
155
174
  }
156
175
  /** A GitHub Actions workflow for the repository's package manager. */
157
- export function githubWorkflow(manager) {
176
+ export function githubWorkflow(manager, failOn = 'poor') {
158
177
  const pnpmSetup = manager === 'pnpm' ? ' - uses: pnpm/action-setup@v4\n' : '';
159
178
  return `# Added by ng-checkup init. Grades the Angular codebase on every pull request
160
- # and fails the job when an area turns poor. Reports: see the run's artifacts.
179
+ # and fails the job ${failOn === 'regression' ? 'when a number gets worse than ng-checkup.baseline.json' : 'when an area turns poor'}. Reports: see the run's artifacts.
161
180
  name: ng-checkup
162
181
 
163
182
  on:
@@ -175,7 +194,7 @@ ${pnpmSetup} - uses: actions/setup-node@v4
175
194
  node-version: 22
176
195
  cache: ${manager}
177
196
  - run: ${installCommand(manager, true)}
178
- - run: ${ciRun(manager)}
197
+ - run: ${ciRun(manager, failOn)}
179
198
  - uses: actions/upload-artifact@v4
180
199
  if: always()
181
200
  with:
@@ -185,7 +204,7 @@ ${CI_REPORTS.map((report) => ` ${report}`).join('\n')}
185
204
  `;
186
205
  }
187
206
  /** A GitLab CI job file for the repository's package manager, meant to be `include`d. */
188
- export function gitlabJob(manager) {
207
+ export function gitlabJob(manager, failOn = 'poor') {
189
208
  const corepack = manager === 'pnpm' ? ' - corepack enable\n' : '';
190
209
  return `# Added by ng-checkup init. Include it from .gitlab-ci.yml:
191
210
  # include:
@@ -194,7 +213,7 @@ ng-checkup:
194
213
  image: node:22
195
214
  script:
196
215
  ${corepack} - ${installCommand(manager, true)}
197
- - ${ciRun(manager)}
216
+ - ${ciRun(manager, failOn)}
198
217
  artifacts:
199
218
  when: always
200
219
  expose_as: ng-checkup report
package/dist/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAuD1C,iGAAiG;AACjG,MAAM,cAAc,GAAG,YAAY,CAAC;AAEpC,4FAA4F;AAC5F,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,UAAU,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AAElD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAqB,EAAE,OAAoB;IAClE,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,cAAc,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAEnD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/C,IAAI,WAAW,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,gFAAgF,CAAC,CAAC;IACjI,IAAI,WAAoC,CAAC;IACzC,IAAI,CAAC;QACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAA4B,CAAC;IACnE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/G,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,QAAQ,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,eAAe,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,eAAe,IAAI,eAAe,CAAC,EAAE,CAAC;QAC7I,KAAK,CAAC,IAAI,CAAC,sJAAsJ,CAAC,CAAC;IACrK,CAAC;IAED,sDAAsD;IACtD,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,MAAM,YAAY,GAAa,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;IACxD,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,cAAc,KAAK,SAAS,IAAI,CAAC,cAAc,KAAK,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzF,OAAO,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC;QACpC,WAAW,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;QACjC,cAAc,GAAG,IAAI,CAAC;QACtB,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,cAAc,KAAK,cAAc,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,wCAAwC,MAAM,CAAC,cAAc,CAAC,2CAA2C,cAAc,IAAI,CAAC,CAAC;IAC1I,CAAC;IACD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;IACpD,IAAI,aAAa,IAAI,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,YAAY,IAAI,eAAe,CAAC,EAAE,CAAC;QAC3F,WAAW,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,eAAe,EAAE,YAAY,EAAE,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7F,cAAc,GAAG,IAAI,CAAC;QACtB,YAAY,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,OAAO,qBAAqB,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,OAAO,EAAE,QAAQ,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7J,CAAC;IAED,sBAAsB;IACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC;YACX,IAAI,EAAE,WAAW;YACjB,MAAM,EAAE,QAAQ;YAChB,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;YAChF,OAAO,EAAE,UAAU,YAAY,wDAAwD;SACxF,CAAC,CAAC;IACL,CAAC;IAED,mDAAmD;IACnD,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3E,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7J,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,SAAS,GAAG,SAAS,2BAA2B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC,CAAC;QAChM,CAAC;IACH,CAAC;IAED,SAAS;IACT,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,CAAC;IAClD,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;QACpB,MAAM,IAAI,GAAG,kCAAkC,CAAC;QAChD,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC;;YAC5D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,gEAAgE,EAAE,CAAC,CAAC;IACpK,CAAC;SAAM,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,0BAA0B,CAAC;QACxC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC;;YAC5D,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,0EAA0E,EAAE,CAAC,CAAC;QACvK,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,KAAK,CAAC,IAAI,CAAC,4EAA4E,IAAI,EAAE,CAAC,CAAC;QACjG,CAAC;IACH,CAAC;SAAM,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,MAAM,EAAE,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,+GAA+G,CAAC,CAAC;IAC9H,CAAC;IAED,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,cAAc,IAAI,aAAa;QAAE,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3F,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC,CAAC;IACjD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC;AAC3D,CAAC;AAED,yEAAyE;AACzE,SAAS,SAAS,CAAC,KAAqB,EAAE,MAAgB;IACxD,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC;IACrC,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAAE,OAAO,QAAQ,CAAC;IACpD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,oBAAoB,CAAC,KAAqB;IACxD,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC;QAAE,OAAO,MAAM,CAAC;IAClD,IAAI,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;QAAE,OAAO,MAAM,CAAC;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oFAAoF;AACpF,SAAS,cAAc,CAAC,OAAuB,EAAE,MAAe;IAC9D,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,cAAc,CAAC;IAC1F,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC,cAAc,CAAC;IAC1F,OAAO,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;AAC3C,CAAC;AAED,uCAAuC;AACvC,SAAS,gBAAgB,CAAC,OAAuB;IAC/C,OAAO,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,UAAU,CAAC;AACtE,CAAC;AAED,wCAAwC;AACxC,SAAS,UAAU,CAAC,OAAuB;IACzC,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,sBAAsB,CAAC;IACtD,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,iBAAiB,CAAC;IACjD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,wEAAwE;AACxE,SAAS,KAAK,CAAC,OAAuB;IACpC,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,mBAAmB,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAC/G,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,cAAc,CAAC,OAAuB;IACpD,MAAM,SAAS,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,OAAO;;;;;;;;;;;;;;EAcP,SAAS;;;mBAGQ,OAAO;eACX,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC;eAC7B,KAAK,CAAC,OAAO,CAAC;;;;;;EAM3B,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CAC/D,CAAC;AACF,CAAC;AAED,yFAAyF;AACzF,MAAM,UAAU,SAAS,CAAC,OAAuB;IAC/C,MAAM,QAAQ,GAAG,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,OAAO;;;;;;EAMP,QAAQ,SAAS,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC;QACxC,KAAK,CAAC,OAAO,CAAC;;;;;EAKpB,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;CAC3D,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,KAAc;IAC7D,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAChE,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzE,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED,mFAAmF;AACnF,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAiC,CAAC,CAAC,CAAC,EAAE,CAAC;AACxH,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
package/dist/plan.d.ts ADDED
@@ -0,0 +1,69 @@
1
+ import { type AngularVersionInfo } from './angular-versions.js';
2
+ import type { CheckResult } from './types.js';
3
+ import { type WorkspaceInfo } from './workspace.js';
4
+ /** One requirement of a step, checked against what the project has now. */
5
+ export interface PlanRequirement {
6
+ name: 'Node.js' | 'TypeScript' | 'RxJS' | 'zone.js';
7
+ /** The range the target major accepts, from the registry snapshot. */
8
+ range: string;
9
+ /** The project's version today, when known (installed first, then the package.json range). Never known for Node.js. */
10
+ current?: string;
11
+ /**
12
+ * False when `current` is outside `range`: this step has to move it.
13
+ * Undefined when it cannot be judged (Node.js, or no version known).
14
+ */
15
+ satisfied?: boolean;
16
+ }
17
+ /** One thing to do in a step, specific to this codebase. */
18
+ export interface PlanItem {
19
+ title: string;
20
+ /** The command that does it, when there is one. */
21
+ command?: string;
22
+ detail?: string;
23
+ /** How many places in the code it touches, when the analysis counted them. */
24
+ count?: number;
25
+ }
26
+ /** Moving from one major to the next. */
27
+ export interface UpgradeStep {
28
+ /** The major this step reaches. */
29
+ to: number;
30
+ /** The last released version of that major. */
31
+ version: string;
32
+ command: string;
33
+ requirements: PlanRequirement[];
34
+ items: PlanItem[];
35
+ }
36
+ /** The way from the installed Angular to the target. Attached to `Report.plan`. */
37
+ export interface UpgradePlan {
38
+ from: number;
39
+ to: number;
40
+ /** Things to settle before the first `ng update`. */
41
+ before: PlanItem[];
42
+ steps: UpgradeStep[];
43
+ }
44
+ /**
45
+ * Plans the upgrade from the installed Angular major to `target`, one major
46
+ * at a time as `ng update` requires.
47
+ *
48
+ * Each step carries what is the same for everyone (the command, and the
49
+ * Node.js / TypeScript / RxJS / zone.js ranges from the registry snapshot in
50
+ * `angular-versions.ts`) and what is specific to this codebase: the
51
+ * migrations its findings call for, scheduled at the first step where
52
+ * Angular ships them, with the count of places each one touches. A migration
53
+ * the code does not need is left out, which is what makes the plan read as
54
+ * this project's and not as the Angular changelog.
55
+ *
56
+ * Deliberately gives no time estimate. Counts are measured; days would be a
57
+ * guess dressed up as data.
58
+ *
59
+ * @returns Undefined when the Angular version is unknown, or already at or
60
+ * past the target.
61
+ */
62
+ export declare function buildPlan(workspace: WorkspaceInfo, checks: CheckResult[], target: number, versions?: AngularVersionInfo[]): UpgradePlan | undefined;
63
+ /**
64
+ * Whether `version` falls in an npm range of the shapes Angular publishes:
65
+ * alternatives joined by `||`, each a space-separated set of comparators
66
+ * (`>=4.8.2 <5.0`, `^14.20.0`, `~0.15.0`, `>=18.10.0`, `6.0.x`). Enough for
67
+ * the requirement ranges in the snapshot, not a general semver implementation.
68
+ */
69
+ export declare function satisfies(version: [number, number, number], range: string): boolean;
package/dist/plan.js ADDED
@@ -0,0 +1,183 @@
1
+ import { ANGULAR_VERSIONS } from './angular-versions.js';
2
+ import { readInstalledVersion } from './workspace.js';
3
+ /**
4
+ * Plans the upgrade from the installed Angular major to `target`, one major
5
+ * at a time as `ng update` requires.
6
+ *
7
+ * Each step carries what is the same for everyone (the command, and the
8
+ * Node.js / TypeScript / RxJS / zone.js ranges from the registry snapshot in
9
+ * `angular-versions.ts`) and what is specific to this codebase: the
10
+ * migrations its findings call for, scheduled at the first step where
11
+ * Angular ships them, with the count of places each one touches. A migration
12
+ * the code does not need is left out, which is what makes the plan read as
13
+ * this project's and not as the Angular changelog.
14
+ *
15
+ * Deliberately gives no time estimate. Counts are measured; days would be a
16
+ * guess dressed up as data.
17
+ *
18
+ * @returns Undefined when the Angular version is unknown, or already at or
19
+ * past the target.
20
+ */
21
+ export function buildPlan(workspace, checks, target, versions = ANGULAR_VERSIONS) {
22
+ const from = workspace.angular.major;
23
+ if (from === undefined || from >= target)
24
+ return undefined;
25
+ const measure = (check, id) => checks.find((result) => result.id === check)?.measures?.find((entry) => entry.id === id)?.value ?? 0;
26
+ const metric = (check, label) => {
27
+ const value = checks.find((result) => result.id === check)?.metrics.find((entry) => entry.label === label)?.value;
28
+ return value === undefined ? undefined : String(value);
29
+ };
30
+ const dependencies = workspace.dependencies;
31
+ const has = (name) => name in dependencies;
32
+ const current = {
33
+ typescript: readInstalledVersion(workspace.root, 'typescript') ?? dependencies['typescript'],
34
+ rxjs: readInstalledVersion(workspace.root, 'rxjs') ?? dependencies['rxjs'],
35
+ zoneJs: readInstalledVersion(workspace.root, 'zone.js') ?? dependencies['zone.js'],
36
+ };
37
+ const before = [];
38
+ const overdue = checks.find((result) => result.id === 'deprecated-apis')?.findings.filter((finding) => finding.severity === 'high') ?? [];
39
+ if (overdue.length > 0) {
40
+ before.push({ title: 'Replace APIs deprecated two or more majors ago', detail: 'Any of the next steps may remove them. The deprecated-APIs section lists each one with its replacement.', count: overdue.reduce((sum, finding) => sum + (finding.count ?? 1), 0) });
41
+ }
42
+ if (has('tslint') || has('codelyzer')) {
43
+ before.push({ title: 'Move from TSLint to ESLint', command: 'ng add @angular-eslint/schematics', detail: 'TSLint is deprecated and later versions of the Angular CLI no longer support it.' });
44
+ }
45
+ if (measure('circular-deps', 'files-in-cycles') > 0) {
46
+ before.push({ title: 'Break the import cycles', detail: 'A cycle that works by luck of load order is the first thing a new compiler or bundler breaks, and the failure looks unrelated to the upgrade.', count: measure('circular-deps', 'files-in-cycles') });
47
+ }
48
+ const steps = [];
49
+ /** Each project-specific migration is scheduled once, at the first step where it exists. */
50
+ const scheduled = new Set();
51
+ const once = (key, step, availableFrom, item) => {
52
+ if (!item || scheduled.has(key) || step < availableFrom)
53
+ return [];
54
+ scheduled.add(key);
55
+ return [item];
56
+ };
57
+ const moduleComponents = measure('components', 'module-components');
58
+ const legacyControlFlow = Math.max(measure('components', 'legacy-control-flow'), measure('deprecated-apis', 'legacy-template-directives'));
59
+ const decoratorBindings = measure('components', 'decorator-inputs-outputs');
60
+ const eagerComponents = measure('change-detection', 'eager-components');
61
+ const zoneHelpers = measure('change-detection', 'zone-test-helpers');
62
+ const webpackBuilders = measure('version', 'webpack-builders');
63
+ const onKarma = (metric('testing', 'Unit-test runner') ?? '').includes('Karma');
64
+ const zoneless = metric('change-detection', 'Mode') === 'Zoneless';
65
+ const ngrx = Object.keys(dependencies).filter((name) => name.startsWith('@ngrx/'));
66
+ /**
67
+ * Requirements the project has had to move already. From that step on the
68
+ * project's original version says nothing (it was upgraded), so later steps
69
+ * show the range alone instead of repeating "now 4.3.5" ten times.
70
+ */
71
+ const moved = new Set();
72
+ const track = (entry) => {
73
+ if (entry.satisfied === false)
74
+ moved.add(entry.name);
75
+ return entry;
76
+ };
77
+ for (let major = from + 1; major <= target; major++) {
78
+ // A major newer than this release's snapshot still gets a step, without requirements.
79
+ const info = versions.find((entry) => entry.major === major) ?? { major, version: `${major}.x`, node: null, typescript: null, rxjs: null, zoneJs: null };
80
+ const unknown = !versions.some((entry) => entry.major === major);
81
+ const packages = [`@angular/core@${major}`, `@angular/cli@${major}`];
82
+ if (has('@angular/material'))
83
+ packages.push(`@angular/material@${major}`);
84
+ else if (has('@angular/cdk'))
85
+ packages.push(`@angular/cdk@${major}`);
86
+ const requirements = [];
87
+ if (info.node)
88
+ requirements.push({ name: 'Node.js', range: info.node });
89
+ if (info.typescript)
90
+ requirements.push(track(requirement('TypeScript', info.typescript, moved.has('TypeScript') ? undefined : current.typescript)));
91
+ if (info.rxjs && has('rxjs'))
92
+ requirements.push(track(requirement('RxJS', info.rxjs, moved.has('RxJS') ? undefined : current.rxjs)));
93
+ if (info.zoneJs && has('zone.js') && !zoneless)
94
+ requirements.push(track(requirement('zone.js', info.zoneJs, moved.has('zone.js') ? undefined : current.zoneJs)));
95
+ const items = [
96
+ ...(unknown ? [{ title: 'Check the requirements for this major', detail: 'It was released after this version of ng-checkup. Node.js and TypeScript ranges: angular.dev/reference/versions.' }] : []),
97
+ ...(ngrx.length > 0 && major >= 8 ? [{ title: `Update NgRx to ${major} in the same step`, command: `ng update ${ngrx.map((name) => `${name}@${major}`).join(' ')}`, detail: 'NgRx versions follow Angular majors. If that major is not released yet, wait for it before this step.' }] : []),
98
+ ...(has('@angular/flex-layout') && major === 16
99
+ ? [{ title: 'Replace @angular/flex-layout first', detail: 'Its last release targets Angular 15, so it blocks this step. Use CSS flexbox and grid, or a maintained layout library.' }]
100
+ : []),
101
+ ...(has('@angular/material') && from < 15 && major === 15
102
+ ? [{ title: 'Angular Material moves to the MDC-based components', detail: 'The old ones stay available as MatLegacy* until 17. Budget time for visual review: spacing, typography and density change.' }]
103
+ : []),
104
+ ...(has('@angular/material') && from < 17 && major === 17
105
+ ? [{ title: 'The MatLegacy* components are removed', detail: 'Anything still imported from the legacy entry points has to move to the MDC-based components before this step.' }]
106
+ : []),
107
+ ...once('standalone', major, 16, moduleComponents > 0 ? { title: 'Convert NgModule components to standalone', command: 'ng generate @angular/core:standalone', detail: 'Three passes: convert declarations, remove unneeded NgModules, switch to standalone bootstrap.', count: moduleComponents } : undefined),
108
+ ...once('control-flow', major, 17, legacyControlFlow > 0 ? { title: 'Move templates to built-in control flow', command: 'ng generate @angular/core:control-flow', count: legacyControlFlow } : undefined),
109
+ ...once('application-builder', major, 18, webpackBuilders > 0 ? { title: 'Switch to the esbuild application builder', command: 'ng update @angular/cli --name use-application-builder', count: webpackBuilders } : undefined),
110
+ ...once('signal-inputs', major, 19, decoratorBindings > 0 ? { title: 'Convert @Input() and @Output() to signal inputs and outputs', command: 'ng generate @angular/core:signal-input-migration && ng generate @angular/core:output-migration', count: decoratorBindings } : undefined),
111
+ ...once('vitest', major, 21, onKarma ? { title: 'Move unit tests from Karma to Vitest', detail: 'Vitest is the Angular CLI default from 21 (@angular/build:unit-test). Jasmine-specific calls (spyOn, jasmine.*) need rewriting.' } : undefined),
112
+ ...once('zoneless', major, 21, !zoneless
113
+ ? {
114
+ title: eagerComponents > 0 ? 'Prepare for zoneless: move components to OnPush, then drop zone.js' : 'Drop zone.js: zoneless is the default from 21',
115
+ detail: `Upgraded apps keep zone.js through provideZoneChangeDetection() until it is removed.${zoneHelpers > 0 ? ` ${zoneHelpers} zone-based test helper calls (fakeAsync, tick) need fake timers instead.` : ''}`,
116
+ count: eagerComponents || undefined,
117
+ }
118
+ : undefined),
119
+ ];
120
+ steps.push({ to: major, version: info.version, command: `ng update ${packages.join(' ')}`, requirements, items });
121
+ }
122
+ return { from, to: target, before, steps };
123
+ }
124
+ /** A requirement with the project's current version judged against the range. */
125
+ function requirement(name, range, current) {
126
+ const version = current ? lowestVersionOf(current) : undefined;
127
+ return { name, range, current, satisfied: version ? satisfies(version, range) : undefined };
128
+ }
129
+ /** `[major, minor, patch]` of `1.2.3`, `^1.2`, `~4.3.5`, `>=5`; undefined for anything without a number. */
130
+ function parseVersion(text) {
131
+ const match = /(\d+)(?:\.(\d+|x|\*))?(?:\.(\d+|x|\*))?/.exec(text);
132
+ if (!match)
133
+ return undefined;
134
+ const part = (value) => (value === undefined || value === 'x' || value === '*' ? 0 : Number(value));
135
+ return [Number(match[1]), part(match[2]), part(match[3])];
136
+ }
137
+ /** The lowest version a declared range allows (`^4.3.5` gives 4.3.5), or the version itself. */
138
+ function lowestVersionOf(text) {
139
+ return parseVersion(text.split('||')[0].trim());
140
+ }
141
+ /** Orders two versions. */
142
+ function compare(left, right) {
143
+ return left[0] - right[0] || left[1] - right[1] || left[2] - right[2];
144
+ }
145
+ /**
146
+ * Whether `version` falls in an npm range of the shapes Angular publishes:
147
+ * alternatives joined by `||`, each a space-separated set of comparators
148
+ * (`>=4.8.2 <5.0`, `^14.20.0`, `~0.15.0`, `>=18.10.0`, `6.0.x`). Enough for
149
+ * the requirement ranges in the snapshot, not a general semver implementation.
150
+ */
151
+ export function satisfies(version, range) {
152
+ return range.split('||').some((alternative) => alternative
153
+ .trim()
154
+ .split(/\s+/)
155
+ .filter(Boolean)
156
+ .every((comparator) => {
157
+ const operator = /^(\^|~|>=|<=|>|<|=)?/.exec(comparator)[0];
158
+ const bound = parseVersion(comparator.slice(operator.length));
159
+ if (!bound)
160
+ return true;
161
+ const order = compare(version, bound);
162
+ switch (operator) {
163
+ case '^':
164
+ return order >= 0 && (bound[0] > 0 ? version[0] === bound[0] : version[1] === bound[1]);
165
+ case '~':
166
+ return order >= 0 && version[0] === bound[0] && version[1] === bound[1];
167
+ case '>=':
168
+ return order >= 0;
169
+ case '>':
170
+ return order > 0;
171
+ case '<=':
172
+ return order <= 0;
173
+ case '<':
174
+ return order < 0;
175
+ default: {
176
+ // A bare or x-range version: `6.0.3` is exact, `6.0.x` and `6.0` match every patch, `6` every minor.
177
+ const significant = comparator.replace(/^=/, '').split('.').filter((part) => part !== 'x' && part !== '*').length;
178
+ return version.slice(0, significant).every((value, index) => value === bound[index]);
179
+ }
180
+ }
181
+ }));
182
+ }
183
+ //# sourceMappingURL=plan.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../src/plan.ts"],"names":[],"mappings":"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"}