pipework 0.274.0 → 0.275.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint-settings.js","sourceRoot":"","sources":["../../../src/cli/commands/lint-settings.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/lint.ts"],"names":[],"mappings":"AAsBA,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAQ3D;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAyBvF"}
1
+ {"version":3,"file":"lint.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/lint.ts"],"names":[],"mappings":"AAuBA,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAQ3D;AAED;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA0BvF"}
@@ -4,6 +4,7 @@ import { findConfig } from '../../core/config/discover.js';
4
4
  import { error } from '../output.js';
5
5
  import { builtinConfigArgs, lintPopulation, lintTargets, loadLintIncludes, resolveEslintBin, resolveModulePaths } from './check.js';
6
6
  import { parseShard } from './shard.js';
7
+ import { classifyCoverage, settingsDigests } from './lint-settings.js';
7
8
  // eslint options that take their value as the next argument. Anything else starting
8
9
  // with `-` is a switch, so the argument after it is a file.
9
10
  const VALUE_FLAGS = new Set([
@@ -38,6 +39,8 @@ export function namesFiles(args) {
38
39
  export async function lintCommand(cwd, args) {
39
40
  if (args.includes('--list-files'))
40
41
  return listFiles(cwd, args);
42
+ if (args.includes('--settings-digest'))
43
+ return settingsDigest(cwd, args);
41
44
  const eslintBin = resolveEslintBin(cwd);
42
45
  const configPath = findConfig(cwd);
43
46
  const root = configPath === null ? cwd : dirname(configPath);
@@ -61,35 +64,89 @@ export async function lintCommand(cwd, args) {
61
64
  return result.status ?? 1;
62
65
  }
63
66
  /**
64
- * `pipework lint --list-files [--shard i/n]`: the repo-relative files `check`'s lint
65
- * pass covers, one per line, read from pipework.config.ts. Nothing is linted.
67
+ * `--list-files` and `--settings-digest` take only `--shard <i>/<n>` and `--format json`.
68
+ * Returns the parsed options, or null after reporting the problem.
66
69
  */
67
- async function listFiles(cwd, args) {
68
- const rest = args.filter(a => a !== '--list-files');
70
+ function parseReportArgs(flag, args) {
69
71
  let shard;
70
- if (rest.length === 2 && rest[0] === '--shard') {
71
- try {
72
- shard = parseShard(rest[1]);
72
+ let json = false;
73
+ const rest = args.filter(a => a !== flag);
74
+ const bad = () => {
75
+ error(`${flag} takes only --shard <i>/<n> and --format json; got ${rest.join(' ')}. It does not run eslint.`);
76
+ return null;
77
+ };
78
+ for (let i = 0; i < rest.length; i++) {
79
+ const arg = rest[i];
80
+ if (arg === '--shard' && i + 1 < rest.length) {
81
+ try {
82
+ shard = parseShard(rest[++i]);
83
+ }
84
+ catch (err) {
85
+ error(err instanceof Error ? err.message : String(err));
86
+ return null;
87
+ }
73
88
  }
74
- catch (err) {
75
- error(err instanceof Error ? err.message : String(err));
76
- return 1;
89
+ else if ((arg === '--format' && rest[i + 1] === 'json') || arg === '--format=json') {
90
+ if (arg === '--format')
91
+ i++;
92
+ json = true;
93
+ }
94
+ else {
95
+ return bad();
77
96
  }
78
97
  }
79
- else if (rest.length > 0) {
80
- error(`--list-files takes only --shard <i>/<n>; got ${rest.join(' ')}. It lists files and does not run eslint.`);
81
- return 1;
82
- }
98
+ return { shard, json };
99
+ }
100
+ async function reportPopulation(cwd, flag, args) {
101
+ const opts = parseReportArgs(flag, args);
102
+ if (opts === null)
103
+ return null;
83
104
  const configPath = findConfig(cwd);
84
105
  const root = configPath === null ? cwd : dirname(configPath);
85
106
  const scope = await resolveModulePaths(root);
86
107
  if (scope.configError !== undefined) {
87
- error(`Cannot list lint files: pipework.config.ts failed to load: ${scope.configError.message}`);
108
+ error(`Cannot ${flag === '--list-files' ? 'list lint files' : 'digest lint settings'}: pipework.config.ts failed to load: ${scope.configError.message}`);
109
+ return null;
110
+ }
111
+ const includes = await loadLintIncludes(root);
112
+ const population = lintPopulation(root, scope.paths, includes, opts.shard);
113
+ return { ...opts, root, includes, population };
114
+ }
115
+ /**
116
+ * `pipework lint --list-files [--shard i/n] [--format json]`: the repo-relative files
117
+ * `check`'s lint pass covers and eslint will lint, one per line. Files the include globs
118
+ * reach but the lint config ignores are left out; `--format json` lists every candidate
119
+ * with `covered` and, when false, why. Nothing is linted.
120
+ */
121
+ async function listFiles(cwd, args) {
122
+ const ctx = await reportPopulation(cwd, '--list-files', args);
123
+ if (ctx === null)
88
124
  return 1;
125
+ const coverage = await classifyCoverage(ctx.root, ctx.population);
126
+ if (ctx.json) {
127
+ process.stdout.write(JSON.stringify(coverage, null, 2) + '\n');
128
+ return 0;
89
129
  }
90
- const population = lintPopulation(root, scope.paths, await loadLintIncludes(root), shard);
91
- if (population.files.length > 0)
92
- process.stdout.write(population.files.join('\n') + '\n');
130
+ const covered = coverage.filter(c => c.covered).map(c => c.file);
131
+ if (covered.length > 0)
132
+ process.stdout.write(covered.join('\n') + '\n');
133
+ return 0;
134
+ }
135
+ /**
136
+ * `pipework lint --settings-digest [--shard i/n] [--format json]`: one sha256 per
137
+ * module (the root pass is `.`) of what decides lint there. Nothing is linted.
138
+ */
139
+ async function settingsDigest(cwd, args) {
140
+ const ctx = await reportPopulation(cwd, '--settings-digest', args);
141
+ if (ctx === null)
142
+ return 1;
143
+ const coverage = await classifyCoverage(ctx.root, ctx.population);
144
+ const rootPass = ctx.shard === undefined || ctx.shard.index === 1;
145
+ const digests = await settingsDigests(ctx.root, ctx.population, ctx.includes, coverage, rootPass);
146
+ if (ctx.json)
147
+ process.stdout.write(JSON.stringify(digests, null, 2) + '\n');
148
+ else if (digests.length > 0)
149
+ process.stdout.write(digests.map(d => `${d.module} ${d.digest}`).join('\n') + '\n');
93
150
  return 0;
94
151
  }
95
152
  //# sourceMappingURL=lint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/cli/commands/lint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lint.js","sourceRoot":"","sources":["../../../src/cli/commands/lint.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AA+GA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqPvD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAiHA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqPvD"}
package/dist/cli/index.js CHANGED
@@ -23,7 +23,8 @@ ${bold('Commands:')}
23
23
  cardinality [files] @downstream cardinality rules alone (same options)
24
24
  startup Startup validation alone: pipework.config.ts loaded, no database
25
25
  lint [eslint args] Lint the current module (the workspace at its root) with check's config; every argument goes to eslint
26
- lint --list-files [--shard i/n]: print the files check's lint covers, lint nothing
26
+ lint --list-files [--shard i/n] [--format json]: print the files eslint will lint (json: every candidate, covered or not), lint nothing
27
+ lint --settings-digest [--shard i/n] [--format json]: print a digest per module of the resolved lint settings, lint nothing
27
28
  codemod Fill missing @downstream cardinality across the corpus
28
29
  db Database lifecycle: setup, teardown, reset
29
30
  alerts unit-fault Record an abnormal systemd stop (ExecStopPost=pipework alerts unit-fault --unit %n)
@@ -92,6 +93,7 @@ ${bold('Examples:')}
92
93
  pipework lint # the module you are in, exactly as check lints it
93
94
  pipework lint --format json --output-file r.json src/a.ts # only src/a.ts
94
95
  pipework lint --list-files --shard 1/4 # the files check's lint pass covers for part 1 of 4, from pipework.config.ts
96
+ pipework lint --settings-digest --format json # per-module digest of what decides lint, for a lint-result cache key
95
97
  pipework codemod
96
98
  pipework codemod --dry-run
97
99
  pipework alerts unit-fault --unit subseam-core.service # reads $SERVICE_RESULT, $EXIT_CODE, $EXIT_STATUS
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pipework",
3
- "version": "0.274.0",
3
+ "version": "0.275.0",
4
4
  "description": "TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -946,7 +946,7 @@ export function resolveEslintBin(cwd: string): string {
946
946
  // the file itself changes. Stamping the cache path with pipework's own version
947
947
  // (read here from pipework's package.json) makes a bump point eslint at a fresh
948
948
  // cache file, busting the stale verdicts. #781-followup
949
- function pipeworkVersion(): string {
949
+ export function pipeworkVersion(): string {
950
950
  // dist/cli/commands/check.js → pipework root is three levels up; mirrors the
951
951
  // builtin-preset path resolution used in lintDirectory.
952
952
  const pkgPath = join(dirname(fileURLToPath(import.meta.url)), '..', '..', '..', 'package.json')
@@ -1060,7 +1060,7 @@ export function hasFatalParseError(stdout: string): boolean {
1060
1060
  })
1061
1061
  }
1062
1062
 
1063
- function hasEslintConfig(dir: string): boolean {
1063
+ export function hasEslintConfig(dir: string): boolean {
1064
1064
  return existsSync(join(dir, 'eslint.config.js'))
1065
1065
  || existsSync(join(dir, 'eslint.config.mjs'))
1066
1066
  || existsSync(join(dir, 'eslint.config.ts'))
@@ -1435,8 +1435,10 @@ export interface LintPopulation {
1435
1435
  readonly modules: ReadonlyArray<{ readonly path: string; readonly includes: readonly string[] | undefined }>
1436
1436
  /** Root files outside every module; empty off shard 1. */
1437
1437
  readonly root: string[]
1438
- /** Every file the run lints, repo-relative and sorted. */
1438
+ /** Every file the globs reach, repo-relative and sorted; eslint may still ignore some. */
1439
1439
  readonly files: string[]
1440
+ /** Each of `files` with the directory eslint runs in for it (a module, or the root pass). */
1441
+ readonly candidates: ReadonlyArray<{ readonly file: string; readonly dir: string }>
1440
1442
  }
1441
1443
 
1442
1444
  /**
@@ -1454,15 +1456,17 @@ export function lintPopulation(
1454
1456
  const root = shard !== undefined && shard.index !== 1
1455
1457
  ? []
1456
1458
  : rootFilesOutsideModules(cwd, [...allModules], includes.for('.'))
1457
- const files = new Set<string>(root)
1459
+ const owners = new Map<string, string>(root.map(f => [f, cwd]))
1458
1460
  for (const mod of modules) {
1459
1461
  const dir = join(cwd, mod.path)
1460
1462
  const prefix = normalizeModulePath(mod.path)
1461
1463
  for (const f of filesMatchingGlobs(dir, lintIncludeGlobs(dir, mod.includes))) {
1462
- files.add(prefix === '' ? f : `${prefix}/${f}`)
1464
+ const file = prefix === '' ? f : `${prefix}/${f}`
1465
+ if (!owners.has(file)) owners.set(file, dir)
1463
1466
  }
1464
1467
  }
1465
- return { modules, root, files: [...files].sort() }
1468
+ const files = [...owners.keys()].sort()
1469
+ return { modules, root, files, candidates: files.map(file => ({ file, dir: owners.get(file)! })) }
1466
1470
  }
1467
1471
 
1468
1472
  /**
@@ -0,0 +1,218 @@
1
+ import { createHash } from 'node:crypto'
2
+ import { readFileSync } from 'node:fs'
3
+ import { createRequire } from 'node:module'
4
+ import { dirname, join, resolve } from 'node:path'
5
+ import { fileURLToPath, pathToFileURL } from 'node:url'
6
+ import { lintIncludeGlobs } from '../../lint/include.js'
7
+ import { resolveLintConfig } from '../../lint/resolver.js'
8
+ import { hasEslintConfig, pipeworkVersion, type LintPopulation } from './check.js'
9
+
10
+ interface EslintApi {
11
+ isPathIgnored(file: string): Promise<boolean>
12
+ calculateConfigForFile(file: string): Promise<unknown>
13
+ }
14
+ type EslintCtor = new (options: Record<string, unknown>) => EslintApi
15
+
16
+ export interface FileCoverage {
17
+ readonly file: string
18
+ readonly covered: boolean
19
+ readonly reason?: 'ignored' | 'no matching configuration'
20
+ }
21
+
22
+ export interface ModuleDigest {
23
+ readonly module: string
24
+ readonly digest: string
25
+ readonly inputs: Record<string, unknown>
26
+ }
27
+
28
+ const here = dirname(fileURLToPath(import.meta.url))
29
+
30
+ function resolveFrom(cwd: string, request: string): string {
31
+ return createRequire(import.meta.url).resolve(request, { paths: [cwd, here] })
32
+ }
33
+
34
+ function packageVersion(cwd: string, name: string): string {
35
+ try {
36
+ const pkg = JSON.parse(readFileSync(resolveFrom(cwd, `${name}/package.json`), 'utf-8')) as { version?: string }
37
+ return pkg.version ?? 'unknown'
38
+ } catch {
39
+ return 'unknown'
40
+ }
41
+ }
42
+
43
+ async function loadEslint(cwd: string): Promise<EslintCtor> {
44
+ const mod = await import(pathToFileURL(resolveFrom(cwd, 'eslint')).href) as { ESLint?: EslintCtor; default?: { ESLint?: EslintCtor } }
45
+ const ctor = mod.ESLint ?? mod.default?.ESLint
46
+ if (ctor === undefined) throw new Error('eslint is installed but does not export ESLint')
47
+ return ctor
48
+ }
49
+
50
+ /**
51
+ * eslint as `check` runs it in `dir`: the directory's own eslint.config.* when it has
52
+ * one, else pipework's resolved preset for that directory (what `--config preset.js`
53
+ * loads, with the same cwd).
54
+ */
55
+ async function eslintFor(ESLint: EslintCtor, dir: string): Promise<EslintApi> {
56
+ if (hasEslintConfig(dir)) return new ESLint({ cwd: dir })
57
+ return new ESLint({ cwd: dir, overrideConfigFile: true, baseConfig: await resolveLintConfig(dir) })
58
+ }
59
+
60
+ /**
61
+ * Whether eslint would lint each candidate file: not ignored, and some config block
62
+ * applies. The answer is eslint's own, asked with the config `check` uses.
63
+ */
64
+ export async function classifyCoverage(cwd: string, population: LintPopulation): Promise<FileCoverage[]> {
65
+ const ESLint = await loadEslint(cwd)
66
+ const instances = new Map<string, EslintApi>()
67
+ const out: FileCoverage[] = []
68
+ for (const { file, dir } of population.candidates) {
69
+ let eslint = instances.get(dir)
70
+ if (eslint === undefined) {
71
+ eslint = await eslintFor(ESLint, dir)
72
+ instances.set(dir, eslint)
73
+ }
74
+ const abs = resolve(cwd, file)
75
+ if (await eslint.isPathIgnored(abs)) {
76
+ out.push({ file, covered: false, reason: 'ignored' })
77
+ } else if (await eslint.calculateConfigForFile(abs) === undefined) {
78
+ out.push({ file, covered: false, reason: 'no matching configuration' })
79
+ } else {
80
+ out.push({ file, covered: true })
81
+ }
82
+ }
83
+ return out
84
+ }
85
+
86
+ function isPlainObject(value: object): boolean {
87
+ const proto = Object.getPrototypeOf(value) as unknown
88
+ return proto === Object.prototype || proto === null
89
+ }
90
+
91
+ function describeNamed(value: object): Record<string, unknown> {
92
+ const meta = (value as { meta?: { name?: unknown; version?: unknown } }).meta
93
+ const rules = (value as { rules?: unknown }).rules
94
+ return {
95
+ object: value.constructor.name,
96
+ ...(typeof meta?.name === 'string' ? { name: meta.name } : {}),
97
+ ...(typeof meta?.version === 'string' ? { version: meta.version } : {}),
98
+ ...(typeof rules === 'object' && rules !== null ? { rules: Object.keys(rules).sort() } : {}),
99
+ }
100
+ }
101
+
102
+ /**
103
+ * A JSON value with sorted keys. A function is its name, a plugin or parser object its
104
+ * `meta` and rule names: never identity, so the same settings hash the same in every run.
105
+ */
106
+ function canonical(value: unknown, seen: Set<object> = new Set()): unknown {
107
+ if (value === undefined) return null
108
+ if (typeof value === 'function') return { function: value.name }
109
+ if (typeof value === 'bigint') return String(value)
110
+ if (typeof value === 'symbol') return value.toString()
111
+ if (value instanceof RegExp) return { regexp: value.toString() }
112
+ if (typeof value !== 'object' || value === null) return value
113
+ if (seen.has(value)) return { cycle: true }
114
+ seen.add(value)
115
+ try {
116
+ if (Array.isArray(value)) return value.map(v => canonical(v, seen))
117
+ if (!isPlainObject(value)) return describeNamed(value)
118
+ const out: Record<string, unknown> = {}
119
+ for (const key of Object.keys(value).sort()) {
120
+ const item = (value as Record<string, unknown>)[key]
121
+ // `plugins` and `parser` hold live objects whose identity is meaningless.
122
+ if ((key === 'parser' || key === 'processor') && typeof item === 'object' && item !== null) out[key] = describeNamed(item)
123
+ else if (key === 'plugins' && typeof item === 'object' && item !== null && !Array.isArray(item)) {
124
+ out[key] = Object.fromEntries(Object.keys(item).sort().map(name =>
125
+ [name, describeNamed((item as Record<string, object>)[name]!)]))
126
+ } else out[key] = canonical(item, seen)
127
+ }
128
+ return out
129
+ } finally {
130
+ seen.delete(value)
131
+ }
132
+ }
133
+
134
+ function sha256(value: unknown): string {
135
+ return createHash('sha256').update(JSON.stringify(value)).digest('hex')
136
+ }
137
+
138
+ function ignoreGlobs(blocks: readonly unknown[]): string[] {
139
+ const globs: string[] = []
140
+ for (const block of blocks) {
141
+ if (typeof block !== 'object' || block === null) continue
142
+ const b = block as { files?: unknown; ignores?: unknown }
143
+ if (b.files === undefined && Array.isArray(b.ignores)) {
144
+ for (const g of b.ignores) if (typeof g === 'string') globs.push(g)
145
+ }
146
+ }
147
+ return globs
148
+ }
149
+
150
+ /**
151
+ * The digest of what decides lint for one module directory: include globs, and the
152
+ * sorted distinct resolved configs (eslint's own `calculateConfigForFile`: rules,
153
+ * language options, settings) over every covered file, so extras, module overrides and
154
+ * per-file blocks are all in and the set does not move when a file joins a region whose
155
+ * config is already present. Global ignores, plugin names and the preset blocks are
156
+ * inputs only where pipework's preset is what runs; a directory with its own
157
+ * eslint.config.* is described by the configs alone. The tsconfig the type-aware rules
158
+ * read is not an input.
159
+ */
160
+ export async function digestModule(
161
+ cwd: string,
162
+ ESLint: EslintCtor,
163
+ label: string,
164
+ dir: string,
165
+ includes: readonly string[] | undefined,
166
+ coveredFiles: readonly string[],
167
+ ): Promise<ModuleDigest> {
168
+ const own = hasEslintConfig(dir)
169
+ const blocks = own ? undefined : await resolveLintConfig(dir)
170
+ const eslint = await eslintFor(ESLint, dir)
171
+ const configs = new Map<string, unknown>()
172
+ for (const file of coveredFiles) {
173
+ // eslint's Config is a class instance with its own toJSON (plugins and parsers by name).
174
+ const resolved = await eslint.calculateConfigForFile(resolve(cwd, file))
175
+ const config = canonical(JSON.parse(JSON.stringify(resolved ?? null)))
176
+ configs.set(JSON.stringify(config), config)
177
+ }
178
+ const inputs = canonical({
179
+ pipework: pipeworkVersion(),
180
+ eslint: packageVersion(cwd, 'eslint'),
181
+ typescriptEslint: packageVersion(cwd, '@typescript-eslint/eslint-plugin'),
182
+ include: lintIncludeGlobs(dir, includes),
183
+ configs: [...configs.keys()].sort().map(k => configs.get(k)),
184
+ ...(blocks === undefined ? {} : {
185
+ ignores: ignoreGlobs(blocks),
186
+ plugins: [...new Set(blocks.flatMap(b => typeof b === 'object' && b !== null && 'plugins' in b
187
+ ? Object.keys((b as { plugins: object }).plugins) : []))].sort(),
188
+ blocks,
189
+ }),
190
+ }) as Record<string, unknown>
191
+ return { module: label, digest: sha256(inputs), inputs }
192
+ }
193
+
194
+ export async function settingsDigests(
195
+ cwd: string,
196
+ population: LintPopulation,
197
+ includes: { for: (mod: string) => readonly string[] | undefined },
198
+ coverage: readonly FileCoverage[],
199
+ rootPass: boolean,
200
+ ): Promise<ModuleDigest[]> {
201
+ const ESLint = await loadEslint(cwd)
202
+ const coveredIn = new Map<string, string[]>()
203
+ const dirOf = new Map(population.candidates.map(c => [c.file, c.dir]))
204
+ for (const c of coverage) {
205
+ const dir = dirOf.get(c.file)
206
+ if (c.covered && dir !== undefined) coveredIn.set(dir, [...(coveredIn.get(dir) ?? []), c.file])
207
+ }
208
+ const out: ModuleDigest[] = []
209
+ const hasRoot = population.modules.some(m => m.path === '.' || m.path === '')
210
+ for (const mod of population.modules) {
211
+ const dir = join(cwd, mod.path)
212
+ out.push(await digestModule(cwd, ESLint, mod.path === '' ? '.' : mod.path, dir, mod.includes, coveredIn.get(dir) ?? []))
213
+ }
214
+ if (rootPass && !hasRoot) {
215
+ out.push(await digestModule(cwd, ESLint, '.', cwd, includes.for('.'), coveredIn.get(cwd) ?? []))
216
+ }
217
+ return out.sort((a, b) => a.module < b.module ? -1 : a.module > b.module ? 1 : 0)
218
+ }