bussing 0.0.3 → 0.1.1

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 CHANGED
@@ -67,11 +67,13 @@ For each dependency in `node_modules`:
67
67
 
68
68
  ### 5. Cleanup order
69
69
 
70
- With the untidy repositories and those that depend on them (even if they are clean) a topological order is built: first the ones that do not depend on any other repository of the list. For each repository the reason it is on the list is shown (its own problems, or which dependency forces it to be updated).
70
+ With the untidy repositories a topological order is built: first the ones that do not depend on any other repository of the list. Those that depend on a repository whose problems reach its users also enter, marked as "by dependency" (with the field suffix): uncommitted or unpushed changes, version not bumped or not published, or outdated production, peer or optional dependencies. Outdated devDependencies and altered node_modules do not reach the package's users. For each repository the reason it is on the list is shown.
71
71
 
72
72
  `dependencies`, `optionalDependencies` and `peerDependencies` are strong dependencies: they define which repositories enter the list and are always respected in the order. `devDependencies` are weak: they are respected unless they close a cycle, because among one's own packages they form cycles (for example, qa-control is a devDependency of libraries it depends on). Those that would close a cycle are deferred: the step shows it and that dependency stays outdated until a later review. With `--priority package=number` (it can be repeated; 0 by default) you decide which weak dependencies are respected first: higher numbers are respected earlier and lower numbers are the first to be deferred. If there is a cycle of strong dependencies, its members are placed in the same step and the cycle is shown.
73
73
 
74
- Each step shows the most serious problem of the repository. From most to least serious: uncommitted changes, unpushed commits, altered node_modules, waiting for dependencies (it has outdated dependencies and some of them, with their own problems, come earlier in the order), outdated dependencies, version not bumped, not published. Those that enter only because of their dependencies are marked as such.
74
+ Each step shows the most serious problem of the repository. From most to least serious (in parentheses, the key used by `--up-to` and the JSON): uncommitted changes (`uncommitted`), unpushed commits (`unpushed`), altered node_modules (`altered-node-modules`), then waiting for / outdated `dependencies`, `peerDependencies` and `optionalDependencies` (`waiting-dependencies`, `outdated-dependencies`, `waiting-peer-dependencies`, `outdated-peer-dependencies`, `waiting-optional-dependencies`, `outdated-optional-dependencies`; waiting means some outdated dependency has its own problems and comes earlier in the order), version not bumped (`version-not-bumped`), not published (`unpublished`), and finally waiting for / outdated `devDependencies` (`waiting-dev-dependencies`, `outdated-dev-dependencies`), which do not reach the package's users and are not needed to publish.
75
+
76
+ `--up-to <key>` chooses the least serious category of interest; less serious ones are not reported nor used for the order, and the checks that could only produce them are skipped (for example, without `version-not-bumped` npm is not queried). The default is `unpublished`, so devDependencies are not shown; `--dev` is the same as `--up-to outdated-dev-dependencies`. Both categories of a dependency field are included or excluded together. Dependencies outside the threshold (by default, devDependencies) do not define the step numbers, but they do order the repositories within each number, also using `--priority` to break cycles. Those that enter only because of their dependencies are marked as such.
75
77
 
76
78
  ## Usage
77
79
 
@@ -11,6 +11,8 @@ export declare const DEFAULTS_FILE_LABEL = "~/.bussing.yaml";
11
11
  export declare function defaultsPath(): string;
12
12
  /** Interpreta `paquete=número` (el número puede ser negativo). */
13
13
  export declare function parsePriority(value: string): [string, number];
14
+ /** Interpreta el nombre de una categoría (las claves del informe JSON). `source` indica de dónde viene, para el mensaje de error. */
15
+ export declare function parseCategory(value: string, source?: string): ProblemCategory;
14
16
  declare const defaultsDescription: {
15
17
  object: {
16
18
  path: {
@@ -42,6 +44,16 @@ declare const defaultsDescription: {
42
44
  };
43
45
  };
44
46
  };
47
+ 'up-to': {
48
+ optional: {
49
+ string: import("guarantee-type").Opts;
50
+ };
51
+ };
52
+ dev: {
53
+ optional: {
54
+ boolean: import("guarantee-type").Opts;
55
+ };
56
+ };
45
57
  registry: {
46
58
  optional: {
47
59
  string: import("guarantee-type").Opts;
@@ -55,14 +67,16 @@ declare const defaultsDescription: {
55
67
  };
56
68
  };
57
69
  type DefaultsFile = GuaranteedType<typeof defaultsDescription>;
58
- /** Valores por omisión ya normalizados: `path` e `ignore` siempre son listas. */
59
- export type Defaults = Omit<DefaultsFile, 'path' | 'ignore'> & {
70
+ /** Valores por omisión ya normalizados: `path` e `ignore` siempre son listas y `up-to` es una categoría válida. */
71
+ export type Defaults = Omit<DefaultsFile, 'path' | 'ignore' | 'up-to'> & {
60
72
  path?: string[];
61
73
  ignore?: string[];
74
+ 'up-to'?: ProblemCategory;
62
75
  };
63
76
  export interface CliOptions {
64
77
  roots: string[];
65
78
  ignore: string[];
79
+ upTo: ProblemCategory;
66
80
  priority: Record<string, number>;
67
81
  registry: string;
68
82
  json: boolean;
@@ -72,8 +86,11 @@ export interface CliOptions {
72
86
  * `label` es el nombre del archivo en los mensajes de error.
73
87
  */
74
88
  export declare function readDefaults(file: string, label: string): Defaults;
75
- /** Interpreta los argumentos. cleye muestra la ayuda y termina el proceso ante `--help`, `--version` o un flag desconocido. */
76
- export declare function parseArgs(argv: string[], defaults: Defaults): CliOptions;
89
+ /**
90
+ * Interpreta los argumentos. cleye muestra la ayuda y termina el proceso ante `--help`, `--version` o un flag desconocido.
91
+ * La primera línea de la salida es la versión, salvo que la salida sea JSON; `write` indica dónde se escribe (por omisión, la salida estándar).
92
+ */
93
+ export declare function parseArgs(argv: string[], defaults: Defaults, write?: (text: string) => void): CliOptions;
77
94
  export declare function describeProblem(problem: Problem): string;
78
95
  export declare const CATEGORY_LABEL: Record<ProblemCategory, string>;
79
96
  export declare function formatReport(report: BussingReport): string;
@@ -2,16 +2,21 @@
2
2
  // Línea de comandos de bussing. Es el único módulo que usa cleye y process.
3
3
  import { existsSync, readFileSync } from 'node:fs';
4
4
  import { homedir } from 'node:os';
5
- import { basename, dirname, join, resolve } from 'node:path';
6
- import { cli } from 'cleye';
5
+ import { basename, join, resolve } from 'node:path';
6
+ import { cli, parseCommandLine, runMain } from 'commendatore';
7
7
  import { guarantee, is } from 'guarantee-type';
8
8
  import { load } from 'js-yaml';
9
- import { DEFAULT_REGISTRY_URL, createNpmRegistry, reviewEnvironment } from './bussing.js';
9
+ import { DEFAULT_REGISTRY_URL, DEFAULT_UP_TO, PROBLEM_CATEGORIES, createNpmRegistry, reviewEnvironment } from './bussing.js';
10
10
  export const EXIT_CODE = {
11
11
  clean: 0,
12
12
  error: 1,
13
13
  problems: 2,
14
14
  };
15
+ const EXIT_CODES = [
16
+ { code: EXIT_CODE.clean, description: 'sin problemas' },
17
+ { code: EXIT_CODE.error, description: 'error' },
18
+ { code: EXIT_CODE.problems, description: 'hay problemas' },
19
+ ];
15
20
  /** Archivo opcional, en la carpeta del usuario, con valores por omisión para los parámetros. */
16
21
  const DEFAULTS_FILE_NAME = '.bussing.yaml';
17
22
  /** Cómo se nombra el archivo de valores por omisión en los mensajes y en la ayuda. */
@@ -27,6 +32,15 @@ export function parsePriority(value) {
27
32
  }
28
33
  return [match[1], Number(match[2])];
29
34
  }
35
+ /** Categoría a la que equivale `--dev`: incluye las dos categorías de devDependencies, que son las menos graves. */
36
+ const DEV_UP_TO = 'outdated-dev-dependencies';
37
+ /** Interpreta el nombre de una categoría (las claves del informe JSON). `source` indica de dónde viene, para el mensaje de error. */
38
+ export function parseCategory(value, source = '--up-to') {
39
+ const category = PROBLEM_CATEGORIES.find(function (candidate) { return candidate === value; });
40
+ if (category === undefined)
41
+ throw new Error(`${source} ${value} no es una categoría (las categorías son: ${PROBLEM_CATEGORIES.join(', ')})`);
42
+ return category;
43
+ }
30
44
  /** Parámetros de la línea de comandos. Las mismas claves se pueden usar en el archivo de valores por omisión. */
31
45
  const flags = {
32
46
  path: {
@@ -43,6 +57,14 @@ const flags = {
43
57
  description: 'Prioridad de un paquete como devDependency al romper ciclos del orden de limpieza, como paquete=número ' +
44
58
  '(por omisión 0; las de mayor número se respetan primero); se puede repetir',
45
59
  },
60
+ 'up-to': {
61
+ type: function (value) { return parseCategory(value); },
62
+ description: `Categoría menos grave que se informa (por omisión ${DEFAULT_UP_TO}). De más grave a menos grave: ${PROBLEM_CATEGORIES.join(', ')}`,
63
+ },
64
+ dev: {
65
+ type: Boolean,
66
+ description: `Incluye las devDependencies (equivale a --up-to ${DEV_UP_TO})`,
67
+ },
46
68
  registry: {
47
69
  type: String,
48
70
  description: `URL del registro de npm (por omisión ${DEFAULT_REGISTRY_URL})`,
@@ -59,21 +81,12 @@ const defaultsFields = {
59
81
  ignore: { optional: is.union([is.string, is.array.string]) },
60
82
  // en el archivo es un mapa paquete: número
61
83
  priority: is.optional.recordString.number,
84
+ 'up-to': is.optional.string,
85
+ dev: is.optional.boolean,
62
86
  registry: is.optional.string,
63
87
  json: is.optional.boolean,
64
88
  };
65
89
  const defaultsDescription = is.object(defaultsFields);
66
- /** Versión del package.json del propio paquete: el primero que se encuentra subiendo desde la carpeta de este módulo. */
67
- function packageVersion() {
68
- let dir = import.meta.dirname;
69
- while (!existsSync(join(dir, 'package.json'))) {
70
- const parent = dirname(dir);
71
- if (parent === dir)
72
- throw new Error('No se encontró el package.json de bussing');
73
- dir = parent;
74
- }
75
- return guarantee(is.object({ version: is.string }), JSON.parse(readFileSync(join(dir, 'package.json'), 'utf8'))).version;
76
- }
77
90
  /**
78
91
  * Lee el archivo de valores por omisión. Si no existe o está vacío no hay valores por omisión.
79
92
  * `label` es el nombre del archivo en los mensajes de error.
@@ -106,36 +119,52 @@ export function readDefaults(file, label) {
106
119
  catch (err) {
107
120
  throw new Error(`${label} tiene valores de tipo incorrecto (${err instanceof Error ? err.message : String(err)})`);
108
121
  }
109
- const { path, ignore, ...others } = values;
122
+ const { path, ignore, 'up-to': upTo, ...others } = values;
110
123
  const defaults = others;
111
124
  if (path !== undefined)
112
125
  defaults.path = typeof path === 'string' ? [path] : path;
113
126
  if (ignore !== undefined)
114
127
  defaults.ignore = typeof ignore === 'string' ? [ignore] : ignore;
128
+ if (upTo !== undefined)
129
+ defaults['up-to'] = parseCategory(upTo, `${label} up-to`);
130
+ if (defaults.dev !== undefined && upTo !== undefined)
131
+ throw new Error(`${label} tiene dev y up-to a la vez (dev equivale a up-to ${DEV_UP_TO})`);
115
132
  return defaults;
116
133
  }
117
- /** Interpreta los argumentos. cleye muestra la ayuda y termina el proceso ante `--help`, `--version` o un flag desconocido. */
118
- export function parseArgs(argv, defaults) {
119
- const parsed = cli({
120
- name: 'bussing',
121
- version: packageVersion(),
122
- flags,
123
- strictFlags: true,
124
- help: {
125
- description: 'Revisa los repositorios locales y muestra los que quedaron desprolijos y el orden en que conviene limpiarlos.\n' +
126
- `Los valores por omisión de los parámetros se pueden definir en ${DEFAULTS_FILE_LABEL} (las claves son los nombres de los parámetros).\n` +
127
- `Códigos de salida: ${EXIT_CODE.clean} sin problemas, ${EXIT_CODE.error} error, ${EXIT_CODE.problems} hay problemas.`,
128
- examples: ['bussing --path ../repos --path ../otros-repos --ignore repo-viejo', 'bussing --priority qa-control=1 --priority require-bro=-1', 'bussing --json'],
129
- },
130
- }, undefined, argv);
134
+ /**
135
+ * Interpreta los argumentos. cleye muestra la ayuda y termina el proceso ante `--help`, `--version` o un flag desconocido.
136
+ * La primera línea de la salida es la versión, salvo que la salida sea JSON; `write` indica dónde se escribe (por omisión, la salida estándar).
137
+ */
138
+ export function parseArgs(argv, defaults, write) {
139
+ const { parsed } = parseCommandLine({
140
+ moduleUrl: import.meta.url,
141
+ description: 'Revisa los repositorios locales y muestra los que quedaron desprolijos y el orden en que conviene limpiarlos.\n' +
142
+ `Los valores por omisión de los parámetros se pueden definir en ${DEFAULTS_FILE_LABEL} (las claves son los nombres de los parámetros).`,
143
+ examples: ['bussing --path ../repos --path ../otros-repos --ignore repo-viejo', 'bussing --priority qa-control=1 --priority require-bro=-1', 'bussing --json'],
144
+ exitCodes: EXIT_CODES,
145
+ argv,
146
+ }, function (base, argv) {
147
+ return cli({ ...base, flags }, undefined, argv);
148
+ }, {
149
+ show: function (parsedArgs) { return !(parsedArgs.flags.json ?? defaults.json ?? false); },
150
+ ...(write === undefined ? {} : { write }),
151
+ });
131
152
  // las carpetas relativas son relativas a la carpeta actual, vengan de la línea de comandos o del archivo
132
153
  const roots = (parsed.flags.path.length > 0 ? parsed.flags.path : defaults.path ?? []).map(function (path) { return resolve(path); });
133
154
  if (roots.length === 0) {
134
155
  throw new Error(`Falta indicar la carpeta con --path o definir los parámetros predeterminados en ${DEFAULTS_FILE_LABEL}`);
135
156
  }
157
+ const flagUpTo = parsed.flags['up-to'];
158
+ const flagDev = parsed.flags.dev;
159
+ if (flagUpTo !== undefined && flagDev !== undefined)
160
+ throw new Error(`Se indicaron --dev y --up-to a la vez (--dev equivale a --up-to ${DEV_UP_TO})`);
161
+ // la línea de comandos tiene prioridad sobre el archivo; --dev y dev son atajos de up-to
162
+ const upTo = flagUpTo ?? (flagDev !== undefined ? (flagDev ? DEV_UP_TO : DEFAULT_UP_TO)
163
+ : defaults['up-to'] ?? (defaults.dev === true ? DEV_UP_TO : DEFAULT_UP_TO));
136
164
  return {
137
165
  roots,
138
166
  ignore: parsed.flags.ignore.length > 0 ? parsed.flags.ignore : defaults.ignore ?? [],
167
+ upTo,
139
168
  priority: parsed.flags.priority.length > 0 ? Object.fromEntries(parsed.flags.priority) : defaults.priority ?? {},
140
169
  registry: parsed.flags.registry ?? defaults.registry ?? DEFAULT_REGISTRY_URL,
141
170
  json: parsed.flags.json ?? defaults.json ?? false,
@@ -183,12 +212,25 @@ function describeRepo(repo) {
183
212
  ...repo.warnings.map(function (warning) { return ' ? ' + describeWarning(warning); }),
184
213
  ];
185
214
  }
215
+ /** Sufijo de cada campo de dependencias en las etiquetas ("dependencias-dev desactualizadas", "por dependencia-peer"). */
216
+ const FIELD_SUFFIX = {
217
+ 'dependencies': '',
218
+ 'peerDependencies': '-peer',
219
+ 'optionalDependencies': '-opt',
220
+ 'devDependencies': '-dev',
221
+ };
186
222
  export const CATEGORY_LABEL = {
187
223
  'uncommitted': 'falta commitear',
188
224
  'unpushed': 'falta pushear',
189
225
  'altered-node-modules': 'node_modules alterado',
190
- 'waiting-dependencies': 'espera dependencias',
191
- 'outdated-dependencies': 'dependencias desactualizadas',
226
+ 'waiting-dependencies': `espera dependencias${FIELD_SUFFIX.dependencies}`,
227
+ 'outdated-dependencies': `dependencias${FIELD_SUFFIX.dependencies} desactualizadas`,
228
+ 'waiting-peer-dependencies': `espera dependencias${FIELD_SUFFIX.peerDependencies}`,
229
+ 'outdated-peer-dependencies': `dependencias${FIELD_SUFFIX.peerDependencies} desactualizadas`,
230
+ 'waiting-optional-dependencies': `espera dependencias${FIELD_SUFFIX.optionalDependencies}`,
231
+ 'outdated-optional-dependencies': `dependencias${FIELD_SUFFIX.optionalDependencies} desactualizadas`,
232
+ 'waiting-dev-dependencies': `espera dependencias${FIELD_SUFFIX.devDependencies}`,
233
+ 'outdated-dev-dependencies': `dependencias${FIELD_SUFFIX.devDependencies} desactualizadas`,
192
234
  'version-not-bumped': 'falta subir versión',
193
235
  'unpublished': 'falta publicar',
194
236
  };
@@ -201,7 +243,8 @@ function describeStep(step) {
201
243
  if (step.deferred.length > 0)
202
244
  details.push(`ciclo: ${step.deferred.join(', ')} ${step.deferred.length === 1 ? 'se actualiza' : 'se actualizan'} después`);
203
245
  const folder = basename(step.dir);
204
- const label = step.mainProblem === null ? 'por dependencia' : CATEGORY_LABEL[step.mainProblem];
246
+ const label = step.mainProblem !== null ? CATEGORY_LABEL[step.mainProblem]
247
+ : `por dependencia${step.dependencyField === null ? '' : FIELD_SUFFIX[step.dependencyField]}`;
205
248
  return ` ${step.level + 1}. ${step.name}${folder === step.name ? '' : ` [${folder}]`} ${label}` + (details.length > 0 ? ` (${details.join('; ')})` : '');
206
249
  }
207
250
  export function formatReport(report) {
@@ -212,7 +255,7 @@ export function formatReport(report) {
212
255
  for (const repo of [...withProblems, ...withWarningsOnly])
213
256
  lines.push('', ...describeRepo(repo));
214
257
  if (report.cleanupOrder.length > 0) {
215
- lines.push('', 'Orden de limpieza (los del mismo número no dependen entre sí):', ...report.cleanupOrder.map(describeStep));
258
+ lines.push('', 'Orden de limpieza:', ...report.cleanupOrder.map(describeStep));
216
259
  }
217
260
  if (report.warnings.length > 0)
218
261
  lines.push('', ...report.warnings.map(describeWarning));
@@ -224,6 +267,7 @@ export async function main(argv) {
224
267
  const reviewOptions = {
225
268
  roots: options.roots,
226
269
  ignore: options.ignore,
270
+ upTo: options.upTo,
227
271
  dependencyPriority: options.priority,
228
272
  registry: createNpmRegistry(options.registry),
229
273
  log: function (message) { if (process.stderr.isTTY)
@@ -244,9 +288,6 @@ export async function main(argv) {
244
288
  }
245
289
  // Solo se ejecuta al invocarlo como programa (no al importarlo desde los tests)
246
290
  if (import.meta.main) {
247
- main(process.argv.slice(2)).then(function (code) { process.exitCode = code; }, function (err) {
248
- process.stderr.write(`${err instanceof Error ? err.stack ?? err.message : String(err)}\n`);
249
- process.exitCode = EXIT_CODE.error;
250
- });
291
+ runMain(function () { return main(process.argv.slice(2)); }, EXIT_CODE.error);
251
292
  }
252
293
  //# sourceMappingURL=bussing-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bussing-cli.js","sourceRoot":"","sources":["../src/bussing-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bussing-cli.js","sourceRoot":"","sources":["../src/bussing-cli.ts"],"names":[],"mappings":"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"}
package/dist/bussing.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { BussingOptions, BussingReport } from './types.js';
2
2
  export type * from './types.js';
3
3
  export { createNpmRegistry, DEFAULT_REGISTRY_URL } from './registry.js';
4
- export { mainCategory, PROBLEM_CATEGORIES, PROBLEM_CATEGORY } from './categories.js';
4
+ export { DEFAULT_UP_TO, DEPENDENCY_CATEGORY, mainCategory, PROBLEM_CATEGORIES, PROBLEM_CATEGORY, problemCategory, REACHES_DEPENDENTS, withinThreshold } from './categories.js';
5
5
  export declare function reviewEnvironment(options: BussingOptions): Promise<BussingReport>;
package/dist/bussing.js CHANGED
@@ -1,14 +1,14 @@
1
1
  // bussing: revisa el ambiente local de repositorios y arma el orden de limpieza.
2
2
  // Es la librería (el core): no lee process.argv, no escribe en la salida y no termina el proceso.
3
3
  import { basename } from 'node:path';
4
- import { mainCategory } from './categories.js';
4
+ import { categoryWithin, DEFAULT_UP_TO, fieldGravity, mainCategory, problemCategory, REACHES_DEPENDENTS, withinThreshold } from './categories.js';
5
5
  import { checkCrossDependencies, checkGit, checkInstallation, checkPublication } from './checks.js';
6
6
  import { computeCleanupOrder } from './order.js';
7
7
  import { createNpmRegistry } from './registry.js';
8
8
  import { declaredDependencies, findRepos, ORDER_DEPENDENCY_FIELDS, readPackageJson, WEAK_ORDER_DEPENDENCY_FIELDS } from './repos.js';
9
9
  import { defined, mustGet } from './util.js';
10
10
  export { createNpmRegistry, DEFAULT_REGISTRY_URL } from './registry.js';
11
- export { mainCategory, PROBLEM_CATEGORIES, PROBLEM_CATEGORY } from './categories.js';
11
+ export { DEFAULT_UP_TO, DEPENDENCY_CATEGORY, mainCategory, PROBLEM_CATEGORIES, PROBLEM_CATEGORY, problemCategory, REACHES_DEPENDENTS, withinThreshold } from './categories.js';
12
12
  /** Cantidad de repositorios que se revisan en paralelo. */
13
13
  const CONCURRENCY = 8;
14
14
  async function mapWithConcurrency(items, limit, fn) {
@@ -42,6 +42,8 @@ export async function reviewEnvironment(options) {
42
42
  const log = options.log ?? function () { };
43
43
  const warnings = [];
44
44
  const ignore = options.ignore ?? [];
45
+ const upTo = options.upTo ?? DEFAULT_UP_TO;
46
+ const considered = function (category) { return categoryWithin(category, upTo); };
45
47
  const { repos: dirs, ignored } = await findRepos(options.roots, ignore);
46
48
  for (const name of ignore) {
47
49
  if (!ignored.some(function (dir) { return basename(dir) === name; })) {
@@ -93,19 +95,35 @@ export async function reviewEnvironment(options) {
93
95
  });
94
96
  if (pkg === null)
95
97
  return;
96
- await runCheck(report, 'publication', function () { return checkPublication(report.dir, pkg, gitState, registry); });
97
- await runCheck(report, 'cross-dependencies', function () { return checkCrossDependencies(pkg, localVersions); });
98
- await runCheck(report, 'installation', function () { return checkInstallation(report.dir, localNames, registry); });
98
+ // los controles que solo pueden dar problemas fuera del umbral no se hacen
99
+ if (considered('version-not-bumped')) {
100
+ await runCheck(report, 'publication', function () { return checkPublication(report.dir, pkg, gitState, registry); });
101
+ }
102
+ if (considered('waiting-dependencies')) {
103
+ await runCheck(report, 'cross-dependencies', function () { return checkCrossDependencies(pkg, localVersions); });
104
+ }
105
+ if (considered('altered-node-modules')) {
106
+ await runCheck(report, 'installation', function () { return checkInstallation(report.dir, localNames, registry); });
107
+ }
108
+ report.problems = report.problems.filter(function (problem) { return withinThreshold(problem, upTo); });
99
109
  });
110
+ /** Repositorios revisados de los que depende en los campos indicados, con el campo más grave si figura en varios. */
100
111
  function localDependencies(report, pkg, fields) {
101
- const result = new Set();
112
+ const result = new Map();
102
113
  for (const dep of pkg === null ? [] : declaredDependencies(pkg, fields)) {
103
114
  const depDir = uniqueDirByName.get(dep.name);
104
- if (depDir !== undefined && depDir !== report.dir)
105
- result.add(depDir);
115
+ if (depDir === undefined || depDir === report.dir)
116
+ continue;
117
+ const previous = result.get(depDir);
118
+ if (previous === undefined || fieldGravity(dep.field) < fieldGravity(previous))
119
+ result.set(depDir, dep.field);
106
120
  }
107
- return [...result];
121
+ return [...result].map(function ([dir, field]) { return { dir, field }; });
108
122
  }
123
+ const noWait = function () { return false; };
124
+ const devDependencies = function (report, pkg) {
125
+ return localDependencies(report, pkg, WEAK_ORDER_DEPENDENCY_FIELDS).map(function (dep) { return dep.dir; });
126
+ };
109
127
  const priority = new Map(Object.entries(options.dependencyPriority ?? {}));
110
128
  for (const name of priority.keys()) {
111
129
  if (!uniqueDirByName.has(name))
@@ -115,14 +133,17 @@ export async function reviewEnvironment(options) {
115
133
  return {
116
134
  dir: report.dir,
117
135
  name: report.name ?? basename(report.dir),
118
- mainProblem: mainCategory(report.problems, function () { return false; }),
136
+ mainProblem: mainCategory(report.problems, noWait),
137
+ reachesDependents: report.problems.some(function (problem) { return REACHES_DEPENDENTS[problemCategory(problem, noWait)]; }),
119
138
  dependsOn: localDependencies(report, pkg, ORDER_DEPENDENCY_FIELDS),
120
- weakDependsOn: localDependencies(report, pkg, WEAK_ORDER_DEPENDENCY_FIELDS),
139
+ // si las devDependencies quedan fuera del umbral no definen niveles, solo ordenan dentro de cada nivel
140
+ weakDependsOn: considered('waiting-dev-dependencies') ? devDependencies(report, pkg) : [],
141
+ tieDependsOn: considered('waiting-dev-dependencies') ? [] : devDependencies(report, pkg),
121
142
  };
122
143
  });
123
144
  const cleanupOrder = computeCleanupOrder(nodes, priority);
124
- // "espera dependencias" solo si alguna dependencia desactualizada con problemas propios queda antes en el orden
125
- const hasProblems = new Set(repos.filter(function (repo) { return repo.report.problems.length > 0; }).map(function (repo) { return repo.report.name; }));
145
+ // "espera dependencias" solo si alguna dependencia desactualizada tiene problemas que llegan a quien la usa y queda antes en el orden
146
+ const hasProblems = new Set(nodes.filter(function (node) { return node.reachesDependents; }).map(function (node) { return node.name; }));
126
147
  const reportByDir = new Map(repos.map(function (repo) { return [repo.report.dir, repo.report]; }));
127
148
  for (const step of cleanupOrder) {
128
149
  step.mainProblem = mainCategory(mustGet(reportByDir, step.dir).problems, function (name) {
@@ -1 +1 @@
1
- {"version":3,"file":"bussing.js","sourceRoot":"","sources":["../src/bussing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bussing.js","sourceRoot":"","sources":["../src/bussing.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,35 @@
1
- import type { Problem, ProblemCategory, ProblemKind } from './types.js';
1
+ import type { DependencyField, Problem, ProblemCategory, ProblemKind } from './types.js';
2
2
  /**
3
3
  * De la más grave a la menos grave. Primero lo que puede hacer perder trabajo, después lo que hace fallar en otros entornos.
4
4
  * Las dependencias desactualizadas van antes de subir la versión porque al corregirlas cambia el package.json.
5
+ * Entre ellas pesa primero el campo (productivas, peer, opcionales) y, dentro de un campo, esperar va antes.
6
+ * Las devDependencies van al final: no llegan a quien instala el paquete, así que no hacen falta para publicar.
5
7
  */
6
8
  export declare const PROBLEM_CATEGORIES: readonly ProblemCategory[];
7
- /** Categoría de cada tipo de problema. `waiting-dependencies` no corresponde a un tipo: la determina `mainCategory`. */
8
- export declare const PROBLEM_CATEGORY: Record<ProblemKind, ProblemCategory>;
9
+ /** Umbral por omisión: hasta "falta publicar" (sin las devDependencies). */
10
+ export declare const DEFAULT_UP_TO: ProblemCategory;
9
11
  /**
10
- * Categoría más grave entre los problemas; `null` si no hay problemas.
11
- * Si la más grave es `outdated-dependencies` y hay que esperar a alguna de esas dependencias (`mustWait`),
12
- * la categoría es `waiting-dependencies`.
12
+ * Si un problema queda dentro del umbral `upTo` (la categoría menos grave que interesa). Para las dependencias
13
+ * desactualizadas se usa la categoría "espera" de su campo: las dos categorías de un mismo campo entran o quedan afuera juntas.
13
14
  */
15
+ export declare function withinThreshold(problem: Problem, upTo: ProblemCategory): boolean;
16
+ /** Si la categoría queda dentro del umbral `upTo`. */
17
+ export declare function categoryWithin(category: ProblemCategory, upTo: ProblemCategory): boolean;
18
+ /** Categoría de cada tipo de problema, salvo las dependencias desactualizadas (ver `DEPENDENCY_CATEGORY`). */
19
+ export declare const PROBLEM_CATEGORY: Record<Exclude<ProblemKind, 'outdated-dependency'>, ProblemCategory>;
20
+ /** Categoría de una dependencia desactualizada según el campo en que figura y si hay que esperarla. */
21
+ export declare const DEPENDENCY_CATEGORY: Record<DependencyField, {
22
+ waiting: ProblemCategory;
23
+ outdated: ProblemCategory;
24
+ }>;
25
+ /**
26
+ * Si el problema llega a quien usa el paquete (y por lo tanto los repositorios que dependen de él entran en la lista de
27
+ * limpieza). No llegan las devDependencies desactualizadas ni node_modules alterado (es la instalación local, no el contenido).
28
+ */
29
+ export declare const REACHES_DEPENDENTS: Record<ProblemCategory, boolean>;
30
+ /** Gravedad de un campo de dependencias (menor es más grave), según el lugar de sus categorías en `PROBLEM_CATEGORIES`. */
31
+ export declare function fieldGravity(field: DependencyField): number;
32
+ /** Categoría de un problema. Una dependencia desactualizada es `waiting-*` si hay que esperarla (`mustWait`). */
33
+ export declare function problemCategory(problem: Problem, mustWait: (name: string) => boolean): ProblemCategory;
34
+ /** Categoría más grave entre los problemas; `null` si no hay problemas. */
14
35
  export declare function mainCategory(problems: Problem[], mustWait: (name: string) => boolean): ProblemCategory | null;
@@ -2,6 +2,8 @@
2
2
  /**
3
3
  * De la más grave a la menos grave. Primero lo que puede hacer perder trabajo, después lo que hace fallar en otros entornos.
4
4
  * Las dependencias desactualizadas van antes de subir la versión porque al corregirlas cambia el package.json.
5
+ * Entre ellas pesa primero el campo (productivas, peer, opcionales) y, dentro de un campo, esperar va antes.
6
+ * Las devDependencies van al final: no llegan a quien instala el paquete, así que no hacen falta para publicar.
5
7
  */
6
8
  export const PROBLEM_CATEGORIES = [
7
9
  'uncommitted',
@@ -9,37 +11,85 @@ export const PROBLEM_CATEGORIES = [
9
11
  'altered-node-modules',
10
12
  'waiting-dependencies',
11
13
  'outdated-dependencies',
14
+ 'waiting-peer-dependencies',
15
+ 'outdated-peer-dependencies',
16
+ 'waiting-optional-dependencies',
17
+ 'outdated-optional-dependencies',
12
18
  'version-not-bumped',
13
19
  'unpublished',
20
+ 'waiting-dev-dependencies',
21
+ 'outdated-dev-dependencies',
14
22
  ];
15
- /** Categoría de cada tipo de problema. `waiting-dependencies` no corresponde a un tipo: la determina `mainCategory`. */
23
+ /** Umbral por omisión: hasta "falta publicar" (sin las devDependencies). */
24
+ export const DEFAULT_UP_TO = 'unpublished';
25
+ /**
26
+ * Si un problema queda dentro del umbral `upTo` (la categoría menos grave que interesa). Para las dependencias
27
+ * desactualizadas se usa la categoría "espera" de su campo: las dos categorías de un mismo campo entran o quedan afuera juntas.
28
+ */
29
+ export function withinThreshold(problem, upTo) {
30
+ return PROBLEM_CATEGORIES.indexOf(problemCategory(problem, function () { return true; })) <= PROBLEM_CATEGORIES.indexOf(upTo);
31
+ }
32
+ /** Si la categoría queda dentro del umbral `upTo`. */
33
+ export function categoryWithin(category, upTo) {
34
+ return PROBLEM_CATEGORIES.indexOf(category) <= PROBLEM_CATEGORIES.indexOf(upTo);
35
+ }
36
+ /** Categoría de cada tipo de problema, salvo las dependencias desactualizadas (ver `DEPENDENCY_CATEGORY`). */
16
37
  export const PROBLEM_CATEGORY = {
17
38
  'uncommitted': 'uncommitted',
18
39
  'unpushed': 'unpushed',
19
40
  'no-upstream': 'unpushed',
20
41
  'linked-dependency': 'altered-node-modules',
21
42
  'copied-dependency': 'altered-node-modules',
22
- 'outdated-dependency': 'outdated-dependencies',
23
43
  'version-not-bumped': 'version-not-bumped',
24
44
  'unpublished-version': 'unpublished',
25
45
  'not-published': 'unpublished',
26
46
  };
47
+ /** Categoría de una dependencia desactualizada según el campo en que figura y si hay que esperarla. */
48
+ export const DEPENDENCY_CATEGORY = {
49
+ 'dependencies': { waiting: 'waiting-dependencies', outdated: 'outdated-dependencies' },
50
+ 'peerDependencies': { waiting: 'waiting-peer-dependencies', outdated: 'outdated-peer-dependencies' },
51
+ 'optionalDependencies': { waiting: 'waiting-optional-dependencies', outdated: 'outdated-optional-dependencies' },
52
+ 'devDependencies': { waiting: 'waiting-dev-dependencies', outdated: 'outdated-dev-dependencies' },
53
+ };
27
54
  /**
28
- * Categoría más grave entre los problemas; `null` si no hay problemas.
29
- * Si la más grave es `outdated-dependencies` y hay que esperar a alguna de esas dependencias (`mustWait`),
30
- * la categoría es `waiting-dependencies`.
55
+ * Si el problema llega a quien usa el paquete (y por lo tanto los repositorios que dependen de él entran en la lista de
56
+ * limpieza). No llegan las devDependencies desactualizadas ni node_modules alterado (es la instalación local, no el contenido).
31
57
  */
58
+ export const REACHES_DEPENDENTS = {
59
+ 'uncommitted': true,
60
+ 'unpushed': true,
61
+ 'altered-node-modules': false,
62
+ 'waiting-dependencies': true,
63
+ 'outdated-dependencies': true,
64
+ 'waiting-peer-dependencies': true,
65
+ 'outdated-peer-dependencies': true,
66
+ 'waiting-optional-dependencies': true,
67
+ 'outdated-optional-dependencies': true,
68
+ 'waiting-dev-dependencies': false,
69
+ 'outdated-dev-dependencies': false,
70
+ 'version-not-bumped': true,
71
+ 'unpublished': true,
72
+ };
73
+ /** Gravedad de un campo de dependencias (menor es más grave), según el lugar de sus categorías en `PROBLEM_CATEGORIES`. */
74
+ export function fieldGravity(field) {
75
+ return PROBLEM_CATEGORIES.indexOf(DEPENDENCY_CATEGORY[field].outdated);
76
+ }
77
+ /** Categoría de un problema. Una dependencia desactualizada es `waiting-*` si hay que esperarla (`mustWait`). */
78
+ export function problemCategory(problem, mustWait) {
79
+ if (problem.kind === 'outdated-dependency') {
80
+ const categories = DEPENDENCY_CATEGORY[problem.field];
81
+ return mustWait(problem.dependency) ? categories.waiting : categories.outdated;
82
+ }
83
+ return PROBLEM_CATEGORY[problem.kind];
84
+ }
85
+ /** Categoría más grave entre los problemas; `null` si no hay problemas. */
32
86
  export function mainCategory(problems, mustWait) {
33
- for (const category of PROBLEM_CATEGORIES) {
34
- if (problems.some(function (problem) { return PROBLEM_CATEGORY[problem.kind] === category; })) {
35
- if (category === 'outdated-dependencies' && problems.some(function (problem) {
36
- return problem.kind === 'outdated-dependency' && mustWait(problem.dependency);
37
- })) {
38
- return 'waiting-dependencies';
39
- }
40
- return category;
41
- }
87
+ let best = null;
88
+ for (const problem of problems) {
89
+ const index = PROBLEM_CATEGORIES.indexOf(problemCategory(problem, mustWait));
90
+ if (best === null || index < best)
91
+ best = index;
42
92
  }
43
- return null;
93
+ return best === null ? null : PROBLEM_CATEGORIES[best] ?? null;
44
94
  }
45
95
  //# sourceMappingURL=categories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"categories.js","sourceRoot":"","sources":["../src/categories.ts"],"names":[],"mappings":"AAAA,yCAAyC;AAIzC;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA+B;IAC1D,aAAa;IACb,UAAU;IACV,sBAAsB;IACtB,sBAAsB;IACtB,uBAAuB;IACvB,oBAAoB;IACpB,aAAa;CAChB,CAAC;AAEF,wHAAwH;AACxH,MAAM,CAAC,MAAM,gBAAgB,GAAyC;IAClE,aAAa,EAAE,aAAa;IAC5B,UAAU,EAAE,UAAU;IACtB,aAAa,EAAE,UAAU;IACzB,mBAAmB,EAAE,sBAAsB;IAC3C,mBAAmB,EAAE,sBAAsB;IAC3C,qBAAqB,EAAE,uBAAuB;IAC9C,oBAAoB,EAAE,oBAAoB;IAC1C,qBAAqB,EAAE,aAAa;IACpC,eAAe,EAAE,aAAa;CACjC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,QAAmB,EAAE,QAAmC;IACjF,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE,CAAC;QACxC,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,OAAO,IAAI,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5F,IAAI,QAAQ,KAAK,uBAAuB,IAAI,QAAQ,CAAC,IAAI,CAAC,UAAU,OAAO;gBACvE,OAAO,OAAO,CAAC,IAAI,KAAK,qBAAqB,IAAI,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAClF,CAAC,CAAC,EAAE,CAAC;gBACD,OAAO,sBAAsB,CAAC;YAClC,CAAC;YACD,OAAO,QAAQ,CAAC;QACpB,CAAC;IACL,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"categories.js","sourceRoot":"","sources":["../src/categories.ts"],"names":[],"mappings":"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"}
package/dist/order.d.ts CHANGED
@@ -1,14 +1,24 @@
1
- import type { CleanupStep, ProblemCategory } from './types.js';
1
+ import type { CleanupStep, DependencyField, ProblemCategory } from './types.js';
2
2
  export interface OrderNode {
3
3
  /** Identifica al nodo (la carpeta del repositorio, porque dos repositorios pueden tener el mismo nombre). */
4
4
  dir: string;
5
5
  name: string;
6
6
  /** Categoría del problema propio más grave; `null` si no tiene problemas propios. */
7
7
  mainProblem: ProblemCategory | null;
8
- /** Carpetas de los repositorios revisados de los que depende (dependencias fuertes: siempre se respetan en el orden). */
9
- dependsOn: string[];
8
+ /** Si tiene algún problema que llega a quien usa el paquete (ver `REACHES_DEPENDENTS`). */
9
+ reachesDependents: boolean;
10
+ /** Repositorios revisados de los que depende (dependencias fuertes: siempre se respetan en el orden), con el campo más grave. */
11
+ dependsOn: {
12
+ dir: string;
13
+ field: DependencyField;
14
+ }[];
10
15
  /** Carpetas de los repositorios revisados de los que depende como devDependency (débiles: se respetan salvo que cierren un ciclo). */
11
16
  weakDependsOn: string[];
17
+ /**
18
+ * Carpetas de los repositorios revisados de los que depende por campos que quedaron fuera del umbral: no definen niveles,
19
+ * solo ordenan dentro de un mismo nivel (salvo que cierren un ciclo).
20
+ */
21
+ tieDependsOn: string[];
12
22
  }
13
23
  /** `priority`: prioridad de cada paquete como dependencia débil (por omisión 0); ver `BussingOptions.dependencyPriority`. */
14
24
  export declare function computeCleanupOrder(nodes: OrderNode[], priority?: ReadonlyMap<string, number>): CleanupStep[];
package/dist/order.js CHANGED
@@ -1,6 +1,8 @@
1
1
  // Orden de limpieza: repositorios con problemas y los que dependen de ellos, en orden topológico.
2
- // Las dependencias fuertes (dependencies, optionalDependencies, peerDependencies) definen quién entra en la lista y se
3
- // respetan siempre; las débiles (devDependencies) solo ordenan, y se descartan si cierran un ciclo.
2
+ // Entran los repositorios con problemas propios y, por sus dependencias fuertes (dependencies, optionalDependencies,
3
+ // peerDependencies), los que dependen de un repositorio con problemas que llegan a quien lo usa. Las dependencias fuertes se
4
+ // respetan siempre en el orden; las débiles (devDependencies) solo ordenan, y se descartan si cierran un ciclo.
5
+ import { fieldGravity } from './categories.js';
4
6
  import { defined, mustGet } from './util.js';
5
7
  function byName(a, b) {
6
8
  return a.name < b.name ? -1 : a.name > b.name ? 1 : a.dir < b.dir ? -1 : a.dir > b.dir ? 1 : 0;
@@ -65,21 +67,25 @@ export function computeCleanupOrder(nodes, priority = new Map()) {
65
67
  const dependents = new Map();
66
68
  for (const node of nodes) {
67
69
  for (const dep of node.dependsOn)
68
- dependents.set(dep, [...(dependents.get(dep) ?? []), node.dir]);
70
+ dependents.set(dep.dir, [...(dependents.get(dep.dir) ?? []), node.dir]);
69
71
  }
70
72
  // Los repositorios con problemas propios y, transitivamente por las dependencias fuertes, los que dependen de ellos
71
- const included = new Set();
72
- const pending = nodes.filter(function (node) { return node.mainProblem !== null; }).map(function (node) { return node.dir; });
73
+ // Entran los que tienen problemas propios; los que dependen (transitivamente) de uno cuyos problemas llegan a quien lo usa
74
+ // entran también y, a su vez, hacen entrar a los que dependen de ellos
75
+ const included = new Set(nodes.filter(function (node) { return node.mainProblem !== null; }).map(function (node) { return node.dir; }));
76
+ const reaching = new Set();
77
+ const pending = nodes.filter(function (node) { return node.reachesDependents; }).map(function (node) { return node.dir; });
73
78
  while (pending.length > 0) {
74
79
  const dir = defined(pending.pop(), 'pendiente');
75
- if (included.has(dir))
80
+ if (reaching.has(dir))
76
81
  continue;
82
+ reaching.add(dir);
77
83
  included.add(dir);
78
84
  pending.push(...(dependents.get(dir) ?? []));
79
85
  }
80
86
  const dirs = [...included].sort();
81
87
  const strongEdges = new Map(dirs.map(function (dir) {
82
- return [dir, mustGet(byDir, dir).dependsOn.filter(function (dep) { return included.has(dep); })];
88
+ return [dir, mustGet(byDir, dir).dependsOn.map(function (dep) { return dep.dir; }).filter(function (dep) { return included.has(dep); })];
83
89
  }));
84
90
  // Los ciclos de dependencias fuertes forman un solo paso
85
91
  const component = stronglyConnectedComponents(dirs, strongEdges);
@@ -144,11 +150,67 @@ export function computeCleanupOrder(nodes, priority = new Map()) {
144
150
  dir,
145
151
  level: levelOf(id),
146
152
  mainProblem: node.mainProblem,
153
+ dependencyField: node.mainProblem !== null ? null : node.dependsOn
154
+ .filter(function (dep) { return reaching.has(dep.dir); })
155
+ .map(function (dep) { return dep.field; })
156
+ .sort(function (a, b) { return fieldGravity(a) - fieldGravity(b); })[0] ?? null,
147
157
  dependsOn: names([...new Set(deps)]),
148
158
  deferred: names(mustGet(deferredWeak, dir)),
149
159
  inCycleWith: names(dirs.filter(function (other) { return other !== dir && mustGet(component, other) === id; })),
150
160
  };
151
161
  });
152
- return steps.sort(function (a, b) { return a.level - b.level || byName(a, b); });
162
+ const byLevel = new Map();
163
+ for (const step of steps)
164
+ byLevel.set(step.level, [...(byLevel.get(step.level) ?? []), step]);
165
+ return [...byLevel.keys()].sort(function (a, b) { return a - b; }).flatMap(function (level) {
166
+ return orderWithinLevel(mustGet(byLevel, level), function (dir) { return mustGet(byDir, dir).tieDependsOn; }, priorityOf);
167
+ });
168
+ }
169
+ /**
170
+ * Ordena los pasos de un mismo nivel: primero los que no dependen (por `tieDependsOn`) de otro paso del nivel y, a igualdad,
171
+ * por nombre. Las dependencias se agregan de mayor a menor prioridad y se descartan las que cerrarían un ciclo.
172
+ */
173
+ function orderWithinLevel(steps, tieDependsOn, priorityOf) {
174
+ const byDir = new Map(steps.map(function (step) { return [step.dir, step]; }));
175
+ const edges = new Map(steps.map(function (step) { return [step.dir, new Set()]; }));
176
+ const candidates = [];
177
+ for (const step of steps) {
178
+ for (const dep of tieDependsOn(step.dir))
179
+ if (byDir.has(dep) && dep !== step.dir)
180
+ candidates.push([step.dir, dep]);
181
+ }
182
+ candidates.sort(function ([dirA, depA], [dirB, depB]) {
183
+ return priorityOf(depB) - priorityOf(depA) || byName(mustGet(byDir, dirA), mustGet(byDir, dirB)) || byName(mustGet(byDir, depA), mustGet(byDir, depB));
184
+ });
185
+ const reachesDir = function (from, to) {
186
+ const visited = new Set();
187
+ const pending = [from];
188
+ while (pending.length > 0) {
189
+ const current = defined(pending.pop(), 'pendiente');
190
+ if (current === to)
191
+ return true;
192
+ if (visited.has(current))
193
+ continue;
194
+ visited.add(current);
195
+ pending.push(...mustGet(edges, current));
196
+ }
197
+ return false;
198
+ };
199
+ for (const [dir, dep] of candidates) {
200
+ if (!reachesDir(dep, dir))
201
+ mustGet(edges, dir).add(dep);
202
+ }
203
+ // Kahn: en cada paso, el de menor nombre entre los que ya no tienen dependencias pendientes
204
+ const result = [];
205
+ const done = new Set();
206
+ while (result.length < steps.length) {
207
+ const ready = steps.filter(function (step) {
208
+ return !done.has(step.dir) && [...mustGet(edges, step.dir)].every(function (dep) { return done.has(dep); });
209
+ }).sort(byName);
210
+ const next = defined(ready[0], 'paso sin dependencias pendientes');
211
+ done.add(next.dir);
212
+ result.push(next);
213
+ }
214
+ return result;
153
215
  }
154
216
  //# sourceMappingURL=order.js.map
package/dist/order.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"order.js","sourceRoot":"","sources":["../src/order.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"order.js","sourceRoot":"","sources":["../src/order.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -25,6 +25,11 @@ export interface BussingOptions {
25
25
  roots: string[];
26
26
  /** Nombres de subcarpetas que no se revisan. */
27
27
  ignore?: string[];
28
+ /**
29
+ * Categoría menos grave que interesa (ver `PROBLEM_CATEGORIES`); los problemas de categorías menos graves no se informan
30
+ * ni se usan para el orden. Por omisión `DEFAULT_UP_TO` ("falta publicar", sin las devDependencies).
31
+ */
32
+ upTo?: ProblemCategory;
28
33
  /**
29
34
  * Prioridad de cada paquete como dependencia débil (devDependency) al romper ciclos; por omisión 0.
30
35
  * Las dependencias de mayor prioridad se respetan antes en el orden; las de menor prioridad son las primeras en postergarse.
@@ -82,8 +87,8 @@ export type Problem = {
82
87
  export type ProblemKind = Problem['kind'];
83
88
  /** Categorías de problemas, de la más grave a la menos grave (ver `PROBLEM_CATEGORIES` y `PROBLEM_CATEGORY`). */
84
89
  export type ProblemCategory = 'uncommitted' | 'unpushed' | 'altered-node-modules'
85
- /** Tiene dependencias desactualizadas y alguna de ellas tiene a su vez problemas propios. */
86
- | 'waiting-dependencies' | 'outdated-dependencies' | 'version-not-bumped' | 'unpublished';
90
+ /** Tiene dependencias desactualizadas y alguna de ellas, con problemas propios, va antes en el orden (`waiting-*`). */
91
+ | 'waiting-dependencies' | 'outdated-dependencies' | 'waiting-peer-dependencies' | 'outdated-peer-dependencies' | 'waiting-optional-dependencies' | 'outdated-optional-dependencies' | 'waiting-dev-dependencies' | 'outdated-dev-dependencies' | 'version-not-bumped' | 'unpublished';
87
92
  export type CheckName = 'repo' | 'git' | 'publication' | 'cross-dependencies' | 'installation' | 'order';
88
93
  /** Situación que impidió completar un control o que conviene revisar, pero que no es un problema en sí. */
89
94
  export interface Warning {
@@ -106,6 +111,11 @@ export interface CleanupStep {
106
111
  level: number;
107
112
  /** Categoría del problema propio más grave; `null` si está en la lista solo por sus dependencias. */
108
113
  mainProblem: ProblemCategory | null;
114
+ /**
115
+ * Si está en la lista solo por sus dependencias (`mainProblem` es `null`): el campo más grave por el que depende de un
116
+ * repositorio con problemas que llegan a quien lo usa. `null` si tiene problemas propios.
117
+ */
118
+ dependencyField: DependencyField | null;
109
119
  /** Repositorios de la lista de limpieza de los que depende. */
110
120
  dependsOn: string[];
111
121
  /** Repositorios con los que forma un ciclo de dependencias fuertes (vacío si no hay ciclo). */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bussing",
3
- "version": "0.0.3",
3
+ "version": "0.1.1",
4
4
  "description": "Revisa el ambiente local de repositorios después de una tarea: cambios sin commitear o pushear, versiones sin subir o publicar, dependencias cruzadas desactualizadas e instalaciones contaminadas por npm link o devel-sync",
5
5
  "author": "ari.dc.uba.ar",
6
6
  "license": "MIT",
@@ -24,13 +24,11 @@
24
24
  },
25
25
  "scripts": {
26
26
  "build": "tsc",
27
- "build:test": "tsc -p test/tsconfig.json",
28
- "test": "npm run build && npm run build:test && mocha",
29
- "test-ci": "npm run build && npm run build:test && c8 mocha",
30
- "prepublishOnly": "npm run build"
27
+ "test": "tsc -p test && mocha",
28
+ "test-ci": "tsc -p test && c8 mocha"
31
29
  },
32
30
  "dependencies": {
33
- "cleye": "^2.7.0",
31
+ "commendatore": "^0.1.0",
34
32
  "guarantee-type": "^0.2.13",
35
33
  "js-yaml": "^5.4.3",
36
34
  "semver": "^7.8.5",
@@ -42,7 +40,7 @@
42
40
  "@types/semver": "^7.8.0",
43
41
  "c8": "^12.0.0",
44
42
  "mocha": "^12.0.3",
45
- "qa-control": "^0.12.1",
43
+ "qa-control": "^0.12.2",
46
44
  "typescript": "^7.0.2"
47
45
  },
48
46
  "keywords": [