pipework 0.269.0 → 0.270.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 (41) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/REFERENCE.md +42 -0
  3. package/dist/cli/commands/check-steps.d.ts +34 -0
  4. package/dist/cli/commands/check-steps.d.ts.map +1 -0
  5. package/dist/cli/commands/check-steps.js +60 -0
  6. package/dist/cli/commands/check-steps.js.map +1 -0
  7. package/dist/cli/commands/check.d.ts +43 -1
  8. package/dist/cli/commands/check.d.ts.map +1 -1
  9. package/dist/cli/commands/check.js +232 -133
  10. package/dist/cli/commands/check.js.map +1 -1
  11. package/dist/cli/commands/lint.d.ts.map +1 -1
  12. package/dist/cli/commands/lint.js +36 -1
  13. package/dist/cli/commands/lint.js.map +1 -1
  14. package/dist/cli/index.d.ts.map +1 -1
  15. package/dist/cli/index.js +55 -2
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/lint/doctrine.d.ts +2 -0
  18. package/dist/lint/doctrine.d.ts.map +1 -1
  19. package/dist/lint/doctrine.js +3 -1
  20. package/dist/lint/doctrine.js.map +1 -1
  21. package/dist/trace/cardinality/check.d.ts +5 -1
  22. package/dist/trace/cardinality/check.d.ts.map +1 -1
  23. package/dist/trace/cardinality/check.js +3 -1
  24. package/dist/trace/cardinality/check.js.map +1 -1
  25. package/dist/trace/check/coverage-check.d.ts +2 -0
  26. package/dist/trace/check/coverage-check.d.ts.map +1 -1
  27. package/dist/trace/check/coverage-check.js +3 -1
  28. package/dist/trace/check/coverage-check.js.map +1 -1
  29. package/dist/trace/check/flow-check.d.ts +2 -0
  30. package/dist/trace/check/flow-check.d.ts.map +1 -1
  31. package/dist/trace/check/flow-check.js +3 -1
  32. package/dist/trace/check/flow-check.js.map +1 -1
  33. package/package.json +1 -1
  34. package/src/cli/commands/check-steps.ts +98 -0
  35. package/src/cli/commands/check.ts +283 -147
  36. package/src/cli/commands/lint.ts +34 -1
  37. package/src/cli/index.ts +56 -2
  38. package/src/lint/doctrine.ts +5 -1
  39. package/src/trace/cardinality/check.ts +9 -2
  40. package/src/trace/check/coverage-check.ts +5 -1
  41. package/src/trace/check/flow-check.ts +5 -1
@@ -1 +1 @@
1
- {"version":3,"file":"coverage-check.js","sourceRoot":"","sources":["../../../src/trace/check/coverage-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coverage-check.js","sourceRoot":"","sources":["../../../src/trace/check/coverage-check.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,8 @@ export interface FlowViolation {
7
7
  export interface FlowCheckResult {
8
8
  readonly violations: readonly FlowViolation[];
9
9
  readonly scanned: number;
10
+ /** Every file parsed, in input order; a clean one has no violation. */
11
+ readonly scannedFiles: readonly string[];
10
12
  }
11
13
  /** Validates every `@flow_step` annotation in `sourceFiles` (paths relative to `cwd`). */
12
14
  export declare function checkFlowAnnotations(cwd: string, sourceFiles: readonly string[]): FlowCheckResult;
@@ -1 +1 @@
1
- {"version":3,"file":"flow-check.d.ts","sourceRoot":"","sources":["../../../src/trace/check/flow-check.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,0FAA0F;AAC1F,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CAuBjG"}
1
+ {"version":3,"file":"flow-check.d.ts","sourceRoot":"","sources":["../../../src/trace/check/flow-check.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAA;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,uEAAuE;IACvE,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAA;CACzC;AAED,0FAA0F;AAC1F,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CAyBjG"}
@@ -15,6 +15,7 @@ import { collectFlowStepSites } from './flow-step-site.js';
15
15
  export function checkFlowAnnotations(cwd, sourceFiles) {
16
16
  const violations = [];
17
17
  let scanned = 0;
18
+ const scannedFiles = [];
18
19
  for (const file of sourceFiles) {
19
20
  const abs = join(cwd, file);
20
21
  if (!existsSync(abs))
@@ -28,11 +29,12 @@ export function checkFlowAnnotations(cwd, sourceFiles) {
28
29
  continue;
29
30
  }
30
31
  scanned++;
32
+ scannedFiles.push(file);
31
33
  for (const site of sites) {
32
34
  collectSiteViolations(file, site, violations);
33
35
  }
34
36
  }
35
- return { violations, scanned };
37
+ return { violations, scanned, scannedFiles };
36
38
  }
37
39
  function collectSiteViolations(file, site, out) {
38
40
  const { subject, annotation, commentLine } = site;
@@ -1 +1 @@
1
- {"version":3,"file":"flow-check.js","sourceRoot":"","sources":["../../../src/trace/check/flow-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flow-check.js","sourceRoot":"","sources":["../../../src/trace/check/flow-check.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pipework",
3
- "version": "0.269.0",
3
+ "version": "0.270.0",
4
4
  "description": "TypeScript framework for multi-tenant SaaS applications. PostgreSQL-only.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -0,0 +1,98 @@
1
+ // The vocabulary of `check`'s steps: names, the structured record each step
2
+ // yields, the --only/--skip selection, and the JSON writer.
3
+
4
+ import { writeFileSync } from 'node:fs'
5
+
6
+ export const STEP_NAMES = [
7
+ 'checksums', 'vitest-config', 'eslint-config', 'config-load', 'doctrine', 'flow',
8
+ 'cardinality', 'coverage', 'lint', 'typecheck', 'startup', 'boundaries', 'dependencies', 'install',
9
+ ] as const
10
+
11
+ export type StepName = typeof STEP_NAMES[number]
12
+
13
+ export interface StepViolation {
14
+ readonly rule: string
15
+ readonly file: string
16
+ /** 1-based; 0 when the violation is not at a line (a config value, a whole-project fault). */
17
+ readonly line: number
18
+ readonly message: string
19
+ }
20
+
21
+ export interface FileVerdict {
22
+ readonly file: string
23
+ readonly violations: readonly StepViolation[]
24
+ }
25
+
26
+ export interface StepRecord {
27
+ readonly step: StepName
28
+ readonly status: 'passed' | 'failed' | 'skipped'
29
+ readonly pipeworkVersion: string
30
+ /** What the verdict depends on. */
31
+ readonly reads: string
32
+ /** Only on a skipped step: why it did not run. */
33
+ readonly reason?: string
34
+ /** Every scanned file, clean ones with an empty list. Only doctrine, flow, cardinality and coverage. */
35
+ readonly files?: readonly FileVerdict[]
36
+ readonly violations: readonly StepViolation[]
37
+ }
38
+
39
+ /** What each step's verdict depends on, for a gate that keys cached verdicts. */
40
+ export const STEP_READS: Readonly<Record<StepName, string>> = {
41
+ 'checksums': 'package.json (its _generated and _checksum fields).',
42
+ 'vitest-config': 'vitest.config.ts, any stale vitest configs under the workspace, and the vitest section of pipework.config.ts (loaded, with everything it imports).',
43
+ 'eslint-config': 'eslint.config.js and the pipework version.',
44
+ 'config-load': 'pipework.config.ts and everything it imports (it is evaluated).',
45
+ 'doctrine': "Each file's verdict depends only on that file's bytes and the pipework version; no other file is read.",
46
+ 'flow': "Each file's verdict depends only on that file's bytes and the pipework version; no other file is read. A file that does not parse is not judged and is absent from files.",
47
+ 'cardinality': "cardinality/mismatch and cardinality/unannotated-ambiguity depend only on the file's own bytes. cardinality/step-cycle depends on ALL scanned source files (the call graph spans files), and the cardinality/structural-max-* verdicts depend on all scanned source files and trace.structuralMax in pipework.config.ts (loaded, with everything it imports). With explicit file arguments only those files form the graph, so cycles and the derived cap reflect that subset. A file that does not parse is absent from files.",
48
+ 'coverage': "Each file's verdict depends on that file's bytes, the pipework version and trace.io in pipework.config.ts (loaded, with everything it imports). Violations are warnings: the step never fails.",
49
+ 'lint': 'The files the lint include globs name, eslint.config.js, the tsconfig chain and lint.* in pipework.config.ts; type-aware rules also read the files a linted file imports. Not per-file independent.',
50
+ 'typecheck': "Every module's tsconfig and the whole program it names. Not per-file independent.",
51
+ 'startup': 'pipework.config.ts loaded, and everything that config imports (it is evaluated, so every define() and registration it reaches counts). Needs no database and opens no connection.',
52
+ 'boundaries': 'scripts/check-boundaries.js and the repository files it scans.',
53
+ 'dependencies': 'package.json of each workspace package.',
54
+ 'install': "The pipework copies under node_modules (pnpm's virtual-store lockfile and each copy's package.json).",
55
+ }
56
+
57
+ export function record(
58
+ step: StepName,
59
+ version: string,
60
+ status: StepRecord['status'],
61
+ violations: readonly StepViolation[] = [],
62
+ scannedFiles?: readonly string[],
63
+ reason?: string,
64
+ ): StepRecord {
65
+ const base = { step, status, pipeworkVersion: version, reads: STEP_READS[step] }
66
+ const withReason = reason === undefined ? base : { ...base, reason }
67
+ if (scannedFiles === undefined) return { ...withReason, violations }
68
+ const files = scannedFiles.map(file => ({ file, violations: violations.filter(v => v.file === file) }))
69
+ return { ...withReason, files, violations }
70
+ }
71
+
72
+ export type StepSelection = (step: StepName) => boolean
73
+
74
+ /** --only and --skip take comma-separated step names; either alone, never both. */
75
+ export function parseStepSelection(only: string | undefined, skip: string | undefined): StepSelection {
76
+ const valid = `Valid steps: ${STEP_NAMES.join(', ')}.`
77
+ if (only !== undefined && skip !== undefined) {
78
+ throw new Error(`--only and --skip cannot be combined. ${valid}`)
79
+ }
80
+ const raw = only ?? skip
81
+ if (raw === undefined) return () => true
82
+ const flag = only !== undefined ? '--only' : '--skip'
83
+ const names = raw.split(',').map(n => n.trim())
84
+ for (const name of names) {
85
+ if (!(STEP_NAMES as readonly string[]).includes(name)) {
86
+ throw new Error(`${flag} names an unknown step "${name}". ${valid}`)
87
+ }
88
+ }
89
+ const set = new Set<string>(names)
90
+ return only !== undefined ? step => set.has(step) : step => !set.has(step)
91
+ }
92
+
93
+ /** The JSON to stdout, or to `outputFile` when given. */
94
+ export function emitJson(value: unknown, outputFile: string | undefined): void {
95
+ const text = JSON.stringify(value, null, 2) + '\n'
96
+ if (outputFile === undefined) process.stdout.write(text)
97
+ else writeFileSync(outputFile, text, 'utf-8')
98
+ }